Daring iOS devs and sysadmins needed!

You’re an iOS dev. You’re bored. You need some excitement in your life.

You’re a Linux sysadmin. You have a lot of experience with Linux in the cloud (AWS). You’re bored. You need some excitement in your life.

If one of these statements describes you, I have some great news! The company I work for is desperately seeking iOS devs and another Linux sysadmin. We’re located in Viet Nam, in the heart of Ho Chi Minh City. We have a warm, wonderful work environment that’s very much in “startup mode”. We’re a great group of people that occasionally resembles a UN tech meeting with members from Germany, France, the US, Canada, Australia and, of course, Viet Nam.

If you’re interested in stepping outside of your comfort zone and exploring SE Asia, leave a comment. We’re definitely interested in talking to you.

Cloud Computing with Amazon

Last Sunday, I attended Barcamp Saigon. I did a presentation on using Amazon AWS/EC2 for Cloud Computing. It’s a pretty hot topic in Viet Nam.

The talk was very well attended. I had the largest room at the RMIT venue, and about 50 people were in attendance. I had planned on speaking for about 20 minutes, but I went the full half hour and then got dragged out into the hall for q&a. It was a lot of fun.

I uploaded my Keynote presentation to SlideShare and it was featured on the SlideShare homepage today!

Of course, it was all about Team Skunkworks! It’s great to be working with such a terrific team. (Not all of the team is in the photo, sadly. Not everybody could make it…)

iowait on Linux

This article may come in handy. For some reason, I’ve had a number of requests over the past week about iowait on Linux.

The big problem is that people don’t seem to understand the relationship between iowait and load. They see a very high load and very few processes and they can’t figure out why the load is so high.

When running ‘top’, look to the iowait percent number. If it’s high, the CPU is spinning its tires waiting on io. The referenced article can tell you how to find the culprit. You then need to figure out how to smooth out the bottleneck. If it’s temporary, you may have to just ride it out. If it’s a permanent process, such as MySQL, you may have to redesign your disk.

Linux, netbooks, Intel and Moblin

I have a netbook. A Lenovo S10, as a matter of fact. My S10 is split into two partitions–one running Windows 7, the other various flavours of Linux.

A netbook is a pretty useful little device. It’s small enough that it can go pretty much anywhere. It’s just big enough to get work done, within a pretty narrow definition of “work”. As a net device, it’s excellent.

The biggest shortcoming of these devices is the screen size–more specifically, the resolution of the screen. 1024×600 is just barely enough to run a web browser in full screen mode (and I recommend Chrome in kiosk mode for this). Multiple windows? I don’t think so. More than 1 or 2 windows introduces a clutter that’s difficult to manage, especially if you’re using the trackpad rather than a mouse (it’s trivial to grab a window and flick it out of the way with a mouse–not so trivial with a trackpad).

In order to combat issues with screen size, I think we need to rethink the user interface. In Windows 7, I move the task bar to be vertical on the left and autohiding, and that helps a lot. It’s still not ideal, though, because the windows are still windows and still have the same properties that make them ideal for larger displays but not so much for smaller ones.

Several Linux distributions attempt to resolve this by modifying the UI elements to optimize them for the small screen. Jolicloud and Ubuntu Netbook Remix are two examples. Both are very nice Linux distros, both are optimized for netbooks, including the display. Both install and run on my S10 with no issues. The way they manage the “window management” issue is simple–each window is essentially a full screen, and you switch between windows as you switch between applications. You don’t ever (or hardly ever) see multiple windows on the screen, though you certainly do have multiple applications.

Which brings us to Moblin. Moblin rethinks the whole netbook package, not just the UI. UI changes are similar to other netbook Linux distros–one window, one screen. But the rest of the OS shows how much can be done when you go all the way back to the roots of the OS. On my S10, Moblin goes from power off to fully functioning in 30 seconds. Battery life on Moblin is better than Windows 7. Screen effects are crisp and sharp. Moblin takes advantage of every hardware tweak netbooks have to offer, and works around most of the hardware compromises. It’s crisp and clean and, after a little tweaking, ideal for my needs.

Moblin can optimize netbook hardware so well because it’s very foundation is created by folks at Intel. These are folks that have intimate knowledge of the Atom processor and the Intel GMA video chips that make up most notebooks. These folks know how to wring every drop of performance out of their hardware, which is as it should be.

Sadly, though, they cannot create a Linux distro. Sure, Moblin rocks. It’s very pretty and it works very well on my S10. But that’s after two days of dicking around with it in ways that your average consumer won’t, and shouldn’t have to, do.

