Looking back at 2015
In this post, I’d like to give shoutouts to all the nice pieces of software and technology that entered my life in year 2015. I can’t stress enough how much VCSH helped in writing this post, so if you aren’t a user yet, I strongly encourage you to check it out. Мои русскоязычные читатели могут найти полезной мою заметку об этой программе.
Let’s start with new software.
The first thing I want to mention is Funtoo, a Linux distro based off Gentoo. That’s right: I’m not a Debian user anymore. Well, at heart I am, but my laptops are running Funtoo now, and I keep FreeBSD installation on my VPS.
The reason, as you probably guessed, is systemd. And no, shims aren’t a valid solution: I’m against systemd to the point I don’t even want to run software with compiled-in support for it. Source-based distros are the only ones that give me freedom to do so, hence the switch.
I chose Funtoo because it appears to be “modernized Gentoo”. I should say that the ride is bumpy—I’d rather give up some control to Debian maintainers in return for less administration stress—but, at least for now, that’s the best option I have.
I received my Master’s degree in Computer Science this past year. While preparing my thesis, I had to create a dozen of UML diagrams. Luckily, we had no requirements regarding the software to use, so I employed a nice front-end to graphviz called PlantUML. Back in class, we used to use an inferior tooling that made one waste a ton of time on inconsequential things like alignment of boxes and the way arrows overlap. PlantUML takes all these pains out of the process: you write a text file, you run a tool, you get an image. A nice set of syntax files for Vim is just the icing on the cake. Enjoy!
I’m not a big fan of Vim plugins, but I do have a few. I’ve used to use
Pathogen, but it’s more like a loop running :source
, not a real manager.
Vim-Plug, on the other hand, is able to pull from GitHub repos,
where all the cool kids seem to put their stuff these days anyway. I now just
run :PlugUpdate
once in a while, and stay confident that all the stuff I want
is up to date. I keep Vim-Plug itself in my dotfiles repo,
so bootstrapping is that same :PlugUpdate
command.
Tabular
Talking about Vim: gsomix directed me to Tabular plugin the other day. It robs you of yet another procrastinator’s excuse: aligning your assignment statements or what have you. Check it out.
Tmux Plugin Manager, Tmux-Resurrect and Tmux-Continuum
Tmux is an awesome, sublime piece of software, and the only thing that could upset me while I’m using it is an occasional reboot—Tmux can’t save and restore its own state! (Tmuxinator is not a solution for me because I don’t really have pre-set layouts—they just evolve as I work.)
Well, turns out people write plugin managers for Tmux. After that, they
proceed to actually writing plugins. The ones that I found most
useful are Tmux-Resurrect and
Tmux-Continuum. The former remembers and restores your
sessions’ layouts and sometimes even their contents (it can start Vim and
:source
your Vim session file, for example). Tmux-Continuum builds on top of
that, relieving you from manually doing saves and restores—it just saves
continuously while you work, and restores once you start tmux server. Highly
commended.
Mcabber 1.0.0
It probably was the most anticipated release for me, ever. And it finally came
out! The best feature shipped is, undoubtedly, buffer smart
scrolling—if a message comes in while you’re reading the backlog, you won’t be
teleported back to the bottom of the buffer anymore, just as if you did /buffer scroll_lock
beforehand. I’ll understand if you’re more happy for Message
Carbons support, though.
Now on to the little discoveries in technology…
ZSH and word splitting
One fine Saturday I bumped into a problem:
$ echo 'echo \"$1\" \"$2\" \"$3\"' > test.sh
$ chmod +x test.sh
$ D="one two three"
$ ./test.sh $D
"one two three" "" ""
BASH and Dash behave sanely:
$ ./test.sh $D
"one" "two" "three"
Turned out that one need to setopt SH_WORD_SPLIT
.
RFC 3676
This RFC is actually the only thing I originally wanted to write about, but it snowballed from there. Sorry…
Okay, so you see, I’m a young guy with an old-schoolish views. I like my email
to be plain/text
. I debated this with friends and family numerous times, and
the only argument that could sway my belief in superiority of plain text was the
problem of different screen sizes. 72 columns is fine for any computer and
pretty much any font size people around the world use, but not for mobile
devices. I couldn’t look at my own emails on my smartphone without disgust. So
maybe HTML proponents are right after all?
No. There is an elegant solution to the problem. It was proposed more
than ten years ago! The gist of the idea: let’s put spaces at the end of the
lines to indicate the ones that are part of a paragraph. That’s it! That’s the
only thing the plaintext was missing! Now viewers can understand which lines
form a paragraph and act accordingly; they can twist and wrap it however they
please, and it’s totally fine! (And if the author wants some lines not to be
treated in this manner, why, they just remove the trailing space!). The common
name of the thing is text=flowed
.
I’m so excited I couldn’t write the previous paragraph without so many exclamation marks. Sorry for that.
Mutt and Vim support that, of course; put set text_flowed=yes
into your
.muttrc
, setlocal formatoptions+=aw
in your .vimrc
, and you’re ready for
the future!
That’s it, folks; pretty much all the fun stuff that I stumbled upon in 2015. Hope it makes your 2016 a tad better, too. See ya!
Your thoughts are welcome by email
(here’s why my blog doesn’t have a comments form)