Software for my iMac

With the new iMac 6 weeks from being delivered, I’m thinking about the software I’ll install.  So here goes:

Hoping that OS X 10.7 will be shipping by then.  I will still install from scratch however. I think since I’ll have two drives, I will have to partition the 2TB drive to hold the /Users directory.

iMac

Going to PyCon!

I just registered for PyCon 2011 today. I did not think I was going this year, since I started a new job and didn’t have any time off. But I realized today that I could still attend as long as I didn’t go to the tutorials. So after getting permission from my wife, I’m on my way. Flight is booked. Conference is paid for. And most importantly, hotel reservation is confirmed.

Looking forward to seeing everyone and listening to some fantastic talks!

Two months of Rails Development

Two months ago, I was fortunate to land a job doing Rails development full-time.  It’s been a long slow process, but I’m finally getting a grasp of it.  Or at least pieces of it.  Here is my story:

My Programming Background

For the last 5 years, my background in web development was ColdFusion. It was easy to understand, easy to connect to databases, and quite expensive. What I found lacking were good frameworks. I had grown sick of repeating myself every time I started a new project. On the side, I had been playing with Django and wished I could develop in it full-time. I had even dabbled in Ruby on Rails a bit.

However, there was change in the air at my work, and it wasn’t for the better. I worked for a city government and I pushed for open source technologies as a way to save taxpayer’s dollars. Unfortunately, not enough people higher up cared about this. It looked like management was drinking the Microsoft flavored kool-aid and we were going to become a .Net shop. We had already brought Sharepoint into the office. I knew it was time to leave.

I set a goal to find a job using either Python or Ruby, and if worse came to worst, even PHP. Unbelievably, I landed a job within one month of searching. I was going to do Ruby on Rails development. Professionally! Amazing!

Rails Development

As a new Rails developer, I was fortunate enough to work for a company that has allowed me to learn Rails on the job. For the first four weeks of employment, I spent nearly all my time on Rails for Zombies and then Rails Tutorial. I highly recommend this site for anyone wanting to learn about Rails development. It covers everything from setting up Rails to using GitHub, Rspec, and deploying to Heroku.

I’m now fully engulfed in the development process. I feel overwhelmed at times, but completely love it. The Rails ecosystem is vast and there is a lot to learn. I’m spending most of my time writing Rspec tests and updating models.

I’ve learned a lot in the last two months. I’ve realized that I’ll never go back to the “old” days of coding by myself, coding without a framework, coding without writing tests, and manually deploying to a Java application server. There’s a part of me that wants to go back to my old job and say “Don’t you see how wrong you are? This is how it should be done”. But I guess that the current management isn’t comfortable with a technology unless there are salespeople selling it.

My eBooks library

Since getting my iPad in April, I’ve become a fan of eBooks.  I took advantage of some coupon codes on O’Reilly last month and purchased electronic copies of many of my books.  Here is a list of what I currently have on my iPad:

ePub format

PDF’s

I love the fact that I can carry around these technical books all the time and be able to look something up so quickly just by doing a search inside of the iBooks app.  My only complaint with the iBooks app is that I have to add my books through iTunes.  Would be nice if iBooks supported DropBox.

Heading to PyCon 2009!

I’m flying to Chicago this afternoon to attend PyCon 2009.  I can’t wait.  I’ll be attending two days of tutorials.  The tutorials I’m attending are:

On Friday morning, I’m chairing one of the sessions which includes the following talks:

I’m looking forward to meeting everyone I follow on Twitter and hope to absorb as much as possible regarding Python and Django.

DjangoCon Videos are online now!

I wasn’t fortunate enough to attend DjangoCon 2008 at Google’s headquarters but I’m happy to see that the videos from the conference are now available on Youtube and Google Video.  I really liked the Django Success Stories discussion.  It is interesting to see how small most of the development teams are for these projects.  The team I work on is small too, in fact there are only two of us.  And we don’t have a designer.  So I spend most of my time fighting CSS and HTML rather than working on real code.  Of course, starting a project with ColdFusion is a lot more painful and slower than starting a project with Django.  But I’m comparing apples to oranges.  ColdFusion is not a real web framework like Django.

You can find the DjangoCon 2008 playlist here.

Selecting a Content Management System for work

I work for a city government.  It’s actually my second time with them.  I left them in January 2001 because I was ready to write web applications and they weren’t.  Because the I.T. department didn’t care about the web in the 1990’s, the website fell into the hands of the Public Information Office.  And its been there ever since.

A couple of years after I left, the I.T. department finally decided it was time to have a presence on the web.  So they wrote a couple of “eServices”, bulk trash pickup, real estate assessment, etc.  But they never thought about taking back control of the website itself.  They concentrated on what I call “business apps” but totally ignored other types of web apps.

In the three years that I’ve been back, there have been on and off discussions about getting a Content Management System.  The city originally looked at products like Vignette (don’t know why they thought they could afford that one).  Well, the discussions are back on and this team it is getting serious.  But there is a problem.  Remember how I mentioned the website is not under I.T.’s control?  You guessed it.  PIO would like to make the decision on the product.  And I’m not fond of what they’ve chosen.  They are sold on Ektron.  While Ektron is full-featured and could do everything we want (actually its probably overkill), I have a few issues with it.  It’s expensive, maybe not to a city budget, but it is to me.  And more importantly, it runs on Microsoft-only technology.  It’s .Net, requires SQL Server, and uses Windows Servers with IIS.  Yuck.  I prefere to run my apps on a Linux server using PostgreSQL for the database.  As a developer who would like to be writing cool web apps for citizens, rather than boring business apps, this is personal.  I don’t write .Net now and I have no intention of writing .Net.

As an alternative, we looked at Alfresco.  Alfresco is commercial open source.  Alfresco is very powerful and web content management is only a piece of the Alfresco puzzle.  Alfresco also does document management, image management, and record keeping.  Unfortunately, our design team in PIO weren’t thrilled by it.  I liked it but I now believe that it would probably be too technical and demanding for the few we have on our web team.

The next CMS we looked at is CommonSpot by Paper Thin.  CommonSpot is a ColdFusion-based CMS.  It has many of the same features that Ektron has and runs on our current J2EE platform on WebSphere.  On a side note, we’re looking to migrate away from WebSphere to JBoss, but I’ll save that for another story.  The biggest drawback I have to CommonSpot is that it needs ColdFusion.  We have ColdFusion and I’ve written several apps in it, but my long-term goal is to move away from ColdFusion and utilize other languages and frameworks like Groovy and Grails.

So what’s left?  I’ve looked at Drupal and Joomla but I don’t really care for PHP.  I really want a CMS that I can build apps to work within its framework.  We looked at Plone in the past, but I’ve never been a big fan of Plone.  I always thought it was too complicated.  Do you write your app in Plone?  Or do you go down a layer and use Zope and the ZMI?

I’m a big fan of Django, so I contacted the Ellington team and spoke to them about Ellington today.  Since Ellington is designed primarily for newspaper and publishing sites, I’m going to try and persuade our team that a city website should probably be more like a newspaper site and that Ellington might be a good fit.  It doesn’t have the features of Ektron or CommonSpot, but I believe it may have just what we need.  Plus, if there is a piece that is missing, I could add it myself or find it in the Django community.