2025 01 26
Chinese New Years long holidays with no travel plans means a lot of alone time. And alone time is great for picking up a lot of backlog side quests. Some of the things I want to get done during this time:
-
Get back to flutter coding and get done with a simple math game to distract myself every time I want a 5 minute break.
-
Learn Github Actions - I know it is very powerful, but I have never bothered learning it and maybe it makes sense to like allocate an entire day to learn everything I can about github actions and how to use it efficiently for different project ideas.
-
Build myself a python library to abstract a lot of data structure/pandas/visualization code into simple functions. These should be related to FP&A related stuff that I regularly use.
Apart from these, the long holidays is also a good time to reset body clock. I want to fit in an hour of workout in the morning (some cardio and some body weight workouts). And pick some hobby up, like maybe learn one simple song using the guitar. And probably get good at keeping this digital garden alive. Back in 2004, I used to blog everyday. But these days, I have lost that ability to find something everyday to write about.
I thought about learning LISP also during the holidays. Been hearing about how "Lisp is difficult, but if you keep at it, you will hit an AHA moment, which will change the way you think about programming and make you a better programmer". I tried to dig a bit deeper and turns out the "aha moment" in Lisp comes from its philosophy rather than its utility. Python makes you a productive programmer quickly, while Lisp rewires how you think about programming itself. It's the difference between learning a tool and internalizing a new way to conceptualize problems. But that doesn't mean you can't learn to conceptualize problems differently just using Python. And I looked at a few examples and figured my way of thinking about programs is already quite aligned with Lisp. I always think transformations, compositions, and symbolic computation. And this is not just for programming. Even when I am solving any problem, I am lazy enough to think of transformation that will make the problem easier to solve (converting an algebra problem to a geometry problem etc.)
Now on why I plan to learn flutter? I tried my best to avoid having to learn Dart/Flutter. I first dabbled with flutter when I couldn't find a decent enough app that will allow me to learn a language with just audio books (like the Pimsluer/Michele Thomas audio files). There was no decent audio file playing app that would support learning language, which required the following features:
-
Ability to go back 10 seconds (a lot of time you miss something and you just want to go 10 seconds, but you have to fidget around the slider, which takes you 30 second or 1 minute back)
-
Ability to store the progress thro' a lesson so that when you come back you start from there.
-
Ability to mark the lessons which are done.
-
Ability to run the app in background (yes music players allow it, but then they don't have the ability to skip 10 seconds or rewind 10 seconds)
Anyway, so I built that app. It was good. I used to it to learn Korean. But then I didn't really enjoy working with flutter/dart. I am spoiled by python. But I am not able to find a decent enough python framework that can support both android mobile app and web app development. I tried to do pure html/js/css for making apps, but hated that equally. So figured I will go back to flutter.