Archive for the 'General' Category

Looking for a good laptop for Ruby development

Antonio Cangiano June 10th, 2007

A few days ago I received a new laptop from work, it’s a nice IBM Thinkpad X60 tablet, an ultra-portable 12” that offers up an honest performance.

It is a fine machine, and when hooked up to a large widescreen monitor it can be used for development in most environments. If I’m on the go, speaking at conferences for example, its weight and size make it ideal for carrying around. I’ve already installed Ubuntu 7.04 in dual boot and pretty much everything ran fine from the get-go (the swivel monitor functions need to be manually configured though). In other words, I really like this new tablet PC, and am very happy with it.

The lack of a touchpad and the small screen render it unsuitable for extensive usage without the aid of an external monitor and mouse, but it’s an acceptable trade off for a travel oriented notebook that is not supposed to be a desktop replacement in the end.

With my main desktop out for repair however, I’m left with the small work laptop only (and my wife is left with nothing). I don’t know about you, but to me this is a serious shortage of machines for hacking and personal use.

In order to take care of this, I’ve been thinking about getting a Mac Book Pro (the cheapest one). For about $2200 I could get a powerful machine – hardware wise – with the new Santa Rosa CPU and a fantastic operating system which has the power of Linux with the “work out of the box” feeling of Windows. And I would run Ubuntu alongside Mac OS X through Bootcamp too. I’ve done my research, I evaluated the alternatives and I’ve been considering Mac for a while now.

Doing mostly hacking with open source tools, especially with Ruby and Ruby on Rails, a Mac seemed like a good choice. Good hardware, *nix based, largely adopted in the Ruby on Rails community and the possibility of using Textmate seemed justifiably appealing. Sure enough I decided to head to Best Buy and actually try one before purchasing it.

I was in for a big disappointment. The 15” Mac Book Pro has a rather short monitor (because of its aspect ratio) and didn’t feel very ergonomic. I really wanted to like it, but we simply didn’t click (pun intended). I’m familiar with the 17” version and I know it’s much better, but I can’t justify spending more than $3000 (Canadian) on a laptop.

In defense of Apple, while browsing around I was able to play with the 24” iMac and it left me with a warm, fuzzy feeling. That is a computer worth buying in my opinion, the real estate screen is gorgeous and the price is reasonable. The offer may become especially interesting after the possible updates that will be announced at WWDC next week. Unfortunately though, I’m mostly looking for a laptop not for a desktop, so I have to skip this valuable option.

With the Mac ruled out, I started thinking about what I could get for the same price (about $2200) in the PC world. It turns out you can get a lot of decent hardware for the price of a single 15” Mac Book Pro.

I’m currently considering the following:

  • Acer Aspire 9300 with a 17” WXGA+ Widescreen LCD, AMD Turion 64 X2 1.60GHz processor, 2GB DDR2 RAM and 160GB disk (5400 rpm) and double layer DVD burner.
  • A large, bright Acer 22” external monitor.
  • A decent but fairly cheap laptop for my wife: Acer Aspire 5630, 15.4” LCD, Intel Core 2 Duo T5300 1.73GHz, 1024MB DDR2 RAM, 160GB (5400RPM) and double layer DVD burner.

Granted that the Mac Book Pro is faster machine than the Aspire 9300, but by spending less money, I can buy a laptop for my wife, a fairly powerful 17” laptop for myself (that will run Ubuntu as its main OS), and a very large external monitor that I can use in dual screen mode in conjunction with the 17” screen on the laptop. Not bad if you ask me.

My decision is not yet final but I plan to make a purchase in a couple of days, so I thought I would share this with you in order to hear your opinions and possible alternative laptop ideas.

Getting even more serious about blogging

Antonio Cangiano June 1st, 2007

During the last two months I haven’t updated this blog. This calls for a thorough explanation and some planning for the future. Let’s take a look at the latest articles that I’ve published:

All of them, except for the PlanetDB2 one, were highly researched articles which saw their fair share of success. I define the success of a post by evaluating the size of the audience and the volume of feedback received. Even when they were somewhat misinterpreted by a few people (for example in the case of Top 10 Rails tips), I was still happy with the outcome.

