A list of random and assorted things I have found lately
“A blog about open source technology at The New York Times, written by
and primarily for developers. This includes our own projects, our work
with open-source technologies at nytimes.com, and other interesting
topics in the open source and Web 2.0 worlds.”
There are a lot of nice posts in there, including one on how they used
EC2 to convert their archives to PDF.
Desert is a component framework for Rails that allows you to seamlessly
define in your plugins: \* Models \* Controllers \* Views \* Helpers \*
Routes \* Migrations \* Plugin Dependencies
I'm going to check this out for something I'm about to start on.Five Runs is conducting a series of
5-question interviews. So far they have interviewed Chad
Fowler, Michael
Cote and Peter
Cooper.
Paul Graham has released Arc, his
long-awaited Lisp dialect.
Arc is designed above all for exploratory programming: the kind where
you decide what to write by writing it. A good medium for exploratory
programming is one that makes programs brief and malleable, so that’s
what we’ve aimed for. This is a medium for sketching software.
Monday Questions is a recurring series on Approaching Normal. For
more questions like this, please visit the
archives
The text editor is the programmer’s main tool. The best programmers I
know are masters of their chosen editor, whatever that might be. Knowing
how to be productive with your editor can make the difference between a
good developer and a great developer.
So today, I’m asking you to share with us what your favorite text editor
is and why.
My editor of choice is Emacs. It’s
the first “real” editor that I ever bothered to learn well. I started
learning it right after reading The Pragmatic
Programmer
for the first time. I have a love/hate relationship with Emacs. It’s an
amazingly powerful editor - there’s very little that it can’t do.
Unfortunately, it’s as ugly as they come and a pain to customize. Lisp
is cool in the same sense that Latin is cool. Beautiful language, but
hardly anyone speaks it. I had hoped that when I made the move to OS
X, I
would switch to TextMate. I tried it, and even
bought the Peepcode screencast on
Textmate. In
the end though, I couldn’t give up Emacs. It has too many features that
I rely on that Textmate just doesn’t have, like split buffer
windows and
dired mode.
As always, post your answer in the comments below.
Monday Questions is a recurring series on Approaching Normal. For
more questions like this, please visit the
archives
Most people, it seems, listen to music while they work. Whether it’s to
aid concentration or drown out their coworkers, I see most people do it.
So today’s question is:
What music do you prefer to code/design/whatever by?
I have very diverse musical tastes and listen to just about everything,
but I find that lyrics are distracting when I need to concentrate. So I
prefer Jazz like Miles Davis and John Coltrane, or classical like Yo Yo
Ma when I need to focus.
Monday Questions is a recurring series on The Curiosity Project. For
more questions like this, please visit the
archives
As previously
noted
I recently switched my development environment from a Linux laptop to a
Mac.
This Monday’s Question is: What is your development machine?
Tell us your OS, hardware specs, etc.
This article is the second in a series of interviews that I will be
conducting over the next few months. For the other interviews, please
visit the
archives
Thanks for agreeing to do this interview. Can you start by telling everyone a little bit about yourself?
I live in Seattle, home of the world’s most pretentious Ruby
brigade. I’ve been doing
professional development for almost 10 years.
Do you consider yourself a developer who happens to be an entrepreneur, or is it the other way around?
Definitely a developer first. I love solving problems and reading about
other people’s approaches to software development. However, I’ve worked
for many startups and it was probably inevitable that I would eventually
ask the question “Could I run a business of my own?”
I had wanted to start my own business since high school but didn’t
pursue it until recently. In 2002, I wrote a shareware RSS reader and
started selling it for $15 online. Cory
Doctorow even bought a copy and gave me some
feedback, which I unfortunately never implemented.
I only sold a couple hundred copies, but it was a good lesson in
developing a product, getting feedback, and advertising. One lesson I
should have learned is that there are no overnight successes. Even a
good idea often needs 6 months or a year of development and promotion to
get off the ground. Unfortunately, I promoted the RSS reader for only a
few months and then let it slowly die.
I also started an online todo list that has
accidentally resulted in almost 10,000 signups. I haven’t figured out
what to do with it yet, but it taught me a lot about deploying Rails
applications.
When did you first discover Ruby on Rails?
I started working with it in January, 2005. There weren’t any books, so
I started by reading the entire online documentation, method by method.
Everything just seemed to fit together and I loved the way that common
web development tasks were wrapped up into simple methods.
I still recommend reading through the entire API documentation. It’s the
most thorough source available.
What was it about Rails that appealed to you?
At first, I appreciated the high-level completeness of the API. Most of
the common things that a web developer would need to do were all there,
from database relationship definition to form building. While reading
through the documentation, I kept thinking “Yes…I could use that
feature!” or “That’s so useful…why didn’t I think of that?” I had
built my own MVC framework in Perl, but it was a chore to keep it
consistent and bug-free. With Rails, I found a framework that was
already capable and was also being constantly improved.
Currently, I appreciate the inventiveness of the Ruby community. Most of
the software I rely on day to day isn’t part of the Rails framework at
all. I use Haml templates exclusively
(I hate having to type all those angle brackets and end tags!), Haml’s
Sass templates for my CSS, and
make_resourceful whenever I need a REST
controller.
I received a copy of the Django book earlier this month (which was very
well written), but I cringe at the thought of doing web development
without Haml. I’ll probably need to write a few demo projects just to
become familiar with it.
I have a pretty standard Rails setup with a Mac, TextMate, FireFox with
the web developer and FireBug plugins. For everyday browsing, I find
Camino to be a bit faster.
I use the tcsh and the standard Apple
terminal. MailPlane for email, though I’m
probably going to switch back to mutt now that
Gmail offers IMAP. I try to reduce distractions, so I run with a solid
black desktop picture and the
MenuShade utility to hide the
menubar. Sometimes I also use Spirited
Away to hide background applications.
I’ve got a great desk from Anthro
Cart that can be used sitting
down or standing up. Plus, there are attachments for all my audio gear,
speakers, etc. A comfortable keyboard from
TypeMatrix and the Freedom
chair.
autotest and
rstakeout
for running tests or other commands automatically. In addition to the
Rails plugins mentioned above, I use
memcached and
acts_as_state_machine
in most of my web applications. The
Hodel
logger is a must for viewing the real-world performance of a web
application.
I’ve been experimenting with dtrace and hope to learn how to use it.
You started PeepCode several years ago. What drove you to do that?
I had wanted to do something with teaching and digital distribution. I
read many books and they are often out of date by the time they hit the
shelf. I saw how popular the original 10-minute Rails blog screencast
was and I also noticed that many other people were doing screencasts.
However, they often had distracting quirks, such as being shot
fullscreen and delivered at gigantic resolutions. So I figured that I
could do a really polished screencast that would be more informative
than many books and cover timely topics. It started with one and has
turned into a full time business not only for me, but also for a few
other authors who are writing PDF books.
I’m currently using Final Cut Pro for editing and
iShowU for screen
capture. I also use
OmniGraffle for
diagrams and other utilities such as
XScope and
OmniDazzle.
In fact, I’m working on a screencast right now that shows how I create a
screencast.
How long does it take to create one screencast?
Technically, it only takes about a week to film, dub, edit, and release.
But often, I’ll do a few weeks of research about a new topic, or I’ll
re-film a screencast after receiving feedback. For the
git screencast, I created an entire
hour-long screencast and then started again from scratch after receiving
technical feedback from Junio Hamano, the maintainer of git.
Peepcode originally started as screencasts, but recently you’ve started branching out into publishing. What drove you to do that?
The information that developers need is increasingly time sensitive. I
don’t scale very well as a single author, so I was looking for ways to
work with other authors to produce relevant content on topics that
developers want to learn about. PDFs are a great way to do that, and are
even preferred by developers because of the ability to search the text
or copy and paste code snippets.
A printed book usually takes 9 months or more to write, and authors
often end up exhausted, discouraged, and poorly compensated.
So I built a system that works with standard Textile-formatted text. So
far, authors have responded very favorably and it has even made
translation very easy. I have a half-dozen authors working on some great
topics that will be released over the next few months.
There are many important topics that aren’t very well documented. I want
to make those topics accessible to developers at an affordable price.
Originally, PeepCode focused solely on Rails, but with the latest screencast on the Git SCM, you seem to be branching out a bit. Was this a one-time occurance, or will we be seeing more screencasts like this?
Rails developers have supported my business from the beginning, so I’ll
definitely continue to publish Rails-related content.
But I hope to branch out into other topics, especially where it’s of
interest to the Rails community as well as the greater web development
community. The Prototype.js
Javascript
screencasts were quite popular but didn’t require knowledge of Ruby
code. I’m hoping to do a series on CSS that will be useful to
developers, no matter what framework they are using.
Your website says you are no longer doing consulting work, does that mean you are doing PeepCode full time?
I’ve been fortunate to have been working on PeepCode full-time since
May, 2007. It was a big decision to make, but it has definitely been the
right decision. Overall business has more than doubled since then and
I’ve been able to collaborate with many intelligent developers.
The other thing you are well known for is the Ruby on Rails Podcast. You have been doing that for some time now, but I seem to recall that you weren’t the original host of that podcast. How did you come to be the voice of Ruby on Rails?
Scott Barron started it, thanks to encouragement from David Heinemeier
Hansson. I contributed a few shaky interviews starting in July of 2005
and have done almost all of the subsequent 60+ shows.
I just bought a ticket to San Francisco for the sole purpose of
interviewing Rails startups for the podcast. It will be right around the
time of the MacWorld expo, and I hope to post the first interview almost
as soon as it is recorded.
You seem to have a lot of irons in the fire, is there anything coming that you can talk about?
Right now it’s all PeepCode! There will be a book on ActiveMerchant that
I’m excited to see published this spring. I also have an idea for a
series that will compare Rails to other popular web frameworks.
Note: This is the first in a series of interviews I will be doing
over the coming months.
Thanks for agreeing to do this interview. Can you tell us a little bit about yourself?
I’m Peter Cooper, a Ruby developer and author from the wild, barren
north of England. I’m probably best known in the Ruby community for
being the author of Beginning
Ruby,
published by Apress, as well as the editor of Ruby
Inside, the most popular Ruby related weblog.
Your website lists you as a serial entrepreneur. Do you consider yourself a developer who happens to be an entrepreneur, or is it the other way around?
It tends to vary year by year! I’ll go through periods where I’ll happen
to be developing more for other people, and others when I focus on my
own projects. Having made a successful exit with two businesses in 2007,
however, I’ve been leaning towards doing more for myself. I’m likely to
drop the “enterpreneur” stick soon though, as it tends to be that I
merely follow my nose and the business side of it just falls into place
by itself. I’m more of a curious bumbler by nature.
When did you first discover Ruby on Rails?
Rails first came onto my radar in October 2004. It was reasonably
primitive then but will still appealing. As such a nascent technology
based on a relatively unheard-of language, I was more interested in
poaching the ideas for my favorite language of the time, Perl, and began
developing my own equivalent. I developed a whole application on my
framework, but it was shaky and I decided to give Rails a try, while
promising not to get too bothered about learning Ruby itself.
My first Rails application was for a client and I developed a whole
photography site for them in perhaps a quarter of the time it would have
taken me with Perl. At that point I was hooked, and I also began to
venture into the Ruby on Rails IRC channel on irc.freenode.net which, at
the time, was great fun.
What was it about Rails that appealed to you?
The biggest selling points were the abstraction and the speed / ease of
development. I pride simplicity and economy above all, so developing Web
applications in Rails was an eye opener compared to the clumsiness of
Perl (I mean, take a look at mod_perl sometime!).
Up till now, my development environment has been under OS X. I’ve stuck
with MySQL for a database engine throughout, merely because I know it so
well by now. Firefox was my browser of choice on OS X until Leopard, but
now I mostly use Safari as it’s come on in leaps and bounds. I use
Textmate as my primary editor, although I don’t know how to use any of
the macro / snippet features.. it’s really just a text editor with
syntax coloring and a file list down the side for me. I like to keep
things really simple with little to remember.
At the deployment end of the chain, I use Linux, nearly always Red Hat
Enterprise or CentOS.
As with most Ruby and Rails developers, my applications all end up
deployed on Linux machines. While open source technologies make it easy
to jump between different flavors of UNIX, something about OS X’s
“everything for everyone” approach irks me when it comes to doing
development work. It’d be like taking my city car on the track or
putting a race car on the streets.. you can do it, but it feels better
to have separate cars for different situations. While I don’t find Linux
particularly useful for graphics work and general day to day use, it
feels like a more natural operating system for developing on at the
command line level. With the minimalist dwm window manager, you can even
get all of the GUI control at keyboard level, meaning you can focus on
work rather than moving pretty windows about.
I’m also attracted by the ability to run a single X11 server in my
house, then be able to access the same development environment from
different machines around the house without needing to sync up. OS X can
be used as an X client quite easily, so I can be developing in the same
environment anywhere and on any machine. I’m still in the process of
setting all of this up though and working out the pros and cons for day
to day use.
I don’t tend to have many libraries or tools installed. I’m a big fan of
the command line clients for things like MySQL, Subversion, and Git, and
I don’t run my IRB with any elaborations. The only gems I tend to
install are Rails, Mongrel, Daemons, Hpricot, and RMagick, although
installing OS X Leopard has updated this somewhat. Mongrel and Daemons
are my “favorite” gems. Mongrel because it makes building super-fast
HTTP daemons so easy, and Daemons because it means I can forget all of
the dull process involved in daemonizing and controlling applications
and services I build.
There’s no escaping the fact that big businesses move slowly. Their
technology departments can be frighteningly conservative and there’s
often only one “approved” way to do things. This is especially true of
deployment. Even medium sized companies freak out when you talk about
installing Linux and putting your own Ruby / Rails stack on top. They
need everything documented, centralized, and consistent. As such, the
Java platform has become a real bedrock for servers and application
deployment in the enterprise, and JRuby gives us the opportunity to
target all of those established enterprise ecosystems by making Rails
applications easy to deploy on JBoss, Tomcat, and other Java application
servers.
JRuby is definitely the key to getting Ruby and Rails applications
deployed inside most major companies whose ecosystems have no time for
alternatives just yet. JRuby is definitely the direction you should be
heading for these sorts of deployments, and I think this area is going
to become significant to most profit-driven Rails developers very soon.
<a
href=“http://www.amazon.com/gp/product/1590597664?ie=UTF8&tag=approachingno-20&linkCode=xm2&camp=1789&creativeASIN=1590597664">
You wrote a book on Ruby (which I recently reviewed). What books on Ruby/Rails do you recommend, aside from your own of course :)
My book is for people who either have a reasonable understanding of
programming, even if they’re not that good at it, or people who have
experience with languages other than Ruby and want to move across. For
people with absolutely zero programming experience I’d recommend Chris
Pine’s Learn to
Program.
For already experienced Ruby developers who want to become real hotshots
and delve into the deeper mechanics of the language, I’d recommend Hal
Fulton’s The Ruby
Way.
Both of these books cover totally different ground than Beginning
Ruby
and even complement it, depending on your skill level.
Most programmers have a list of programming languages they want to learn. What is the next programming language you are hoping to learn?
I’m an opportunist developer who tries to use the right tool for the job
in order to quickly capitalize on some untapped market or niche. As
such, I don’t tend to learn languages for fun, at least not to a deep
level. I’ve taken a look at languages like Erlang, Haskell, Io, and even
written a little Lisp, but don’t see any immediate reasons to learn
these languages to a professional level. It’s certainly worth
understanding their paradigms and styles, however, to take something
useful back to your more productive environments. Lisp has certainly
given me a big appreciation for a lot of oblique programming techniques.
You’ve sold two of your sites this past year. Were those opportunistic sales, or was this something you had planned to do all along?
Opportunistic sales. In the first case, with Code Snippets, I was
approached by a friend who was interested in buying the site, but after
checking with my network of contacts it turned out Rick Ross of DZone
was also interested and the site made a great fit with DZone, the “Digg
for developers” as I call it.
Now that you’ve sold these sites, what’s next for you?
Ay, there’s the rub! Most of the projects I’ve had success with have
been tools or services that I’ve desperately wanted to use myself, so
I’ve had a lot of motivation to see them through. When you don’t have
any nagging wants, however, you have to really dig deep to come up with
the ideas. I’m currently in a bit of a low gear, with it being the end
of the year, as well as having sold two businesses this year, but I hope
to get back on the saddle really soon and release some more projects
next year. For the meantime, however, I’m keeping Ruby Inside updated as
best I can and keeping my nose to the ground!
Beginning tomorrow, I’m going to be publishing a series of interviews.
I’m going to start with notable people from the Rails community, but
over time I would like to branch out into other areas. The first
interview will be with Peter Cooper,
whose book Beginning
Ruby
I reviewed
recently.
In the coming weeks I will be publishing interviews with Geoffrey
Grosenbach and Robby
Russell, with more to follow.
If you have suggestions for other people I should interview, please
leave a comment or send me an email (my email address can be found on my
about page:http://larrywright.me/about).
Monday Questions is a recurring series on Approaching Normal. For
more questions like this, please visit the
archives
I’ve been a CVS and SVN user for a number of years. Recently I’ve been
watching all of the buzz around distributed SCMs,
Git in particular. Git has been adopted by a number
of projects lately, Rubinius being the one I
noticed most recently. I took down my SVN repository when I moved web
hosts, and haven’t put it back up yet. It seems like a good time to
switch to Git (or something similar) if there’s a benefit.
So this Monday’s Question is: What Source Code Management System do
you prefer, and why?
Monday Questions is a recurring series on Approaching Normal. For
more questions like this, please visit the
archives
I’m an avid reader, if you haven’t guessed by now. So today’s question
is What books have changed your life?
As always, post your answers in the comments below.
Monday Questions is a recurring series on Approaching Normal. For
more questions like this, please visit the
archives
I’m always on the lookout for good sources for technical information.
So, today’s question is: What are your 3 favorite technical sites?
Post your answers in the comments below.