lae's notebook

Happy π Day!

And there you have it.

As a present, here's an illustration of Japan National Route 20 from the promotional video of 言の葉の庭 (The Garden of Words). It's a new film directed by Makoto Shinkai scheduled to air in theaters (Japan only, though) on 31 May. Feel free to use this as your wallpaper.

Route 20 illustration in 言の葉の庭

In other news, I open-sourced my Showtimes app a few weeks ago. You can see it in action at Commie Subs.

I'll just sit here and continue to stare at the Raspberry Pi I recieved last year but still have yet to use for anything.

Mailserver, DNS Changes and More

This weekend was pretty productive for me. I've set up Postfix and Dovecot both on this server so now I'm serving mail from (primarily because I wanted to send texts/email from my server itself). I've also now configured my IRC client to send me texts whenever I'm away and highlighted or messaged, following Michael Lustfield's Irssi to SMS article for the most part.

In addition to the (see my previous post), I've moved my DNS to's nameservers for, and currently in the process of transferring to NearlyFreeSpeech (I've used them for about 5 years now - they're great) and will be hosting its DNS on, also.

I am set to move to Chicago in about a month (and consequently leaving my job, sadly) and once I do I'll probably start setting things up out of my apartment. My friend's started up a survival minecraft server at Knights of Reason but hasn't set up a creative server. I might end up making one. Might.

Zmonitor 1.0.11 has also been released and is now available from the repo at, so you can just run gem install zmonitor. 1.0.12 is probably rolling out soon but I won't make an announcement for it until the next major update, and hopefully it will be some sort of an interactive shell to work from.

Seeing how pretty I made I'm a bit inspired to redesign this site, so I might do that sometime soon. For now though, time to sleep. Possibly.

Notice: If you're here to find information about, this is the wrong place. is a top level domain name whose use is shared through the non-profit DNS hosting services at I know nothing more than that, but thanks for visiting.

Second Notice (2013.06.29): Yes, the maintainer of stealthed his domain on No, I don't know the reason behind it. That said, these links are mostly broken.

So, over this weekend I've set up to point to this server. I'm going to start using this virtual host for my own projects, I suppose. Right now, I've made a pretty front page in just a matter of minutes, and just today I've set up some form of a public upload site using restricted SSH. I've wrote a script to make the whole set-up and upload process not too difficult, but enough to prevent automated spam bots.

This is basically how I set it up and use it, though the instructions differ:

[liliff@hicari ~]$ wget -qO - > ./bin/kmjp
[liliff@hicari ~]$ chmod +x ./bin/kmjp
[liliff@hicari ~]$ kmjp bin/kmjp 
Downloading private key...
Private key now stored at /home/liliff/.ssh/kmjp-upload.
Uploading bin/kmjp...
kmjp                                      100% 1419     1.4KB/s   00:00    
Success! Uploaded file can be found at:

Pretty neat, isn't it? I'm basically giving access to SCP for anyone for a particular folder on the server. The major flaw I have right now is that files may be overwritten, which is something I'll be looking into resolving server-side. It's also somewhat amusing how the script itself auto-updates should there be a change on the server's version of the script. Useful.

Update (9:17): It's been updated to use rsync instead of scp now, to get around the overwriting files issue.

Update (16 Feb 2013): This didn't turn out to be very safe to unleash to the public. I wrote an article that goes into detail about public scp. As a result, the above script and associated private key are no longer available for download.


I've spent the past few weeks working on a decent-sized project called ZMonitor to help at my current job. It is basically a client I developed in Ruby to show the Zabbix dashboard in a terminal, since there wasn't one available previously (other than this perl+curl mashup my workplace was using).

The main application basically calls the API twice through JSON calls to gather all of the information it needs, and then generates an array of strings and prints them at the end. There is an option to hide events that are in maintenance mode, which can help a lot from spamming you with an unusable list.

The acknowledgement function can accept most regular expressions to allow for mass acknowledgement (however, no wildcards since those can be abused too easily).

There are several TODOs for this application already, too, that I might not get to complete anytime soon. The major one is to use ncurses for rendering the dashboard, and quite a bit of functionality will come with that (such as acknowledging from the dashboard, and maybe interactive filtering). Additional functions for showing the history of a server is also planned, and a calibration function to determine time differences between the local computer and Zabbix master.

1.0.9.pre is for the most part very usable now. I personally think some of the code is a bit ugly since I'm not superb at Ruby yet, so all input is welcome. The whole application is also pretty colourful, don't you think?

Starting a new project!

So, I started a new project called Project Himari (and it's being hosted on github) that I'd like to become a complete maintenance suite for my server and perhaps servers owned by other people. There's not much in it for now, and I'm sure development will be slow since I'm not that well-versed in Ruby yet, but hopefully I can get a lot done within the next few months~

It will basically be something like cPanel/WHM, but coded in Ruby and meant for Lighttpd (and I'm looking into incorporating nginx as an option, too), regular websites (with standard support for PHP, of course) and Rails applications.

All that's been done so far is some planning and layout, along with a script to create an account (but it doesn't create one yet actually, mostly everything up to that point has been completed - the prompts and options, etc.). Learning and going for the time being.

I think I'm going to read another Ruby book now, specifically Zed A. Shaw's Learn Ruby The Hard Way, and work on the project afterwards. It has been a few years since I touched why's poignant guide to ruby (I happen to have a copy I printed out, too, it seems - I might go over it, too).