Friday, July 31, 2009

Code lives with data, but not always is that union blessed.

Re: How to think about OO

I really don't buy the "code lives with data" thing. With this approach, after a while you get the octopus of a User class, aware of everything going on in your application -- authentication, the fact it's a web app, transaction management, parsing of itself from xml, marshalling itself into xml... where do you stop applying this "code lives with data" principle? And, actually, the classic separation of concerns, together with testability-oriented thinking, produce a lot of nice small classes, logically self-contained, easy to understand, use, and, yes, reuse. But reusability is not the only reason why you don't clump together concerns -- it's just one such reason.

Sure, if this is a tiny singular occurrence in your app (say, the only place in a tiny app authentication is ever dealt with), go ahead and put this method as a convenience. But surely we're not talking about such cases? Small unimportant apps can take a certain amount of clumping together of code dealing with different concerns before they become a complete nightmare to work with -- but who cares about those apps?

Thursday, July 23, 2009

High-definition television

Via mi3ch, credit: Christian Science Monitor, Bennett

Tuesday, July 21, 2009

Vonage, Protectron: nasty hidden fees, deceptive practices, bad experience

This is just to document my horrible experience with Vonage customer service and hopefully put a little dent into Vonage PR. While Vonage may seem to be a pretty cool service at first, turns out they have a clause in their terms of service (which is completely hidden from view of a customer at the time of account creation) that there's a $50 disconnection fee if the account lasted for less than 2 years (that's given the fact that they don't subsidize the equipment and their service is absolutely overpriced compared to Skype or other VoIP providers). I'm going to dispute those charges through VISA chargeback, but as a note to anybody considering Vonage service: look to some other company, or be stuck with mediocre service from Vonage and be prepared to discover unexpected charges when you need to cancel the service.

Same goes for Protectron, a security alarm company providing services in Canada: I was deceived by the representative of the company, Jeff Friend, about the terms of service. I was lead to believe that the service was month-to-month with no term obligations: a call to Protectron after a year of shelling out $55/mo for their service (not including equipment, which we paid for competely) revealed that they apparently have a clause that says that if you cancel before 48 months (48 fucking months!!!), you have to shell out all of the money ($55/mo times number of months remaining) upfront. Not to mention that this is ridiculous, it's also completely unjustified since the company doesn't subsidize the equipment in any way, either. Once again: stay clear of Protectron with their deceptive practices.

I hear that the consumer protection agencies are working here in the States to stop the practice of lock-in cell phone contracts -- well, we should really have the same thing in Canada, and it should also apply to any other service company, like Vonage or Protectron, who abuse the trust of their customers and should hopefully not survive the economic downturn. Meanwhile, stay away from them if you can.

Monday, July 20, 2009

Gøt sübtitles?

CRRC-Caucasus has a great article today (via gl) about Georgia's parliament contemplating introduction of more sub-titling of foreign movies and tv (as compared to dubbing, which is widespread in GE and other countries of the region, including Russia). This article lists exceptionally interesting research indicating that countries with widespread subtitling have better foreign language knowledge, in general. Worth a read - thanks Greg.

By the way, I hate dubbed movies with all my heart -- and now there's an objective reason why.
Version originale, sous-titlé: that's the way to go.

Speaking of other things I hate: I jüst cän't stand thøse decorative dîacriticals and foreign letters ußed in english branding. E.g.: Яed Dawn, Göt2b Glued and, finally, Toys'Я US. Like those babies can read russian!

Wednesday, July 8, 2009

Xootr Madness

I succumbed to Greg's seductive speeches and got myself a Xootr.

Almost killed myself on it yesterday, but otherwise it's a fantastic means of travelling that last mile after the BART / bus enjoyably. And it makes picking up that chinese takeout that much faster (based on a true story of mine)

Greg was right, the quality of machinery is stellar, I'd rely on this thing if my life depended on it (and, come to think of it, on San Francisco hills, it actually does.)

Yay Xootr! (pronounced 'zootr')

Monday, June 22, 2009

The hunt for the J2ME-friendly IoC is on!


I'm in the beginning phases of a Blackberry/J2ME project -- and along with other limitations that come with this wonderful platform, the lack of support for reflection and 1.3 language level mean that the vast majority of existing IoC containers are unusable. (Google has Guice for Android with no AOP, but even that requires support for annotations).
So the space of IoC containers on J2ME is pretty limited. The one framework that has caught my attention is called Signal Framework, and it looks pretty promising. It tries to stay conceptually close to Spring Framework's IoC, implementing a small subset of its functionality, and does so without relying on bytecode-modification or causing runtime xml parsing. Instead, it processes configuration XMLs at build-time to generate java code which implements this IoC functionality.
Generally speaking, code generation at build time seems like a very wise approach for mobile applications -- and if my app has to do less XML parsing on user's device, that's great too!
So, what have your experiences been with implementing IoC on J2ME/CLDC, and how were you able to extinguish that bitter taste in your mouth?
My Stack Overflow repost of this is here.

Thursday, June 18, 2009

Google Books: now the internet we want can finally begin

The recent news of Google's settlement with authors and publishers are just great. This has the potential to really transform the Internet as we know it and make it a worldwide (or, for now, US-wide) network for scholarship. That's the kind of world-wide web that every science fiction writer of the 20th century has been envisioning, and, if Google is able to get through the final details of this settlement, we'll finally see the dawn of an internet where knowledge is accessible as easily as porn. And it only took us 40 years.