Week #481-482-483-484

Friday, May 22nd, 02020 at 11:11 UTC

A quadruple weeknote! Each week, we start a new text file that lists out our tasks day-by-day. When it comes time to write these notes, it makes it easy to go back over and see what we’ve been up to. Jumping back a whole month isn’t a problem when it comes to the tasks, but the more ephemeral ideas, links and thoughts tend to get lost.

Part of the reason this has slipped to a giant weeknote is because every Friday when we’re ready to sit down and write something, a deadline, task, sickness, holiday or something more gets in the way. It reminds us of the Mike Tyson Quote: “Everyone’s got a plan until they get punched in the face”.

Week #481

On Wednesday we started our pair programming sessions again. Getting caught-up on modelling the in-game economy to see if it is a bit ‘leaky’. We started simple with inspiration from MONIAC, the water based computer to help understand the economy. It looks at all the inputs and outputs of real or virtual currency. How you get it and how you spend it. We have exhausted this simple example, but atleast now have data for each of the inputs and outputs. The next steps are to look into more complex models to see if they can yield any further insights.

We also pushed a bunch of small changes to our top secret project. As the system becomes more and more robust, that means external dependencies. While they are reliable, we can’t always depend on them. This called for some ‘feature flags’. These are simple Boolean values that we can set to turn on and off functionality. For instance, we allow file uploads to S3. If, for some reason, we need to turn that off, we added a feature flag that will remove that functionality system wide until we can debug and restore it.

Week #482

Iceland has been doing great in managing the COVID-19 virus. Enough that we managed to meet some friends for lunch at a restaurant. It is good to chat about interesting projects, life and to support small, local businesses.

This was the start of a new month, so we sent off several invoices. Billing is not the reason we get up in the morning, but it is the lifeblood of the company. While we lost some customers due to the virus and a lot of hours were cut, we still managed to keep things flowing. Now that it is May, Iceland is relaxing more restrictions and we’ll be able to resume some of our normal activities again.

This week we sent out of Q2 newsletter. You can read it online and subscribe so you never miss future editions. It was all about emojis, triscuts and thunderclappers!

We managed to get back to consulting/programming on our economic model. We took the previous version and iterated on it again. The first version only looked at the total inputs and outputs. This iteration looked at each step in the process and was was earned and spent. This accumulating things each turn per customer rather than a grand economic overview.

We needed to make this programatically, but at the same time let non-programmers tweak all the settings. We did this by splitting the project into data input via an online spreadsheet. Anyone can adjust the probabilities and rewards/costs just by typing new values in the cells. Then we have an online python notebook consume that, run the state machine and output the values back to a different spreadsheet. That way anyone can manipulate the results with existing CSV/Spreadsheet tools.

As a sort of accident, we stumbled upon a big realisation. One of the probabilities in the spreadsheet was the customers willingness to take out their credit card and buy. We had this set to a ‘normal’ value. As a test, we set it to 100% just to make sure all the code-paths were working. That simulated customer who would buy something 100% of the time the opportunity present itself isn’t. The results was that they weren’t spend any more money than a simulated person who would spend at 30% chance. That was a big wake-up. It was showing that there wasn’t enough opportunities for them to buy. That was a happy accident that justified a lot of the work on the project.

This week we did a short interview with BBC Research about data collection. When that gets mixed down to a final podcast, we’ll link to it for anyone to listen too. It was a great feeling to start to get out again and promote some of our expertise and past projects.

Week #483

This week was mostly spent on two main projects. Our online school surveys for April were sporadic due to a lot of closures and uncertainty. Some of the surveys were pushed to May. We have been updating code and keeping an eye on the process.

For the data collection, we are moving to a more self-service model. With GDPR, the list of participants is becoming more and more problematic. Password protected spreadsheets, missing values, etc. By allowing our customers to directly upload, review and submit their own lists, it (hopefully) removes a bunch of the small, day-to-day issues we encounter each time we start a new survey.

On the top secret project front, we added email notification settings. As part of the website, you get email updates when various interactions occur. Rather than have a blanket on/off for email notifications, we started to get more granule. We needed to add something in preferences, then sprinkle the code around the site to check for the customer’s settings before sending any emails. After a few bugs, that seems to be working again. We only did this for emails, we could look into doing this for Push Notifications, but those are fewer and can be turned on/off at a device level.

Week #484

Back focused on two main projects, but then also getting back to an idea we’ve been kicking around for years!

On the survey front, we continue to work on the list upload and validation tool. Things are coming along nicely and after testing it on several old lists, we continue to add more warnings and errors. After May, when the schools are quiet, we’ll roll this into our main code branch and start to connect everything to work with the live database.

This has also caused us to realise a few more gotcha’s. Previously, when we handled all the list collection and importing, we could mark each customer in our CRM to say they have sent in a list. This makes it easy for us to contact customers who said they are participating, but have not sent us a list to survey. If they can upload their own list, we lose some of that knowledge and might pester people who’ve already imported their own list. We added an API endpoint to register all list imports, so hopefully that will solve the problem!

On the top secret project front, we had 4 different people we know try to use the system and follow all the steps. It was not successful, which strangely means the test was a success! Now we need to go away and fix a bunch of these issues, which is exactly why we conducted the test in the first place. There are a lot of moving parts to the system: a website, iOS app, android app, windows and mac installer and a few more scripts to glue it all together. These seem to be working pretty well, but the hardware and manufacturer’s app seem to be causing some issues. These concern us less, but we’ll fix the web and api issues and keep iterating!

With all our economic modelling, we got inspired to look back at an old idea we had for a game. We’ve had several false starts, but now rather than starting in code, we are starting with a model of the whole system. We can then adjust the costs/rewards and watch that trickle through all our equations. If it isn’t ‘balanced’ we can tweak the equation or the costs/rewards and re-run the simulation. If that goes smoothly, we can wrap that up in the bigger narrative. We’ll give this a codename soon and hopefully move it up the queue!