Lambert on Development

My thoughts on software development

Lambert on Development RSS Feed
 
 
 
 

Choosing a Linux Distribution

A while back, a friend asked me some questions about getting started with Linux.  He wanted to know specifically whether he should pick up a copy of RedHat at the local retailer — for  something on the order of $80.

I sent him back some notes about choosing a Linux install (distribution, or “distro”), and thought there might be some information here worth repeating.  Incidentally, you might find it worth trying a Linux Live CD (see below) even if you don’t think you’re a Linux person just to see how your hardware performs with another operating system – it can be eye-opening.

Gnome or KDE?
When you start looking at distros, you’ll immediately notice that most identify themselves as either a Gnome distro or a KDE distro.  Gnome and KDE started out as window managers, which meant that they were responsible for displaying, styling and managing the User Interface.  Over time, though, both have turned into extensive library installs, much like Microsoft’s .Net framework.  If you install a lot of applications, you’ll eventually end up with most of both frameworks installed, but only one of them (at a time) will actively run your UI.  In any event, you should try one of each and see if you give a hoot which one you use.  Read more about them here

Don’t install yet…

Before you install anything at all, you can play with a one or two versions of Linux to see what you like about each of them.  The easiest way for most people to do this is with a Live CD.  A Live CD (or DVD) is a bootable image of an operating system.  Just download the Live CD image (this will most likely be an ISO file), then burn the ISO file to a disc.  Leave the disc in your optical drive, reboot your computer, and make sure your computer is set to boot off the optical drive before it boots off your hard drive.

If you followed along to this point, you should see Linux booting off the disc you just created.  It’ll start up, detect most of your attached devices, acquire a network address via DHCP, and you should end up with a working Linux desktop in just a few minutes without making any permanent changes at all to your machine.  When you’re done, just eject the CD and reboot back into Windows.

… or don’t install at all

The other way to evaluate Linux distros is with a Virtual Machine.  Both Virtual PC from Microsoft and VMWare (Player or Server) are free, and both can be incredibly valuable for testing, development, and so on.  Between the two, I’d pick VMWare — it’s fast, stable, and widely supported.  Plus, if you choose VMWare, you can download pre-built images from their Appliances site.  This can be even faster than using a Live CD once you’ve got VMWare installed.

The family tree

OpenSUSE 11.1, KDE 4.
Image via Wikipedia

There are probably thousands of Linux distributions, or distros.  For some sense of scale, see this list or http://distrowatch.com/.  Despite these numbers, there are relatively few popular distros, and almost all of them have been formed by “forking” an existing distribution.  Thus, any distro you pick will come from a small number of “root” distros.  Take a quick look at this diagram to see what I’m talking about.

Although the specific lineage you pick shouldn’t matter much, you’ll usually see support articles refer to instructions for one or more of these roots, so it’s helpful to know if you’re running a Suse-based distro, or a Gentoo-based distro, and so on.

For what it’s worth, the most popular general-purpose distro right now is probably Ubuntu, so if you’re absolutely flummoxed right now about where to start, that would be a fine one to begin with.

But what about RedHat?

If you’ve made it as far as firing up one or two distros, you’ll realize that you’re not going to get much in the RedHat box that you don’t get for free somewhere else – after all, that’s the Linux way.  If you still see something on their feature list that you want to pay for, go ahead, though – at least you’re an informed buyer now.  Of course, if you insist on buying a distro, Suse’s enterprise distro is probably worth a look, too.

Reblog this post [with Zemanta]

Post to Twitter Tweet This Post

Callouts: I need a WordPress plugin

In a recent post, I wanted to break out a paragraph into a callout or sidebar — a little box of goodness inset into the body of my post. This proved rather more difficult than I’d planned.

Initially, I crafted the callout by hand, using a DIV for the box, and two DIVs within that for the title and body. I putzed with the CSS for a while to get it looking the way I wanted, and when I finally got it looking the way I wanted, I pulled the styles out and coded them in my blog’s stylesheet.

