Posts from jutopia...
Threads don’t scale? They might do now!
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 [...]Facebook: talk about dropping the ball!
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 [...]A leisurely read through ECMAScript v4
“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 [...]ThoughtWorks and Google
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 [...]gotAPI
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.And we're off!
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.
And we’re off!
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 [...]Two great articles about ActiveMessaging
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 [...]Pre-fetching in Rails
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 [...]Ward quits (again)
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?JRuby ready for prime time
I’ve been hard at work lately on ThoughtWorks new product offering, ThoughtWorks Studios. Here’s a write-up of some of the stuff we’ve been doing lately with JRuby.Microsoft brings Ruby to the browser via Silverlight
I did not see this one coming. Microsoft has ported Ruby to .NET through Silverlight, the “Flash killer”. Officially supported and even available on the Mac platform. It is a cold day in hell. Adobe better do something quick, I would write my Flash whizbangs in Ruby over ActionScript any day of the week.ActiveMessaging gets significant overhaul as well as support for WebSphere MQ and Amazon SQS
Andrew Kuklewicz just checked in a significant overhaul of ActiveMessaging he describes the changes better himself, but here’s a quick summary: Automatic reload of processors and rails env in development mode (compare to how routes.rb gets reloaded in normal Rails). Support for multiple connections and adapters per application. Support for Websphere MQ (thanks to Sylvain Perez), Amazon SQS [...]Extending ActiveRecord::Base.find with new options
I’m working on a new full text search index Ruby on Rails plugin that works completely in the database. This makes it possible to: combine a full text query with other more structured criteria, using LIMITs to do pagination, sorting, joins, etc. Right now you can do: class Author < ActiveRecord::Base has_many :posts end class Post < ActiveRecord::Base belongs_to :author acts_as_full_text_searchable end @jon [...]Bang that create
This is probably an old trick to most of my readers, but anyways…
I can’t recall all the times I’ve set up test data in tests and the test has mysteriously not worked because failed validations refused to save an object. Chuck a bang on your “create” or “save” and you’ll get an exception instead!
Will mysteriously not work:@blog.posts.create(:title => 'Bang that create')@blog.posts.create!(:title => 'Bang that create')And you didn't think it could be done!
We’re there. We’ve crossed refactoring’s Rubicon for Ruby:
(Thanks to Hakan who found it.)
ActiveMessaging: New home and new maintainer
ActiveMessaging now has a new home at Google Code. As I barely have time to even post to this blog any more we also have a new maintainer: Andrew Kuklewicz.
Please direct all questions, thoughts, ideas to the new mailing list.
Sun on Rails
Sun investing in JRuby is very cool. Having a Java implementation of Ruby isn’t a big deal for me but there’s two other reasons it makes me excited:
- Having a second implementation of a language is several times better than having just one. This second implementation will force Ruby to grow up. It may finally acquire some level of formal specification and it will require Ruby to move in a much more stable and planned way than before. This is going to be crucial as more and more start betting their businesses, jobs and careers on the technology.
- Is the Sun finally about to rise? I’ve seen several indications of Sun’s dynamism of lately. From cool hardware to making the right thing about it’s software line (Java and Solaris). Personally I don’t care whether Java is open source or not, but Sun should! Sun is a hardware company, moving towards their core competency while having a good plan of how to handle their peripheral offerings is going to be crucial for Sun to get their balance sheet back into black. Time to make a long-term investment in SUNW while it’s on the cheap?
I would not be surprised if we see a similar move from Microsoft soon. I mean, who doesn’t want to be on the marketing bandwagon and hype of the century (only 6.5 years into it but nevertheless).
Great BDD for Rails tutorial
I’ve kind of put behavioral-driven development in the “interesting but a bit whacky”-bucket. Maybe something will get out of it but right now it’s not compelling enough for me to use it and certainly not to involve myself.
That said, this great tutorial by Luke Redpath did impress me. Those tests specs certainly look more better than normal Rails unit tests.
On the other hand, I am a bit cautious about doing super-detailed unit-testing of validations. I always get suspicious when the test code is orders of magnitude more lines of code than the actual application code.