HHKB Professional 2 Keyboard Review

HHKB Professional 2

The keyboard is something that I use daily, and whether I’m writing e-mails or coding, I’ll likely do several hours of typing a day. Last summer when I switched to US layout in coding and started using Vim, I started thinking that maybe I should upgrade my seven year old Logitech keyboard to something hopefully better. And when I get such a project, I did what I always do: Went totally overkill with research and ended up spending a few hundred euros once I had made up my mind on the “most optimal choice” for me. :)

Update: If you’re interested in this review, you might want to check out my continuation with the Topre Realforce 88UB.

Keyboards: 101

My worldview after 2000 was essentially that laptop type flat keyboards are the way of the future, and keyboard choice mainly depends on whether you buy a Logitech or Microsoft one, and do you get the top of the line model or an OEM version for 15 euros. Enter Geekhack and some interesting discussions at Stack exchange, and it quickly became apparent that there is more to it.

First choice one needs to make is the layout of the keyboard. Kinesis makes some weird looking ones that some people swear by, and there are matrix-type layouts, I decided I would continue to risk carpal tunnel syndrome with a “normal” layout for the time being, as I don’t want to optimize my brain for a keyboard type that would only be available at home.
Continue reading HHKB Professional 2 Keyboard Review

Vim Colorschemes with Putty aka. GUI vs. xterm-color256

256 color Vim in Putty

I made a big step in coding geekdom this summer by upgrading the most low-level part of my programming workflow. It started when I got frustrated with Mac keyboard shortcuts on Scandinavian keyboard layout (they Just Don’t Work for most apps), and switched to US layout in coding. Once I made that transition, I started thinking that maybe I could improve my coding speed a bit more, and see what all the fuzz is about Vim.

The greatness of Vim in coding comes from the fact that Vim has separate modes for editing text, and navigating around. While not editing, all normal keys become powerful commands, and you can do text manipulation like duplicating lines, indenting sections etc. without ever leaving this “normal mode”.

Well, Vim is great, but an additional bonus to its power is the fact that almost every *nix system has it preinstalled. So even if I’m not on my own computer, I can just launch an SSH client and use Vim to edit the piece of code I’m working on. No need to compromise. Except color schemes, which I just couldn’t get working over Putty. Today I solved that puzzle after one and half hours of googling, and thought to share the findings, maybe someone will find this the next time they face the problem.
Continue reading Vim Colorschemes with Putty aka. GUI vs. xterm-color256

A bit of audio tinkering

I’ve been quite busy the last two weekends, first on a weekend holiday trip to Tallinn, Estonia, and then playing in the Helsinki Casual go tournament which successfully took most of my time last weekend. This has somewhat delayed my continuation to the composite video decoder project.

However, I haven’t been resting on my laurels completely even electronics-wise. My trip to Tallinn had one good by-product, namely new Audiotechnica ATH-M50 headphones. They are a marked improvement over my previous HD-500 Sennheisers, and got me inspired to getting a headphone amp, a tube-based Little Dot mkIII to be more exact. The 32 ohm ATHs don’t necessarily need an amp, but now I’ll at least be prepared if I ever end up getting something like HD-650s.

While researching for a proper USB DAC I came across an amazing audio blog by NwAvGuy. Compared to a lot of “audiophile” coverage he seems to have a solid engineering perspective to audio issues, and he has put an amazing effort to long articles that deal with many issues that surround headphone amp gear.

In addition to great scientific info, NwAvGuy has also designed a USB DAC called ODAC, which I ordered from Head’n’Hifi (they conveniently ship inside EU so no customs). And while I was at it, I couldn’t resist getting a DIY version of NwAvGuy’s O2 headphone amplifier. Read on for my experiences on building it and pitting it against the Little Dot mkIII tube amp.
Continue reading A bit of audio tinkering

Donations, ATtiny2313 Breadboard Headers Left

In case anyone missed it the first time around, there are codeandlife.com ATtiny2313 breadboard headers still available for donations that exceed $10 ($10.01, $15, etc.) to the blog. If you want one, please send me an e-mail (jokkebk at codeandlife.com) with your postal address after donating, and I’ll ship one of these cuties to you as a small thanks!

All proceeds from the PayPal donations will go towards acquiring new interesting stuff to write about in this blog, so if you like the content, please consider donating!

Picotech sponsorship & Site updates