First I had to hardwire my net connection so that I could download, build and install the Broadcomm drivers for the wifi card in the S10. Why? Moblin ships without support for these drivers because they are proprietary. That’s a decision the Moblin team made and I respect that. But there’s no reason why they couldn’t make a package available for people to install, rather than forcing them through hoops. Ubuntu does this with, for example, proprietary nVidia drivers.

Next, in order to get media support, I had to download and install gstreamer and it’s codecs. From source. This is unacceptable. The Linux Foundation knows that people listen to MP3′s. Again, there are licensing issues that make it difficult to include the codec support in the distro, but, again, organizations like Ubuntu have worked around this. Making Joe Consumer download and compile source code is cutting off your nose to spite your face.

If I install Jolicloud or the Ubuntu Netbook Remix, I get a similar experience to Moblin. But I’m good to go out of the box–there’s no need to hook up a wired connection to get wireless working. There’s no downloading and compiling source code for functionality that should be there from the get go.

I still think that, so far, Moblin is a better experience. I like the way app switching is done, for example: alt-tab shows all open windows in a miniature but live view. I can take a look at a mini version of a terminal and see if the job that was running has completed. Release alt-tab and I’m back where I started.

I respect Intel for getting into Moblin. The assistance they bring to the Linux community for optimizing their hardware is invaluable. I hope that other organizations, like Canonical, take advantage of this. I also hope that Moblin can grow into something much more consumer friendly and Linux-newbie ready. They’re at version 2.1 now. Perhaps with version 3…

On wizards…

Ocassionally, I like to pooh-pooh Windows admins and their “wizards”. Relying on wizards to get work done can, in my humble opinion, stunt your growth as an admin. You should know how to use the command line and edit config files by hand. The day your wizards fail you is the day you regret that lack of knowledge.

So. Today I went to install WordPress on a FusedNetwork account and the installation wizard failed me. It turns out the wizard relies on DNS working the way it should, but at this point we’ve not yet pointed the existing domain to the new site. We need to test before we do that. Completely forgetting the above, I emailed the support guys at Fused. They, of course, reminded me politely that a manual install would suffice.

I fell into my own trap.

An hour later, WordPress was installed and we’re ready to go with site testing. WordPress’s famous “5 Minute Install” takes an hour when you’re bouncing things off a client machine in Viet Nam. If I had full net access with decent bandwidth, it probably would have been pretty close to 5 minutes.

As an aside, FusedNetwork rocks. Their support guys are great. They are incredibly responsive. They’re not the cheapest hosts, but their customer service is what makes them stand out. It is, truly, second to none.

Dynamic vs. Static web pages

A discussion tonight about dynamic vs. static web pages made me think about how some people believe dynamic web pages are inherently “better” than static. Often, dynamic web pages are prettier, but they are not necessarily better.

Take Bing, Microsoft’s search engine, for example. It dynamically render’s beautiful images on the background of the page. It looks terrific, but it also takes about 5 times longer to load than Google.

If I want to search the net, I don’t need pretty pictures. I don’t need to see great background images. I need a search box, ang Google gives me that as fast as it can.

Sites like Bing and Google actually blur the distinction between dynamic and static–parts of Google’s home page, for example, are static and parts are dynamic. But really, the discussion here is not about static vs. dynamic, it’s about user interface design.

Make your page static. Make it dynamic. Either way–it just doesn’t matter. What matters is something called User Experience. UI design is one element of that. Site performance is another. If your User Experience is crappy, your users don’t come back.

And that’s what you should be concerned about.

Note to FSF: Nobody cares…

The Free Software Foundation is running a campaign highlighting the “evils” of Windows 7. They highlight 7 deadly sins (of course) and they really make a compelling case against Windows 7. It’s a major shift for the FSF–they usually don’t get all political at this level.

Here’s the bad news: nobody cares.

Corporations that have adopted Windows and Office aren’t about to jump ship to Linux or the ever-elusive “GNU Operating System”. Too much has been invested in infrastructure and training. License fees have been paid. Sys admins have been hired and trained. That ship has sailed.

Small business may switch, but not based on this political action. That decision will be based on one thing and one thing only: impact to the bottom line. Any small business owner that makes this kind of decision without considering the bottom line isn’t going to be in business long.

I am a firm advocate and supporter of Linux. I use Linux every day in my job, both on the desktop and on servers. I have Windows machines, and I own a copy of Office. Why? Because it’s what my clients want. No matter how much OpenOffice touts itself as “Office compatible” it’s not 100% compatible. The differences may be minor and subtle, but when I create a report for a client and the formatting is messy because of the differences, it reflects badly on me. Not on OpenOffice. My client doesn’t care how I create the document. They only care that they can open the document in Word.

