Tag: english

Android and Unicode ID3 tags

For a while now I’ve been noticing that certain songs’ ID3 tags are broken when played on my Android phone. I use Black Player which in turn uses the built in Android music libraries – but I’ve checked in a number of other players too just in case and the problem persists.

My music library is extremely multilingual (and most of those languages I don’t even speak), so it’s full of UTF characters. Some of them seem to break Android’s encoding recognition. Sadly some of these triggers are pretty common, resulting in borked last.fm scrobbles. (And of course last.fm can’t be expected to be so smart as to fix all those automatically.)


Ports below 1024 can only be bound by the superuser

Today I learned that ports below 1024 can only be bound by the superuser. It’s amusing that I’ve never run into this problem before considering how much I play around with various servers.

The reason for that might be that most servers just tell you that “you need to be root to do this”, but not explain why so I wasn’t aware. Until today, when while trying to build a lightweight Compojure thing, it just refused to start.


Adding Spotify support to my #nowplaying script

Spotify had a really charming summer sale, three months for 100 yen, and that was more inviting than what I could resist. As a result, I’ve been listening to various artist radios at home too (without premium it wouldn’t let the desktop client on).

Now that it works, of course I’d occasionally want to post #nowplaying tweets/toots too, so I added that functionality to my script. From the experience with fixing it for Clementine the other day, it was really easy.


Adding an SSL domain

Setting up SSL at first was a laugh. The other day though I fell victim to a sale where they gave away 10 year .tech domain registrations for a measly $40. Considering that’s basically 90%, I enthusiastically picked up a personal domain for future use.

Then again I don’t have plans of setting up a personal portfolio site for now (though I used to have one a decade ago), so I wanted to just redirect it to valerauko.net instead. That’s where things got ugly.


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.