This is a massive 11 week, weeknote. That covers nearly 3 months of workload. This is obviously a bad summary, but we’ve been swamped with tasks that all happened at the same time, therefore things like weeknotes and quarternotes got delayed. With the thanksgiving break in the US, we’re back on top of things and (hopefully) can stay on track a bit better.
Week #709
This week, we got confirmation that our secrete NDA is a go! We obviously can’t talk about it, and possibly never be able too, but our portion is to help get the proposal finished for the deadline. We’ll have one sync with the company just to confirm we’re on the right track, then have more time for the final proposal. We were given a list of topics we could choose from and we need to pitch (atleast) 4 ideas in our presentation. This is a fun and interesting project, right in the middle of plenty of other deadlines!
In October, we start several surveys. Our continual student survey, but also a 2-5th grade survey and a high-school survey. There aren’t many changes to the questions, we are adding one about using AI for coursework, but we do have a bunch of service updates.
For the high school, we are adding Arabic to the list of translated languages. When we do that, we also need to update some HTML and CSS to handle the right-to-left direction of the text and images.
In Icelandic, we also added a pronoun switcher. When a school uploads their list of students, one of the columns is sex
. This is used to have a breakdown in the results, but we are also keeping things anonymous. With the rise of a 3rd sex value, we are at risk of breaking anonymity. To help mitigate this, when you start a survey and agree to the informed consent, if you are not set with a sex value of 1 or 2 (see ISO/IEC 5218) then we randomly assign you a value. But then throughout the rest of the survey, we might be declining your pronouns incorrectly. To solve this, we implemented a cookie-based pronoun switcher, we already do this for language, now we have another variable for the three Icelandic language genders (masculine, feminine and neutral).
Week #710
This week we sent out our September ⪮ Good Morning Newsletter. As with all our newsletters, you can subscribe to get it delivered to your inbox, or via RSS or read the archives online.
We pulled the plug on a project in Australia this week. The customer had a sales system and an inventory system and wanted to better connect the two. Sadly, one had an API, the other didn’t, and exporting CSVs from one and trying to write some import code to get that data into the other system was’t going to work unless we basically replicated the original system. We gave the client the news and stopped looking into this further.
The school survey work continues. Once things start, we are not doing much (if any) code, infrastructure or question updates. But we are still needed for all the ‘touch points’. We send out emails, SMSes and robocalls to the participants and customers. Over the summer we transitioned away from 90s’ style table-based HTML emails to a much simpler email template. So we had to keep a close eye on all those changes.
We got an official green light on a new AR/Tablet project! This is going to be fun and interesting. It is completely Apple focused, so we can deep dive on some of their technologies without having to worry about cross-platform compatibility. Hopefully, we can talk more about the project and all the hiccups we’ve run into along the way.
The project in Miami is deep in their fundraising phase. We’re transitioning away from tasks. Originally, we were helping them build out there software stack over the summer, but things always take a bit longer than expected.
The core of this week was focused on the NDA presentation. We needed to prep a deck for our first presentation. That meant getting a lot of meeting discussions out of peoples’ heads and into text, sketches and renderings to show the customer.
Week #711
As if we didn’t have enough surveys ongoing, we added one more. This is about our eBike prototype. We think we know who our target market is and what they want, but it is now time to ask them what they really, really want. Obviously, the survey isn’t perfect. It is self-selecting and as we found out a few weeks later, we also took a bit of an ‘Icelandic’ view and made a few assumptions which got called out.
For our the AR/tablet app, we spent some time working on the iPad app. We choose to develop this in SwiftUI, which means that we can include and overlap 99% of the code base for different platforms. With a few #if os(iOS) ... #endif
macros we can control for any major differences. For instance, the Apple TV doesn’t have a camera, so Augmented Reality features are not available.
On Friday, we had our first feedback sync on our secrete NDA project. It was both good and soul crushing. As with creative work, you put a bunch of time and effort into something and without any real explanation it gets shot-down before it has a chance. Some of our ideas didn’t make this first cut, but we did get some invaluable feedback which we’ll take away and work into the other ideas.
Week #712
This week was sprinkled with AR/Tablet SwiftUI development and getting the final deck together for the final pitch next week.
On Tuesday, we meet an old friend for lunch and potential project plans. This is something we really want to keep warm so we can jump on the project at any moment, but it’s difficult to find the time and attention it deserves.
We have an old project which used the old Icelandic Single Sign-On service. We’re working with another software provider to transition away to another solution. They are already building a tool for our customer. The plan is to piggy-back that service. We had a meeting with the company this week, to plan how to make that handoff.
With the end of the month, we need to go through all the bills, salary payments and prep our VAT returns.
Week #713
Our two new surveys are in full swing and we’re monitoring the progress along with the reminders schedules.
This week we continue further with our AR/Tablet app. We started out quick and dirty by including all the assets in the app. Once we got confirmation that this is the direction and we knew more about what was being presented, we took this week and moved it into data structures in an iCloud container. Now the app syncs with an online database and pulls assets from AWS’ S3.
On Friday we had our final pitch for the secret NDA project. They were hard to read, but we think it went well. We’re still not 100% sure what this was for or if/when we might get any feedback or continue with the project? It might simply be an exercise that this company does to get outside feedback on ideas and learn about all the things they “don’t know they don’t know about”, those unknown, unknowns.
Week #714
The AR/Tablet app is mostly an optimized image gallery viewer. Which means once the code was in place to view and manage the images, it was then about loading it with content! We decided (or it was decided for us) that the content couldn’t live in the app, but needed to be online and downloaded on launch. This week was spent adding more and more image content and tweaking the gallery views. As part of that process, we improved the web admin portion to crop and upload images, and connect them with content.
As part of our surveys, we send out SMSes and Robocalls. For the SMSes, we have a shortcode label so no phone number is required, but for the Robocalls, we call from a number we control, have vetted and have an explanatory voice mail message for those who call back. Strangely, when we went to test things failed and after some digging it was because we no longer had the number we rented from Twilio!
We’re not exactly sure how we lost it?! When we tried to reclaim it, or any number for that matter, we couldn’t for Iceland. After a bunch of support tickets and some forms and proof we’re a company, we did manage to get our old number back. We dug through the email archives and can’t find any correspondence about our number being cancelled or removed due to lack of payment? We suspect they dropped support for Iceland since not many were using it, and we fell through the cracks. After a stressful few days, we did manage to get back on track without needing to delay our robocall reminders.
Finally, this week we sent out the October ⪮ Good Morning Newsletter. As with all our newsletters, you can subscribe to get it delivered to your inbox, or via RSS or read the archives online.
Week #715
The survey reminders are all finished this week, and we hand over the task of getting a high-enough response rate over to the organization contacts. It is now their job to take the last two weeks to round-up everyone who hasn’t answered to get on it so the organization’s results will be released.
For the AR/Tablet project we’ve been deep in image content and continuing with app bug fixes and tweaks.
We had a meeting about an old project to try and get to get it started again. Internally, we’ve discussed A and B projects. A-projects are client lead, big, year-long projects that involve a lot of people. The B-projects are meant to fill some voids between when we finish out part and hand it over to a client who might take a week to respond. The smaller B-projects are meant to fill those voids, give a change from the monotony of A-project tasks, allow us to experiment and explore on our own and give junior team members more ownership in non-critical projects.
Hopefully, we can get this great little B-project started again.
Week #716
It is the end of the month, so surveys closed. Since we spin-up a unique instance of each data collection server on heroku for each survey type, we have the small tasks of exporting the results, clearing any personal information and turning down the dynos to minimize the costs while no one is using the servers for another 10 months.
We also closed the eBike survey and will take some time next week to analyze the results for the team.
Week #717
With the old Miami we ran into a few bugs with the US Daylight savings change. They say in computer science, one of the hardest problems is timezones, and they are right! We were smart and saved everything in UTC in the database, but depending on the day an entry was created and when the entry would take place, there could be a shift in the actual time.
The AR/Tablet app portion is in a good place, so it is time to loop back and improve some Quality of Life issues with the backend web service. Since the database is an iCloud container, it is all key-value pairs instead of a typical mySQL/Postgres relational database. Luckily Apple allows server-to-server communications, so we’ve written some basic PHP code to be able to CrUD (Create, Update and Delete) data. That’s worked for a few weeks now, but adding in canvas image cropping and uploading, and better connecting the different models together to make it easier to navigate around. Just simple things like after you create an object, you get the UUID and then go to the detail or parent page rather than dumping back to a big list. We’re quiet happy with how it is progressing, but certainly not ready for the client to use it yet.
Week #718
As part of “just getting things done” we used AWS’ S3 to store all the images, thumbnails and media. Luckily, the app just reads and caches the information at the end of a URL, so moving somewhere else wasn’t an issue. Our client is a Microsoft shop and they are probably already paying some service contract with Microsoft, so it was this week’s task to move from S3 to Azure blobs!
It took some time to get a client-side javascript image uploader working, but we managed. After downloading all the existing data and re-uploading it to Azure, we wrote a small script to find and replace the old URLs with the new ones (the file names were always an md5 hash to avoid collisions) and the app just needed to re-cache the data and we’re back to normal – no hiccups.
Week #719
This week we sent out our November ⪮ Good Morning newsletter and our (very late) 02024Q4 Quarternotes Newsletter. You can subscribe to get them delivered to your inbox, or via RSS, or you can read them and all the archives online.
The eBike team met-up online and reviewed the survey results and some next steps for the prototype. We keep expanding the team pulling more experts in various categories. We are planning a meeting early December to all meet in person and invite a few more folks who’ve helped to have a look at the prototype and give some feedback.
One of our Australian projects is getting a small update. The plumbing company we built a time tracking to XERO web app has changed its structure, and (probably) for legal reasons is setting-up a new XERO account under the new company’s ID. We duplicated our Django application and setup a new heroku service. In the process we updated software versions, cleaned-up a few basic things and updated the UUID references to where Tracking Categories, Wages and other payroll related line items in our code. The plan is to make the switch-over in the new year, but we’re getting it all ready so they can import staff and jobs to test before the deadlines.
We had a great, long overdue catch-up with an old friend. We talked stereoscopic photography for a good hour or more. Lots of ideas and tests (both hardware and software). We’re looking forward to more experiments.
Since the October surveys are closed and results calculated and sent to the customers, it is on to prepping for the spring surveys. We ask our customers for an upload (excel or csv) of the students/employees/parents that will be asked to take the survey. We originally structured our importer based on what was easy for them to export from some of the more popular tools. Recently, a new software tool to track students has come to the market and instead of exporting 1 row per student, it exports 1 row per guardian (with some student info). That means we need to do some merging to convert it from a long to a wide list. This week we spent some time updating our importing code to try the original way and if the columns don’t match fall back and try this new format, massage the data to what we want and continue it through our pipeline. It works, now we need to test all those edge cases and consequence of these choices.
Week #720
In the US it is Thanksgiving on Thursday. The office for US project was closed this week, so that meant we have some extra time to get back on track. That included the internal stuff like: working out insurance for 02025, writing these weeknotes, stubbing drafts for the start of next year, doing VAT paperwork and more. But in-between, we also managed to start on a Blender software tutorial.
The goal is to work more on 3D AR Objects, but todo that you gotta be able to create and edit them. Blender is a beast in of itself, but having to export to USD format is yet another pain and learning curve. With some help from Reality Converter and Reality Composer Pro, we’ve gotten a few more tests and samples working. We’re happy with this little week long experiment and can get back to regularly schedule tasks next week.
Up Next
Realistically, we have four more weeks until the new year and the last two of those are going to be a lot of holiday downtime. So we’ll get 1 more double weeknote out, and start all the new year template posts (Omnibus, Annual Report, This Year I Learnt) and prepping a bit for Q1 Quarternotes.