notes and views on crm, social media, and the human side of information technology

The Humankind Yearns To Be Free

… or something to that effect - apparently, a whole new niche has been created for iPhone owners who want to break the operator lock-in Apple has so stupidly devised. I have written before, and I will calmly repeat the same now, that Apple cannot control their “revolutionary phone” - but who does need me say that when it’s become blindingly obvious. Yes, few can copy Apple’s inventive genius, and I am not saying the mobs will somehow make the iPhone radically better; they will, however, ignore any and all artificial limits that Apple has implemented to make a few more dollars. All it takes is one clever hacker and a worldwide distribution channel… like, um, what was that, the Interweb?

Sphere: Related Content

Does UML speak the truth?

I DELIEVERED A UML WORKSHOP to a group of my colleagues on Wednesday. They were all eager to participate and we went through many exercises. Given a rather vague assignment, they grouped into small teams, thought aloud, communicated beautifully, and came up with reasonable diagrams.

Throughout the workshop, we tried to design a web portal for a travel agency. I was as direct and clear about what I wanted as a typical stakeholder would be (read: not much). They were supposed to figure out what it was, and use their freshly acquired knowledge to create a model that a development team could use for the actual work.

Their Use Cases were more or less similar. Further into the maze of UML 2.0, similarities ended. The more tools a diagram offered, the more creative my students could afford to be. And they did: each activity and sequence diagram offered a unique view on the system being modeled.

UML is a language. It’s an abstraction layer that’s supposed to cover the underlying reality. And as every abstraction, it’s leaky. Some would argue that code is leaky, too, and I agree. The problem is, if you add another layer, are you moving towards or away from the reality?

Methodologies that are using visual modeling are assuming that visual representation of business requirements expresses the stakeholder’s intent better than his or her words. They might (not everyone has the writing abilities of a seasoned analyst) but they ultimately don’t tell the whole truth. They are useful abstractions but they are leaky. They cover just as much as they reveal.

It has been my experience that visualization is most beneficial at the beginning of the project when people - both stakeholders and the development team - need to find common vocabulary, agree on goals, and unleash their imaginative powers so that unclear needs can be materialized into working software requiremens that a programmer can solve. It’s the code that matters, and the more quickly it can be delivered, the better.  However, relying on UML (and other visualization methods) to provide the complete truth is just as time-wasting as writing tons of specs.

Sphere: Related Content

My summer project: Linux HTPC (Part 2 - OS)

IN THE PREVIOUS INSTALLMENT, I covered my reasons and the components I used to build my HTPC. I’ll tell you: installing the CPU, formatting the harddrive, and configuring BIOS is still fun and easy. The hard part is breathing life into the thing.

First, I tried GeeXboX - the smallest Linux HTPC distribution I’ve heard of - it comes as a 8.9MB ISO that you can use as a Live CD or install on disk.

I had used it on my desktop PC before I decided to build this, and it’s a fine, fine distribution. Plays all media formats, doesn’t do much else. It’s great for use with a standard-def CRT TV.

Now that I got an HDTV, I wanted to lose as little video information as possible, so I bought a DVI-HDMI cable and tried to train the TV to accept the signal from my PC. Here is where I encountered the first major challenge. GeeXboX doesn’t do HDTV well.

Whatever I did, I ended up with either a blank screen or some ridiculous resolution like 320×240. The TV is rather picky about what signals it lets through. And when it does, it’s often scaled wrong and the picture borders overflow the screen. There is a whole site dedicated to pixel mapping on LCD TVs.

I spent several days trying to figure this out. Google, whatever their evil plans on world domination might be, was my friend. In the end, I capitulated and connected my Windows PC to the Toshiba and used PowerStrip to figure out modelines, refresh rates, and such. The TV’s native resolution is 1366×768 but the closest I got was 720p - still good enough.

At this point, I already ditched GeeXboX in favour of Mythbuntu, a Ubuntu-based MythTV-centered distribution. Being in Alpha stage, though, the distro wouldn’t install, crashing due to some undecipherable error encountered in the early stages of installation. The hacquor in me was already tired of all the hours spent so far, so instead of pushing and debugging, I did a regular Kubuntu install. Then I added a couple more packages:

  • MythTV, Freevo and their dependencies
  • Samba
  • SSH
  • codecs to play mp3, etc
  • binary Nvidia drivers

I had to go with Nvidia drivers since X.org’s own wouldn’t run with the resolution and modelines PowerStrip provided. Logs revealed that the Toshiba reported being a 50″ panel with resolution of 720×570 and the X server didn’t know better. Luckily the binary driver somehow got over that lie and - about a week after I started - I finally saw my Kubuntu desktop in all its glory.

Next: choosing between MythTV and Freevo, getting the remote control to work, and final thoughts.

Sphere: Related Content

My summer project: Linux HTPC

I WILL BREAK THE REGULAR PROGRAMMING with a personal story: how I’ve built a custom Home Theatre PC and felt like I was 8 again, playing with Lego. That’s partly why I haven’t written much about neither CRM nor software delivery lately. Having taken a 4-week break from work - we’ve welcomed our second son Richard to our family - I’ve had some time for my own… things. This has been one of them.

It didn’t take me 4 weeks to build this thing but it surely felt like that. Read on.

1. Rationale

I’ve recently bought a 37″ Toshiba Regza and having always wanted my whole media library at my fingertips, thought about adding a network media player to the mix. Something like Netgear EVO8000: a wifi-enabled, Linux-based appliance that would connect my TV with all the digital music and video I’ve got stored on my PC. But then, I could build a whole computer for the price of EVO8000. And so I did, since:

  • an appliance works out of the box (ideally) but the boundaries set by the manufacturer are sometimes too tight; if it doesn’t play Matroska videos, that’s that: they won’t play
  • I haven’t built a PC in over 2 years; reading Scott Hanselman’s series on building his Dream Developer PC, I got green with envy: I had to do it, too

My thinking was: I was going to spend some time on it, time that wasn’t billable anyway, and I was going to put together a versatile HTPC that will play all video & audio formats, be controllable with a remote, host all our media until I add a NAS, and perform a couple of additional tasks (like automatically downloading podcasts I listen to, but I haven’t got to that yet).

With a rock-solid excuse, I went shopping.

2. Hardware

Finding a PC enclosure that doesn’t look like a Cinderella when sitting next to your classy home-video components is a chore. Getting a standard mid-tower case was a no-go: I want a computer in my living room, but it shouldn’t look like one. At least not to the casual observer.

I settled on a “book-size” barebone from Asus, the AM2-based P1-AH2, which doesn’t scream Style! but has a passable design and was supposed to be small. It’s not as small as I would have wanted, though; I am going to read the specs the next time more thoroughly (357 x 91 x 275 mm).

Why go the AMD route when everybody seems to be buying Core 2 Duos now? Simple: my intent has been to use the box for playback only, and any modern processor can do that. I would consider going Intel if I wanted to do video transcoding, but even then, I suppose the Athlon X2 would do. And given the performance edge new Intels have, AMD processors are dirt cheap. So I added the cheapest Sempron I could find, though, plus a single 512MB DDR2 stick.

With a simple DVD drive and a 1GB flash drive, I thought I was done. I wanted to run a pendrive Tux on the machine to eliminate the noice hard drives make but long story short, I couldn’t make that work. Therefore, I cannibalized my desktop PC and thrown in a PATA 80GB disk.

With that, I was ready to install the OS.

Next: Geexbox=>Mythbuntu=>Kubuntu, how to make the TV accept a video input from the PC via DVI-HDMI cable, installing software to make all that useful.

Sphere: Related Content