The last post was not particularly successful, but that was not a surprise. In fact, it was just an update focusing on DB2, which seems to be one of the most underrated gem in the development community (it really deserves much more attention).

So how did two months go by without publishing anything? It’s a mix of three factors: I’ve been very busy in my professional and personal life, I had a hardware failure, and I’ve been a bit too much of a perfectionist.

I wanted to top my previous articles and started working on a new, bigger and better shootout. Then the machine I was running my tests on decided to die unexpectedly. It sucks, but such is life. And here the exact mix of perfectionism and busyness kicks in. I didn’t want to come up with smaller, less interesting articles while the PC was out on warranty repair (as it still is), and I didn’t want to run the tests on a different machine. The result is that despite having many topics to talk about, this blog has shown 2 months of ugly silence.

It’s time for me to change this trend. While I strongly believe in quality rather than quantity, and I’m very busy, a blog that is not updated is a blog that won’t have a bright future. For this reason, I’ve decided to try to update the blog at least once a week if not more often.

Clearly not all the articles will be highly popular, but it doesn’t really matter. What matters is that the site is and will keep growing with qualitative material about programming. I’m adopting a Dan Fante’s approach1 to this. And if it means that the blog becomes more “personal” so be it, the URL has my own name after all.

In the meantime I’ve launched another blog about Mathematics (a long standing passion of mine). It’s called Math Blog: Mathematics is Wonderful! and you can find it at http://math-blog.com.
This blog received so much attention during the first days of its life that Digg users forced my hosting provider to pull all the sites on my account off the web.

I’ve now gone with a server from Liquid Web.
They are fully managed and they take care of preparing, maintaining and securing your server (albeit I did some further hardening myself).

After researching a lot about managed dedicated servers and managed VPSs, I’ve settled with LW because I’ve found only great reviews about them and their prices are more than fair. From what I’ve gathered so far, they are equivalent to a cheaper version of RackSpace. If you can’t justify spending 400 bucks at RackSpace, then a dedicated or Virtual Private Server from Liquid Web may be the way to go, especially if you are moving out of the shared hosting market (by the way they also provide shared hosting). So far they’ve truly gone the extra mile more than once, and answered my calls at 3 and 5 AM right away. Math Blog is already hosted there and I plan to move AntonioCangiano.com there within a month or two. I’ll probably blog more in detail about LW very soon.

The new server is great, but it also costs more than a shared hosting solution, therefore I’ve decided after more than a year and half of blogging here, to add ads to all my sites and blogs. If I invest time, passion and energy in this, I don’t see why recovering the expenses and then some isn’t the right thing to do. How I see this is: a blog can be seen as an online magazine that is often published by one editor only. You usually pay for printed magazines and inevitably you still have advertising in them. Blogs on the other hands are entirely free, which means that ads – in my book – are well justified.

As soon as I’ve gotten my PC back from having it repaired, I will prepare the Ruby shootout and publish the results. Until then I won’t stop the presses though.

[1] I don’t know if any of you have the exact quote, but Dan Fante said something along the lines of that he would write 10 pages every day no matter if they are good or bad. This is very loosely paraphrased and don’t worry, I won’t publish the bad ones ;-).

acts_as_one_year_blogging

Antonio Cangiano December 22nd, 2006


It’s my blogday! :-)

Believe it or not, this blog was started exactly one year ago. Many things have changed in just 365 days, and it’s amazing to see how much this simple blog, has had a positive effect upon my life. So here it comes, my New Year’s resolution for you: I promise to dedicate more time to blogging, posting more frequently and increasing the resourcefulness of this blog in its second year.

I’d also like to take this opportunity to thank you all, and to wish you a happy and peaceful holiday season.

CASCON 2006: Day One

Antonio Cangiano October 17th, 2006

October 16th, one of those sprite, luminously sunny fall days that so wonderfully bridges the gap between summer’s heat and winter’s chill. Half way through the month, yet inside the Markham Hilton Hotel something just as exciting as the changing seasons was beginning its run.

