Wednesday, November 21, 2012

Staying behind

Linux Mint 14 was released yesterday. After looking at it, I have no plans to upgrade.

To start with, there are no updates I find compelling. Yes, MATE has been updated, with several bugfixes they say are long overdue. I guess they don't bother me enough to rate poking at. Beyond that, though? Nothing jumps out at me.

I'm also told by more than one person (starting with my roommate) that the version immediately after an LTS of Ubuntu is usually the worst choice possible, since many upgrades are put on hold for the LTS version, and so a lot is added to that next release of dubious quality and stability. Mint 13 is an LTS release, and I'm just as happy about that.

I'm also a bit dismayed that the recommended upgrade process for Mint is a fresh install and reload of your personal data. I understand their viewpoint, but come on, guys. This is one more thing Apple gets right. I've never had problems with updating OS X from major release to major release using the OS updater, and I've been doing it since upgrading from 10.1 to 10.2 - that is, for over a decade.

A fresh install runs a major risk for me of missing something I added. Yes, they do allow backing up and restoring the package database (and, I presume, automatically installing everything that was restored), but not everything is in the package database. There are a few packages I've installed that are newer than what's in the repository, usually because they've had major improvements since that version.

Then there's the Firestorm build stuff. Most of that is either in packages, my home directory, or /usr/local/, but I'm not 100% sure of that. I'd just as soon not reinvent that wheel if I don't have to.

Since Mint 13 is an LTS (long term support) release, I'm not worried that there will be a security fix that I won't be able to get without upgrading. If they prove me wrong on that point, I'm not going to be pleased.

So I'll be on Mint 13 for a while yet.

Wednesday, November 7, 2012


While I wait for the replacement memory riser card to arrive in the mail, I've been using the Linux box for more than just running Firestorm. I'm getting used to things, at least enough for that purpose and some limited web browsing and such. I'm running into the next hurdle, though: What do I use for a pointing device?

To understand my issue, you need to see just what the workspace I sit in front of for hours a day looks like:

Quit snickering. Yes, I get real work done here.

The screen on the left is the Linux system, and the one on the right is the Mac Pro. The black keyboard is one I got with a refurbished HP desktop I bought for a firewall; it's the cheapest piece of crap generic keyboard I've ever seen. I typo on it at far higher a rate than I do on anything else I've ever used. The keyboard on the right is an Apple wired keyboard I love. To the right is an Apple Magic Trackpad, sitting on top of a Wacom Graphire tablet. The trackball in roughly the center of the picture is for the Linux box.

I love the Apple keyboard and Magic Trackpad. The Magic Trackpad, in particular, enables multitouch gestures - and I've become very dependent on that. It's far too easy to get used to flicking two fingers to the left to back up a page in the browser history, for just one example.

The one capability I miss most, though, is the ability to scroll by dragging two fingers in any direction. I've been used to scrollwheel mice for years, and the trackpad's scroll functionality is an ingrained habit.  The trackball doesn't have it, and it's a real annoyance.

As you can see, a mouse is Right Out. There's no place to use one, let alone two. I also gave up on mousepads a long time ago, and there's a space worn in the finish of the desk under the Graphire where I used mice without one for a few years. I'm not fond of the trackball, either; it makes some operations either hard or impossible.

So I want a multitouch trackpad for the Linux box. Unfortunately, there's no one place to go for information on support for multitouch input for Linux. There's one page that has some information, but it's incomplete, and then it refers the user to another page that is a firehose of information without actually being informative. I just want one place that says "this trackpad works this way, and this trackpad works this way", so I can make an informed buying decision without having to become an expert on which device does what.

I think the Magic Trackpad actually works for multitouch on Linux, but I'm not sure. I may find myself trying the one I have when I can have the Mac down for a bit. If so, I'll get a second one (and be damned to the Apple haters out there). I'm already pretty sure that the piece of crap keyboard is getting replaced with an Apple keyboard just like the one I have.

Why do things have to be so hard, though?

Friday, November 2, 2012

Jumping faster than planned

My hand may be forced sooner than I'd wanted. The Mac Pro has started getting flaky on me. Twice in the past couple of days, it's locked up with a completely white screen. It's had a problem for a while with seeing all 12 GB of memory in it; most, but not all, of the time, it's only seen two 1 GB DIMMs where there are 2 GB DIMMs.

I'm suspecting that something in one of the memory riser boards is failing. There are two of them in the machine, with two 2 GB DIMMs and two 1 GB DIMMs each. I may try replacing one, just to see if that cures the problem, but first, I'll pull it apart and blow the dust out of it. Sometimes the little steps are the best.