When a client asks for full functionality in Outlook, I can’t just tell them they should be using Thunderbird and Lightning. They’ve made a decision at the desktop level to use Outlook and I have to respect that. Now that they’ve made that decision, what’s the best way to give them the infrastructure to support it? Exchange must be considered because, while it may not be the cheapest or easiest answer, it is still arguably the best way to provide full functionality to the Outlook client. Linux based “free” alternatives to Exchange are still largely a variety of different services that have been integrated into a unified platform. If you can get them tweaked out properly, they work and work well. But they require a support infrastructure that’s often foreign to folks like my clients.

It could be argued that situations like the one above support the FSF’s contention that Microsoft locks users in and violates standards. They’re right, of course, but again the decision to go down that road has been made and altering course is often challenging and not cost effective.

I admire and respect the work of the Free Software Foundation (except for the whole GNU/Linux thing, but that’s a different rant). I wish them luck in changing the world, but trying to alter the course of ocean liners isn’t the easiest thing to do and may not be the best way to spend resources.

People don’t want free beer…

The Free and Open Source Software (FOSS) community defines two types of freedom:

  1. free as in speech
  2. free as in beer

When consulting, keep in mind that your customer doesn’t want free beer and probably doesn’t care about free speech. Your job is to downplay the free beer aspect and educate about the free speech aspect.

Why not free beer? Free beer is fine, but giving away anything else of value, like software, plays to our “you get what you pay for” mentality. That’s a dichotomy that’s not easily broken, especially in the business world.

When undertaking a new project, smart business people will set out a budget and work diligently to keep the project within that budget. If I come in and bid a FOSS-based solution, I don’t start by heralding the fact that the software is free. Software, even free-as-in-beer software, is never free. Even if the code itself is free, there’s still the need for building an infrastructure to run the code, installing and configuring the code, and ongoing maintenance of the code. It would be irresponsible to even hint that there’s no associated cost with the software. Breaking the software out from all the other pieces and attaching a $0 price tag to it is disingenuous.

So what to do?

For starters, calculate the cost of the software. Separate the parts of building out the infrastructure, installation and configuration, etc. as the software cost. Add the ongoing maintenance costs as just that—ongoing maintenance. Make your consulting fees about consulting: requirements analysis, recommendations, project management, usability and acceptance testing.

Second, highlight the free-as-in-speech element of FOSS-based solutions:

  1. no vendor lock in
  2. support for open standards
  3. community development
  4. availability of source code

Each of these elements is important, but they can mean nothing to the client without your explanations. Educating your client is part of your job. Don’t teach them to expect something for nothing, or nothing is what they’ll offer you.

By highlighting free-as-in-beer, you run the risk of having the client think: “Hmmm… I could have my bosses nephew install that. The software’s free. What could go wrong?” Down that road lies madness for the client, but they often don’t know that. They only see the chance to save the money they had budgeted for the project.

When performing the job, you have to differentiate yourself. Illustrate why simply having the nephew do it doesn’t make sense. Show that you will complete all localizations, including branding. Don’t show screen shots of the raw software—show screenshots after the localization and branding is complete. Even if you have to mock these screenshots up, there impact will be much greater. Demonstrate the ways in which you’ll document the setup and use of the software. Have a stock acceptance test plan that you can show the client. Keep your toolbox full of little things like this. These are the things that separate the highreasonably priced consultant from the bosses nephew.

Well. These things and years of experience…

Jaunty Jackalope

The latest version of Ubuntu has hit, and lucky for me FTP Telecom in Viet Nam is mirroring. This means I was able to download and install in a pretty reasonable time.

How’s it look? So far, it’s rock solid. It recognized all of my hardware (Thinkpad T61 with nVIDIA card) out of the box. The install was painless–even resizing my Windows 7 partition worked. I’ve changed my Appearance settings to Dust as I prefer the darker widget look. It tends to focus my attention on the large fields I need to fill out… The look and feel are typical Ubuntu–very polished and smooth.

Of course, I did have to do a bunch of things like install the Adobe Flash plugin and decoders for MP3. Silly that, in this day, we still need to do this. I understand the reasoning but surely there’s some detente that can be reached.

Anyway, it’s great to be back in a pure Linux environment. When administering Linux systems, a Linux desktop really is the best tool for the job, at least for me. As good as tools like PuTTY are, they can’t compete with the efficiency I gain from just running at the command line.

Two big thumbs up to the Ubuntu crew for getting yet another release out the door.