CASCON
may have only started but it was already running like a well oiled machine. Registration was a breeze, and the peckish assortment of breakfast goods and complimentary “welcome bag” only added to the positive early morning vibe that this conference was giving off.

The IBM Center for Advanced Studies organization was spot on, and it was crystal clear that workshops such as the Ajax workshop had attracted a far larger crowd than simply those who had registered in advance for it. A stream of hopeful people tried to make it onto the waiting list, like theater goers standing hopefully in the cancellation line on the first night of a sold out Broadway play. This doesn’t surprise me for a moment, given Ajax’s immense popularity. A similar scenario will no doubt be replayed with other “hot” topic workshops like Ruby on Rails and hands-on Web 2.0.

This isn’t merely foreshadowing. I know by the fact that the two Ruby on Rails workshops that I’ll be giving filled up within a few days of being announced, that Ruby’s increasing popularity is spreading rapidly through the IT world. Evident because the Ruby community itself, didn’t actually garner any particular hype about CASCON. These are Ruby enthusiasts who independently decided they really wanted to be a part of such an exciting event.

I sat down and began my CASCON (2006) experience with the highly interesting, Agile for All: Supporting the Human Element in Agile Development. Presented by bright industry experts and academics. It reminded me once again about why I value agile methodologies.

Tomorrow afternoon (or rather, I should say, this afternoon as, as it’s 6.30 AM at the moment) I will be presenting an introductory Ruby on Rails with DB2 workshop. A repeat of which will follow on Wednesday afternoon.

What I’m giving is a relatively basic lesson, intended for people who are just finding their footing when it comes to working with Rails, or even for people who will be tasting Ruby for the time here. It’s definitely an interesting workshop – I just hope that my attendees were able to get more sleep than I was tonight.

As I lay awake with the excitement of CASCON day number two (of which I will certainly blog about tonight) ahead of me, I feel confident that the remainder of this conference is going to be terrific.

Molecule: a much better name ;-)

Antonio Cangiano September 3rd, 2006

MoleculeThe thought occurs to me that XML formats for outlines really need a better title. By now, most of you will have heard about OPML, OML, XOXO, etc… But I’m afraid that nobody quite got it right. The perfect name would be Molecule!

What better name for an aggregate of Atoms? ;-)


Image credit: Wikipedia

Typo 4 released

Antonio Cangiano July 24th, 2006

A couple of days ago Typo’s team released the new stable version of their blogging engine. You can download it here or through gem:

gem install typo
typo install /some/path

It requires Rails 1.1.4 and Ruby 1.8.4.

Kudos to the team!

Working at IBM

Antonio Cangiano March 31st, 2006

The last three weeks have been very exciting and busy for me; a time of immense change and new beginnings, in a beautiful country where I have the wonderful opportunity and chance to work for the IBM Toronto Software Lab. The lab environment is very stimulating with many smart people who are ready to help each other out, and it is definitely the best place I’ve ever worked in.

I am well aware that there are not many Ruby jobs out there at the moment, so I consider myself lucky as I work with Ruby and Ruby on Rails on a daily basis at IBM.

Speaking of Rails, I am sure many of you know David Heinemeier Hansson has recently announced the release of Rails 1.1.
This release introduces many new features and additions, including a Ruby to Javascript compiler. To upgrade Rails, you can just use the command:

gem update Rails --include-dependencies

Meanwhile for those of you using Windows, Curt Hibbs has also released the RC1 of his One Click Installer.

While I am at it, I want to clarify that: all the opinions expressed in this blog are my own personal opinions and are not endorsed by, nor do they represent the opinions of my employer or any of its affiliates.

self.move_to(Canada)

Antonio Cangiano March 8th, 2006

During the last few weeks I wanted to talk about several things in this blog, some related to coding tecniques, some more personal, but I didn’t have much time to do so. With the exception of this project and some collaborative work on a Ruby book, I didn’t even have much time to code or be at the computer at all.

Nevertheless it has been a very exciting period, stressful but rich in hopes and challenges. In fact I’ve been so busy because on Friday I am finally moving to Canada, in the Toronto Area, where I will work for a great IT company. This is very exciting. The only weak note is that I had to get rid of my wide collection of IT books. The few ones that I’ll be able to ship/bring with me are shown in the photo.

