The smoking gun that came in the form of a chicken

Dana Blakenhorn was at a convention in Taiwan, and after noticing only one device preinstalled with Linux in the whole show, cracked the Asus / Windows / Linux story wide open with one simple question: “what happened to all the Linux?”

“In our association we operate as a consortium, like the open source consortium. They want to promote open source and Linux. But if you begin from the PC you are afraid of Microsoft. They try to go to the smart phone or PDA to start again.”

Blakenhorn framed it as a chicken-and-egg problem where not only does the chicken come first, but the chicken is owned by Microsoft.

View the whole Netbook maneno in light of this admission, and you have a pretty good idea what happened to the Linux. PJ at Groklaw realized this is the smoking gun, and I agree with her 100%. It’s truly sad that Microsoft is so afraid of proper competition that they have to shoot the other horse in the starting gate.

PulseAudio and I have a strained relationship

Ever since the Ubuntu folks switched their underlying sound architecture from ALSA to PulseAudio, I’ve had some manner of issue or another. At first, it was certain applications (e.g. Audacity) not running, due to never having been coded to use Pulse instead of its default, needing hours to hack around. Then after PulseAudio sorted out its own ALSA backward compatibility, it was the server crashing every time I opened an RDP connection using RDesktop (a recent version thankfully fixed that issue).

Today, I did some manual updates for my Jaunty installation, the first I’d done in about a week. I have automatic updates disabled on my work laptop for a number of reasons. One of the packages that came down was evidently PulseAudio, because after a reboot, sound wasn’t working. Nothing was showing as out of the ordinary on dmesg (the Linux command line based system event viewer — like in Windows going to My Computer > Manage > Event Viewer > System, or under Ubuntu you can go to System > Administration > Log File Viewer), and when I installed the PulseAudio Device Chooser applet to get access to the default device configuration, it was showing my sound card was functioning perfectly and was even outputting sound properly according to its internal diagnostics. My system volume was turned up, the laptop’s mute function was not active, and as far as I could see, everything else was working just fine, so I Googled the problem, and found this.

I wasn’t having the shutdown problem described in the bug report, but I’d had problems with ALSA disabling its own PCM in the past, so I opened my volume control via the sound icon and found that the PCM slider was all the way at the bottom, and the Mute button for it was ticked. PCM is the equivalent of the “Wave” slider under the Windows volume control — it’s the slider that handles most of the sound output aside from the “master” volume control, so basically anything that’s playing and isn’t a CD in the CD-Rom would be affected by it. I increased the volume on PCM and un-muted it, and magically sound started working again.

Now that I know this can happen because of a PulseAudio upgrade, I’ll think to look at this first, the next time this happens. But ultimately, why did it have to happen? I can’t think of a reason to ever change the PCM volume in the process of an upgrade — and if you have to default it to anything because the settings get wiped, it should default to 80% or something like that, something reasonable that doesn’t give a person the impression that something got broken over the course of an upgrade.

Don’t get me wrong. PulseAudio was a necessary and in fact laudable step toward unifying the Linux sound architecture world, where it can not only mix multiple sound streams, but can output to different sound devices or all sorts of devices simultaneously, including over the network. I will one day build a media centre that we can tune into from any computer in the house (probably including my Wii using Mplayer on the Homebrew Channel). But until that day, it’d be nice if they get the little things right before uploading their new versions.

Or maybe one day I’ll get around to learning C and step in myself…

Asus used to be supporters of Linux, now not so much

I had allowed myself to be convinced that the campaign to push Windows on consumers looking to buy an Asus Eee PC was a hoax, but it turns out it’s real. For a time, by offering low-cost netbook Eee PCs with embedded Linux and consumers realizing that it works just as well, Linux was actually getting some adoption by the consumer-end of the spectrum.

Then Microsoft realized their “biggest competitor” was gaining a foothold in the netbook market and quickly moved to crush it by allying themselves with Asus. Boy, it sure is sad that Microsoft is so afraid of a little legitimate competition that they have to fight Linux just like they would a company with a large installation base and a large amount of money to invest.

