Posted on 30th of November 2021
| 544 wordsThis blog is a few years old, and during its time, it has had a couple
of different style changes (and a couple of domain
changes). Initially, this blog started in 2018 when I was in school,
and I thought some blogging platform could improve my writing.
Most of the posts back then were some assignments for various school
related works. The blog was a clever publishing platform for those
and was accepted in many courses. Unfortunately, most of those have
since been deleted and forgotten.
During those days, this was very tech-oriented, focusing more on
writing various tutorials about different subjects, mainly around
distributed computing. Then I landed my first job as a software
engineer, where I could put the tutorials I had written to practice.
Unfortunately, at about the same time, I started losing my motivation
on regular writing, mainly due to time constraints.
Around late 2020, or early 2021, I started to rekindle my writing
habit with different styles and topics. Then I began to write down my
thoughts about the world around me. So many topics were about music,
art, and some tech stuff here and there but not really “technical
writing”. I was mainly sharing my opinions about the various topics
that interested me. While I enjoyed this little bit more pondering
writing style - some could call ranting - for me, it felt that it was
missing something.
I missed the technical writing. But now, since I had established a
particular style in my writing, it felt out of place to start writing
about various geeky subjects revolving around computer science. That
being said, all those writings in the tutorial and guidance way or
these recent little bits of the more analyzing way of writing haven’t
gone to waste. However, I feel that now I know what I want to write.
I think the combination of both will suit me the best. At the same
time, I don’t necessarily see myself writing some basic how-to
tutorials anymore. But I feel technical analysis with various concrete
implementations would be interesting to research and write. My main
interests generally lie in music and arts and how these intertwine
with computer science. However, my professional life is linked to
designing and implementing distributed systems, distributed computing
in big data environments, systems engineering, performance,
reliability, compilers and programming languages. I feel that those
might also be regular visitors to my ramblings.
My professional life has also revolved around these topics. So I feel
I can write a lot in conjunction with my work. Especially since
working with large distributed systems, you’re bound to stumble upon
some weird things, making this analysis-oriented technical writing an
excellent tool for thought. I would want to have this semi-regular to
regular writing habits that I once had, but that is something I can’t
promise. Post at a time!
But since this is my blog, I feel that occasional rambles and
shitposts about various topics are in place. Do people want to read
those? Probably not, but it’s fun to vent every once in a while. So
going forward, I think you can expect a significant portion of more
technical commentary with a creative angle alongside a smaller portion
of things that entertain and occasionally horrifies me.
Posted on 20th of September 2021
| 783 wordsI’m very prone to procrastination. While I wouldn’t say that I have
focus issues, I have noticed that I can easily spend hours on
non-essential sites that don’t bring anything to my life. Social media
has been one of them. I have always had a pretty weird relationship
with social media. I joined Facebook and Instagram a long time ago
because many of my friends and family were already there. While I
never did post stuff actively, I always noticed that I just ended up
mindlessly surfing these, especially on Instagram.
A couple of years back, I became conscious of this and decided to
delete my accounts on these platforms without giving too much thought
to it. While leaving these platforms was pretty easy for me, I noticed
that I had just replaced these with some other platform, YouTube in my
case. After which, I started spending countless hours on that platform
instead. Back then, I didn’t consider this habit as bad as mindlessly
browsing Instagram or Facebook despite it being the same. I think I
just rationalized it to myself as being educational or informative in
a better way than other platforms.
A year or two passes without Instagram or Facebook completely fine,
but I wanted to start using them again for some reason. Maybe I
thought I had already been cured of this disease, so I could have a
healthy relationship with them from now on. I also had professional
reasons behind this since I thought these platforms offer a great way
of marketing your art to others, which is true in some cases.
However, I quickly noticed similar behaviour when I was last on these
platforms. So after a couple of months of trying to get back in, I
just felt repulsed by them and decided to leave them again. When it
comes to marketing, that is not for me. I understand the benefits of
being an artist in social media. Still, since I mainly enjoy that as a
passionate hobby, I don’t see the need for being on social media.
So at the time of writing this, I think it has been about six months
or so of living without these. Still, I’m conscious of my
unnecessarily large usage of YouTube, News etc. While comparing my use
with Instagram, I still wouldn’t consider watching YouTube or
regularly checking news as bad as mindlessly scrolling through your
feeds. I still noticed similar behaviour on those I struggled with,
for example, with Instagram. I became conscious about randomly picking
up my phone and scrolling through the news even though I had just read
them or letting YouTube’s autoplay roll for long periods without
giving it too much thought. So I wanted to tackle these habits.
I have noticed that the most extreme methods work the best when fixing
some bad habit, at least in my case. So I didn’t want to ease when
trying to have a healthy relationship with these applications but
instead went cold turkey immediately.
So how has this worked for me? I think great! In the beginning, I
noticed how much free time I have when I don’t spend on useless
things. Also, initially, I occasionally picked up my phone by
instinct. However, I quickly realized I had no applications to spend
mindlessly surfing, so I quickly grew out of this habit. At first, I
felt boredom slightly when I couldn’t spend time on these apps, but
thankfully I realized that this spare time needed to be used
elsewhere. Before this, I was already reading relatively a lot, about
three to four books per month, but I have almost doubled that number
nowadays. I also wrote about time management between multiple
passions
a while ago, where I
pondered how I manage time between, for example, programming and
music. After ditching distractive sites entirely, I have felt that the
time management between these activities and my work life hasn’t been
an issue. Finding time for various pet projects and serious work
outside my life is straightforward since I don’t spend my time on
useless stuff anymore.
Do I see myself using these applications in the future? Well, I want
to read the news and continue to do so, not just constantly. I usually
catch up with recent events in the morning, but I don’t desire to
install any news apps on my telephone. When it comes to these
streaming platforms, YouTube, Netflix, etc., I could live without
them. There are lots of good information on these platforms, so if I
need to watch some videos, I can allow myself to do so. However, I
don’t want them to control my life in a way that I’m uncomfortable
with.
Posted on 10th of August 2021
| 1108 wordsI have always enjoyed reading about other people’s productivity hacks
and workflows, in general, regarding whatever they might be doing.
However, I often stumble upon reading how people maintain an
extravagant lifestyle with dozens of different hobbies, interests, and
passions with ease. So it makes me wonder how they manage their time
to maintain a healthy level of participation in their interests
without burning out.
I don’t have dozens of different passions or interests in my life, but
my passions tend to be quite large on their own, so when combining
those with 40 hour work week, I need to think about my time management
thoroughly. These passions I would consider to be writing, music and
programming. Fortunately, I currently work in the tech industry, so I
can make a good living by doing one of my passions. Writing on its own
isn’t necessarily a huge topic/interest in the sense that it only
consumes time, but the practice itself is pretty straightforward. On
the other hand, music is time-consuming, and it involves many
different activities, in my case. Sure, you could argue that writing
includes other practices, too, like planning what to write, but music
is on another level. I play multiple instruments, which I record for
myself and others in my home studio. I enjoy composing tunes, adding
some mixing and mastering to this, and you need to sacrifice a lot of
time for this. Programming is also something that I enjoy spending my
time on. While I do it for a living, what makes me genuinely like it
is the projects I work on in my free time, whether it’s my pet
projects of various sizes or some open-source projects.
Finding the time and focusing on the task at hand isn’t necessarily an
issue for me, but it’s more about maintaining a healthy balance
between all these passions that I hold dear to me. Although that being
said, I would consider myself a very gifted procrastinator, so
focusing on the task at hand can often be tricky. However, focusing
becomes no more an issue once I’ve gotten into the flow. A more
significant problem here is often finishing projects rather than
starting a new one (which I feel is entirely another issue to
improve).
When I work on my passions, I tend to focus for days or weeks on one
passion, e.g. programming, neglecting my other passions like writing
and music. This on its own isn’t necessarily a bad thing since I don’t
feel that I’m wasting my time when I’m doing something that I enjoy
and can get rewarded in multiple ways. But I would like to maintain an
equal balance between my passions.
A while ago, I started reading about how other people have managed
their time with multiple passions/hobbies, and almost unanimously,
everybody used various schedules for this. So I have already used a
“life management” system for a long time to handle all my to-do lists
and schedules related to my home and work life (insert praising words
about emacs
’ org-mode here).
I’m not going into details about how I manage my life with org-mode,
but if you’re interested in the tool, I would recommend going
through articles found at Org for GTD and other Task management
systems
and from Rainer
König’s OrgMode
tutorial
I realise that I have been missing for a long time in my current setup
because I haven’t scheduled when to work on what project. While I’ve
split my free-time projects into sub-tasks and occasionally schedule
and deadline when to work/finish those, the work has always been very
sporadic. The result has often been that I work for an X period on one
project and then move on to another, so I usually just forget what I
was supposed to do on the earlier project. For me, this often leads to
unnecessary postponing or cancelling/removing tasks completely. I also
quickly start saying, “I’ll do it tomorrow”, which everyone knows
won’t happen.
Starting Light
So I started to approach the whole concept of time management between
multiple different interests: to make dedicated timeslots and days for
whatever I might be working on. I maintain numerous ongoing projects
that don’t necessarily have deadlines but are just larger projects
that I want to work on it from time to time. Then these projects have
sub-projects which are usually scheduled with deadlines. These
projects and sub-projects might include something related to work,
home, open-source work, recording, or simply writing something.
I nowadays approach working these by dedicating timeslots for
something on a specific day. My work life and day-to-day home stuff
take a good portion of my days, but I try to use it as efficiently as
possible the rest of the time. So on Monday, I might work on some
programming-related endeavours based on my backlog, Tuesday something
else and so on. The way I still approach tasks haven’t changed in any
way, as in I still manage my tasks and TODOs and keep track of them,
but nowadays, I just dedicate specific days to specific
interest/passion.
Conclusion
This way, I don’t feel that I’m neglecting the stuff I want to work
on. Issues with this kind of approach are the context switching almost
daily. However, this kind of switching isn’t necessarily a bad
thing. I don’t want to think about work-related topics after I’ve
“clocked in the hours”, but I want to do something to relax or move my
thoughts elsewhere. I’ve mainly stumbled with issues that when you
might focus on programming one day, you focus on music. While this
switch on its own hasn’t been too bad in my case, when I get back to,
for example, programming after doing something else for several days,
it always takes a while to get back to the flow. But I do believe that
this is just missing practice in the world of managing multiple
different passions.
I have now split my time between multiple passions for several weeks,
which is an excellent way to go. It has also taught me about the stuff
that I genuinely want to work with since when you write down what you
want to do and when it’s easy to spot the stuff that you don’t want to
work on or just don’t have an interest in it. So this also works in my
case to find the topics that genuinely interest me. Will I continue to
manage my time like this for long? Well hopefully. I feel that this
way, I can contribute to all the stuff that makes my life interesting,
so obviously, I wouldn’t want to miss that.
Posted on 28th of July 2021
| 949 wordsSince the discussion about artificial intelligence has become
mainstream, I have started to ponder AI’s possible impacts on our
day-to-day lives. While I work in tech, I come from this “culture and
arts” background, at least a little bit. I did some theatre when I was
young and have worked with music in one way or another for most of my
life. This background has got me thinking about how AI could affect
these fields.
We have seen multiple interdisciplinary works mixing artificial
intelligence with various art forms, like drawings, paintings, music
etc. Already drawings and paintings generated with AI present a superb
quality in those, in which you cannot distinguish whether these were
created by AI or an actual human. On the other hand, music is not
quite at that level yet, in my opinion. At least in the form of an
entirely generated song by AI. That being said, I have heard great
pieces utilizing both human touch and AI, where AI plays a supportive
role in the whole work. Similar things can be seen in all creative
endeavours where AI could be utilized.
If AI gets used more and more in these creative projects with great
success, to me, it raises a question, can human art be entirely
replaced with AI? I believe it would be naive to say that it
couldn’t. But, considering the possible future where we cannot
distinguish humans from computers, how could we determine this kind of
smaller medium like song or book on how it was created or who created
it? As a consumer of these kinds of mediums, does it matter if some
algorithms made your new favourite novel to provide the same feeling
that you might get from reading a regular author’s book?
They Are Taking Our Jobs
To put it shortly, AI can replace anyone’s job who happens to handle
bits in one way or another. AI can do it way better than you ever can
in these jobs. So when we talk about “creative jobs”, how can you do
it better than someone else? Are you possibly better at drawing than
someone else? Or can you compose better symphonies than someone else?
What makes you better? Is it purely a technical thing, or is there
something else? When we talk about painting or drawing’s technicality,
sure, you could argue that your “pen strokes”, etc., might be better
than someone else’s. But does this make it better art?
Already there has been a trend of AI-generated music populating
different streaming platforms. Currently, that music has almost always
been something simple in which AI can excel. This could be called
elevator music or Muzak. This kind of music is most likely something
that many people wouldn’t mind because it’s generated with a computer
and lacks the human touch. But how would people feel if there were a
chart-topping song entirely generated with AI? Again, I believe many
people wouldn’t like that, other than a few tech geeks who might think
it could be cool (me included).
Could AI then fully replace the human touch in our art forms? We might
wait for that to happen for a very long time. Still, as I said
earlier, it would be naive to think that this couldn’t happen,
especially in the future, where we have reached a certain level of
intelligence where we can’t distinguish each other from humans and
machines.
So what could this mean for our “blue-collar” artists? What could be
the driving force for them to create new art if the audience doesn’t
know if it was created by a computer or a human? To me, that seems
very grim.
Creative Programming
If we can’t beat them, join ’em? Right? If we think this will be the
future, while it might not be a very uplifting thing to consider,
it’ll most likely be very realistic. While AI will have dire
repercussions on our life in the future, I also believe it can be used
for great good. Whether AI is used in health, fighting climate change
etc., there are many good use cases. In my opinion, utilizing AI in
the arts is also one. Should you create your next song or novel
entirely with AI? Possibly not, although GPT-3 has shown some great
results on how good text it can write.
I like to write or play music, so I don’t want to replace the
artificial process I enjoy so much. So I could utilize it in my
creative endeavours by working with it side by side. It could possibly
generate some ideas for my next blog post, novel, poem or
whatever. For example, AI could be taught with the text of a long list
of your favourite authors or songs by your favourite bands. Based on
this knowledge, maybe some of the possible ideas it could generate
could be finished by a human giving the final piece that human touch.
Conclusion
So while the future might look dark and grim for us, maybe we could
make some use of it, so at least we might have a little bit of
enjoyment. Thankfully we are a long way from this singularity that
many people tend to talk about, but the trend has shown to be moving
towards that kind of future. So rather than fighting against it, at
least personally, I want to make the best use of our technical
achievements in one way or another. Who knows if the next big novel or
piece will be created with AI or other great technological
invention. That said, I have already found many great ways to utilize
AI in my creative projects, so who knows what might come from those.
Posted on 23rd of June 2021
| 878 wordsCode reading has always been an activity I’ve just done without giving
any thought to it. But despite this, now, when I look back at this
habit, I see it as immensely beneficial. This habit caught my
attention when I was reading Peter Seibel’s book Coders at Work, in
which there is a section where Peter asks about code reading from his
interviewees. His interviewees tended to be unanimous that code
reading is very beneficial. Still, while reading his interviews, it
left a picture that the practice itself seemed to be lacking even
within those heavyweight programmers. The exception in this being Brad
Fitzpatrick and, obviously, Donald Knuth. If these programmers speak
for this practice but don’t do it in the wild, then who does? Overall,
it seems pretty odd to me. Seibel made a great comparison regarding
this when he compared programmers to novelists, where if a novelist
hasn’t read anyone else’s publications, it would be unheard of.
I’ve always enjoyed reading others’ source code, mainly, let’s face
it, to steal some ideas. But by doing this, I’ve received a long list
of different lessons, ideas, and patterns, which I’ve utilized
frequently in most of my work after these revelations.
Pattern Matching
One of the most significant benefits I’ve learned while reading code
is that you can learn various patterns after a while. Sure, every
project might seem cluttered and hard to understand for a while, but
when you get the gist of it, you start to realize why this or that has
been done the way it is. Furthermore, when you’ve understood some of
these patterns, it gets much more comfortable to start noticing them
in other similar or not-so-similar projects. Fundamentally this means
the graph of WTF-per-seconds starts getting less and less.
I have also noticed that pattern matching helps understand the whole
project under study itself. It would be best to try comprehending a
large open-source project simultaneously but in small pieces. Then,
when one of these pieces is understood, it can help tremendously
understand the other pieces.
Benefits of Reinventing
It can often be pretty hard to understand the functionality of some
parts of an extensive program by looking at the code. So quite often,
to get a better grasp of foreign code is to reimplement the way you
would write it. This way, you can abstract the bread and butter out of
the program and utilize it however you want.
This kind of reimplementing can be quite hard on bigger projects. The
best way to reinvent something in those projects is to change
something and see changes in the new compilation. For example, try to
change some text in some menu or output. This way, you can quickly
test how well you understand the foreign code.
Code as a Literature Medium
Many say that code is not literature because you read it differently
from prose. In my opinion, this doesn’t necessarily need to be the
case. Overall, code is written for humans first and then machines
second. An excellent example is Robert C. Martin’s ravings, in which
he often recites that the “code should read like prose to be clean”,
which I tend to agree with. Another good one is Donald Knuth’s
approach to literate programming. However, the latter one is more
about embedding code pieces amidst what one could call
prose. Nonetheless, this kind of system makes the code much more
readable since writing is such a big part.
One thing that I believe makes people think code is not literature is
syntax highlighting. I don’t use it. For some reason, I never grew
used to coloured text. Of course, I might be a bit biased, but when I
turn on syntax highlighting, I tend to focus on the wrong things in
the code, making it so that it doesn’t read like prose
anymore. Removing syntax highlighting has allowed me to grasp the
whole structure better. Is this true, or does it work for everyone? I
don’t think so, but that’s how I feel.
Code Reading Club
Based on these thoughts and Seibel’s ideas, I decided to try some
code-reading clubs in my workplace. Initially, what I had in mind for
this kind of club was choosing one library/program per week/month or
whatever and then dissecting the main logic behind it and discussing
it. However, I quickly realized that this would most likely work since
people have different interests in programming. For example, I am not
interested in various GUI applications or other frontend technologies,
even though they might have some good ideas behind them.
So a much better approach would most likely be that person chooses one
library/program and then dissect it sharing the findings with the rest
of the group. This dissection done by someone other than yourself
could easily inspire you and others to dive more deeply into the code
itself, even though it might be a little bit outside your
interests. That being said exploring the world around your circles can
be mind-opening since you can easily find new approaches to the same
problems that you might face in your work.
I want to give this kind of approach a good try, and I could write
some “deep thoughts” about it in the form of a review.