before 2023 && 2023 plan
Since I covered motivation in the last post, it's time to actually plan the new year. Yep, it took me 2 months to post this 🐣
Let’s start from the fact that I am a backend engineer. Python, AWS, testing, that kind of stuff. It get’s boring at the backend sometimes: you can’t come up to friend and tell them “look what I just did”. Hence I also played with some other stuff.
Basically, software-wise, I did just two things of my own that were released: some open source python libraries and Yosanity toolkit.
Yosanity Morning & Evening
Yosanity was planned as a set of simple tools for overall happiness and productivity, without bloat. I’ve been inspired by the success of Things, and reading the The Power of Habit recently. So it was decided to build a few simple checklist apps just for the iOS, using new and shiny SwiftUI, without a backend (utilising iCloud for sync), where user would own their data (you can export all of it, right from the app).
In the end, by now, it was both a success and a flop. I did build it in a couple of months, I didn’t get any money (~$50 from App Store sales), it didn’t grow organically, iCloud sync was cumbersome, watch app almost didn’t work. But I did get this review:
Thanks samphilipgirard. Your review makes it all worth it. :)
I did switch from paid apps to free at some point, since between making couple thousands dollars tops and delivering some value to more people I choose the latter.
The live notifications in the new iOS version should make this app waaay better. The ones like shown below. This is a great place to start doing something.
Python open-source
It may get a bit technical here…
serious
Serious is a Python library I built for serialisation of structured data to some model from JSON. It’s been 3 years but I still love how it looks and can’t find the alternative. The programming mantra states that it’s all about API and it seems I did good here. There’s still a small improvement to do.
from serious.json import JsonModel
from dataclasses import dataclass
@dataclass
class Person:
name: str
person = Person('Albert Einstein')
# This is some serious action:
model = JsonModel(Person)
model.dump(person) # {"name": "Albert Einstein"}
I built this library to serialize Python native dataclasses, but now looking at it, why note make it serialise anything in Python to JSON. This is a job to do #2.
lightweight
This library was probably a bad idea, but it still runs some of the websites I run. I wanted to build a static website from Jinja but I couldn’t find anything that matched my taste. So I tried to build something.
The idea was to build an API with clear inputs/outputs and transformation for static site generation. I still like the results, but tinkering with it’s internals is kinda cumbersome.
site = Site("https://drach.uk")
# Render an index page from Jinja2 template.
site.add('index.html', jinja('index.html'))
# Render markdown blog posts.
[site.add(f'blog/{post.source_path.stem}.html', post) for post in blog_posts('posts/**.md')]
site.add('blog.html', jinja('posts.html'))
# Render SASS to CSS.
site.add('css/global.css', sass('styles/main.scss'))
# Include a copy of a directory.
site.add('img')
site.add('fonts')
site.add('js')
I don’t feel like working on Lightweight right now
Other stuff
I also tried to open up a dog food production in Ukraine (with some amazing help, learned that you’ve got to have 5 years of experience to do something like that), worked on the team promoting DDD, CQRS and Event-Sourcing, tried to build a personal finance app with my friend (then we started quarrelling, but it’s all good now), worked on multiple other teams, with some other stacks, poked some current off the shelf NN solutions (GPT & stable diffusion), learned the basics of Tarot (not magic and esoteric for me, simple practical brain hacks), and still spent an impressive number of hours on YouTube, TV shows, video games, and Hacker News.
It’s been good but it’s about to get better!
TODO
So my skill set right now is good Python, JS/SwiftUI with dictionary, and keeping up with everything new and shiny. We’ll start with fixing existing stuff and then go on to implement new stuff.
Add live activities and update to latest iOS existing Yosanity tools, update website copy (+ migrate subscribers from its email list to this one).
Write why not having a backend (relying on iCloud) was a bad idea for Yosanity.
A minor update to serious to add amazing errors and stack traces.
Update serious to 2.0.0, by making it a python serializer for everything.
Play with design ideas for one everyday icon, which is shitty throughout all ecosystems, but everybody just dismisses it.
Write a GPT-3 tarot/horoscopes app PoC.
Make some small app with an Event-Sourced backend, maybe a chat?
Yosanity BetterYet.
Yosanity Workouts.
Yosanity CheckIn.
Yosanity Routines 2.
Investigate how to deploy Stable Diffusion to AWS for fine-tuning and inference.
Teaching app in format nobody yet have seen.
Website owner messenger.
A text adventure game.
The Plan
Every Sunday I will be filling Things to do for the week. On Mondays I will be posting my progress here. This should keep me accountable, and also leave a trace of what I was doing.