Anyways I look forward to living in one of the most beautiful countries in the world, working for one of the most respected companies – where I’m sure I’ll be able to learn a lot (I’ve so much to learn!!) from some of the best minds out there. I know that there are lots of Ruby/Rails related activites and events in the GTA area, and I’m really looking forward to meeting other Rubyists and “Railists”, maybe sipping a good coffee at the Linux Caffe.



Code is waiting to be written and doughnuts to be eaten :)

Ruby Cookbook: Rough Cuts Version

Antonio Cangiano January 30th, 2006

Ruby  Cookbook

Currently online O’Reilly is selling the rough cuts version (basically the beta version) of the Ruby Cookbook. It’s a pleasure to see that many good books about Ruby are being published.

This book authored by Leonard Richardson and Lucas Carlson is particularly special to me. In fact, I have contributed to the book with three recipes and related full-length explanations. My recipes are about using RMagick to achieve common image manipulation tasks, as I love photography and I like RMagick a lot!

The recipes are Thumbnailing Images, Adding Text to an Image and Converting Among Image Formats. While these tasks are quite easy to achieve thanks to Tim Hunter’s library, I tried to go the extra mile and provide a good sort of introduction to the library, within the limits of the problem/solution framework of these kind of books.

It’s my first contribution to an O’Reilly book and I’m humbly proud of it. I look at it as a stepping stone until the day when I’ll publish my own book about Ruby :-)

Ruby rocks and Java sucks?

Antonio Cangiano January 22nd, 2006

Java VS Ruby

Many hackers are quite religious about their programming language of choice, but I’m not. Whenever possible I try to be rational about things that matter to me. For this reason you won’t hear me saying things like: “Ruby rocks, Java sucks!”. Indeed Ruby rocks, but it does so for me, for the kind of development that I love to do and for the way I like to think and express my thoughts in code.

I am quite confident that Ruby would be a great programming language for a broad audience of hackers worldwide, but this doesn’t mean that we should belittle those who happen to work with Java, C# or other “bureaucratic” language. On the web there are thousands of threads about “Java vs Ruby”, “PHP vs Rails”, “Python vs Ruby”, “C# vs Java”, and so on… this is mostly non-sense. Of course all these languages have differences that will determine your life as programmer, but you really need to go and try them out for yourself. Spend time selecting and learning your development platform, experiment, and if possible learn more than one language and framework. Different paradigms can be a huge gain for the programmer in terms of flexibility. I really love to work with drills, but sometimes you need a screwdriver, or just a hammer. “Buy some tools” keep them in your toolbox, and then use the ones that will let you do the job better. Or that are requested by the company were you work or by the client, or again that you enjoy using the most.

Some programming languages let you be more productive than others in particular circumstances, create a more maintainable code and so forth. Assembler is definetely less “human-friendly” than Python for example. But in the field of general purposes languages, the real bottleneck is often the programmer not the language! It’s your level of mastery of the language, that makes the difference in most cases. I love Ruby and it is in my opinion, a slightly better language than Python, but at the moment I am not half as productive in Ruby as Alex Martelli is in Python. :-)

One day my wife asked me why I was so passionate about Ruby, while I used to be interested in C# a lot. She asked me what the difference is and the advantages are? Now, she is a very smart woman, but she hasn’t a programming background so I tried to explain to her without going into details like dynamic languages, meta programming, ORM, and so on. She mostly got what I meant but I was looking for a more effective and direct way of illustrating the concept.

A few days ago I remembered the funny photo that you can see on the top righthand side1. That’s probably the best answer: simplicity. Ruby doesn’t get in the way and it lets you express your ideas, because Ruby is as simple as possible but not simpler as Einstein would say. You don’t need a dozen books to master Ruby or Web development with Rails, you just need a couple of books, a brain and some practice.

(1) I’d like to give credit to the author of the photo, but I don’t know who originally took the picture. I’ve only added the Einstein quote and rounded the corners.

« Prev - Next »