arbinger systems

by JA Robson    RSS feed

Friday, May 30, 2008

I'm Trying To Quit... Commercial Software Pt. 2

Trying to quitIn this experiment, FOSS is effectively graded on whether or not it can substitute all or most of my proprietary software needs, without me having to substantially change the way I use software. It's highly subjective, and human nature, like laziness and apathy, is very much a part of it, as you will see.

This is the second installment of my personal Free Open Source Software experiment. Read the first installment here.

Within a year of getting my new notebook, my wife's laptop gave up the ghost. It was a Dell Inspiron 8100, and frankly, we'd gotten our money's worth. I purchased a new laptop, a Gateway M6882, and we did the laptop shuffle again.

The Gateway came with Vista, but I wanted to run XP. I immediately discovered that XP was going to be difficult to manage. There was no floppy drive, XP didn't have the needed SATA controller, and there were only three hardware drivers available for XP on the Gateway site.

After thinking about it, I realized that regardless of my feelings for Vista, it's going to be inevitable, and I might as well get used to it. However, I'm resentful about my conclusion, and I'm sure I'm not the only one. As far as portents go, this is a bad one for Microsoft.

Ultimately, this ended up being a good thing. I'd been wanting an excuse to run Linux, and here it was. I decided to keep Vista, since I might need it, but repartition and dual-boot Linux.

Thus began the second phase of my "experiment". I would see just how little I'd have to use Vista, if Linux were available instead.

Linux

I started with Ubuntu 7.10 LTS, since it seemed like the distro with the most momentum. Installation was a breeze. I particularly like booting from the CD and getting to play around with the desktop before doing the install.

After installation, however, I began to bump into oddities and frustrations.

First, the M6882 is a widescreen with an optimal resolution of 1280x800. The Gnome desktop used the entire screen, but the top and bottom system bars only went to a width of 1024 pixels. I tried to change the resolution using the system config tools, but nothing worked. I had to hit the forums, and after some time (longer than I would have preferred), finally found a solution that involved editing the xorg.conf file. I still don't understand exactly what I changed, but it had something to do with TV out settings.

This gave a bad impression. The facts of life are that in the many many installs I've done of Windows, I've never had to do this much work to get the system to the correct screen resolution.

I still had one other hardware problem that was bothering me. The sound card didn't work. This took even longer to fix than the screen resolution, and was twice as painful.

I hit the forums again. I tried several suggestions with rather involved steps, with no success. I had a glimmer of hope when I found and downloaded the Linux drivers from the manufacturer's website. It was a source package, with some simple instructions for compiling and installing. But the install script first removed the existing sound libraries that the X server had been compiled against, using the fatal rm command. Then, the build failed. Unaware of what had happened, I gave up and at some point rebooted. The desktop failed to load the next time I tried to boot.

The manufacturer's Linux driver package had clobbered my non-working, but non-failing sound libraries without backing them up, or even checking that the build succeeded first. At this point I was pretty much hosed, and the easiest thing to do was to reinstall.

I reinstalled, fixed the screen resolution problem again, and still didn't have sound. I finally found a solution, on some guy's blog. There was no compiling required, just a bunch of funky steps to get a "backports" package installed, after which I had to re-run some updates I'd already done. After that, my sound worked fine. But, like the screen, this was far too much work to have to do for something I consider basic and essential to an OS.

The next hassle I had was that I changed my password, and suddenly was being prompted by the keyring manager every time I logged in. Again, my only resource was the forums. I'll spare all the details of resolving this problem, but I'll say this: the problem with forums as the help is that you don't know who you can believe. I'm not saying anyone would attempt to purposely mislead you (although they might), but they can and often do get things wrong, communicate the solution poorly, or miss a detail that is essential to your particular system.

In the keyring case, I followed one person's advice, which involved compiling from source, and began the descent down the dependency Inferno, only to find out that all I really needed was to run the following simple command:

rm ~/.gnome2/keyrings/login.keyring

Using the community forums as the help system is a problematic solution at best. With no monetary incentive, you get only the best someone is willing to offer at the time, you have no verification of the expertise of your source, and no one is responsible. You may get an excellent answer, a partial answer, the wrong answer, or no answer.

Never booting into Vista

