Categories
Looking glass
Navigate/Search

18 minutes with an agile mind

I got this off HackerNews today:

Clifford Stoll shoots out some gems like:

When you do something the first time, its science.When you do it the second time, its engineering.When you do it the third time its technology.    

18 minutes for a very well prepared presentation.

Ships and lighthouses, on Rails!

Een schip op het strand is een baken in zee.
[A ship on the beach is a lighthouse to the sea.]
- old dutch proverb

Courtesy of John Lam

Steve Yegge, one of my developer idols, has accomplished quite a feat, demonstrated at Foo Camp; porting Rails over to Javascript. However, this task took him 6 months and 2000 hours, according to John Lam, who created RubyCLR.
His two most recent blog posts, a tad obscure, were about the difficulties he encountered and some of the learnings he obtained from the experience. If you haven’t read Yegge before, his often comical approach makes him a pleasant read, with enough material dating back to the Amazon days to last for a couple of months.

This brings me to ponder on a few things:

I assume Yegge’s development effort is not to grow developer *hrm* appendages but to save other developers time in the future, a noble endeavour. Constructing software of this compexity in this short amount of time does lead me to think it has been rather grueling, and the evidence is in his mysterious tale about magic marshmallows. Should we celebrate the 11 daily hours of sweat Steve + team endured (or enjoyed) or rather despise the heroic effort of a few?

It is perhaps my software engineering formation that shapes my beliefs, but I am not the only one to think there is something to be said on this topic. I do concede that reality might require different courses of action than what is good in theory, however it does make sense that a series of burnouts will not yield any positive consequences; how does decreasing motivation, (perhaps) lowered code quality and increasing reasons for frustration within the organization measure up with a repeatable, more predictable process?

I am not criticizing Yegge or undermining any of his achievements. He remains one of my inspirations. However, as a follow up to his post on agile the Google way, this DOES smell like “bad agile.”

PS: On a side note, this is also another indication that Google is not the Valhalla of software engineers that people make it up to be. The truth is, it is Yet Another Software Company (YASC - I just invented that term, pay me royalties) facing the same, very real problems.

Introducing Fotofolio

Instead of reading programming.reddit, dreaming up topics and posting articles on my blog, I have instead opted to work on a CMS for my sweetheart Kristel, both to serve as her online portfolio and to be a fun small project for me to code.

Rationale

The reason why I decided to code a CMS from the ground up is obviously because there aren’t enough CMS’s in the world; who really cares about Joomla!, Drupal, Plone, Alfresco and Ion? Some even have the magic word “enterprise” thrown in there somewhere. CMS, ERP, CRM, MRP… for free?? Pffscht, let’s make another one of those 3 letter acronym software.

Kevin Barnes at Codecraft gives 3 reasons to reinvent the wheel. My personal favourite: reinventing the wheel causes reinventors to understand wheels. Additionally, having a custom made CRM out of love is unbeatable. For me, this application is an opportunity to learn a thing or two, have fun and do other things like working too hard at the office.

Fotofolio

Fotofolio is the name given to my CRM. The focus of this application is to provide designers with a simple solution to obtaining a online portfolio. As the name suggests, there is a heavy emphasis on displaying images and the application allows for much of that.

The interface and features are sparse, both to make it a straightforward and easy to use web application. A user has the ability to create and manage multiple worksets. Each workset can consist of multiple workpieces and each workpiece has an associated image. The published portion of the web application will allow the user to organize the layout according to these conceptual rules.

Technology

I decided to implement Fotofolio using Ruby On Rails. After flirting with the framework quite a bit, it was obvious that all that hype surrounding it is not unwarranted. Other candidates were Django, Turbogears and even Spring. In my opinion, for the scope of my application, only Django stood a chance. However, Rails still won out, whatever you may say, Pythonistas. Migrations rule!

Release

The first release is planned for soon, soon after Kristel’s portfolio is delivered. I do not plan to have features such as skin packs available right away. So far, the bare minimum of features is expected; i.e. putting some pictures in, displaying them on the other side. It is currently 65-70% complete.
It is expected to be an executable pile of source code rather than being an online service, and it will be open source. The license has yet to be determined.

Request

I admit that I’m a bit of a doosie with making up names. I need advice from you 3 people reading my blog about another name to give to this baby. Please let me know of any suggestions you may have.

Back from the dead

Hello blog.

I am back from the cave I’ve been hiding into, it’s been a while. Here’s a list of things that happened when I wasn’t there:

  1. its a new year, 2007
  2. Sun has GPL’d Java
  3. I’m running a MacBookPro from work

Besides that, NOTHING happened in the world! Absolutely nothing, other than stuff like being extremely taken by work and life things. I’ll be posting again though.

For a start, here are some things that are in my RSS reader that kept me very productive at work:

