OSSのすすめ

経済卒だけに、日常や人生のあらゆる面に効用の(俺の中の)概念を当てはめてる。意味がないことや、非効率的なやり方を我慢するのが難しかったりする。もちろんその分の金もらえるなら、我慢の限度も上がる。それでも短期的な効果がみえにくいことや進捗が測りにくいものは苦手。

そして言語が好き。別にプログラミングに限らず、言語のこと読んだり、使い方とかの入門をみたりするのが楽しい。例えば去年の今ころはアステカのナワトル語がマイブームだった。数年前はアイヌ語だった。今はハマる前提でどの(今回はプログラミング)言語にしようかを検討してる。


First steps to open source

The post on dev.to about how newbies should blog more was not the reason I actually pushed commits, but it was for writing this.

I gotta start with that I’m the kind who gets hyped quick and can lose interest just as quick. What was I expecting? Feedback. Something. Even getting yelled at is better than being ignored, and if I happen to find a welcoming community where I feel I can contribute meaningfully, I’d probably stay there for good.


バスパス

4月から電車で通勤することになった。駅まではちょこっと遠く、いいペースで歩いても10分以上かかるので、特に雨の日はバスに乗りたい。

乗りたいが乗れない。ちゃんと定期も買ったのに、あてにならないから使えない。10分遅れてくるか、3分早くくるかとかが日常茶飯事、さすがに朝の通勤の時はバス停で場合によっては20分待つほど余裕じゃない。

ダイヤは何のためにあるだろうか。別に当てにならないもののつもりで作ってるのかな。土曜の夕方、駅に歩きながら見かけたバスは10分以上遅れてた。これでおもしろいのは、そのバスは大泉学園駅発で上石神井駅に着いた時点で10数分遅れ。ちょっと頑張れば10分でチャリでもその距離は走れるが。

バスは約に立たない。残念だった。


コードレビューを研く

Vaidehi JoshiさんのCrafting Better Code Reviews記事の翻訳です。

人間と技術の関係はいつの時代でも単純や楽には決して言えない。特に技術を作る人にくると、それが明らかになる。私自身も、職業でコードを書く人として、もっともコードレビューの際に痛感する。

開発の人は作業をアートに近い目線でみて(そういうところは美術作家などのクリエーターと同様)、自分のコードへの愛着が非常に強くなりがちだ。開発はエゴを捨てるべきと、自分のコードだけじゃなくて見る機会があるマージ待ちコードはすべてしっかり見るべきだと言われる。書いたコードをみてもらうのも、同僚のコードをみるのも、スバラシイコト™でやるべきことだって。推奨されるそんな習慣を身につけてちゃんとやっている人も少なくはない。


Ubuntu 17.04 new Terminal

I use Terminal a lot. I vaguely remember there being a time when I was frustrated about having to start it up to do stuff, but by now it’s my natural go-to for basically everything from just finding files to applying replay gain to a whole folder tree.

I also use two screens and three workspaces (one for idle browsing, one for focused work and one just for GitKraken and Clementine), so I tend to have multiple Terminal instances running in parallel. However, with the upgrade to 17.04, getting there got harder.


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.