June 4th, 2008 benhughes
Though I’ve been extremely happy with leopard (in fact, why I finally bought a Mac), little quirks with spaces were frustrating. Specifically, spaces seems to have been designed for users who want to place a separate application in each space. I use spaces in a task-oriented manner where each space typically has a Firefox window, tabbed terminal, and TextMate. Command-Tabbing and others workflow situations were just quirky. Also, a huge annoyance was going into the terminal, typing “mate .” and having it open up a new TextMate window in whatever space already had a TextMate window.
I’m very pleased to report that 10.5.3 solves all of these problems, with one new option in the spaces dialog called “When switching to an application, switch to a space with open windows for the application.” In fact, you want to uncheck this option if you are working in a task-oriented manner like me. There were also some bug fixes in 10.5.3 which transcend this new option.
With these frustrations gone I feel very solid working with 3-5 project workspaces at once and can move efficiently within and among them.
Upgrade to 10.5.3 now if you haven’t already done so!
Posted in Personal | 2 Comments »
February 2nd, 2008 benhughes
Until now I’ve been running a my personal sites and a few other random sites I host on a dedicated box running CentOS 4 and Plesk. Last week I took the plunge for a SliceHost VPS and decided to configure everything myself and try to squeeze it all on a 256MB slice for $20/month. Although there isn’t anything specifically about SliceHost that makes it well-suited for Rails hosting (after all, it’s just a Linux VPS - put whatever you want on it), the SliceHost guys are Rails developers and the documentation available on articles.slicehost.com is geared towards Rails production environments.
I wanted to use the switch as a learning experience with setting up a cluster of mongrels behind Apache 2.2, a setup I’ve never tried before. I’ve used FastCGI with Apache and Nginx proxying to mongrel clusters, but I was looking for a more powerful setup using Apache as the front-end web server. So I configured Apache 2.2 (with the Debian layout, much different than the “conventional” layout) with mod_proxy_balancer and PHP. MySQL and Apache were fine-tuned to run with the smallest memory footprint that is practical. Apache is proxying to a cluster of mongrels hosting BenHughes.name (which will eventually be a larger site) and a new Facebook application I’m currently developing.
To reduce the memory requirement, and because I find it a better piece of software, I switched this blog and my economics blog to WordPress running as PHP within Apache. I toyed with the idea of keeping these on Typo and Mephisto, respectively, and running them with just one mongrel instance, but doing so would really eat up my memory on my 256MB slice quickly. WordPress is pretty nice and has a much larger community of people developing themes.
I also moved my two Subversion repositories over (one private, one public and yet to be used: http://svn.railsgarden.com/). Previously I was hosting DNS and E-mail which was just a hassle, so I decided to switch all of my domains to Google Apps and host the DNS at SliceHost, maintainable through their management portal.
I have to say I’ve been exceedingly happy with SliceHost thusfar - their management portal is simple and to-the-point with no BS. They have dedicated resources and do not oversell. $20/month for what I’m getting is a pretty darn good deal - it feels good to continue having root on my own Linux system out there in a data center. Hell for $20/month a VPS is a great way to just fool around with and learn with. I may get another slice just for that purpose.
Posted in Personal | 2 Comments »
December 28th, 2007 benhughes
This Christmas my parents got me an Apple giftcard which I promptly used to buy a new 2.2Ghz MacBook. With next day shipping, I had it in my hands at 10:30 yesterday morning (27th) – pretty fast!
All day yesterday I was setting stuff up (and to some extent today) and I think I’ve finally got everything moved over. I also invested in 4 gigs of memory from Newegg for only $110. Because of the small screen, I’ve found Leopard Spaces invaluable. I still have quite a bit to learn, but I’m glad I made the switch. I can finally start developing with TextMate.

Posted in Personal, Rails Tools | No Comments »
December 2nd, 2007 benhughes
I’ve been wanting to start a Ruby on Rails blog for a while to document my experiences using the framework and engage with the community, but always felt I wouldn’t have enough time to maintain it. Today I decided to give in and begin RailsGarden.com.
So just about every developer working with Rails professionally has a life story culminating in total infatuation with the Ruby language and Rails framework; here’s mine:
Having starting programming at an early age with a continual and early interest in computers in general, I quickly latched onto web programming because of the relative ease and the potential to create something decent without a whole lot of work. I first dabbled in Perl and at one point developed a small data-driven e-commerce application that powered a very early version of www.rarenewspapers.com. Looking forward to the newer web technologies of the time, I began learning PHP and MySQL. Relational databases and techniques to structure and store data well has always intrigued me. To this day, modeling databases and advanced database structures are my specialty. I began doing some basic projects for a few clients online while still in high school. The projects I took on increased in complexity as I gained better design patterns and my own personal coding stuff. Most of these projects were for a company I am still deeply involved with, Digital Peach Interactive, based out of Georgia. I also dabbled a bit in Adobe ColdFusion and ASP.NET with SQL Server
My use of PHP to architect web applications culminated in the design and implementation of a large internal content management system used at Digital Peach, implementing advanced features such as a very sophisticated hierarchical category system for permissions and a workflow engine. Building this application with my boss was quite an experience and the data model ended up consisting of over 130 tables, including tables for some of our main modules.
Having done quite a bit with PHP and become pretty proficient in using it and MySQL to build data-driven applications, I wasn’t particularly “happy” with what I did and didn’t derive a lot of intellectual satisfaction out of building software in PHP. This all changed when I began to look at Ruby on Rails, a technology I very ignorantly ignored for so long. My first experience with RoR was viewing the standard make a blog screen cast and a few of the online slide shows. Though initially skeptical of the framework due to scalability and extensibility concerns (due to my superficial understanding), I decided to purchase the standard Agile Development with Ruby on Rails book. Reading this book was like a constant barrage of “aha!” moments, page after page. It would be difficult to find another tech book that had such a high ratio of information to pages; every page is packed full of useful information, ready for immediate application.
Already very excited about the prospects of using Rails as a framework, I still felt inadequate in my understanding of the framework and how it worked under the hood. Everything in Rails to me seemed like magic and it was insufficient for me to know that “has_many” established as one-to-many relationship with another model - I had to know why this was possible. This lead me to pick up the Programming Ruby pickaxe book which is an essential resource for really understanding the Ruby language.
I still am a strong believer in the Ruby language itself. The Rails framework is excellent, but ultimately what allows Rails to be so well-constructed is the extremely dynamic nature of the Ruby language. Engineering software components in Ruby is extremely enjoyable. Sometimes I think that Rails developers put too much emphasis on the Rails side and not enough on the Ruby side. I find that such emphasis also leads a lot of newcomers to Rails with an insufficient understanding of the Ruby language to dismiss the framework for this or that reason. Ultimately a complete and thorough understanding of the Ruby language is essential for appreciating many capabilities of using Rails as a framework for sufficiently large applications.
After these two books which have changed my life, I began reading other Rails/Ruby books to acquire more knowledge and gain better insight into the techniques used my professional Rails developers. Rails blogs were also an essential resource.
The rest, they say, is history! I’ve been using Ruby on Rails ever since, from small to large projects (such as Timothy Hughes Rare & Early Newspapers, which I’ll discuss in the future with this blog), and i’m learning something new every day. Working on the larger projects has really pushed me into new directions with Rails and helped me to establish a much better picture of the tools, plugins, and resources available to me when building software.
And so it is my goal with Rails Garden to document some of the tools and techniques I use in my professional use of Ruby on Rails. Enjoy!
Posted in Personal, Rails General | No Comments »