Kaizen
The day started with a plan to do a hackathon with a four others from 8AM to 5PM on a project called Kaizen Music. A good friend of mine has been stewing on this for a while and I am figured a hackathon would be a great way to help get the ball rolling.
The main concept is to allow music artists to incrementally release updates to their songs. Instead of a song being a final product, it can be continuously improved and old versions remain available for listeners to see how the song evolved.
Kaizen is a Japanese term meaning “change for the better” or “continuous improvement.” It is a Japanese business philosophy regarding the processes that continuously improve operations and involve all employees.
This was the first hackathon I did as part of a group. We didn’t quite pull together what could be considered an MVP, but the core pieces are there and just need a bit of polish to tie everything together.
One group member joked that it’s not a real hackathon if it’s not 24 hours…He whispered some incantation and there I was under a spell until 24 hours clicked over.
Pomodoro
I’ve been nerding out on productivity tools and tips for a while now. The Pomodoro Technique is one of the simplest methods to improve focus and get sh** done.
I really enjoyed the Forest app, and wanted to start one of my own. This was an excellent beginner web development project. I kept things as simple as possible with just a single index.html file. I currently have no desire to store this information, so there was no need to incorporate a backend.
I “challenged” myself to built it in just vanilla JavaScript. Lately, I have been getting tired of React and the layers upon layers that you need to set up just to render a simple component.
With some somewhat manual minification, I ended up with a single request of 1.3kB for the app and a perfect Lighthouse score.
Once complete, the first thing I did was start a Pomodoro timer to build a news app.
You can find the code here and try it out at pomodoro.xyzdigital.com.
News
I frequent Hacker News more than I care to admit. It’s the only place I feel like consistently turns up interesting tech news. I imagine that I can use this as a place to personally collect ones that I want to refer back to. Often I stumble on what I think would be a very interesting read from HN, but I don’t really have the time to read the full article. Submitting it here gives me a nice queue that I can follow up on later and who knows, maybe others like seeing the articles I pick out.
I have been stalking the crow c++ library for several years now (no relation to the crows that have been stalking me on walks around the city). When I first saw how easy Python and Node.js made it to start a web server, I didn’t understand why there wasn’t a c++ equivalent. Crow attempts to fill that void so I decided that this was a nice small project that I could try it out on.
The crow documentation was lacking here and there, but overall I found it pretty simple to get going. I had plenty of trouble trying to get the mongo-cxx-driver to work— eventually aborted and switched over the sqlite3.
It’s been a couple of years since I wrote c++, so I was a bit rusty. Once I had a few lines under my belt it started coming back to me — successfully managing to deal with a void *data for the sqlite callback on my first go.
Now that I survived a miniature project with crow and c++, I’m hopeful I can continue to refine my use of both in future projects.
You can find the code for the news app here and you can view it at news.xyzdigital.com.
Chat
With the explosion of chat apps in the last little while — FB Messenger, IG Messenger, iMessage, Telegram, Signal, Twitter and SnapChat just to name a few — I started becoming interested in having my own communication app. Each of the above has some quirk to it, that just doesn’t sit right with me. More importantly, I don’t love the fact that these companies house some of my most valued data.
To keep things simple, I decided to start with a simple peer to peer chat app using PeerJS. I still have a bit more reading to do on WebRTC, but to my current understanding, these messages should only go directly between the two devices involved. PeerJS was a breeze to setup — which cannot be said about some other WebRTC tutorials I have come across.
Once again the code can be found here and the app is running at chat.xyzdigital.com.
Conclusion
I started the day only planning to do one hackathon, but I ended up running through another 3. I suspect talking through the concept of kaizen inspired me this morning. I have been background mulling over all of the projects above for a while now. This morning reminded me that building the first iteration is the hardest. But once you have it out of the way, you can continually make small improvements along the way. If you’ve been sitting on a project idea without making any progress, remember to break it down to small digestable pieces. From there a couple 25 minute Pomodoro timers will help you accomplish more than you think.
Thanks for reading along. Good night! (or good morning…I’m not used to going to bed at 8AM)