Ah well, at least there’s still Google Android. And the Nokia internet tablet series. And the PS3, if you ask for it with Linux pre-installed. And, well, everything on this list.

Europe wins vs Microsoft, and hasn’t even ordered remedies yet!

According to the investigative journalists over at CNet, Microsoft will unbundle IE8 from Windows 7 and release it as Windows 7 E. However, they’re actually taking this action preemptively, and the EU Antitrust courts haven’t actually specifically asked them to do anything yet. They’re also unbundling Windows Media Player from it and releasing it as Windows 7 N.

Despite my original projections, the only ways IE will be offered to clients at present are via CD in retail stores, FTP (which you’d have to do via command line), and a package that OEMs can choose to install prior to selling. It’s fairly obvious that OEMs will end up reinstalling the package, knowing that the alternative for said OEMs is to have to support clients through doing the install. There’s some chance that they might install Firefox instead, which would be great, given that it’s not only safer, but also more standards-compliant and with its extension engine, feature-rich. Besides this, unbundling the browser doesn’t keep the underlying rendering engine from being used elsewhere in the operating system — basically, everywhere Microsoft can reimplement it. They made this design choice back in Windows 98, their “innovation” being to graft internet functionality on every aspect of the OS they could manage, specifically to be able to say that it’s so fundamental to the operating system that it can’t possibly be removed.

"Windows Vista Ultimate Limited Numbered Signature Edition" -- basically, a limited-edition Ultimate, with an Authentic Number and a Fake Bill Gates signature.  All this for $259USD.  Yes, it's real.

The thing I really don’t understand about Microsoft’s design decisions with regard to bundling every bloody app they make that they have any kind of impetus toward driving marketshare. This is an obvious antitrust violation, and when you’re very nearly the monopoly in one market, to leverage that monopoly in other fields like web browsers and media players is just baiting the antitrust courts to step in. Granted, the US antitrust courts have traditionally been extraordinarily lax during the Bush era, but the EU at least is willing to step up and put MS in their place.

I have an idea though, something that could prove to be the ultimate solution to not only their wish to “suggest” their own software over others, but also to fixing the versioning hell they’ve been building up over the past few versions by subdividing each of their releases into first “home” and “pro”, then later “media center”, and “business”, and “pretty graphics version”, etc., etc. They’ll have to swallow their pride and take a cue off of Linux, though, and you know that ain’t going to happen. Basically, their way out of both issues is to strip down Windows to its absolute basics, then create a repository system akin to Yum or Apt, where after an OS install, you then have the option to download and install all sorts of software without needing any web browser at all. Every package is vetted to ensure it’s virus-free, the repository could be configured to link to third-party repositories for all sorts of free or shareware software, including their Internet Explorer and Media Player, to avoid antitrust issues. They could even build a pay scheme something like iTunes or the iPhone app store, so as to use it to deliver their various multiple versions of Office and add-on packs for Windows to deliver “Pro” functionality like being able to connect to a domain.

The only issue with this potential setup is that not only would Microsoft have to take cues from its two biggest competitors, but they’d have to provide a very easy way of getting their competitors’ software — and that will never happen. They’d cry “unfair marketplace” in that they’d be forced to help out everyone who makes any sort of software that competes against their products, and it would probably take a prescribed remedy from an antitrust court before they’d ever open up the playing field to give the customer an actual, meaningful choice in the matter.

Happy 40th Birthday, Unix!

Forty years ago today, Ken Thompson and Dennis Ritchie started hacking together a new operating system that would fix the problems they saw with the clunky Multics. This would become Unix, the progenitor of all Posix-compliant operating systems, including the open-source wunderkind Linux.

According to the Slashdot comments, the venerable operating system celebrated its birthday by issuing the following command:

find my_lawn -name kids* | xargs rm -rvf

Now entering Silent Hill…