If it stays flaky, though, I'm going to have to make a decision, fast: do I try to replace it now, or do I take the plunge? I'm not ready to go Linux whole hog yet. There are too many things I depend on OS X to do right now, from generating Microsoft Office documents to using Citrix Remote Access software to using Microsoft Remote Desktop over Cisco VPNs to doing GoToMeeting meetings, all for talking to customers and keeping the bills paid. If I drop OS X, I need to have an alternative, and that alternative had better not be "run Windows!". If I wanted to run Windows, I'd be doing it already. I can run Windows 7 in a VM, but if I spend all my time in the VM, then I might as well run Windows for real and do away with the middleman.

And no, not doing any of the things I listed in the last paragraph is not an option. I'm not in a position to tell customers that I'm not going to work with what they demand of me.

Replacing the entire box will cost me a kilobuck, but in the process I'll get an upgrade by one generation to one that can run Mountain Lion natively. That's a kilobuck I just don't have at the moment, however.

So, how do I keep serving my customers in a Linux environment?

Saturday, October 20, 2012

Going on Safari in Linux-world

Now that Firestorm is settled, and the system can do its primary task of running a Second Life viewer fast, I'm turning my attention to other things. After all, part of my motivation for this box is to evaluate Linux on the desktop in general, in preparation for the day my Mac Pro can't run a currently supported OS X.

The application I run most, as with damned near everyone else, is a web browser. On OS X, I'm a Safari user. Safari provides the cleanest experience on the Mac, and does the least to break the OS X application design standards. By comparison, Chrome and Firefox are terrible OS X applications, wedging their own UI into an OS X window.

Of course, Safari isn't available on Linux. So I 'm stuck with another browser. I decided to try Chrome; Firefox seems to me to be clunky and bloated, and Chrome appears to be the emerging standard. The ability to sync bookmarks and history through the Google cloud across systems is also attractive to me. I'm not interested in Opera just because it has too small a market share for people to make sure their pages work on it; most do, but many don't.

There are a few things that Chrome does that annoy me, though.

The biggest is that there's no equivalent to the Safari Top Sites page (or the Opera Speed Dial page). This is a page that shows thumbnails of most commonly visited sites. You can also pin a site to the page. I have Safari set to show 24 pages, and they're all pinned in place.

Chrome has a Most Visited selection on the New Tab page, but it comes up short in two respects: it only shows 8 pages, and you can't control what it shows.

Another annoyance is that I can't seem to get it to stay open when closing the last tab. What I want to do is when I close the last tab, have it open a New Tab; I only want it to exit when I close the entire window (with the X on the window frame). What I'd really like is to have it simply open the Most Visited page if that could be made to work the way I want.

I'm also not a fan of tabbed browsing. I never saw why people raved over it so much; it's just another UI choice that's not consistent with the rest of the system UI. Even so, I seem to be stuck with it.

Another minor annoyance - and this one's really, really strange to me - is that the default application selection doesn't include one for fast access to Google+! There's one for Gmail, but to get to G+, you have to go somewhere else. There doesn't seem to be one in the Chrome Web Store, either.

I do like the ability for Chrome to manage multiple Google accounts and do the Right Thing with them even when the site doesn't handle multiple sign-in properly (Blogger, I'm looking at you!). That's a Big Win, and one more reason to like Chrome. Unfortunately, there's at least one account I have that I can't sign in to! I tell it the username and password - and even copy and paste the password, and that password logs in to Gmail fine - and Chrome says that it can't log me in. WTF?

Finally, one more UI annoyance: The application menu is in a non-obvious place. The UI convention is to have an application menu, dammit, not a button that kinda leads to one.

I'm sure I'll get used to it, but it's still annoying.

Observations on fragmentation

I've been away dealing with things other than getting Linux working as a desktop user system for the past week or so. I just got back to it today.

The biggest thing that strikes me, now, in comparing OS X to Linux on the desktop is that there's no one thing that can be called Linux. This is true in ways both obvious and hidden but no less real. An OS X user knows exactly what he will be getting on his desktop. A Linux user? Uhm. KDE 4, KDE 3, GNOME 4, GNOME 3, GNOME 2, Xfce, MATE, Cinnamon, LXDE, Unity, e-i-e-i-o. None of them work the same, none of them are configured the same - or even configurable to the same degree - and none of them provide the same capabilities.

There's an argument to be made that this diversity is good. Certainly, if you don't like, or can't adapt, to the OS X way of doing things, then you're not going to be happy with the fact that you can't change many things about the OS X desktop. My roommate is in this camp. He uses Xfce, and tweaks it to his liking.