xkcd.com steve yegge paul graham worsethanfailure peter norvig programming.reddit.com

I read some more, but it wouldn’t be good for my career going forward to have more things in my RSS reader mentioned =) my weekly reports would undergo scrutiny!

Ubuntu 6.10 Edgy Eft Upgrade plus Compiz goodness on AIGLX

Geeks with not much to say talk about their tools. Here’s an eft:

Today, I talk about my experience upgrading the FREE Linux distribution Ubuntu from 6.06 LTS (Dapper Drake) to 6.10 (Edgy Eft). The leap (check this link out if you’re geeky like me) from 6.06 to 6.10 was hyped up to bring lotsa “cutting edge” updates to the distribution. This release happened on time, according to the schedule, on October 26th, unlike Fedora Core 6 which slipped a couple of times. So, hats off Canonical!

In any case, these distributions are maintained by volunteers and/or very little actual paid staff (probably paid peanuts… its about the passion man). Good stuff, somebody should hire them (or not, otherwise we wouldn’t have anybody to do the distro’s!).

Amongst the touted updates are Firefox 2.0, Xorg 7.1 (featuring AIGLX), Gnome 2.16.1, KDE 3.5.5 only to cite some. Pretty spiffy, isn’t it?

Well, apparently on the Internet, people have having trouble upgrading. I had the exact same problem people have described and I’m going to describe steps to take to resolve them.

Killing 2 birds with 1 stone, I’ll explain as well how to get you some Compiz eye-candy. Actually, Compiz is not just eye-candy; in addition to giving you a 3D accelerated desktop interface with wobbling windows (it sounds weird, but looks pretty cool) and other desktop effects, it is also very useful with regards to usability. It supports a bunch of neat features; here’s an expose copycat for instance:

Upgrade problems

Symptom:
1. You just upgraded Ubuntu 6.06 LTS by running

gksudo “update-manager -c -d”

2. You curse yourself because you left this running overnight without realizing you’d actually need to click a few times before everything is installed and set up.

3. You are greeted with the new “high-res” 1280×1024 splash screen, with the new web-2.0-ized Ubuntu logo.

4. Your X server does not want to start.

Cure:

Have you read the README’s and whatnot when you were installing video drivers? I’m not sure about Nvidia drivers, but FGLRX, ATI’s (or should I say ATI/AMD. The red has been replaced by an ugly green… isn’t green Nvidia’s colour?) proprietary drivers have certain dependencies on the current kernel version you have installed.

First, you need to remove anything that’s related to those drivers. If you’re using FGLRX, especially if you made your own .deb packages then installed them, you’re gonna have to remove them.

Reboot, go in recovery mode and run:

dpkg -r xorg-driver-fglrx fglrx-control

Note that if you made .deb packages the package names might be a bit different.

Now if you have 2 choices, either to install the latest version of FGLRX or use the open source drivers. I recommend the second option because you’ll gain AIGLX support which will allow you to get some Compiz or Beryl goodness.

For option 1, simply do:

apt-get install fglrx fglrx-control

To use the open source drivers with 3D rendering, you need to re-install the openGL libraries. Do:

apt-get install –reinstall libgl1-mesa

I highly recommend this guide, which I find can be really useful.

Getting Some Eye-Poppin’ Candy

Rotating cube

Now that you’ve installed/re-installed the open source drivers (or beta drivers if you’re an Nvidiot), head over to gandalfn’s Compiz-AIGLX-on-Edgy page for guidance. And follow the instructions.

Fudge around with your /etc/X11/xorg.conf and after multiple edit/restart X server/reboot cycles, you’ll get it up and running. If you’re that far, I don’t think you’ll need any guidance… trust me =) You would’ve abandoned long ago.

Congratulations! You’re running Ubuntu 6.10 with Compiz on AIGLX!

Here are things to ponder before upgrading:

  1. Its gonna take you some time.
  2. You’re going to have to mess with your xorg.conf, which can be some pretty messy affair if you don’t know what you’re doing.
  3. Dual monitor support? Fuhgetdhaboutit! X-server is pretty anal about dual monitor setups, at least for ATI people. FGLRX made that a little bit easier, with BigDesktop support and all… but with open source drivers you’re quite at a loss.

In any case, for people trying to get a good dual monitor setup with at least 1 CRT (running non eye-bleeding refresh rates), with X-server 7.1, open-source ATI drivers and Compiz, I pity thy fool! If you’re successful, I’d be interested in getting your xorg.conf! I gave up the 2nd monitor for now as well as the Logitech G5 buttons & tilt wheel.
Here’s mine: xorg.conf

Nvidia using people I heard over the forums have an easier time with a pretty nifty configuration utility. Oh I envy you. I threw away days of my life cumulatively, setting this up!
Have fun and good luck!