One of the big things on my agenda last night (outside of facilitating a major server upgrade entirely provided by a third party — gotta love free upgrades!) was reconfiguring the BIOS for every computer station in the office to boot via network first, hard drive second. Recently, I set up Free Open Ghost, an open-source version of Norton Ghost, which allows you to clone a computer install and re-image either the same computer, or another computer, with the identical image, all over the network. I’ve got it configured now such that I can add a computer to the to-be-reformatted queue, go and restart it, and it will boot from network first and check in with the FOG server, so that it knows to download a disk image (which isn’t necessarily the full size of the hard drive, either — one of my main images is a mere 3 gigs and contains a full Windows XP Pro installation with a bunch of work-specific configuraiton), automatically rename itself to the hostname it’s been assigned, automatically join the domain and assign itself to the proper Organizational Unit in Active Directory, then after one manual reboot will install all the software that it’s supposed to get from that OU. It is so goddamn slick to be able to reformat and have a computer back in working order in under an hour with so little intervention by myself that I am almost unnecessary (save of course for my ability to keep all these little R&D gadgets that I’ve set up, functional).

I had been working at this place prior to landing the IT gig, and have a very vivid memory of the old IT guy (hey Clifton, remember Nicholson?) freaking out when there was a Blaster worm outbreak in the centre. He was very much the type of IT guy that hated to be disturbed and was put out by every least bit of inconvenience; to see him running around like a fool manually reformatting all the stations and getting annoyed every time anyone would even look at him sideways was, to this day, exemplar of exactly what IT should not be, and he is my constant reminder that complacency breeds inefficiency. Between him and Chiltzy (who Clifton would also remember), I have a good deal of goodwill still built up in my favour where all I have to do is be better than either of them, and I’ve proven how awesome I am.

Even though I could remove the virus from every station without leaving my office, and without a reformat, if I wanted to, I could cordon off an entire section of the floor and use Free Open Ghost’s Multicast feature to send the disk image to every station simultaneously thus not flooding our network or having to wait one at a time for each station to rebuild itself. I could then simply walk around to each station and manually reboot once about half an hour in (so that they all pick up Group Policy — that’s the one kink to being wholly unattended that I can’t yet work out), and the entire section of the centre would be ready for production in maybe a little over an hour, given any unforeseen circumstances.

And yes, Free Open Ghost is Linux-based, and wholly open-source. And even without being OSS, it would have won me over with its intuitiveness and mammoth functionality. If you have any need for disk-imaging, look into it. It would even work in a small home network environment, you’d just need a Linux server (see here if you want one but need a jump start at it) and a hard drive with a bit of extra space to start off with.

(Free Open Ghost = FOG — Get the title now? Okay, it was admittedly pretty lame.)

Awesome SSH tricks

Greg Laden’s having problems with his ScienceBlogs site‘s commenting (those problems being that Movable Type sucks), so he’s started posting stuff on his old WordPress site. Stuff like this great Linux Journal video, showing you how to spawn a GUI-based program on a remote server over SSH.

I pointed out on that post’s comments, if you’re going to tunnel into the box, you’re better off to SSH in, then spawn VNC Viewer and redirect its output to your local machine. However, after I did so, I realized I’d made a tiny mistake about this — my reasoning behind this was that VNC’s compression is vastly superior to the compression afforded by using -C on the SSH command line. If you do spawn a full VNC session, you’re actually running the video through two layers of compression — one, from VNC Viewer to the VNC Server, and one from the local computer’s X server to the remote’s, to pick up the VNC Viewer output. This is more a logic flaw on my part than an actual issue, and in this way you can get a full VNC connection encrypted over SSH, so the technique is not without its merits.

This site also shows you how to forward a port over SSH. It’s tailored for RPM-based distributions, and slightly incorrect about the SSH command line to use, but still. Even tells you how to do it using PuTTY on Windows!

Here’s the magic:

sudo ssh -N -T -L 5901:192.168.1.100:6000 username@192.168.1.100 &

If you try without the username@ip at the end, as shown on the site I just linked, SSH will just spit up a syntax text and quit.

