Its a new year, and at work, the emphasis is definitely on the ‘new’. I’ve joined a new team, social media, in a new department: R&D. I have a new desk (to be honest, its just a new spot in the cube farm), and new operating system: Linux. We’re working with what is for most of the team a new programming language, Python, and a new continuous integration server: Hudson.
Hudson
Hudson is pretty impressive. I’d never even heard about it before Ed found it last Tuesday. In addition to continuous integration, it can also monitor executions of externally-run jobs. We’re trying to favor simpler cron jobs running scripts over the complex service-oriented architectures we’ve worked with on previous projects, so this is a nice bonus. Hudson comes with a ton of plug-ins that enable it to integrate with SCMs such as git, execute scripts of various languages including Python, and run an assortment of tools including nose, coverage, and pylint (just to name a few we’re using). Hudson is written in Java, and it is pretty easy to set up.
VMWare
We’re running all of our Linux systems on VMWare: Workstation 7.0 on our desktops and ESXi on the server. Workstation’s easy install makes setting up Ubuntu 9.10 with an initial user and VMWare toolkit a snap. However, I did notice that for some reason it didn’t install the shared folders driver, so I had to run VMWare tools setup manually anyway to get shared folders working. I still have Windows on my desktop with Visual Studio, IIS, and SQL Server installed in case I have to go back and fix a Studio bug.
Why Python?
The reasons behind the switch from C# and .NET to Python were faster development and easier scalability. I’m not saying we couldn’t achieve scalability with .NET, IIS, and SQL Server. I’m saying for what we’ll be doing, its easier to accomplish with Python, Tornado, and nginx. Since we’re new team, any budget increases have to be earned by achieving specific milestones, so it doesn’t hurt that all of our software tools with the exception of VMWare Workstation are now free.
Small Team
Finally, its really nice to be back on a small development team. I only have to report to one person, so those CC’d email sh*t storms where you’re trying to keep several stake holders informed of your status is no longer an issue. The other two developers I work with are on either side of me and both highly skilled, so most design and implementation discussions are usually resolved pretty quickly. We even pair programmed a few days last week. It was occasionally frustrating as everyone gets up to speed on Python, but there was definitely value in it. We’re being pretty aggressive with our milestones, so I don’t think we’ll be pairing all the time.
Leave a Reply