Google Reader Fail!So far, so good. This was shaping up to be a minor pain, but nothing I couldn’t handle. The first big hiccup happened when I realized that the styles for my DIVs weren’t showing up in Google Reader for my RSS feed (you may have noticed this).

Diagnosing this problem turned out to be a much bigger rathole than I expected. Initially, I thought that perhaps my feed just wasn’t referencing my stylesheet, so I started playing with this. Before long, I ended up writing a simple WordPress plugin to add a stylesheet reference to my feed. No matter which event I hooked, though, I couldn’t get the feed to do what I wanted it to do. After way too many attempts to fix this, I finally stumbled on some blogs that pointed out the root problem here: feed readers generally don’t use stylesheets.

Feed readers - FAIL
Needless to say, when I found out that feed readers don’t actually use stylesheets, I was floored. Not only that, but this appears to be a problem almost across the board. There’s a clear opportunity here for someone to step up and lead the way on this issue – someone, please carry this ball forward!

So, the real solution, it appears, is to have the styles embedded in the DIV definitions.  This is ugly for all sorts of reasons that are probably obvious to you, but it’s the only way I can see to solve this problem if I want styles in my feed (which I do).

Given that constraint, I elected to make another plugin — this time, to let me use quicktag-style encoding to type my callout into my post and translate this into appropriately-styled DIVs for display.  As evidenced by the callout in this post, this is progressing nicely.  I’ve checked this plugin into the Wordpress plugin repository, though I’m sure there’s still some fine-tuning to come.

When have you extended a system that didn’t quite do what you wanted it to?

Reblog this post [with Zemanta]

Post to Twitter Tweet This Post

Self-Managing distributed applications

I recently read about the SELFMAN project on ReadWriteWeb (Coming Soon: Internet Apps that Heal Themselves).  This project, started in 2006, aims to standardize and package the infrastructure needed to manage large-scale distributed applications.  So far, they’ve produced some sample / reference applications using components written in Java.  I don’t know if the bits themselves will find their way to your project any time soon, but if you’re working on large-scale applications, you should definitely take a look at their approach.

Skynet
Image by hartboy via Flickr

As far as I can tell, much of the actual software that’s been produced thus far deals with managing an application where you control all the pieces.  The techniques used by this software are interesting in and of themselves, but I’m really more interested to see if any of these techniques can be broadened in application to help federalized systems cope with unreliable components.

Right now, we’re in the early days of applied cloud computing, and we’re seeing a fairly regular parade of large-scale, highly-publicized cloud failures from big-name players like Google, Amazon, Facebook, and Twitter.  As we deploy more applications into the cloud and construct these applications to more seamlessly integrate with all the other applications in the cloud, we start to introduce some really insidious dependencies.  How can we ensure that our application doesn’t crash every time twitter burps?

At present, this sort of resilience must be custom-crafted in each and every application, which is time-consuming and error-prone.  I’d love to see more thought put into standardized approaches like those used by SELFMAN so that enterprise resiliency can become the norm rather than the exception.

Reblog this post [with Zemanta]

Post to Twitter Tweet This Post

It’s about time…

Mono

Image via Wikipedia

Mono is going to be represented at Microsoft’s PDC this yearMiguel de Icaza, who leads the open-source Mono effort, is going to present a session about Mono and .Net.  If you search this blog for “mono”, you’ll see that I’ve been paying attention to these guys for quite a while now, and wondering the whole time why Microsoft isn’t paying closer attention.

I’m really encouraged to see that Miguel and the Mono team are getting some exposure.  I still believe there’s a lot for both Mono and Microsoft to gain by strengthening this partnership.  Microsoft needs to embrace Linux more than ever before, and frankly, Linux could really stand a little bit of leadership to help that platform coalesce.

Good luck, Miguel!

Reblog this post [with Zemanta]

Post to Twitter Tweet This Post

Similar Posts

Google Reader

Blogroll

Blog Directories

 
Programming Blogs - Blog Catalog Blog Directory
 
Computers Blogs - Blog Top Sites
 
Banner
 
Lambert on Development - Blogged

Popular in Open Source

Recent Posts

Popular Posts

Support this Site

Featured Articles

Lijit Search

Lijit Search