Posted on 26th of November 2024
| 159 wordsI recently stumbled upon a beautiful quote from Cesar A. Cruz that I just wanted
to ponder.
“Art should comfort the disturbed and disturb the comfortable”
Cruz’s quote is both provocative and elusive, a tidy aphorism masking a deeper
tension. It implies a dual responsibility for art: to console those in pain
while challenging those at ease. But who decides which group we belong to? What
comforts one person might deeply unsettle another, and vice versa.
The beauty of Cruz’s idea is that it resists easy answers. Comfort isn’t
inherently weak; it can heal. Discomfort isn’t automatically righteous; it can
harm. Art lives in this paradox, in the liminal space where consolation and
confrontation coexist. Cruz’s words don’t prescribe solutions, they challenge us
to sit with the ambiguity, to feel both the sting and the salve of what art can
do. That’s its power: to disturb us into wakefulness, but also to cradle us when
we need it most.
Posted on 13th of November 2024
| 735 wordsHaven’t updated my “What I Read Between” -series in a while mainly due just
being busy in my own life but also due to the fact that I’ve reading and
rereading veeery big novels. But finally having been managed to finish those,
let’s gather some thoughts.
Fyodor Dostoyevsky: Crime and Punishment (reread)
I’ve always been a huge fan of Russian literature, or at least a big fan of
few Russian authors. Mainly due to this reason I wanted to embark on this
“rabbit hole” during the summer months. Naturally, starting with Dostoyevsky.
I’ve read Crime and Punishment a couple of times during my lifetime. First, as
a mandatory homework from school and later few times just out of pure
enjoyment and I can say that it’s possibly one of my favorite books. To
summarize, book is about Raskolnikov’s internal and external battles and the
repercussions of the crimes he has done.
I love how the “crime” aspect of this book happens only in the 100 or so
pages, and the rest (600 or so) are devoted to the “punishment”, which in
this case means battles with psychological consequences of the crimes,
insanity and isolation, ending in the moment of divine grace and beginning of
Raskolnikov’s redemption.
Great book, cannot recommend it enough.
Fyodor Dostoyevsky: Notes from Underground (reread)
Along side Crime and Punishment, Notes from Underground is also a book that
I’ve read multiple times from Dostoyevsky. Probably I stumbled upon this book
when I was a “edgy” teenager, so I thought I could see some similarities
between me and the protagonist.
Book focuses mainly on diving deep into the mind of man living in solitude. So
a majority of the book is about questioning various everyday concepts, such as
logic, reason, free will, and showing how suffering can add depth to our
everyday life.
Again, very good book that encourages reader to not just read but also to
think and reflect.
Fyodor Dostoyevsky: The Brothers Karamazov
The Brother Karamazov was one of the classics of Dostoyevsky that again for
one reason or another I hadn’t read so I finally was able to finish it and
what a book it was! Book itself focused where heavily on rich and absorbing
ideas such as spirituality and logic and their contrast. So much so, that the
plot of the book itself (while being great on its own) feels secondary to
the exploration of these themes.
While the high level topics might be the main thing behind the book, I
especially loved the way how Dostoyevsky embedded these themes in to the main
characters of the book, the Karamazov family.
Book was pretty big with lots of different events and stories (even stories
within a story) so couple of paragraphs doesn’t do it justice. Just this book
alone deserves a separate post. I would even argue that just reading the book
once doesn’t do it justice. That being said, I enjoyed the book tremendously,
and I will be reading it again in the future.
David Foster Wallace: The Infinite Jest
The Infinite Jest has always been an interesting book for me. For many
reasons. First, I’ve always thought David Foster Wallace to be an interesting
character on its own right. But at the same time, for the the literary prowess
that he had. I had read couple of works from him previously but Infinite Jest
always felt like a somewhat of a herculean task to finish. Firstly due to its
length, but also for how it was written.
I remember reading some interview from DFW, where he mentioned how he “wanted
to write a best-seller, that was meant for literature students/professors”,
which can definitely be seen in the book. The writing style in the book is
very hard and difficult. Especially to someone from whom English is not their
native language.
But overall I think the book was great. Especially the time in the current
world made the book feel sort of “prophetic” in many ways. Despite the book
itself is set in this dystopian world. But looking it with perspective of
today’s world, it’s not that dystopian.
Similarly to The Brother Karamzov, couple of paragraphs doesn’t do the book
justice, since it features hundreds of different characters, many of whom are
just coping with modern technological world filled with loneliness and
disconnection.
Again, a great book once you get into it, which definitely deserves an another
read.
Posted on 21st of July 2024
| 776 wordsAs you might’ve seen in my last
post,
I’ve been
without an internet for good some time already. Still (like I mentioned in the
last post) I’ve really enjoyed my time without it. I feel that I can switch off
much better after working hours, and I still have energy to partake in various
other extracurricular activities that I hold dear to my heart, like hobby
programming projects, music, reading, sports and much more. So really there
isn’t much to complain.
Currently, my new neighbourhood does have a pretty good signal –
generally speaking. My apartment just happens to be in relatively awkward spot,
which means that it’s surrounded by other buildings. I happen to have a
relatively big balcony in my apartment as well and even in there I have
basically one bar of connectivity going on. Naturally, inside I don’t have any
signal or very little. Fortunately, I’ve been able to have just enough of
connectivity so in case some emergency or something along those lines, I’m able
to do something with my phone. But, when it comes to “surfing the web”, that’s
not much that I can currently do.
That being said, I can do just some browsing in handful of site that don’t clog
the whole bandwidth for silly updates and requests and mainly just focus on
sharing good content. So I wanted to write a small appreciation post for people
making websites that work with practically no internet at all.
TODO: Maybe gather some great examples of lite websites to somewhere?
Of course, when writing about this sort of topic, it also brings little bit of
sadness to me to see how many websites is basically unusable without a
relatively good internet. Fortunately, I live in a place where even at its
worst, I can access relatively “fast” internet and of course most of the places
(outside my apartment) is very well connected. I don’t need to go far from
my house to get basically full 5G connectivity with varying speeds (whatever
your contract at the moment happens to be). In places like Finland, 1 Gbit fiber
connectivity is getting more and more normal even in somewhat rural areas.
Germany is not on that level yet (and by many standards, very far from it)
but it’s still good nonetheless. Something like this cannot be said about the
vast majority of the countries around the world.
I kind of know the reason why something like this has happened that the
significant portion of popular websites are basically unaccessible by many
people. I think it’s largely due to this aggressive over-engineering software
engineers tend to do in their line of work. Also, I’m not innocent in that front
as well, since I’ve done my fair share of over-engineering during the years
working in the industry. Sometimes since I wanted, sometimes it was needed and
sometimes since I was told to.
But it begs an interesting question, why something like this so normal in our
industry? Sure, there are cases where added complexity to your infrastructure,
codebase, etc. has actually brought some benefits. But the amount of times that
has happened is greatly outweighed by the amount of times when it, well, just
has brought added complexity without any benefits. But hey! At least, the
engineers feel accomplished when they are able to deliver that is “complex”.
From the UX point of view, this is also quite interesting topic, since I believe
that no one in this world wants to have their app/product/software/whatever to
be slow for the users. But often, this added complexity automatically hinders
the performance of whatever you happen to we writing. You start doing more stuff
than you would need to, this can be inform of unnecessary web requests,
unnecessary computations and so on. I guess there isn’t any argument about the
fact that something like this hinders the whole UX. Which begs the question? Why
more people don’t care about the performance more in their products? You might
have an application that might have a traditionally speaking “bad UX”, meaning
maybe lots of menus, you need to press a lot of stuff to access whatever you
might be after, etc. But, if everything happens instantly, I’d dare to argue
it’s still pretty good UX, at least for many people. If then on the other end of
the spectrum, you would have a great UX, but everything is slow and has to load
lots of stuff, how good of an UX it really is at that point?
But yeah, I digress, seems that lack of internet just makes me want to write
about stuff. Any case, TLDR, write light websites.
Posted on 6th of July 2024
| 1238 wordsAs some of you might know, I’ve been living in Berlin, Germany for a few years
now. Wonderful city! Just what I was looking for couple years back when I moved
here. City definitely has its flaws (like does every city in the world) but I
still enjoy being here. City is definitely massive. Each district having their
own life, own people and own quirks. Spectrum is wide from somewhat poshy areas
of Mitte and Prenzlauer Berg to more hip and trendy areas like Neukolln and
Kreuzberg to more suburban areas around the Ringbahn. Of course, since I’m
mainly into various hip and trendy activities most of my time has been spent
lingering around and roaming the streets of eastern Berlin, mainly Neukolln and
Kreuzberg since those were the districts I used to reside. Due to its sheer
size, there’s no way, I’ve been able to experience all the city has to offer.
Despite this, I feel that the city has offered me tremendously.
While I’ve really enjoyed living in Berlin, one thing I can’t praise at all is
how things work in this country. So this is not necessarily Berlin’s fault,
although, I feel its also partly due to that. But more or less everything seems
to be difficult here. At least in a bureaucratic sense. Difficult in a sense
that nothing really works efficiently or effortlessly, or that’s how I at least
feel coming from Finland to this country. I’m not saying Finland is perfect in
how country should operate, far from it. I’m just saying that if you want to
move from place to place, making this sort of address change to your government
shouldn’t be too difficult. In Finland for example, if you want to move, there’s
one URL that you go to, fill in your new details, and send the information.
Pretty easy. In Germany, if you want to Anmeldung, you need to print your papers
necessary, fill the forms, book time in your nearest Burgeramt, go there
physically, just so someone can put some stamp in your papers. Sounds pretty
unefficient, right? That’s because it is.
I also just recently read from the news how Germany was excited to have
digitalised their medical patient information so that more stuff would happen
digitally instead of manually. Making it easier to share medical history from
doctor to doctor. Sounds amazing! Of course, something like this has been
implemented in many different countries for 20 or so years, but hey, Germany is
in no rush!
This sort of a ranty-detour gets us to the whole topic of today’s post about
living without internet. So I just wanted to write some words down on how I feel
after some undisclosed amount of weeks that I have been without internet at
home.
This all started mainly due to the fact that I just happened to move into a new
place and naturally I wanted to move my internet contract into the new address.
Of course, naive and blue-eyed me thought that it would be pretty
straight-forward. I just change the address, configure the router possibly in
the address in case something needs to be done and that’s about it, right? Well
of course not. Turns out, for some reason, there needs to be a internet
technician come to your place and turn on the connection for you. Okay, sure.
Interesting that it couldn’t be done remotely, but hey let’s go with it. But of
course to make it not so easy, the technician isn’t able to find my home, which
is interesting again since they know the address. Also, of course they could’ve
just called me but that’s too much to ask I guess. So there’s an another try,
but with the same result. Oh, and did I mention that there was two weeks between
these attempts so it not like that they tried it again in a short period of
time.
Okay, I start ranting again. Back to the topic. I wanted to jot down some
thoughts that I’ve encountered while living without an internet. Turns out, I
have really enjoyed my time! I’ve written in my blog about my “struggles” with
for example social media and how it used to grab my attention almost wholly. But
generally speaking, it feels that everything I tend to online, tends to be more
on the excessive end of the spectrum. Call it excessive use of YouTube or other
various places filled with endless amounts of content. I just feel that I tend
to sink vast amount of hours in these sort of places, without getting much in
return. While I’m not saying they are all bad, they certainly have good bits and
pieces here and there, but the vast majority just feels brain-rot.
With these undisclosed amount of weeks that I’ve now been without internet,
naturally, I’ve been away from all them. Even the cellural signal is quite weak
in my new apartment so I haven’t been able to use them via it even that much.
Fortunately, I’ve been able to keep in touch with family and friends with the
little signal I’ve had at home and in case I’ve really had to use internet for
something, I’ve had just to leave my home to find Wi-Fi, which also has been
quite good for me, since I’ve a habit of going “monk- or hermit-mode” quite
often.
I also recently changed jobs so fortunately I haven’t been in on any on-call
rotation so I haven’t really had the need to work from home. Also, the new
apartment has been quite close to the new office, so it hasn’t been too big of a
hassle to go there daily. Even that hasn’t been too bad. Why it’s to my surprise
is the fact that before this I really never went to the office. This employer or
the previous ones. I wouldn’t say the office that we have currently is something
extra-ordinary that I would really want to spent time in there, it’s still nice,
don’t get me wrong. I’ve never really just seen myself as this social butterfly
who can effortlessly manage themselves mingling around in an office environment.
So, I’ve always just enjoyed working from home more.
The lack of internet at home has really shown itself in my life in the form of
vastly increased productivity on the stuff that I value. I’m not saying that
some sort of ultimate productivity is something that everyone should strive
towards, which seems to often be the case in various toxic “hustling culture”
ideas, but I’m more so approaching the topic from the point of view of how
much time you really can use in the stuff that brings something positive and
beneficial to your life. In my case, it has shown itself in the form of
increased productivity for example in exercise, making music, writing, reading
and also programming passion projects. I.e. more or less most of the stuff
outside personal relationships and health that I find to be important in my
life.
So now I’m just spitballing with the idea of really not just getting any
internet to my home. Of course, if the current job situation would allow
something like that. Considering all the good effects I’ve seen in my life AND
considering the fact that it would be just one less thing to worry my head in
German bureaucracy, I don’t really see negative side in this.
Posted on 26th of May 2024
| 634 wordsEvery once in a while I like to play around with Emacs themes. Of course, mainly
due to yak-shaving and procrastination reasons and nothing actually valid. But
it’s fun nonetheless, although occasionally very tedious. Tedious in a sense
that Emacs tend to come with a lot of different faces, especially if you happen
to use more than a few third-party packages.
Defining a custom theme in Emacs
Emacs comes with couple relatively straight forward way to set custom themes in
the function custom-theme-set
where you define the name of the theme and then
the faces you want to modify:
(deftheme fancy-theme)
(custom-set-faces
'fancy-theme
'(default ((t (:foreground "black" :background "white"))))
;; [... and so on]
)
You’re also able to control on what sort of displays your custom theme should
support. For example, if you want to use theme in only terminals that support
minimum number of 16 different colors, you’re able to define that like:
'(default ((((class color) (min-colors 16)) (:foreground "black" :background "white"))))
Of course that can be slightly verbose, so often you might see custom themes to
be set like:
(deftheme fancy-theme)
(let ((class '((class color) (min-colors 16))))
(custom-set-faces
'fancy-theme
`(default ((,class (:foreground "black" :background "white"))))
;; [... and so on]
))
But it still tedious since there is a lot of faces and there can be lot of
variance between the faces so often if you want to write your own full fledged
theme, it’s better to explicitly set all the faces that you plan to use. Mainly
since, if the face is not set in the theme it’ll use that lastly set face for
that face in question, so if you session has used multiple different faces, it
can lead into some funky color combinations.
Currently in my Emacs session, which is relatively light package-wise, amount
of currently set faces equals to 869.
This is why, I decided to write a simple Emacs Lisp helper function to dump all
the currently set faces to a buffer where you can copy them to your own theme at
will. I also made it so you can simply just dump the faces from a give package
if you only care, e.g. about Magit’s faces.
(require 'cl-lib)
(defconst theme-dump--buffer-name "*theme-dump*")
(defconst theme-dump--default-format-string "%s %s ")
(defconst theme-dump--string-format-string "%s \"%s\" ")
(defun theme-dump-current-faces (pkg)
(interactive (list (read-string "Dump faces from package (leave empty for all packages): ")))
(let ((faces '()))
(dolist (f (theme-dump--filter-faces-by-package pkg))
(let ((attr-str (mapconcat (lambda (a) (theme-dump--format-attr-str f a))
(face-all-attributes f)
"")))
(push (if (not (string-equal attr-str ""))
(format "`(%s ((,class (%s))))\n" f (string-trim-right attr-str))
(format "`(%s (( )))\n" f))
faces)))
(let ((buf (get-buffer-create theme-dump--buffer-name)))
(with-current-buffer buf
(erase-buffer)
(insert (mapconcat 'identity faces))
(local-set-key (kbd "q") 'kill-buffer-and-window))
(split-window-right)
(other-window 1)
(switch-to-buffer buf))))
(defun theme-dump--filter-faces-by-package (pkg)
(cl-flet ((pkg-face-p (face)
(cl-search pkg (symbol-name face))))
(if (not (string-equal pkg ""))
(cl-remove-if-not #'pkg-face-p (face-list))
(face-list))))
(defun theme-dump--format-attr-str (face attr)
(unless (equal (face-attribute face (car attr))
'unspecified)
(cl-typecase (face-attribute face (car attr))
(string (format theme-dump--string-format-string
(symbol-name (car attr))
(face-attribute face (car attr))))
(t (format theme-dump--default-format-string
(symbol-name (car attr))
(face-attribute face (car attr)))))))
Essentially, this just gets all the faces with face-list
and either returns
all of the or filters them by package name if you want. Function prints the
faces into a new buffer in a format that is already suitable for new custom
themes:
`(magit-section-highlight ((,class (:extend t :background "grey95"))))
`(magit-section-heading ((,class (:weight bold :extend t))))
`(magit-section-secondary-heading ((,class (:weight bold :extend t))))
`(magit-section-heading-selection ((,class (:extend t :foreground "salmon4"))))
`(magit-section-child-count (( )))
;; and so on...
The printed faces can then easily be copied to custom-set-faces
for your
possible new theme. Faces are also backticked by default, in case you want to
change faces to use variables instead of hardcoded names.
Code is in public domain and also available in
sourcehut.