March 7th, 2008
I doubt few of my readers have missed that Apple just released the iPhone SDK. How many read through the fine print?
Bottom line is: If you want to sell apps for the iPhone you gotta give Apple 30%. Thirty percent!?
Why?!
Apple is making ridiculous money off selling the iPhone. The more apps the iPhone gets, the more iPhone’s they will sell, the more money they will make.
In Swedish we have an expression for this. “Dumsnål”, literally “stupid greedy”. You get greedy about some detail so that you end up loosing money on the bigger picture. The reason Windows dominated over Mac back in the days was partly because Windows had more and better apps. Is Steve doing the same mistake again?
Posted in apple, iphone, mobile | 41 Comments »
March 7th, 2008
One of the interesting things in this industry is that every once in a while you have to completely re-evaluate your beliefs in light of new developments. It’s long been common sense that thread-based servers scale worse than selector-based poll/NIO ones.
This certainly was true at one point in time, but it seems it may not be true any longer. There’s several reasons:
- Modern threading libraries seem to have greatly increased the number of threads they can run.
- Locking/synchronization is now orders of magnitude faster and can sometimes even be optimized away by the compiler.
- Threading libraries are much better at context switching sometimes eliminating them completely (why switch in a thread I know is waiting for I/O?) and having constant time schedulers (context switching doesn’t get more expensive the more threads you have).
It’s funny that while the whole industry was learning how to do designs for non-threaded models there was this group of people fixing up the actual infrastructure itself.
Time to pick up Doug Lea’s threading book again. Maybe this reading I will understand some of it.
Posted in java | 1 Comment »
March 5th, 2008
Facebook. The future of internet. How high hopes we had. What silly amounts of money Microsoft spent.It was such a great idea. One community to rule them all and anyone can extend it with their own apps.But as always, a platform is nothing without it’s killer app. All Facebook got was a couple of stupid movie quiz and dating apps.I still think it’s a great idea in principle but the implementation has to be:
- Decentralized.
- Based on “webby” standards.
I’m thinking whoever puts together things like OpenID, hFN, hCard, plain old email and makes it work for my grand mother is on a winner.Facebook on the other hand, I have one word for you: Unsubscribe.
Posted in rant, web | 5 Comments »
March 4th, 2008
“like”
The special type operator like is used to test whether an object “looks like” a particular type even without being of that type. For example,
var v: like { x: int, y: int }
will accept both of these values:
{ x:3, y:3 } : Point
{ x:3, y:3 }
Advice to language designers: If you ever get to the point where it feels logical and appropriate to add a language feature such as like, please, just give up.
The future will thank you.
Plenty more from where that came from.
Posted in fun, javascript | No Comments »
January 26th, 2008
I’ve been working 5 years at ThoughtWorks. ThoughtWorks vision is to revolutionize the software development industry. A young industry full of problems and inefficiencies. ThoughtWorks started out with with consulting and services but lately also releasing products to back up this vision. For the last couple of years I was part of starting up this product division of ThoughtWorks and I oversaw it’s technical direction. I was part of an amazing team that built Mingle, a product I’m incredibly proud of (watch out for the next release, it’s gonna rock your socks off). I also oversaw the design of several other products that are in various stages of development (you’ll hear about one of them very soon, you might have trouble keeping your socks on for that one too).
I cannot overstate how good it is to work for ThoughtWorks. A flat structure, very open communication, high morale and standards, low on internal politics that otherwise plague growing organizations, a warm and caring culture, incredibly intelligent, friendly and passionate colleagues. It’s by no means perfect but it’s the best company I’ve worked at so far. If you want to be part of the avant guard of the lean revolution in the software industry, if you want to evangelize agile/lean, promote new technologies, processes and techniques, ThoughtWorks is probably the best company there is to work at.
But what if you’re tired of software development as a concept? What if you’ve had it with yet another programming language? What if you want to build apps that maybe even your grandmother would use (I have two very internet-savvy grandmothers)? What if you want to focus on what to build not on how to build it?
Yesterday was my last day at ThoughtWorks. In February I will be joining a company called Google. You might have heard of them. Google’s vision is to organize the worlds information and make it universally accessible (and show you ads while you do it). This last part isn’t officially part of the vision but it has nevertheless made Google a ridiculous amount of money. This money they spend on cool but, well okay, kinda crazy projects: scan and index all the worlds books, drive a truck around San Fransisco (and other cities) to photograph all the streets and put them together in a 3D like environment , use statistical analysis (rather than rules) for machine translation, extend the web browser so apps can be taken offline, try to force the corrupt mobile phone industry into opening up.
At Google I’ll work with C++ rather than (for example) Ruby but I do get to be part of changing the world.
Trade offs.
Posted in google, myself, thoughtworks | 11 Comments »
July 2nd, 2007
gotAPI is simply amazing. Give it 5 mins you won’t regret.
I will never have to hit “api.rubyonrails.com” and use Cmd-F to find methods again.
Posted in uncategorized | No Comments »
June 30th, 2007
The culmination of a year of hard work of an incredible team in Sydney and the main reason I’ve been almost completely neglecting this blog: Mingle early access is now live!
I’m very excited to have been involved in starting a completely new phase of ThoughtWorks. Mingle is the first in a great line up of (announced and unannounced) products. I think we have a lot of great ideas to bring to the marketplace.
Posted in mingle, studios, thoughtworks | No Comments »
June 26th, 2007
Two great articles written by fellow TWers:
First off is
this article describing the basics of a13g and some of the reasoning behind it, it’s written by fellow aussie Shane Harvie (currently working in the US).
Almost immediately afterwards Dennis Byrne writes this
great post about integrating a Rails AJAX front end with an a13g messaging back end.
Good stuff.
Posted in a13g, rails, ruby | No Comments »
May 24th, 2007
Pre-fetching, firing off a query just to fill up the first level cache, is a classic Hibernate optimization. You can now also do it in Rails with
this plugin. This fills a gap when outer join fetching becomes too complex or the cartesian product bites you (the result of outer joins is the cartesian product of all involved tables, which grows exponentially).
Posted in hibernate, rails, ruby | No Comments »
May 18th, 2007
Ward has changed the world more than any other person I have met: XP, FIT, the wiki. Now his moving on again. I hope he finds rest at last. Ward, maybe big companies isn’t for you?
Posted in uncategorized | No Comments »