Category: Blog

  • No More Google Reader: Part 1, Feedly

    Feedly is the first in the list of cloud RSS reader software that I’m taking a look at as a replacement for Google Reader (see the Introduction for the index of all the parts.)

    Somewhat ironically, Feedly might be at least indirectly responsible for Google Reader’s shutdown. It’s been around for quite a while, but Feedly doesn’t actually run its own RSS aggregator. Instead, it’s simply a front end that accesses your feeds in Google Reader via an undocumented and apparently private API. They have recently announced that they are writing their own RSS aggregator backend, and will have it deployed in time to seamlessly switch over when Google turns off Reader.

    A curious result of their use of the private Google Reader API is that Feedly isn’t actually an application hosted on a web page. Instead, it requires installation into your browser as an extension, available for Firefox and Chrome. This is an issue to me, as I regularly switch browsers—and interesting hardware like my ebook reader simply can’t use it at all.

    At first glance, it certainly is prettier than Google Reader ever was:

    Feedly

    And it is quite full featured, and can be configured to replicate my preferred view from Google Reader: only show unread, with oldest messages first. There’s minor bugs in various places—e.g. if I have no unread articles, it will instead show a seemingly random set of previously read articles—but they seem responsive to user feedback. They haven’t switched away from the Google Reader backend yet, so how well they will scale is still an unknown.

    The layout at the moment is somewhat annoying; the narrow columns cause some images—comics in particular—to be rescaled at smaller than original size, making text difficult to read. I suspect that advertising will grow at some point, although they may offer a paid subscription service in the future. One curious thing is that they hope to open up their backend (which has a Google Reader compatible API) to allow other services to use it!

    Feedly is nice, but the requirement for browser extensions and special mobile applications is somewhat limiting. I’m still searching for the perfect Google Reader replacement…

  • No More Google Reader: Introduction

    Like many other people online, I’m a heavy user of the Google Reader application now left to find some replacement for this aggregator of interesting news that I’ve subscribed to. I know that Reader had some social features at some point, but I’ve never actually used them. There was a single thing that I valued about Reader: it allowed me to leave off checking my feeds on one computer, and resume later on a different box. It’s a “cloud-based” RSS reader, to use the modern parlance.

    Since Google has announced that they’re cutting the service off, I’m now looking for an alternative. But first, let’s take a look at what I have right now:

    Google Reader

    There’s my feed. I use Google Reader in its most simple mode; a continuous list of entries ordered from oldest to newest with previously-read entries hidden and with article content inline. As I scroll past each message, it’s automatically marked as read; and I use the “Keep unread” option to mark things that I pass by now, but want to take a look at when I have more time.

    While much of this could be gotten via social media, the experience is completely different. Social Media is constantly running in a ”push” stream. It always shows you the newest thing first, popping that down and out of view as soon as something else comes in. Social media is limited to tiny sound bite clips. With the RSS experience I use, it’s the other way around; things wait for me to come view them, and I see everything come in the order that it happened. (Particularly important if I, say, don’t check one day and miss a strip from a daily comic!) The longer form allows you to get at minimum a detailed introduction into what is linked; and many sites will inline entire articles and full-sized images so you can browse without even opening another tab.

    I’m sure lots of other services are popping up now with alternatives to the soon-to-be-gone Google Reader. I’m trying a few of them, and I’ll let you know how they go, in these follow-up articles:

  • A MusicBrainz report on Pseudo-Releases

    As an implementation of support for translating or transliterating the tracklists on foreign releases, MusicBrainz has something called “Pseudo-Releases.” They are meant to be used alongside the database entry for the original, real release to contain alternate tracklists.

    Unfortunately, many MusicBrainz users weren’t quite sure on when the “Pseudo-Release” status should be used, and incorrectly set it instead of the correct status like “Official”, “Bootleg”, or “Other” on some releases. And a few translated tracklists have the status set correctly—but aren’t linked back to the original version of the release.

    In order to help find and fix these issues in the database, I’ve created a new report: “pseudo-releases without transl*tion relationships”, in code review now. It looks pretty sweet:

    But 2261 releases to fix up means there’s a ways to go.

  • MusicBrainz contributions – Search result and stats improvements.

    I’m pleased to see that two of my MusicBrainz contributions have been merged in time for the 2012-01-26 server update, and are now live on the site!

    The first change isn’t exactly visible to the naked eye, but it should hopefully provide improvements in the Google Search result listings for MusicBrainz artist pages by providing a nicely formatted <meta description> tag to help Google (and other search engines, of course) list a more relevant “snippit” of the page in the search results.

    The second change is in a little-known area of the site, the timeline statistics graph. I talk about this a bit more on my Google+ post, but it’s nice to see the feature live.

  • Music in Review, 2011

    So, what did I spend 2011 listening to? As it turns out, quite a lot. This is the first year that I’ve had a portable music player capable of holding (nearly) my entire music collection, and I have a habit of listening to everything on shuffle. That said, a few things managed to stand out. My “top 10” in reverse order, from my Last.fm listening statistics:

    Tied for 8th place

    Xbox 360 Game &quot;Steins; Gate&quot; Intro Theme &quot;Sky Kuraddo no Kansokusha&quot; / Kanako Ito


    いとうかなこ
    スカイクラッドの観測者

    The opening theme song from the Xbox 360 Steins;Gate game, this song was actually released back in 2009. Since I watched the Chaos;Head anime, I’ve been a fan of いとうかなこ, and this is my favourite song of hers from the Steins;Gate series.

    &quot;Macross Frontier The Movie 1st: The False Songstress&quot; Insert Song: Pink Monsoon / Sheryl Nome starring May'n


    シェリル・ノーム
    starring May’npink monsoon

    Despite never having watched any of the Macross anime series, I have heard the music for it. This is helped along by Macross Frontier having music composed by 菅野よう子 (one of my favourite composers), including this powerful song which was used as the character’s debut single within the movie.

    TV Anime Blassreiter New Outro Theme: A Wish For The Stars / Kanako Ito


    いとうかなこ
    DD

    The second song by いとうかなこ that made my top 10 list, this one’s a little unusual. It’s the b-side to the single “A Wish For The Stars”, itself a very good song—but this is one of those b-sides that is amazingly awesome yet destined to disappear into the mists of time.

    binaria – sonido


    binaria
    月ノ光リ花

    binaria, the group featuring やなぎなぎ, Annabel, and yoshihisa nagao, is an independent group with a particular soft style and harmonizing vocals. They have a lot of good songs, and this one in particular rose to the top for me this year.

    A Best 2 -White- / Ayumi Hamasaki


    浜崎あゆみ
    Moments

    One of the few people on this list who is a legitimate “big” pop star in Japan. I didn’t do anything in particular to pick this song out, like I did with some of the others on this list—it just naturally rose up the ranks on its own merits as a good song.

    Tied for 6th place

    TV Anime "Yoku Wakaru Gendai Maho" Intro Theme: programing for non-fiction / Natsuko Aso


    麻生夏子
    Programming for non-fiction

    From a single released prior to her bigger breakout songs, this served as the opening theme to the not-widely-acclaimed anime series よくわかる現代魔法 (“Modern Magic Made Simple”). I prefer it to her more recent works, with its softer electronic style that makes better use of her voice.

    Primary – Rotate


    Primary
    Discolor

    I seem to remember this one from last year—just goes to show that good songs never die, right? Although yuiko has come out with several new songs and albums since this one was released way back in 2007, Discolor—with its simple pop-rock style and strong musical hook—has consistently remained one of my favourite songs. And to think I originally got it on a whim…

    Tied for 4th place

    EastNewSound


    EastNewSound
    PiPiPiPARU

    With vocals by Tsubaki and a really catchy beat, leaving this song on repeat a few times was surely responsible for propelling this song near the top of my list, as it was released almost exactly one year ago. A Touhou arrange song, although as the years go by it sometimes gets harder and harder to tell where the “Touhou” is in them… but never mind, it’s a fun song.

    Fuwafuwa / Yui Makino


    牧野由依
    ふわふわ♪

    In her first single after switching labels to Epic Records, her producers apparently wanted to try something different from the soft and slow songs that 牧野由依 had become known for. As a result, this song is catchy and up-beat and shows a side of 牧野由依 that we hadn’t seen before. Also, a sweet piano intro.

    In 3rd place

    binaria second mini album: forma


    binaria
    kobalos

    I’ve never been quite sure how to describe the style of binaria’s songs, but this one fits in with them as being just as… whatever it is… as the rest of them. A very minimal arrangement allows the vocal harmonization between やなぎなぎ and Annabel to be the star of the song.

    Tied for 1st place

    It almost feels like cheating a bit, with two first-place songs; but based on my listening habits, that’s exactly what I have right now. Let’s take a look at what we have:

    EastNewSound – Felsic Mirage

    EastNewSound花は幻想の果てに

    Like PiPiPiPARU, this is another song with an addictive, catchy beat and vocals by Tsubaki. It’s the older of the two EastNewSound songs that made this list, which both share a few similarities—including arrange by crouka. But when comparing two great songs one usually comes out on top, and this year, this was the song that I listened to slightly more often.

    IOSYS – 東方銀晶天獄

    IOSYSstar river

    Come to think of it, this song actually appeared in the same spot on this list last year, having been released back in March, 2010. Somehow it has managed to retain that #1 spot over an entire year on the strengths of its arrangement, including an awesome piano melody and strong vocals. At the end of last year, IOSYS actually released an updated version STAR RIVER (D.watt alternative), but it didn’t make a dent in the listings—the lyrics were translated into English, and the vocalist wasn’t as strong in that language, not to mention that it lost the piano intro!

    The last word

    Yes, I know there are 12 songs in my “top 10”. But it really didn’t seem right to arbitrarily exclude two of the songs from the #8 spot.

    Anyways, I guess that’s really a summary of what music I liked this year. Of course, I listened to a lot of music over the course of the year, and most of it—by far—was nowhere near this list. The spread was actually pretty small! My #1 tracks were only listened to a total of 19 times, while the #8 tracks only played 9 times. Which is really a side-effect of playing a lot of music on shuffle; I hear most songs just occasionally, unless I actively seek them out.

    I do seem to be rather partial to female Japanese vocalists, though…

  • Stuff I Can’t Afford

    himekanvas / Himeka
    Aw, man… Why did HIMEKA have to come out with a new album right now?

    himekanvas [w/ DVD, Limited Edition]

    If I calculate that up, it’s nearly $60 with shipping to where I am in Canada. Maybe I can convince someone to get it for me as a Christmas present? Who knows :)

    (Why yes, I am blatantly including an affiliate link for myself in this post. Why not?)

    Update: I decided that I could actually afford it after all. And the Limited Edition was still available. It’s in the mail now…

  • Expensive SD cards: Worth it.

    So, I just bought a cheap 16GB SD card today. My original plan was to use it as a replacement to the failed flash drive in an old EeePC laptop. (As it turns out, the SD card reader in said netbook is broken, so the plan failed.) But I got curious; what benefit do you get by paying more for an SD card? I have two to try today: An ADATA class 10 16GB card, and a rather older Lexar Professional ×133 2GB card (it predates the ‘class’ designations).

    So, let’s pull out the benchmarks. First the cheap ADATA card:

    16GB AData Class 10

    Hmm. The read speed (blue line) is fine, it manages to saturate the USB 2.0 bus when reading. But that write speed is pitifully slow. Given that the raw images from my camera hit nearly 8MB, that means that it would take nearly 2 seconds to write a single image to the card. Maybe it’s a good thing that the EeePC’s SD card reader failed—using this as a system disk would not have been fun.

    Now lets take a look at the rather more expensive (and older) Lexar Professional ×133 card:

    2GB Lexar Professional 133x

    Now that’s more like it. Again, the read speed saturates the USB 2.0 bus that my card reader is on—but this time, the write speed manages to nearly nearly keep up! That’s an average write speed of over 16MB/s, writing a raw image from my camera in half a second. (Conveniently, my camera tops out at 2 images per second.) The green dots representing read latencies also have fewer outliers, note the difference in scale between the two images.

    This line of SD cards (still called the same “Professional ×133”) has been updated with larger capacities now, and they claim that their current cards have a minimum write speed of 20MB/s. I believe them. And if you want a faster card, paying more for the higher-end models is certainly worth it.

    But I would need a faster SD card reader if I wanted to test them properly…

  • Vala Bindings for libmusicbrainz4

    When developing Riker, I had a bit of a choice – I could either write (from scratch) a new library to interface with the MusicBrainz XML webservice, or I could create bindings to access the existing libmusicbrainz library from within Vala. Up to today, I’ve gone a little ways down both paths, and both have problems.

    If I write new bindings from scratch, they’ll have some nice features like integrating into the Glib main loop, and automatically determining proxy settings from the environment. But it will be a lot of coding; and even more debugging.

    The existing libmusicbrainz code is better tested, and writing bindings is less overall code to write. Unfortunately, I’m writing Vala bindings for the C bindings to a C++ library. The extra steps cause some weirdness, which means that the bindings are more complicated than I would like.

    And then there are a few things with the C bindings to libmusicbrainz that it simply gets wrong. For example, it has no working typechecking! As a result, even some of the internal test code gets types mixed up, causing hard to debug issues. I’m working on a patch to correct this, which will change the C bindings API slightly. (But curiously enough, not the ABI).

    But in the end, simply to get started faster, I decided that the bindings are the way to go. The hypothetical GObject-based MusicBrainz webservice library will have to wait for another day.

    Take a look at my progress so far on the vala bindings at libmusicbrainz4.vapi.

  • Mercurial Frustrates Me

    Maybe I’m just used to having too much power at my fingertips. Git was designed, from the ground up, to provide operations to do absolutely anything to a repository, right down to the most basic level of manually creating individual objects in the repository. Using user-visible command-line tools that can be operated from scripts. It is literally possibly to reimplement most of the user visible Git commands (such as “commit”!) using shell scripts and some of the more-basic Git “plumbing” commands.

    So, there’s no surprise that Git commands support special script-friendly output modes. A good example: git log --numstat will print out a summary of the changes in a commit in a parser-friendly tab-delimited format. Mercurial doesn’t have this option. (Someone wrote a patch to add it, but it was rejected!)

    And then there’s the issues with speed. I’m writing a script that generates a summary of the differences between two branches based on which commits have been merged into each branch.

    $ time git log --pretty=oneline --numstat brancha..branchb
    real 0m1.081s

    So, about one second. Not bad for a command that’s summarizing around 400 commits from a 250 MiB repository. Lets see if Mercurial can keep up:

    $ time hg log -r "ancestors('branchb') - ancestors('brancha')" --template "{node} {desc|firstline}\n" --stat
    real 3m51.994s

    Ok… That command took over 230× as long in Mercurial as Git. Amusingly, the same repository in Mercurial is around 500 MiB – twice the size! (For the record, it’s mainly the --stat that slows it down. If I remove the stat, Git takes 0.167s, and Mercurial 0.421s). This is completely unusable.

    So, why is Mercurial around 200× slower to calculate the differences contained in a commit? I don’t know. But they really should fix it.