After getting past the problems above, I began using Linux in earnest. As far as the basic things I need to do on a computer, e.g. programming, web surfing, email, FTP, document editing, spreadsheets, playing music, etc, Ubuntu was able to deliver.

But here's what I still need Vista for:

DVD playback. I couldn't play a DVD of 24 with Totem. I had installed GStreamer the ugly and also Mplayer. No dice. Mplayer looked like:

mplayer fails

I also tried VLC. It got some images to the screen, errored out, and froze.

I didn't give up that easily. Next I installed Totem with the xine backend. When I played the DVD this time, I got the FBI warnings, but it complained about encryption when it came to the video, and also failed.

In Vista all I have is the Windows Media Center, which sucked in XP. It's been improved, and other than the audio being slightly lower than I would have liked (perhaps a hardware issue), I can play DVDs without a headache.

Photoshop. I know I could learn Gimp, but I already know Photoshop, and know it well. It had a steep learning curve, and has all the capabilities I need and then some, so switching doesn't appeal to me. I'd much rather just boot into the system where this app runs and use it there.

Doom9.net. I use a lot of the multimedia tools (e.g. BeSplit, MeGUI) available from this site. Most of these interfaces, while freeware, run on Windows.

Netflix. Sorry, but they have that Watch Instantly feature, which will not only just run on Windows, but also will only run on X number of installs of Windows. I don't like it, but like Vista, it's just the way things are.

Rooting for Linux

While I'm growing increasingly fond of Linux, and certainly rooting for it, it's got a ways to go. Hardware will be a weak point for some time to come. This isn't the fault of Linux, but instead the fault of economics. Money is the big incentivizer, and the OS that can bring in the most money will always get priority. My experience with the manufacturer's sound driver installation is a clear example of this.

Microsoft may not win any medals for its ideals, but sound drivers usually install without the user having to jump through hoops or inadvertently clobbering their system, and I can play most DVDs by just slapping it in the drive.

Linux also suffers in the support department. Again, this is because the model of Linux is essentially based on altruism. Really, it's an amazing feat that Linux works as well as it does, has the support it has, and is as advanced as it has become. I'm rapidly turning into a fan, and have optimism for the future.

Watch for my next installment, in which I begin to play around with Gimp, surprisingly, because of laziness, switch to openSUSE and am pretty happy with it, and have some trouble connecting to WIFI where Vista does not.
posted by JA at    [ 0 Comments ] reddit
Arbinger Systems: LUI - aumpel - HTMLCaptcha - Sylbi - madxlib

Monday, May 19, 2008

What's a Wiki?

WikiNot a particularly hard question, and most people (whose primary exposure to the term is through Wikipedia), will pipe up: It's a website that lets anyone edit and make changes. And they'd be right, but there's more to it.

A Wiki was originally designed around the philosophy of incompleteness and interaction. The concept, created by Ward Cunningham was intended to foster collaboration [which] creates and develops new ideas.

But it's extremely difficult to know just exactly how your idea will be adapted and ultimately play out when presented to the world.

Wikipedia came along and decided to classify content using a Wiki, becoming the world's first collaborative encyclopedia. And it has stayed true to the ideas above. It's both incomplete and promotes interaction. But it doesn't use Wiki technology to develop new ideas. That's not why it was created.

Is Wikipedia any less a Wiki, then? Not really. While the original intention of Wiki may have been to foster the creation of new ideas, the functionality it provides to do that (i.e. ease-of-use, simple markup, natural collaboration) lends itself to other goals as well.

So then, a Wiki may be:

Content Creation Wiki
The original intention of a Wiki -- to collaborate and create new ideas. From c2.com:
Treat a page here as a half-finished piece of sidewalk art. Don't scuff it up. Don't rub it out. Don't write messages on it like "finish this you bum or I will scuff it" or "I disagree" or "me too".

Instead, see if you can head it toward completeness. If you can't do that now, leave it be. Maybe one day you will think of something to add. Or perhaps another will. We rely on each other to help new things come into being, like ants building nests.
Content Classification Wiki
Sites like Wikipedia, which classify existing knowledge to make it usable. These sites tend to be larger, edited more stringently, and try to present knowledge "authoritatively". [link]

