Tag: english

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.


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.


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.


#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).