I have some great news regarding the site. As long time readers probably remember, I’ve done several hacks with my Picoscope 2204 in the past, including a $5 logic analyzer and the latest composite video decoding article. Since I really like their product, I contacted Picotech and asked if they would be interested in working together more closely.

To my delight, the friendly people at Picotech had also noticed the hacks and agreed to sponsor the Code and Life with the extremely capable Picoscope 3206B. In return, I’ve added a “Sponsored by” box to the right which features Picotech and their Picoscope products, and will continue to feature Picoscope-related stuff in the future, and they’ll also have the permission to use those articles on their own. My warmest thanks to Picotech for their donation!

The first concrete result of the new, beefier 200 MHz scope is that I was able to redo many of the measurements in my Raspberry Pi GPIO benchmark. While excellent otherwise, my older Picoscope 2204 with 10 MHz bandwith and 100 MS/s sampling rate was not capable of analyzing the 14-22 MHz waveforms generated by the Pi very accurately, while this was no problem for the 3206B which has 10x the maximum sampling rate: See Benchmarking Raspberry Pi GPIO Speed for details!

Now that I have a scope with more buffer memory, I’m also going to revisit the composite video decoding and see if I can get full resolution, maybe even colors out of my Raspberry Pi composite output using the 3206B. After I get some experience with the new scope, I’ll likely do a review similar to my previous Picoscope 2204 review.

New look for the blog (and sorry for any hiccups)

I’ve wanted a more unique look to the blog for quite some while now, but hadn’t found any creative talent to help me with the process. Luckily I heard about Freelancer.com, and used their service to find a designer to help me with the process.

AFter some consultation, plus 10 hours of my work time to convert the design from Photoshop file to HTML and CSS, and then another 10 hours learning to transform that into a WordPress theme, I now believe I’m more or less ready to roll out the new look.

There may be some hiccups for a few hours at most while I’m testing the theme, and the look may revert back to Suffusion while I iron out any remaining issues. Sorry for that.

On electronics front, expect some new material rather soon – the blog design work has taken my time for the last two weeks, but I should have two very interesting projects to announce quite shortly!

Default feed not disabled with Suffusion

I switched to a new WordPress theme, Suffusion! Hooray! However, the %#&/?! default feed link is added to HTML even if disable it in Suffusion settings. Not hooray.

Digging into Suffusion code, I found suffusion_include_default_feed() from functions/actions.php, but it seems that it correctly does not output anything when I disable the default feed. Furthermore, the alternate feed URL actually does output my FeedBurner feed URL. So it seems Suffusion is not generating these links by itself.

Grepping around the WordPress source code (a look through the dozens of templating PHP files really makes me want to code a barebones blog myself) I finally located the culprit: feed_links() method in wp-includes/general-template.php. Why is this called? Where should it not be called?

It seems at least wp-includes/default-filters.php is adding this feed_links action to wp_head. I commented it out, and what do you know, the nerve-wrecking automatic feed URLs are gone!

Just thought to share it if someone else is having the same problem. It looks like Suffusion should have the following somewhere if default feeds are disabled:

remove_action( 'wp_head', 'feed_links', 2 );

It seems Suffusion is adding a ton of actions and filters in its functions.php, namely in function suffusion_setup_custom_actions_and_filters(). So here’s a patch which gets rid of that default feed URL if you have chosen to disable it in Suffusion setup:

function suffusion_setup_custom_actions_and_filters() {
    // Theme supports automatic feed links, which makes WordPress output default 
    // RSS feed links via feed_links action. Disable this if the user has explicitly
    // chosen in Suffusion setup to disable those very feeds.
    global $suf_custom_default_rss_enabled;
    
    if ($suf_custom_default_rss_enabled != 'enabled') {
        remove_action( 'wp_head', 'feed_links', 2 );
    }
    
    ///// ACTIONS

Dissecting the Excalibur Game Time Chess Clock

A go-playing friend of mine had a broken “Excalibur” chess clock that we here in Europe use extensively in go tournaments. The LCD was shattered and I don’t think they ship replacement parts:

Because the clock is not of much use without a display, I got to rip it apart to see what it contains. This particular clock is used quite a lot, so I thought I’d share the images. Note that you can click on pictures to view larger version of the image.
Continue reading Dissecting the Excalibur Game Time Chess Clock