Knowledge Base Wiki
I'm adding this one, since I'm increasingly seeing Wikis used this way. This type tends to be specific to organizations, and are either used to accumulate and distribute information about a specific product or service, or used internally to collaborate and share information, e.g. company policies, inter-departmental information, etc.

These Wiki "types" really only differ in their intention and audience. They all foster collaboration, are simple to use, and are generally ongoing, with no real finalization date.
posted by JA at    [ 0 Comments ] reddit
Arbinger Systems: LUI - aumpel - HTMLCaptcha - Sylbi - madxlib

Tuesday, May 13, 2008

Re: Why People Are Passionate About Perl

Perl Here's my response to brian_d_foy's People Passionate About Perl meme.

I first starting using Perl to...
I began looking into Perl in the 90s -- when it was suffering less from perception issues -- as an alternative web development platform to ASP. ASP presented a low bar, and I was making web front-ends to databases in a very short time. Then, after satisfying initial needs, more demands began to be made on our web applications, and ASP's low bar began to be an inhibitor.

I reviewed Perl as an alternative, and (I'll be honest) after getting past the syntax, began to understand the power I was toying with. Then, I discovered CPAN. ASP never looked quite the same after that.

I kept using Perl because...
It's never given me a reason not to. Sorry, but I'm not loyal for loyalty's sake. If a tool like Perl can't make my life easier than tool X, then it's time to investigate tool X.

But Perl hasn't failed on this account. It's proven to be highly adaptable, and the energy of its community has fit it to new paradigms readily. For instance, is there a Ruby on Rails for Perl? Try Catalyst, or the newer Jifty.

As for pre-packaged functionality, I don't think there's a language that can compete. CPAN continues to grow and grow. In fact, if you want to contribute, the difficulty now is thinking up something that hasn't already been done. Try templates, for example.

This means one thing: If I need a tool to get something done, Perl is the easiest choice. It's powerful, flexible, and continues to edge into functionality that I haven't even begun to think about.

Oh yeah, and it also provides industry leading regular expressions via operator, for the absolutely most convenient and shortest possible way of using this very important technology.

I can't stop thinking about Perl...
Actually, I can stop thinking about Perl, and frequently do. That's because there are other things in my life besides Perl. However, I think in Perl when I think about crafting software, or anything abstract and computational. Its natural language model makes this easy.

And since web, Internet, and database are the spaces for the majority of my software ideas, thinking in Perl is a huge benefit for me, because so many others are thinking in Perl for the same spaces, answering questions I haven't thought to ask yet (CPAN again).

I'm still using Perl because...
This is mostly covered above. But here's one more.

Line count. I use Perl day-to-day to handle any number of tasks, of any size and importance. Perl itself reduces line count just in the power of its syntax. I'm not talking about merely writing obfuscated code. I'm talking out the power inherent in the language itself.

And now, back to CPAN.

Recently at work we needed to parse a handful of Excel spreadsheets that were formatted more or less the same. I handed this job off to a contractor who works for me. He created a C# project, and then left for the day. He wasn't able to come back the next day, so I took the project over. He had barely gotten started, but he already had five or six files involved, and a couple hundred lines of code.

I immediately thought we should be doing it in Perl. This was a one-off project, so why do a whole Visual Studio project? I Googled around and found this tutorial. I installed the modules from CPAN, adapted the samples to my needs, and about an hour and 80 lines of code later, I had the spreadsheets munged into SQL and ready to go.

Sorry, but I'll take the shorter route every time, if I can.

I get other people to use Perl by...
Well, I blog. Not exclusively about Perl, and not even explicitly to advocate Perl, but it is about Perl, because, like I said before, I think in Perl. It's going to leak out.

I have pointed people to Perl when it best suits their needs. A guy I work with wants to learn programming, and was looking at Python. I asked why he was interested in programming, and he admitted he just wanted to write a few scripts to download content off a website. I nodded and said, "You should use Perl."

Python may have this covered as well, but I showed him how in one line of code (via LWP::Simple) I could grab the text of a website. I also pointed him to all the modules -- you guessed it, available on CPAN -- that can rip apart HTML and extract just the things you need.

I also program in ... and ..., but I like Perl better since...
Although I know several other languages, I program primarily in C# and Perl.

Both languages work well for the domains in which I use them. I use C# to write Windows specific applications. C# just has better hooks into the system, with less weirdness.

I use Perl for pretty much everything else. And where they cross domains, i.e. web development (ASP.NET), I prefer Perl, because (1) it has more pluggable functionality, and for free, and (2) has a shorter development-to-production time. This is partly due to my proficiency in Perl, but also because there is less setup involved in new projects, and less OO wrapping.

If it's a simple app, I use a minimal amount of Perl. If it's more complex, I use the frameworks available, like CGI::Application and templates. With ASP.NET, you're pretty much bound to the framework -- with all its complexity -- even for simple projects.
posted by JA at    [ 0 Comments ] reddit
Arbinger Systems: LUI - aumpel - HTMLCaptcha - Sylbi - madxlib

Thursday, May 8, 2008

Google Docs Finally Matter To Me

Google DocsTo be honest, online documents never really were a big sell for me. Frankly, it's an application space that's pretty boring, and ultimately, you sacrifice functionality. What functionality do you get with Google Docs that an "offline" word processor can't provide in spades? Well, just this: Your documents can be accessed and edited from anywhere [that you have a high-speed Internet connection]. That last part is mine, since you won't see that in any marketing phrase for an online word processor. But it's significant.

It may surprise you, but until recently I only had a dial-up connection at home. Because I live in a rural area outside the city, the only option for me was satellite, which I didn't find appealing due to the cost/performance ratio. At work, however, we have DS3, so I had no real Internet deficiency.

My work also provided me with a 4GB thumb drive -- and lanyard! -- so I had an extended sneakernet, and anything that was too painful to download from home (almost everything), I would download at work. Also, document synchronization between work and home was answered by simply keeping documents on the thumb drive. This guaranteed that wherever the location, I always had the up-to-date revision.

So because I had only one high-speed Internet connection, the single advantage Google Docs could provide over Word or OpenOffice Writer didn't exist.

And let's be honest. The interface, while well done for a web app, doesn't compare to a locally running application written for your platform. What is Google Docs, really? It's a word processor running under a web browser. What is Microsoft Word? It's just a word processor. Which program do you think is going to be better suited to the task of word processing, and capable of offering more power? The one that gets to focus its logic on word processing, or the one that also has to be a web browser? Google Docs only has an advantage as a web platform.

When DSL became available in my area, the game changed. I now have a fast, always on connection at the two places where I do most of my work: at home and at my office. My sneakernet has pretty much ceased to exist. If I need to transfer anything I simply use FTP, email, or VPN.

But all of the above methods are kind of clunky for synchronizing files. Our VPN only works with Microsoft clients, unfortunately, and I use Linux quite often when I'm home. FTP would work the best, but there are a lot of extra steps (or extra setup) when compared to just plugging in a thumb drive and clicking on the file you want to edit.

Many of the documents I work on are spec documents for software projects. I don't really need anything more than just basic word processing functionality: headings, emphasis, bulleted lists, tables. Google Docs does all this pretty well.

I recently started to develop a spec for a Perl library, and made this my first real try of Google Docs now that I have more than one reliable high-speed Internet connection. I started writing the spec about a half hour before I left work one day. On the way home, I had some new ideas, and wanted to add them while they were still fresh. This was the moment Google Docs finally began to matter to me. It was the easiest synchronized document edit I had made to date. I just logged in to my laptop when I got home, made my additions, and saved.

Since then, any document that I'll edit from more than one location goes directly to Google Docs.

Google Docs, or any online word processor, only has real value as a web platform. And a web platform only has value where there is a sufficiently high-speed Internet connection available. As that becomes more and more common, online word processing will begin to matter to more people.
posted by JA at    [ 0 Comments ] reddit
Arbinger Systems: LUI - aumpel - HTMLCaptcha - Sylbi - madxlib

Tuesday, May 6, 2008

Keeping A Digital Diary On A Trēo

About a year and a half ago, my wife and I took a trip to Mazatlan, Mexico. In my backpack, along with my laptop, I had stowed a Siemens SX56 PDA. This was the first time we had ever visited Mexico, so I decided I wanted to keep a day-by-day account.

The SX56, like most PDAs, has a microphone. I changed the recording settings to a low frequency -- 8 kHz 8 bit stereo (still good enough for voice recording) -- and recorded the events of our Mexico vacation. Since then I've maintained a personal audio diary on my PDA, trying to put something in for each day without being bogged down by boring minutia. Of which, sadly, there is enough.

The SX56 has only 32MB of storage, and part of that is used for system files. I found myself filling it up and having to dump to my laptop far too frequently. It turns out this was hardly an insurmountable problem.

I bought a Sandisk 256MB flash card, and switched the voice recorder to save to it automatically. This solved two annoyances at once: I didn't have to dump the voice recording files as frequently to my laptop, and I no longer needed to sync via cable, which is always a pain. I could just plug the flash card into my laptop move the files off with Explorer.

For a long time, this was a very workable solution. It still would be, in fact, but by a small stroke of fortune, I was able to upgrade to a Trēo. Here's a picture:

Treo Digital Diary
The journey of a digital photo: This picture was taken on my wife's Nokia cell phone, emailed from there to my Gmail account, download to my laptop, cropped using Gimp, and then FTP'd to my website.

Not very long ago, a guy I work with brought in a box of about thirty Trēo phones like the one I snagged above. He had gotten them from his old employer who no longer needed them since they had just gotten a new budget. (Aren't they the lucky ones...)

After playing with one for a while, I decided I'd take him up on his offer of having one for free. It had all the features of the SX56, and then some. Like twice the storage space on the phone itself. And a real keyboard and navigation button, instead of purely on-screen controls. And of course, my 256MB flash card plugs right in.

Also, it has a camera. This didn't seem that significant at first, but we were recently on a hike, and I was able to take a picture of my wife and daughter, and save it on the flash card along with my diary's audio files. So now my diary has taken on a whole new dimension: It will include real as well as audio imagery.

This isn't the first time I've tried to keep a diary. A couple times in the past I was inspired to do it, and each time, it fizzled. The reason my PDA diary hasn't, I think, is because it lends itself so well to the task. It's portable, by which I mean it has a battery and fits in your pocket, and it requires little effort -- just click and talk about the day's events.

Really, the hardest thing at this point is making sure that you only record things that are actually interesting. You don't want to bore your future self, after all.
posted by JA at    [ 0 Comments ] reddit
Arbinger Systems: LUI - aumpel - HTMLCaptcha - Sylbi - madxlib

Saturday, May 3, 2008

ScratchPad MX - Save Stuff For Later

For the longest time, I've had a shortcut on my Start menu that launched a text document called scratch.txt. This way, with a few clicks, I could save something I might need later, or if I needed a place to temporarily stick some clipboard stuff, I could use it for that. But the problem was, I didn't need a full-blown editor (or even half-blown, like Notepad) to do this. I wanted something that was editor-like, but stripped down to and streamlined for just the functions I needed. A real scratch pad, not an editor acting like one.

Specifically, I wanted the following:
  • Key combo launch, so it would be available at a moment's notice.
  • A command to create a section (insert a divider of some kind) to keep stuff separate from each other.
  • Save and close with a single command, for when I need to save something quickly until I have time to think about it.
  • After a while, you'll accumulate an eclectic mix of stuff, so a way to jump from section to section. (Also, a way to search.)
  • Close without saving, for when I'm just using it to store something temporarily, like when I'm clipboarding heavily.
So that's what I came up with. I call it ScratchPad MX. Here's what it looks like:

ScratchPad MX

Along the top, you can see the five commands available to the program. Pretty self-explanatory. Ctrl+f will jump through each section, which is defined by the line of "=" characters. If you type some text and highlight it, Ctrl+f will search down through the document for that text. (So actually, there are 5.5 commands.)

You can download the installer here. It will automatically install the program, and optionally, you can install a hotkey, WinKey+Space that you can use to bring ScratchPad MX up instantly.

ScratchPad MX is completely free. Also, this is version 0.01 (barely better than beta), so if there are problems or you think a feature might be useful, either leave me a comment, or email me at one of the addresses on my home page.
posted by JA at    [ 0 Comments ] reddit
Arbinger Systems: LUI - aumpel - HTMLCaptcha - Sylbi - madxlib

All content copyright (c) Arbinger Systems