Overall I think this week went pretty well, I think I could have written more code and gotten into my office a bit earlier.


* [x] Blog: Thursday's TODO list
* [x] Reply to accountant again
- [x] Schedule a call with Henry, Toby and Jeremy
- [x] Blog: dragonkingcreation.com goes to your blog
- [x] Blog: Add analytics
- [x] Parse Nadia's sylvia text file
- [x] Rename video files
- [x] sylvia.json to backend project
- [x] Add analytics to your blog
- [x] Sylvia picture messages are not rendering
- [x] UI: Change paths to something cleaner

I wrote a blog post, I think I wrote a blog every day last week. I don't really remember this Monday, it looks like I didn't do any coding, but mostly fixed some issues with Sylvia's story data.

I seem to recall running into some HTTPS issues with this blog. I dug around the internet trying to figure how to resolve them but ended up taking down the whole blog.


- [x] GhostServer: Install Node
- [x] GhostServer: Install Npm
- [x] GhostServer: Install Nginx
- [x] GhostServer: Install MySql
- [x] Install blog with https://ghost.org/docs/ghost-cli/
* [x] Put out a new Android Build
- [x] Sylvia profile picture not showing
- [x] Sylvia ONE picture message is not rendering. Argh!

On Tuesday I gave up on Bitnami's version of Ghost and decided to manually  install and host ghost on a Lightsail server. It was actually a really enjoyable experience.

Looks legit

I also created a new version of Girlfriend Plus with Arabic translations. That reminds me I should see how the translations are performing.

The update went out on February 23, and we only have data until the 27. I guess I should leave it for a month to see if the translations are improving downloads.

After work I went over to go for a run with a friend in Kownloon Bay. We ran 20 laps around a 400 metre track.


- [x] www.dragonkingcreation.com does not work
- [x] Parse Sofia script
- [x] Blog Post explaining how to write Girlfriend Plus stories
- [x] Script Writing Medium Post to DragonKing
- [x] Blog: Audio Air Traffic Control Game
- [x] Nadia: to make screenshots for iOS
- [x] Nadia: Send stuff, so she can make iOS screenshots
- [x] UI: Adds in booleans to the Settings page
- [x] Parse the detective story
- [x] Remove front end code from Backend Project
- [x] Create Discord Server
- [x] Reply to Startup School messages
- [x] Talk to three people from YC

Not too much work was done on Wednesday. I seem to remember starting working on a websocket API for Girlfriend Plus Web. I also messaged a few people on YCombinator's founder matching platform. It's a little bit intimidating talking to people on the matching platform.

After work I met up with some friends and had quite a three or found pints of beer.


- [x] Blog: Crypto Securitization idea
- [x] Blog: Make the Cantonese TEXT-TO-SPEECH app iOS + Android
- [x] Try out Descript's lyrebird
- [x] Websocket API, allows sending token
- [x] Allow getting Conversations from the Websocket
- [x] Wrap more Test Websocket stuff
- [x] Websocket request should always have a UUID
- [x] Websocket response should always have a UUID
- [x] Websocket request should have a standard structure { type: 'CONVERSATIONS_SNAPSHOT', uuid: '1234', payload: {} }
- [x] Websocket response should have a standard structure { code: 200, type: 'CONVERSATIONS_SNAPSHOT', uuid: '1234', payload: [Conversation, Conversation, Conversation] }
- [x] Manually test websocket in DEV

I woke up massively hung over and decided to work from home instead of going into my shared office. I seem to recall this day being a bit of a write off but the stuff I did was quite useful. I started some serious work on the websocket APIs for Girlfriend Plus. I did most of the work on stream, which helps me stay focused, but sadly isn't very interesting for people watching.


### Friday 26 February 2021
- [x] Pay Fanny
- [x] Matt Levine blog posts to Kindle
- [x] wss://dev.plelarious.com/websocket?token=TOKEN is not working. Figure it out.
- [x] Socket should stay open longer
- [x] Get socket working in PROD
- [x] Pay rent
- [x] Allow getting ChatRoom entity from the Websocket
- [x] Fix flakey socket tests
- [x] All UI models should be suffixed with UI. E.g. "UIChatMessage"
- [x] Blog: Translated News
- [x] Trigger: Notify WebServer when Story is Created/Changed
- [x] Trigger: Notify WebServer when UserChoice is Created/Changed
- [x] Trigger: Notify WebServer when StartedStory is Created/Changed
- [x] Trigger: Notify WebServer when BoughtStory is Created/Changed
- [x] Prepare for StartUpSchool call

I messed with my Nginx configuration so that websockets would work in dev and prod. I also did a bunch of reading about websockets. I'm aiming for the most simple architecture possible with Girlfriend Plus's APIs, but I actually have two proxies between the server and the client. The client's request first goes to Lightsail's load balancer to determine which lightsail virtual machine to send the request to. When it hits the machine the request is routed by Nginx to determine which webservice on the machine to send it to.

I used to berate a colleague for writing too many database triggers

I also added some database triggers to certain tables to notify my webservers when records are added. This is also for the websocket API. The idea is when a player makes a decision, that will be written into the user_choice table, and that may trigger interactions in the conversation, these interactions should be sent down the websocket.

Then I prepared for a phone call with someone on the found matching platform. The call was I good, I enjoyed talking to the guy. Sadly I think our interests don't really intersect so we probably wont be working together.