There's a bigger cost here, though, and that is that developers don't have a single target to aim at. I was reminded of this when I saw a Slashdot article yesterday about how Good Old Games was just announcing OS X versions of its games, but not Linux versions:
If we're able to bring games to Linux--and we're constantly evaluating ways that we can do this--we want to make sure that we're doing it the way: simple, easy, and it 'just works.' I'm not telling you guys to give up hope--we know how much you want this--but what I am saying is that this is harder to support than it might seem initially, and we're not ready to move to support Linux officially just yet.
"Harder to support than it might seem initially" is an understatement.  I've commented before on the plethora of audio standards on the Linux desktop. (Come on, folks, the old saw "the great thing about standards is that there are so many to choose from" is not intended to be prescriptive!) There are more problems, though. The list of libraries that are present on most systems and yet must be statically linked into a shipping program in order to make sure it works right is insanely long. I got help from one of the Firestorm development team in building a 64-bit version just so audio would work correctly, and the resulting wiki page shows just how daunting a task this is.

Right about here is where the Linux hardliners say "but everyone should build from source instead of installing binaries!" Wrong. The average user will take one look at that page and head to the Apple Store.

There's also the minor matter of putting the program in whatever the desktop environment calls the equivalent to the Windows Start Menu. (Dock? What's that? I've resigned myself to a Windows-style menu and taskbar, bleh.) 40 zillion desktops means there's no single way a program's installation process can automate adding it to the menu. For that matter, there's no real reason to install at all, and it seems many programs don't, leaving the user's home directory cluttered with dot-named subdirectories.

People talk about Android fragmentation in the smartphone/app tablet space. Compared to Linux on the desktop, Android is a model of unity.

Thursday, October 11, 2012

A dangling web

You'd think, in this day and age, something as simple as clicking on a link in another application would fire up the user's preferred browser and open the linked URL, right? Not on my Mint system.

One of the first things I did was install Chrome. Firefox just seems clunky to me. Chrome does too, but it seems less clunky, and also seems to be the next big standard in browsers. I'll whip it into shape, or at least to the point I'll be used to it.

But all is not well in browserville. You guessed it: clicking on a link in Firestorm does nothing at all. There's some bit of low magic I've apparently missed, or that Mint doesn't get right, or that didn't get set up somewhere during the install.

Firestorm does know how to open URLs in an external browser. My roommate's systems do this fine. So do the folks on the Firestorm support team, when I asked them. (Digression: Firestorm has a kick-ass support team inworld. They know all, or can at least find out, not just about Firestorm, but about Second Life in general.)

I'll have to look into the mechanism Firestorm uses to open a URL in an external browser to see where the disconnect is. Of course, (this is a familiar refrain now, isn't it?) this Just Works on OS X.My guess is that this is one of those things that is different from one desktop manager to another.

That leads me to an overall observation: there's no such thing as Linux. There are forty zillion different Linuxes. (Linuces? How come Linux doesn't get this hackish plural?) I should probably say something at this point about "trapped in a twisty little maze of Linuxes, all different". Each one has its own way of doing things, and the differences cause seams that things fall into, like opening URLs from applications.

Just as annoying is that this works better after the reinstall than it did before it. The first time I set up the system, the default browser selection didn't work. When I asked for help in Banshee, for example, Mint opened up Firefox to show me the documentation page instead of Chrome. That much at least works this time around, though I have no idea why.

I expect that I'll be tripping over this kind of thing throughout my Linux experience, and it will continue to annoy me - because I know it can be different, and the difference is between having something Just Work and having to dig and tweak and fiddle.

Saving my sanity

Grrrrrrr...The system is so thoroughly screwed up that I'm just going to scrub it off and start over.

I decided I'd try building Firestorm myself, just to see if I could. The problem is that I tried building the release version as a 32-bit binary. This was a major mistake, and exposed a serious problem in how Linux - at least the current Linux toolchain - handles 32- vs. 64-bit support.

I guess I was lulled into a false sense of security by developing on OS X. There, libraries can have both 32- and 64-bit flavors, and the Right Thing Just Happens when you use them. Not so on Linux. Debian et al have what they call "multiarch" support, but there are lots and lots of holes.

When I tried launching the build last night, it complained about the 64-bit libraries being the wrong architecture. Fair enough. A quick Google showed that I needed to install the library package suffixed with ":i386". I did, and did so a few more times when it tripped over them. Eventually, though, I got to a spot that couldn't be fixed that way.

I Googled. I installed more packages. I reran. It blew up. I installed still more packages. I installed packages with ":i386", and without it. The system got more and more screwed up, and I lost track of where I was. Finally, I gave up and went to bed.

Just now, I tried running the release version of Firestorm. It gave me the same complaint that it did when I first installed it and the 32-bit libraries weren't there. I tried reinstalling them. No luck.

That's when I decided that it would be easier for me to just scrub it all off and start over. Less cussing for my roommate to listen to, too.

The release version of Firestorm is built on a 64-bit Linux system, apparently without problems. I'm not going to try that myself again, though. If I do build on Linux, it'll be 64-bit. Period, the end.

It's simply not possible to screw up OS X this way unless you use lots of commands that begin with "sudo". It shouldn't be possible to screw up a Linux box this way, either.