- 
      
Don't trust web apps (or how Google Reader and my ISP conspired to lose all my feeds)
About a month ago, I logged in to Google Reader to see a shocking thing - all my subscriptions were gone and I was subscribed to some feeds that I've never heard of.

I would say I'm a pretty heavy Google Reader user, checking my several hundred subscriptions several times a day, so it was pretty distressing. I posted a thread at the Google Reader Google Group (the link doesn't work now because they've moved the Google Group somewhere else for some reason) and several other people responded that they were seeing the same weirdness.
I had the same problem, and here's the really weird part: I got YOUR feeds! If you look at the top of the page you can see the account you're supposedly logged in with. Well, I saw your account there. And this was before I read this message. I also saw some other names every so often. Right now it says email censored.
Maybe it's some weird mix up with the ISP. Do you use SingNet?
Some time later I started seeing other people's accounts:

The problem affected only Singnet (a major local ISP) users in Singapore (about 7 other users in Singapore using Singnet responded with the same problems). No one really knew what the problem was and neither the Google Reader team nor Singnet (someone sent them an email) responded.
My guess was Singnet started caching Google Reader at a proxy and somehow managed to bypass all the credentials that was needed to modify any feed subscriptions. Sounds like a pretty nasty security bug to me.
The aftermath:
- Google Reader no longer has my feed subscriptions (I didn't manage to recover them so it's still in the sad state of having only 1 feed subscription to some UK property shite).
 - I've manually rebuilt my OPML file (containing my feed subscriptions).
 - I'm now using NewsFire. It's not decentralized so I can't sync it between machines, which really sucks since I have 2 primary machines, but I'm wary of using online feed readers right now.
 - I regularly export my OPML file and check it into Subversion.
 - I'm looking for a reliable decentralized feed reader once again (having used Bloglines and of course, Google Reader prior to the catastrophe).
 
 - 
      
ActiveRecord attribute-related improvements on Edge Rails
I just noticed a very fresh changeset committed into the Rails trunk that's pretty damn cool: changeset 7315. Michael Koziarski (aka nzkoz") has refactored ActiveRecord's attribute-related methods that, among other things:
- caches typecasted attribute values in hashes. This avoids expensive typecasting (such as for Time-related attributes) which means access to these fields is significantly faster!
 - moves generation of attribute methods to the class, instead of the instance.
 - generates attribute reader and writer methods (before, only reader methods were generated and writer methods relied on 
method_missingmagic). 
The Ruby on Rails: Core Google Group thread on this patch has more info on the changes and some of the rationale behind them.
Here's a simple (read: totally unscientific) benchmark I ran to access a DateTime attribute 10000 times (I ran it that many times to reduce the effect of the
City.findcall) with pre-revision 7315 edge Rails (I was using revision 7314):>> Benchmark.bmbm do |x| ?> x.report('test') { c = City.find(:first); 10000.times { c.created_at } } >> end Rehearsal ---------------------------------------- test 1.500000 0.010000 1.510000 ( 1.568782) ------------------------------- total: 1.510000sec user system total real test 1.500000 0.010000 1.510000 ( 1.592264)Post changeset 7315:
>> Benchmark.bmbm do |x| ?> x.report('test') { c = City.find(:first); 10000.times { c.created_at } } >> end Rehearsal ---------------------------------------- test 0.100000 0.010000 0.110000 ( 0.129514) ------------------------------- total: 0.110000sec user system total real test 0.000000 0.000000 0.000000 ( 0.009831)Quite a bit faster!
 - 
      
MMORPG called "Outside"

Seen at http://chickencrap.com/c.php?c=980.
I thought it was funny (I was a hardcore World of Warcraft player). All the features are so true too. Fully PvP rawr! The penalty of death sucks though - if you thought the experience point penalty in EverQuest was bad, think again.
This post got Dugg! I had quite a few giggles reading the comments there and those posted here. And yes, I think that is KL (Kuala Lumpur) Tower in the picture.
 - 
      
How to install Rails, the wrong way
I've always thought the Rails installation instructions on the official Rails website were pretty straightforward, so I couldn't help laughing when I saw this chat transcript a friend copied and pasted for me:
[5:23:05 PM] X says: try so many times finally can le
[5:23:23 PM] X says: it is not about the version or wat
[5:23:46 PM] Y says: then what is the error?
[5:24:22 PM] X says: the gem install rails--include-dependencies
[5:24:37 PM] X says: between rails and --include got spacingI know it's mean to laugh but I'm not a carebear! I think it took him a day to install it despite having installed and uninstalled it for 2 whole months (don't ask me why, but his environment kept getting borked).
 - 
      
Adium themes use plain old XHTML, CSS and JS
Just a quick note of something I found out while reading Transcending CSS: all the themes (message styles, contact list styles, etc.) in Adium are crafted with our old friends XHTML, CSS and JS. I opened up a few AdiumXtras to see for myself and true enough,
<div>s and CSS rules make up the style. Very smart decision by the Adium developers. 
subscribe via RSS