rm -rf

There are few things as scary as the command rm -rf. It deletes everything (it’s allowed to) without asking, recursively. Use it in the wrong place or on the wrong target and welcome to the “oh fuck” zone.

I don’t think I’ve ever had it run amok though, mostly because I don’t use the -f switch much. If something can’t be trivially deleted then it should ask me just in case. There are really damn scary stories out there about how bugs combined with rm -rf can ruin stuff.

I don’t exactly know how I ended up in the situation I did. The root of all evil was a hardlink to a directory on my server. I thought Ubuntu didn’t allow that (my server runs Ubuntu too and I just tested locally that it doesn’t let me create one), but it was still there in my www folder, pointing at the folder that contained my blog’s stuff.

Yeah, past tense.


Setting up nginx reverse proxy

I once set up nginx reverse proxy before, but I was just pasting stuff from online tutorials, not really understanding what I was doing. So when earlier today I decided I’d set up nginx to serve as a reverse proxy both for Apache and for node.js and Rails projects (soon to be) running on my server, I basically had to learn it all from scratch again.

Since everything on my server is now secured with SSL, I had to combine the methods from various sources on Git, Stack Overflow and Digital Ocean. My idea of the request flow was like this:


Ubuntu DNS errors

Basically every Ubuntu upgrade I run into this issue of my network connection dropping all the time – at least it looks that way. What temporarily solves it is clicking the “Auto Ethernet” item in the Network menu, but when it happens once every few minutes, it gets pretty frustrating. Especially since plenty of JavaScript based sites don’t handle sudden errors like that properly so I often ended up clicking on the retweet button a bunch of times before I realized something was wrong and confirmed it was my connection (again) in the browser’s console.

It kept throwing errors like DNS_PROBE_FINISHED_BAD_CONFIG and various other DNS related errors (NXDOMAIN, NO_INTERNET). Searching the net gives plenty of options for possible points of failure, and fixing the NetworkManager.conf (that was overwritten during the upgrade) helped me before.


My new job

For two months now, I’ve been working as a Ruby on Rails developer in downtown Tokyo. It’s a whole different world compared to working in anime. Instead of working from 1pm to midnight (though in bicycle distance from home), I now work regular hours 10am-7pm (though with an hour commute one-way). I still go to the gym every weekday and I still can’t manage to achieve a decent sleep schedule.

Work itself is much better. Working in anime was extremely easy. There wasn’t much to do most of the time and even when there was, it wasn’t in any form challenging. Only maybe physically, when I had to drive here and there until 3am. We could come up with ideas for new projects, but the chances of any of them getting any serious attention from superiors was (is) basically zero. All that added up into a huge incentive to quit as soon as I got a chance.


The Expanse

I don’t exactly remember how I ran into The Expanse, but I ended up watching it. At this point I’m a few episodes into season 2 and I’m not exactly sure I want to see the rest.

Every review and opinion of the show mentions how the actors are horrible and the writing is great – I must have terrible taste because I am much more irritated by the story itself than by any of the actors.


ヒゲよさらば

あごひげ何年間もってたかわ正直、分からない。FBの写真を追って見ると、2012年の冬はまだ顎がつやつや(ではなかったが一応ヒゲはなかった)。そして2013年の春の写真で始めて登場して、翌年の梅雨リングを付けた。

大学の卒業式はまだとめてなかったが、会社に入って研修中にEtsyからリングを買った。

以降の3年間、そのリングでとめてあるひげがトレードマークになって、オリジン4で登場したキャラもつけてる(が、ヘルメットのせいであまり見えない)。

という長い歴を持ったひげと昨日お別れしました。イメチェンもかねて新しい可能性に挑戦していきます。


Clementine DBus changes with Ubuntu 17.04

My #nowplaying poster for Clementine stopped working with the upgrade to Ubuntu 17.04 Zesty. After short debugging with D-feet it turned out that there were some changes to the way it interacts with DBus – which is, I guess, also the reason why it can be controlled properly through the Media menu now.

However, I was (am) totally ignorant re: DBus, so figuring out how this pretty complex system worked, in one hour, still slightly tipsy, past 2am, was not exactly a simple task. Though it was still faster and easier than getting vsftpd to work properly (sober and early afternoon), as there I just gave up and apt-get purged it.


秩父行ってみた

GW中は何か、部屋にこもる以外のこともやりたくて、西武線に洗脳されて秩父行ってみた。今の時期は多分芝桜が一番の魅力かなと思うけど、俺の日帰り旅行はそんなバラ色の物語はなれなかった。

近くに池袋線の駅もあるし、一本で秩父までいけたので電車の分はまだ楽だった。よりも、行きの、電車の分がね。

何をしに行ったかって聞かれると、山を登りたかった。ググったところ、その辺はいろんな山あるし、けっこうルートとかも整ってるから、気軽にいけるかなと思った。参考にしたページに書いてあった山のなか、堂平山が一番魅力的だった。ここで第一のミス:そこでリンクされているのは東武のおすすめです。


#nowplaying, now with Mastodon and Clementine

Once upon a time I made a Python script that posts the music playing in Banshee (Ubuntu) on Twitter. Times have changed and now I use Clementine to listen to music, furthermore I jumped the Mastodon bandwagon too, so I wanted my script to toot too, not just tweet.


MeCab for MySQL on Ubuntu Xenial

I was looking at fulltext search options when I found out that there is a Japanese language-specific plugin to make indexing more meaningful. Japanese doesn’t have word-delimiting spaces, so fulltext usually has a very hard time with it. MeCab uses a dictionary approach to that, in contrast to n-gram which just splits up words into equal sized bits.

Let’s check my MySQL version first… Apparently I have 5.17, which supposedly comes shipped with MeCab. Except it doesn’t, if you use Ubuntu, because apparently dependency rules for the universe repo don’t let them include it. Which is a huge pain in the ass, since I now have to look for the libpluginmecab.so file myself, and finding it wasn’t exactly an easy task.

Sure I’m not very well versed in the workings of open source dev communities, so I’ve got no idea where I’m supposed to look. I figured that if they can’t include that plugin file in the repo, then they might make it available elsewhere. I found it eventually in the community package .deb for the server, so I tried naively just extracting it and putting it in my plugins folder (which is /usr/lib/mysql/plugin/ in my case).