Monday, June 30. 2008Eclipse GanymedeI've been using Eclipse Ganymede for a couple of days now and here are a couple of first impressions.
Wednesday, June 11. 2008Slides for my Inside Enumerable talkThe slides for the talk I did last night at the Rails Project Night are on SlideShare at http://www.slideshare.net/mbowler/inside-enumerable
Friday, May 30. 2008Rails on different Ruby implementationsOne of the big milestones in a ruby implementation is when it's able to first run a simple rails application. Until a couple of weeks ago, there were only two ruby implementations that were able to do this - the C reference implementation (Matz's ruby) and JRuby.
Today, there are four implementations that have hit this milestone. Rubinius and Iron Ruby have both just announced that they're able to run a simple rails app. This is an impressive milestone for both projects - congratulations to everyone working on those. Wednesday, May 7. 2008Slides from my Ruby for Java Programmers talkI've put the slides from last nights talk up on SlideShare. This is the first time I've used SlideShare so if you have any trouble accessing the slides, let me know.
Wednesday, April 9. 2008Slides for my Date.once talkThe slides for last night's talk at TSOT are here. The talk was a walkthrough of the code in Date.once()
Note that I've stripped out the background in order to make this a much smaller download. It doesn't look as pretty but it's a fraction of the original size. Monday, April 7. 2008HtmlUnit 2.0 releasedHtmlUnit 2.0 has been released. Although I started this project back in 2002, I haven't been actively involved in a long time. I'm really pleased to see how far it's progressed since I let go.
Thursday, March 27. 2008History repeats itselfI had to go back and check the date when reading this article. For a moment, I thought I'd found an old article from the nineties. This sounds just like the anti-Java tirade that we used to hear from the C/C++ people. Only now it's Java people getting upset that they're now the ones being displaced.
I was also amazed that in 2008, people still feel that they have to justify the speed of Java. Yes, it's fast enough. Two quotes really jumped out at me.
There are two different things called Java that are being blended together and if we're going to make an apples-to-apples comparison, we have to split them apart. We have the Java language and we have the Java Virtual Machine (JVM). They are very different things and yet we tend to pretend they're the same. In this case, we're comparing the JVM to the runtimes underneath JavaScript, Perl and Python. This is not a language comparison - it's a virtual machine comparison. Since JavaScript and Python (although not Perl) can all run on the JVM, it's a foolish comparison. Does the JVM use a JIT when it's running Java and then turn it off when running Python code? Clearly not. All the languages mentioned here can run on multiple different virtual machines. Some of those virtual machines have JITs and some don't. The quote above doesn't seem to make any sense in this context.
Didn't we give up on the idea of measuring by lines of code a couple of decades ago? So if it takes a million lines of code to write a given application in Java and it only takes 100,000 lines to write that same application in Ruby or Python or Perl, does it somehow magically make the Java version better because there are more lines? One million lines of Perl (to use his example) would be a truly massive application. It would have significantly more functionality than the equivalent Java application simply because Perl code is very compact compared to Java code. Now, I wouldn't choose Perl to create a huge application but that decision has nothing to do with the fact that it's dynamically typed. I would have no hesitation recommending Ruby or Smalltalk for something huge and they're both dynamically typed. Link from James Robertson Monday, March 3. 2008TSOT Ruby on Rails Project Night Returns!I'll be speaking again at the TSOT Ruby on Rails Project Night. I had a lot of fun at the last one so I offered to speak again
Dynamic finders are one of those things that seem magical to people who are used to statically bound languages like Java or C. In this talk, I'm going to demystify some of this magic so that you can see how one of the more interesting methods in the Rails code actually works. If you use Facebook, you can RSVP on the event page. March 11th - TSOT Ruby on Rails Project Night Returns! Attention Toronto Tech Elitists, As the second Tuesday of the month draws near, so does TSOT's Ruby on Rails Project Night! This unique gathering for Toronto's programming community brings together the brightest minds in Ruby/Rails development, promising another great offering of presentations on March 11th, 2008: Mike Bowler returns to share his wisdom on "Exploring the magic behind dynamic finders: diving into ActiveRecord::Base.method_missing" Robin Ward will explore "RJS: a love and hate affair" in his work with http://www.forumwarz.com and our feature presenter Ilya Grigorik will look at "Taming the RSS beast" with http://www.aiderss.com The TSOT Ruby on Rails Project Night takes place on March 11th, 2008 at 151 Bloor Street West, Toronto. Doors and Snacks 5:30pm Presentations at 6:00pm This event is free but space is limited! Reserve your spot by RSVPing to the facebook event or emailing corina.newby@tsotinc.com If you are interested in becoming a sponsor or presenter at a future event, please contact Corina Newby at 416-908-6082. Saturday, February 23. 2008Eclipse Dynamic Languages ToolkitI've been using eclipse with the ruby RDT as my Ruby development platform for quite some time and while the RDT doesn't integrate with eclipse as cleanly as the Java tools do, it's a reasonable environment to work in.
Recently, I was at a talk on Mylyn (which was really impressive) and the speaker mentioned that if you wanted to use Mylyn with ruby projects then you needed to be using the Eclipse Dynamic Languages Toolkit. I hadn't been aware that there was a second plugin for ruby work in eclipse so I made a note to check it out. I installed the dynamic languages toolkit today and discovered that it has built-in support for both ruby and tcl. It seems to do everything that the RDT was doing for me and the fact that it supports Mylyn is a big win. Friday, February 22. 2008ActiveRecord outside RailsI was talking to someone today who was under the impression that ActiveRecord was tied to Rails and couldn't be used unless you were writing a web application. So here's a sample that shows exactly that.
Put this in a file by itself (I called it sample.rb) and run it from the command line with "ruby sample.rb" require 'rubygems' Obviously, you have to have a database set up and tables defined and all that. The point is that this little bit of code initializes ActiveRecord, creates an ActiveRecord model and starts calling methods on it. All of this from the standard ruby interpreter with no web server in sight. The parameters that you pass in are the same values that you would have specified in config/database.yml in rails. So what if I want multiple models? Just define them all inline. require 'rubygems' And what if I want to use all the ActiveRecord magic like associations and validations? Same thing. require 'rubygems' Tuesday, January 29. 2008Ruby on Rails night at TSOTI will be speaking at this event in a couple of weeks. I'll be showing off some of the innards of EasyBrandingTools.com to illustrate interesting Ruby and Rails stuff. The last event that TSOT put on was a lot of fun so come on out and join us for this one.
Attention Toronto Tech Community, Tuesday February 12th marks the return of the monthly TSOT Ruby on Rails Project Night, which promises to be another great event for Toronto's Tech crowd. We had a tremendous response to our first Project Night, with over 50 in attendance at TSOT's new developer office. February's Project Night looks to be equally successful, and we will get deeper into the technical side of things (because that's what you asked for!) We have been contacted by several Ruby on Rails developers who are eager to bring their current projects to share at our Monthly event. On February 12th we are proud to feature presentations from the following members of the Rails community:
TSOT's Ruby on Rails Project Night will take place on Tuesday February 12th, 2008 at our development office located at 151 Bloor Street West, Toronto. Doors will open at 5:30pm with presentations beginning at 6-6:30pm. This event is free but space is limited; reserve your spot today by emailing corina.newby@tsotinc.com. If you are interested in presenting at a future event or learning more about TSOT, please contact Corina at (416) 908-6082. See you Feb.12th! - The TSOT Team Updated: Facebook event page. If you're planning to come and you're on Facebook, please RSVP here. Tuesday, January 15. 2008Three years later...Digging back through some older blog postings, I found this prediction about ruby that I made in Jan 2005. Always nice to have a prediction come true - back then, ruby was still mostly a niche language, used by relatively few people. "The one thing that hadn't changed much [since 2000] is that the language hadn't achieved the critical numbers of developers to become of the mainstream languages but I think that's about to change very soon. I think Ruby is now at the tipping point and that Ruby on Rails may well be the thing that pushes it into the mainstream." Wednesday, January 2. 2008SOAP based Web Services in RubyThis interesting announcement came across the rails mailing list this morning.
What does this really mean? If this project actually does what it claims (I haven't tried it yet) then it means that Ruby is now a first class citizen in the SOAP based web service world (REST based web services have always worked well with ruby). In the past, if you wanted to work with SOAP based web services and needed WS-Security to provide authentication or encryption, your choices of platforms were either Java™ or Microsoft's .NET. Yes, ruby offered some level of basic SOAP support but higher level protocols like WS-Security just weren't available. This announcement would imply that those days are past. That if you need to interoperate with a SOAP based web service stack, you can now add ruby as a possible platform. This is extremely good news. I did some work last year that would have been in ruby had these services been available then. Tuesday, June 26. 2007Badly behaved appsThere is a new blog reading service called Illumio that is extremely badly behaved. Their service is hitting this blog three times a second on average and has used over FOUR GIG of my bandwidth this month pulling RSS feeds.
I'm not amused. If this continues, I'll have to block their ip. I've sent an email to their support address but perhaps a rant here will make it back to them first. It appears that they starting hitting the blog last month but it's only this month that they've used enough of my bandwidth that I'm starting to get warnings from my ISP. UPDATE: The CEO of Illumio has personally contacted me to apologize for this and to tell me they're working to fix the issue. This makes me feel quite a bit more positive about their company. I'm still annoyed by the fact that it happened at all but this is clearly a mistake that they're trying to fix. I'll give them points for that. UPDATE 2: The issue is fixed and I'm impressed by how rapidly and professionally the problem was dealt with. Sunday, May 6. 2007Link PrefetchingPhil Windley writes about a bug in Firefoxes implementation of link prefetching. What I find most interesting is that I hadn't been aware that Firefox did anything like this and yet it seems to have supported it for a long time.
From the prefetch FAQ: Link prefetching is a browser mechanism, which utilizes browser idle time to download or prefetch documents that the user might visit in the near future. A web page provides a set of prefetching hints to the browser, and after the browser is finished loading the page, it begins silently prefetching specified documents and stores them in its cache. When the user visits one of the prefetched documents, it can be served up quickly out of the browser's cache. Pete Freitag points out that Google uses this technique in their search results to preload the first returned item. So if the result you wanted was the first one in the list, the page will appear to load faster. |