You’ll need to be root or sudo this, as it’ll first ask for local privileges, and you’ll need an SSH-enabled account on the remote box. This command will connect your local port 6000 to the remote computer’s 5901 (VNC display 1), over SSH, and keeps the command running as a daemon in the background (the &). You can then use VNC Viewer from your local computer, to your own computer’s port 6000, and you’ll see the remote screen, tunneled through SSH and thus encrypted.

If you connect a bunch of these ports at startup, you can create a “bouncebox” of sorts if you want a single point-of-access for multiple servers. Try this with port 80 on each remote server and a different local port for each connection, and you can create a whole web of bounces on your internal network so you just need one NATted computer to give to your client / open to the net, and a whole slew of open ports on it will grant access to myriad things. This way you can also run iptables on that bouncebox and meter out who gets access to what from one centralized location.

Something like this was used at one of my previous jobs to grant access to servers in a super-secure data centre. I wasn’t one of the privileged few allowed access to this — I was but a mere LAN monkey at the time. I’ve since upgraded my skillset significantly after having moved on from the company, spurred on by a need to prove I’m as capable and clever as any one of their Linux guys. I’m getting there. And, it’s all self-taught, every shred of that computer knowledge that I use daily to bring home the bacon. Was going to be an English teacher, you see, until I realized computers are easier to deal with than people.

Finally fixed a nagging Linux problem

Flash under Ubuntu with Compiz enabled (the graphical layer that does all the nifty desktop effects), has a slight problem under Intel video cards like the one built into my work laptop. Finally, thanks to this article on Tombuntu, I found a fix for the issue.

Just run this command under a terminal:

gconftool-2 --set /apps/compiz/general/screen0/options/unredirect_fullscreen_windows --type bool 0

Or I suppose you could do it the graphical way using the Gnome System Configurator, but that feels way too much like using the Windows registry. Bleh.

Now finally my Flash videos no longer flicker like crazy while not maximized, and don’t slow down while maximized either. Woo-hoo!

Update: well, that didn’t last long. It reverted right back to crazy after closing and reopening Firefox. Suspecting that wasn’t my issue after all.

Open-Source Software Shout-Out

(OSSSO?)

Here’s two great bits of code that’ll never get attribution from my workplace, as they’re being used on internal-facing projects, so I wanted to give them shout-outs here where someone might actually notice.

First is a pure DHTML-and-Javascript date picking applet, simple but efficient and well-documented for any beginner Javascript programmers, which I’ll be grafting into a helpdesk type ticketing system. It’s a wheel that gets reinvented over and over, but I particularly like this implementation, as it’s rather low on resources, themeable to match your site, and does exactly what it should do and nothing more. A number of open-source products have that ethos: do one thing, but do it extraordinarily well. The end product, if done extraordinarily well, can be reused by other components in the operating system. In fact, if you’re running Linux, almost all of the apps you use daily are mere GUI frontends to command-line utilities that predate them.

Secondly, there’s a great chat applet I’m implementing at work presently built out of — get this — Javascript (AJAX), PHP, MySQL, Flash, and Ruby. I’ve already hacked out quite a few features in it, such as the ability to private message, in order to prepare it for widescale use in the office. That’s another great thing about open source software — if it doesn’t suit your needs, you’re free to modify it, as long as when you redistribute it (*if* you redistribute it — if you keep it within the company, you can turn it into spaghetti if you want!), you include the source code and changelogs indicating who did what.

I actually had a fight with one of my higher-ups over that fact once — and I went to the mat for OSS. His stance was that a business could not rely on open-source software without exposing itself to liabilities, and thus we should only be using BSD code. I countered that we weren’t redistributing anything, and the only requirement is that we deliver the code as well upon redistribution of the program, and we could even sell modified forks if we chose, with impunity. I don’t think I necessarily won the debate, but I know people who actually know the law about this stuff would side with me — if not with every nuance of the argument I made, which honestly I can’t remember any more. I do know that my stock in the company is up (lately at least), and I’m not hurting for having argued on the side of the long-haired smellies, so I’d consider it a victory.