05 May, 2008
Three recent books, interesting contrast
I recently finished Black Man by Richard Morgan, Matter by Iain Banks (and The Business), and The Dreaming Void by Peter Hamilton. To be honest, I'm rather perplexed. Black Man is not really RKM's best, but it's fairly good. He manages to avoid rewriting Sheep Look Up, although it's pretty clear that's what he intends to write. It's just not quite as good as Woken Furies was. Matter was Banks' latest Culture book, and I think it's telling that I have mostly decided that Banks should take a break from the Culture and sort of point in a different direction. Banks, in particular, is a fiercely intelligent author who writes a meticulous book. There are perhaps a few typos or syntax/grammar issues in each of his books, compared to Hamilton's dozens. He also has an incredible intuition for sentence structure and paragraph punctuation. There are indeed entire paragraphs which are a single sentence, properly conjoined and formatted with various clauses and parentheticals. This probably sounds awkward, and I'd say that they're not something you'd use in spoken English, but in a book it works very well.
The transition from Banks to Hamilton was a jarring one. Where Banks aims to describe settings thoroughly and to carefully craft related thoughts into a single cohesive sentence (or paragraph, or even chapter), Hamilton seems to form text from sequences of un-connected, but related sentences. I don't have the book in front of me, but consider the text "Smith was wearing a dark blue suit. His shoes were polished. His tie was loosely knotted about his neck. Paula looked at him cautiously. 'I don't trust a man who can't tie his tie,' she said." Banks, to his credit, joins these individual sentences into, usually, a single sentence, and yet does so without seeming heavy-handed or long-winded. It was very hard to move from Matter to Void, and many times I damn near just put down Void, being unable to read text that was so choppy.
I've mentioned before that Banks writes incredibly direct and almost terse fiction. I wouldn't normally consider Stross to be long winded, but it's hard to think anything else when reading Banks. As such, I'm actually kind of confused about how I managed to finish Hamilton's Night's Dawn books. I read them perhaps ten years ago, and enjoyed them. Even back then, Hamilton was writing these monstrous thousand-page novels, and in pairs or trilogies. His recent set of books, the Pandora's Star sequence, were refreshingly short – he managed to finish that sequence in perhaps 1400 pages. I was pleased that his writing seemed to have taken a turn for more concise (not because of any lack of commitment on my part, I do love a long book), and was disappointed to see that he seems to be comitting trilogy again. The problem with this is the first few hundred (I was complaining last night that basically six hundred (of 660) pages of Void is world-building and his typical character development (every single main character in his books are these sorts of swashbuckling, handsome, charismatic dudes, with women thrown in for window dressing, and everyone else essentially being a weak contrast to the primary characters). For even the first three hundred pages of Void, he seems to be simply setting up the remaining 2,000 pages. This is a little hard to explain, but basically he starts the book breathlessly, describing a hopelessly large setting, including literally dozens of primary actors in this, and the next two books. Between the sprawling setting and huge array of characters, it was pretty easy to become disinterested in the book.
I'm left wondering whether I was simply a less sophisticated reader ten years ago (almost certainly), or if Hamilton's writing has gotten worse (this I find less plausbile, as he hasn't changed styles much). Of note is the fact that his A Second Chance at Eden short stories were well-written and concise.
As for Banks, I am continually impressed with the man. Having read Black Man after Matter, I was aware of the difference between RKM and Banks, but this was not a bad thing. Morgan seems to want to write a noir-ish kind of story with a blogger-style wit and vocabulary (and punctuation even). His phrasing and syntax is conjoined where necessary, and sparse where necessary.
I'm clearly going to have to read a few books and see if my impressions are right (that I've changed as a reader), as, while I read a lot, it's been quite a long time since I went back to Hamilton (for contrast to this impression, I re-read the last quarter or so of Revelation Space, by Reynolds, and was pleased to see that it was just an amazing book, and my impression after a few years was the same).
(currently reading: Steven Millhauser)
ruby, dashcode, and development in general
I've been writing code in Ruby the last couple weeks, per suggestion from mm w. I had actually said that I was jealous of the fact that he was writing code and that these days, I really don't. He said to just wade in to Apple's developer documentation and various APIs. This seemed to be oversimplifying to me, as the last time I peeked under the covers, Obj C was just a big ugly API that was poorly documented.
So I downloaded the gig or so of /Developer, and did just that. I was pretty shocked to see how simple the Dashcode interface, and in short order, I'd written a few trivial widgets. As I began to get deeper into the documentation I noticed the RubyCocoa bindings and was back off into Ruby land.
The API is intuitive enough that there's not much of a learning curve. The interface is facile and yet powerful enough that I didn't feel constrained by the new (-ish, to me) language. Really, the biggest concern I had was the lack of a typical last or break, as I'd find in some other high-level languages (well, mostly perl; and of course, I'm probably wrong here). Very quickly, I wrote a small application that scrapes url's in a very hash-esque fashion ( [ url => page ] => image). I created a tiny perl script to test my regular expressions, but after that was done, I had created enough classes and logic that all I had to do was throw in the Obj C bindings and a Cocoa app was generated. I'd done this in TextMate, but after I'd finished, I began to port things in to XCode which, wonderfully, has syntax highlighting, build options, debug options, and even native support for Subversion. Now, TextMate has these things, but I think their claim that it's the "Missing editor for MacOS X" is just wrong, as XCode has most of the stuff I'd need to write MacOS-API-based code, but I suppose it's useful for the other languages out there (wow, a YAML editor?).
As before, the one thing painfully missing is documentation. Rdoc is okay, but coming from perl, I can't help but be disappointed by the very small, generally close to useless documentation. There's what looks like generated documentation. An example of it being totally inadequate is thus:
----------------------------------------------------------- Object#class
obj.class => class
------------------------------------------------------------------------
Returns the class of _obj_, now preferred over +Object#type+, as an
object's type in Ruby is only loosely tied to that object's class.
This method must always be called with an explicit receiver, as
class is also a reserved word in Ruby.
1.class #=> Fixnum
self.class #=> Object
For comparison, perlmod is not just thorough, it's easy to read and written by, you know, a human:
DESCRIPTIONAnd of course, it's 4,000 words. It's possible I could be wrong, and there's some huge piece of RDoc I'm missing, but I doubt it has something analogous to perldoc's -q, or even the very useful perlop, perlre, and perlretut. The documentation, however, is much better than it was even a few years ago, and I know there are plenty of refugees from perl. Probably somebody out there is timtowtdi'ing Ruby as I write this (which is a good thing).
Packages
Perl provides a mechanism for alternative namespaces to protect
packages from stomping on each other’s variables. In fact, there’s
really no such thing as a global variable in Perl. The package
statement declares the compilation unit as being in the given
namespace. The scope of the package declaration is from the
declaration itself through the end of the enclosing block, "eval", or
file, whichever comes first (the same scope as the my() and local()
operators). Unqualified dynamic identifiers will be in this namespace,
except for those few identifiers that if unqualified, default to the
main package instead of the current one as described below. A package
statement affects only dynamic variables‐‐including those you’ve used
local() on‐‐but not lexical variables created with my(). Typically it
would be the first declaration in a file included by the "do",
"require", or "use" operators. You can switch into a package in more
than one place; it merely influences which symbol table is used by the
compiler for the rest of that block. You can refer to variables and
filehandles in other packages by prefixing the identifier with the
package name and a double colon: $Package::Variable. If the package
name is null, the "main" package is assumed. That is, $::sail is
equivalent to $main::sail.
At any rate, I'm probably over-pleased with what I'd written, but I'm still very happy I was able to go from not really writing any code to having written a Cocoa app in just a couple days.
30 April, 2008
Hardy missing lvm/raid
29 April, 2008
27 April, 2008
VMware and Leopard
Up until very recently, I was using VMware on my Macbook (2ghz, 2gb). I kept my virtual disks on an external LaCie "Biggest Quadra" because I didn't have the room on the local, 80gb, un-redundant disk. I was running between one and three machines at a given time. In addition to this, I was using the USB ports, external DVI, and had the power supply attached.
I began having failures with the machine, with the bluetooth and wireless devices disappearing, and the machine occasionally not booting. For the most part, it would run for a few weeks, and then fail to come up after I had to reboot for a software update. I mentioned this to Sandy, and she suggested that it was the logic board, again. It did seem that way. So, I wrote Apple a letter, explaining that I thought I'd found the source of the failure.
It looks like there is a problem between Time Machine and VMware. This was initially hard to diagnose, and I still may be incorrect, but I think that's unlikely. As it happens, Time Machine won't let you back up the disk it is storing differentials on. This is a good thing, of course. And, since Time Machine was backing up to the LaCie, and the VMware machines were out there, I didn't think Time Machine was actually backing up the VMware machines (and in fact, I did not want it to). However, Time Machine was running differential backups all day long, without stopping.
The cycle was thus. I'd get in in the morning, get back into the VMware environment, and almost immediately Time Machine would start. It would run for a while, and then stop, only to start again immediately. This didn't really bother me, as it didn't harm performance too much. But I started to wonder why it was doing this, especially after I started to smell burning plastic, and the bottom of the case on the left (Esc) side began to warp.
I figured something was happening that caused Time Machine to run differentials very frequently, but I wasn't sure what it was. Independently, I saw application caches that VMware was leaving on the local drive (I don't know what these are; perhaps they're the memory state of the guest machines. Perhaps Ben will comment on this). I realized these caches were large, and that they probably changed when the state of the guest machines changed. This would lead to Time Machine running a 2gb differential per guest. When it returned from this process, it would see that the caches have again changed (while it was performing the differential), and begin another backup.
Normally, I don't think this would be too big a problem. However, the design of the Macbook is such that all ports are on the left side of the machine. There's a power inverter there, the DVI port, the USB and 1394 buses, and the mike/headphone jacks. The other thing going against it is the machine is made of plastic. The aluminum machines, as you probably know, get pretty hot. At first glance, this may seem like they get hotter than the plastic machines. However, if the aluminum is getting hot, that means it's absorbing heat, and radiating it. The plastic does not (and instead, it melts).
I think the combination of the caches with Time Machine not understanding that they are caches, and VMware not understanding (and in fact is not even a party to) Time Machine's backups is causing a thrashing issue for the machine (both by reading and writing large sums of data and calculating differentials). I'd wager that if you could configure where these caches were (such as on the same disk as the guest slices, or at least not on the root volume), the problem would be solved. Additionally, if Apple split the ports to both sides like they do on the aluminum machines, the heat would be better distributed (the DVI port and inverter get pretty hot without data being pushed across the buses). The last thing that's implicated in this problem is the positioning of the fan. That is, it is positioned to cool the CPUs, but doesn't get much airflow to the buses (ostensibly because such a problem is an edge case).
I had asked Apple if they'd take my Macbook and work out an RMA with me (because it was under warranty, I could have just asked the local Apple store to replace it; I saw this as wasteful, as I had no faith it wouldn't happen again). Unfortunately, in the time I was waiting for them to get back to me, the machine just failed to boot. Most of the onboard devices failed to work, it would boot sporadically, and not be useful long enough when it was awake for me to do anything with it. And so, I had the machine swapped out at the Apple store, and got a Macbook Air.
This was a hard decision. I knew that the Air is a little pokey as a laptop, and it certainly doesn't have the heat dissipation ability of the Macbook (there's much less fan capacity). However, it also doesn't have that enormous bus thing on the side of the machine. In fact, it is pokey enough that I won't be able to put it through the hell that my poor Macbook went through. This was by design. Instead, I got the Air to force me to get a proper machine for my desktop. The other thing here that bothered me is I had burned out two logic boards on my own personal machine for stuff that I was doing for work, and my employer wasn't decent enough to buy me a Mac for the office (a religious, dogmatic decision, having nothing whatever to do with the utility or robustness of the Mac itself).
So I now have a desktop at work, which is unfortunately not as good at running VMware as my Macbook was (it's an HP), but will last a lot longer.
I love the Air. It's just about everything I need in a personal laptop. There's been a little bit of adjustment moving to a machine without an ethernet jack, but then I have a period of adjustment for every new Mac I get. And, I dare say it is actually more robust than the other Mac laptops I've owned (a 12" iBook G4, a Titanium G4/500, a 17" 1.33ghz G4, the 13" 2ghz C2D). When I first went to the store to make my decision, I picked up their demo Air, and literally torqued it back and forth, forwards and backwards, to see if it would flex. It did, a little, but held up a lot better than any of the other machines. It's simply more rigid, although I can't explain why from looking at it. The only moving part is the hard disk (and I guess the fan...), and I hope to eventually replace that with SSD (although I am not interested in dropping a kilobuck on it).
Apple, when I called Applecare, said that it was a known issue between VMware (and some other, unnamed applications) and Time Machine. They told me that they (Apple, I guess) were working with the vendors to fix these problems. I of course can't verify that, but I don't think they have much reason to lie to me about it. Note also that this was tier 2 support, not the front-line people.
Alas, I got a call a few days after I'd traded in my Macbook for the Air, from Cupertino, asking how things were going. They were concerned and wanted to see what they could do for me, which is exactly what I expected from them. Much as I bitch and moan, they do seem to genuinely support their products, and want their customers to be happy (and I suppose I've been buying a new computer from them every two or so years for twenty or so years, so it works out for both of us). I explained that I had traded in the Macbook, and that I thought I had the problem figured out, but that I had wanted them to know what was going on so they could look into it and possilby fixed it. Happily, they said they wanted to fix it, and that the letter had been passed on to the relevant engineer types. Furthermore, they said that they would keep in touch with me to make sure the Air was a good fix, and asked me to get back in touch if I should happen to torch another machine of theirs. Somebody smack me next time I say I want an alienware laptop.
I really wish that one day I could work for a company that did not make decisions about what hardware to buy their user based upon the whims of various persons in management. I don't think anyone at the office had any question whether I was more productive on a Mac. They just don't like them, and offer the (incorrect) explanation that if they had to give everyone the machine (brand) they liked, support would be harder. This is inane, of course. I should mention that AOL was very good about letting me use whichever hardware made me a more productive employee. I had a Quicksilver mac and I think a Dell Precision, running Linux. And nobody ever had to come "support me" because of problems with either of them. It would be nice if other companies could think this clearly.
And so, the Macbook is dead, long live the Air.
23 April, 2008
Linux on the desktop
Probably the biggest issue with it is going to be driving two displays (rotated 90°, which is a pain to set up) with Xinerama. X, I think, is Unix/Linux's biggest problem in widespread adoption. It used to be that OOo sucked, was slow, etc. But with multi- and many-core processors, many gigs of ram, fast disks, and the like, the complaints about inefficient and slow software just aren't relevant anymore. Exactly how fast do you have to have your word processor run? (and believe me, I'm an intractable user of word processing)
At any rate, I suspect I'll be installing that sucker tomorrow. If things work out well, I may even bring up a new machine running VirtualBox to host my various Windows instances.
16 April, 2008
Lack of professionalism in SuSE
# For all those fellow experts out there: yes I know that this is NOT a
# firewall setup but a simple (no, not simple, it tries actually to be
# clever) packet filter. But if we would call this "SuSEpacketfilter",
# only a few user would install it, hence general security would be bad.
It really pisses me off that the config files are so jovial and informal in SuSE. The firewall script actually says "Good luck!" like luck has anything to do with it. I'd be furious if I found shit like this in Solaris, but Solaris is an operating system for grown-ups, and treats you like a commercial Unix should. I feel like I'm using a toy when I work with SuSE, and that I probably can't complain about the shortcomings of Linux because it's built by shut-in basement dwellers. But then, Red Hat has a very nice, very clean, very professional Linux. I've even found that Ubuntu is more clean and clear and no-bullshit than SuSE. SuSE is just an awful, awful Linux. I can't get 'round that. It just has no redeeming qualities.
If you don't have anything intelligent to say in your witty little remarks, don't put the fucking comment in the config file I'm editing when I want to strangle the vendor. The last thing you want to do is be the petrol on the fire that comes from penetration diagnosis at 0400. I am sure you think it's cute or funny, but I don't want cute and funny in my fucking firewall, in my init scripts, or man pages.
"fellow experts," my ass.
14 April, 2008
civil unrest
Without directly advocating the “violent overthrow of the United States government,” it is still possible to discuss how that might come about, in the face of a government perceived as unfavorable, and a public, which is, without doubt, unimpressed and in fact compelled to action. The action, in the case of the American populous, seems to be voting and forming NGO’s and PAC’s. If one is to look at the effects of these various organizations, and indeed voting itself, it is hard not to see the outright failure of all of the above.
Looking at one of the largest, most visible PAC’s, Soros’ Move On, one need look no further than the 2004 election to see its most immediate failure. Without making a value judgment one way or another, it is plain that the goal was not accomplished. Adherents may bring up explanations (which is a polite word for excuses) such as “[Bush] did not gain a majority of the vote,” or hint at secret conspiracies and machinations of that particular dynasty to retain power (for one thing, it seems unlikely that any more of the Bush progeny will retain power after the coming election; for another, the opposing party is putting forth its own dynasty). The summation, however, of this event is the most important, because that is indeed what we are left with after the election. The fact is, a single person was elected president, and that person nominated and installed his own staff, judges, and military advisers. In fact, in the tumult that followed both the initial attack on Afghanistan and the invasion of Iraq in March of 2003, said president was incredibly clear on his perception of the office: he believed he was (and it could be argued that he was, although I don’t see a need to address the claim, as it’s clearly irrelevant now) Commander in Chief of the armed forces.
I have no motive or allegiance beyond stating a simple fact when I say that an equally ineffective NGO to Soros’ PAC is al Qaeda itself. Their ultimate goal is in fact murky, but the rhetoric seems to be primarily to extricate the Saud family from power in the Arabian Peninsula, as well as to exact some sort of vague revenge on the West, but primarily America and perhaps Britain. There have indeed been a number of attacks on both British and American soil. And, there have been many thousands of people killed in military service in the Gulf. But if one is to look at, again, the summation of this effort, the net effect is that this conflict is not going terribly well for al Qaeda. We can discuss this ad nauseum, but if one looks solely at the numbers, there are figures varying from 600,000 or more from the New England Journal of Medicine (NEJM), and less than 100,000 from the Pentagon. Even if the Coalition Forces (to use their term for purposes of identification, not to indicate a side taken) had lost ten times as many people as the current figures, it would still be nothing like an even fight. The only plausible argument I see to this is to indicate the costs to both sides in this conflict. Where the Coalition Forces are absorbing their losses figured in the billions of dollars, al Qaeda is figuring their losses in the tens of thousands of people killed. If one were to listen to American sentiment on the subject, we very rapidly hear questions such as that by Mr. Kerry, “what is the cost of a single human life?” Surely this factors for both sides of a military conflict; in which case, we can assume that on some level, people are worth at least a few hundred or even a few thousand dollars, as horrific as that sounds. If such is the case, the conflict looks a little closer to “even,” although I would suggest that it’s not even close to parity.
And so, it’s taken seven hundred words to express what I think is a reasonably cogent argument that the current approaches to changing government (in the case of Move On), and to changing world sentiment (in the case of al Qaeda), are entirely incapable of bringing about change. As I’ve said before, the only instrument that seems to bring about change is violence. But how do we measure violence? There is no commonly accepted unit of violence. One could suggest that a “troop year” (the number of troops times the number of years over the length of a conflict) or a “man tonnage” (the amount of tonnage delivered either per attacker or per attacked; the nuclear strategy seems to lean heavily in this direction), but in the end, neither of these has proven effective in regime change, either locally or in a foreign state.
So perhaps I should amend my previous statement that violence is the only mechanism for bringing about regime change. Further, I’ve discussed why regime change is necessary: there is simply nowhere to go to form a new state with the required ideals to satisfy the disaffected. This brings me to Gibbon. Gibbon states
“The power of the sword is more sensibly felt in an extensive monarchy than in a small community. It has been calculated by the ablest politicians that no state, without being soon exhausted, can maintain above the hundredth part of its members in arms and idleness.”
What does this mean? If we examine the context of this remark, it is the assassination of Pertinax by the Praetorian Guard, ca. March 193 AD. Gibbon describes the origin of this situation (which is admittedly pretty dark, even compared to the unrest in the contemporary West) as
“He distinguished [the Praetorian Guard] by a double pay and superior privileges … [u]nder the fair pretenses of relieving Italy from the heavy burden of military quarters and of introducing a stricter discipline among the guards, he assembled them at Rome in a permanent camp, which was fortified with skillful care and placed on a commanding situation.”
What is important about this is these guards were, as installed by Augustus Caesar, existed to
“maintain his usurped dominion … [of] constant readiness to protect his person, to awe the senate, and either to prevent or to crush the first motions of rebellion.”
Let us remember for a second that Augustus Caesar knew full well what a rebellion entailed – as he succeeded Julius Caesar, and oversaw the exile of Marcus Junius Brutus and his conspirators (who, it is important to remember, viewed themselves as liberators). Pertinax himself did not especially fear the Praetorian Guard, as he had replaced Commodus, who was a miserable ruler and disliked by the people. This last piece alludes to the other component necessary in a violent revolution (which is really what regime change means to those involved).
The Praetorians had been involved in the sacking of a number of rulers of Rome. Yet, in each case, they were merely the focal point of civil unrest. We can look at the end of Julius Caesar’s reign, at the end of Commodus’ reign, or, perhaps comically, the end of Gaius’ (Caligula) reign, and so on, for at least a couple hundred years in Western Rome. The end of Eastern Rome is perhaps more interesting, in that involves the defeat of a state by a foreign power. However, if we again consult Gibbon, we see that the
“[t]heir hasty and unconditional submission was palliated by a promise of future revisal; but the best or the worst of their excuses was the confession of their own perjury. When they were pressed by the reproaches of their honest brethren, ‘Have patience,’ they whispered, ‘have patience till God shall have delivered the city from the great dragon who seeks to devour us.’”
And again at the defeat of Constantine XI by Mehmet II,
“[f]or the payment of his feeble and mutinous troops, Constantine was compelled to despoil the churches with the promise of a fourfold restitution; and his sacrilege offered a new reproach to the enemies of the union.”
While Constantine is revered and indeed beatified, and this is probably appropriate, it is very clear that he was unfortunately ruling during a period of unrest ranging from ennui to religious unrest, and again, mutiny.
With my apologies for not having more brevity in this explanation, I would hope that it has become clear that simple violence is not enough to overthrow a government; it is not enough to overpower and overrun a state; and it is never entirely a military act when it is successful. It is of primary importance that such revolts, military actions, and even assassinations always come on the heels of pronounced, protracted civil unrest. It is a little melodramatic to state that the ruler serves at the pleasure of the people, but in fact this seems to be the case. As recently as World War II France, or present-day Iraq and Afghanistan, and back of course to Julius Caesar and the unfortunate Pertinax, when sufficient civil unrest exists, and a state of an armed population, the only release seems to be civil revolt.
Let’s go back to Gibbon’s figure. It is especially telling (although it is not clear which ablest politicians he refers to) that current figures for the number of people employed (in both civil and military capacity) by the United States Defense Department approaches four million people. Further, that this exceeds Gibbon’s one percent of the population of the United States. Lastly, to this mix we add a near fifty-fifty partitioning of the States on political lines, highest-ever voter turnout, the highest-ever membership in militant religious organization, the highest-ever level of firearms in the hands of civilians, the utter collapse of commercial finance and the ballooning of private debt, and the highest-ever disapproval rating for a president. It would seem that all the pieces are in place for something to occur, although what that something would be is unclear.
What if we instead postulate on what additional elements could be added to the mix, further heating the already unpleasant concoction. There are a number of items, such as a further attack on the United State by al Qaeda or other actors (although I must stress here that, as in 2001, such an attack is merely a catalyst for a change it cannot effectively influence, nor can it know the outcome thereof), which, according to Robert McNamara (who claims to be quoting Perry), is increasingly likely (one in ten as of 2004) to be nuclear (more on this another day), the “wrong” president getting elected (which candidate is the “wrong” president is irrelevant) a religious agitator (e.g., Falwell), an environmental disaster (such as an Exxon Valdez in CONUS or another nuclear meltdown), an outbreak of e.g., H5N1, financial vacillations (inflation/deflation, taxes, trade embargoes) or even a particularly inflammatory piece of literature (e.g., Martin Luther, Galileo, your average fatwa).
The precursor(s) to each of these stressors is readily evident today. How much more stress can be added to an already volatile mix of arms, unrest, and a large military? In Rome, these events took place rather more rapidly than they do today. However, today’s empires are much larger, and the power structures are more stratified and ossified than they have ever been. This does not, however, diminish man’s capability for violence.
A ruler, serving at the pleasure of an armed populace, commanding an unhappy military, and sitting atop a giant cauldron of civil unrest, would do well to simply get out of its way, lest they succumb to the obvious fate of such rulers.
Or, more succinctly, sic semper tyrannis.
10 April, 2008
Okay, okay, I concede
I really hated Ubuntu the first time I used it. It felt to me like a Linux that somebody had taken the teeth out of. You're greeted with this silly noise and they abstract away the boot process. The desktop is about as smarmy as the rest of Linux is looking these days, and they use all the goddamn "conf.d"-style directories, rather than having a single file where everything can be edited in. You're expected to manage everything from packages, to the degree that nobody has any information about managing the OS from the command line.As I continued to use it, and I suppose it's been about six months as my desktop, I begrudgingly gave in to its downs-syndrome-esque charm. It's kind of looking at this hideous creature and saying, well, it's got a good personality. The truth is, though, it does have a good personality. While I don't like their goals (making it retarded), they seem to have accomplished them without stepping all over my operating system.
It's manageable from the GUI, and it's manageable from the shell. At this point, I should point out that the "other" Linux I work with is SUSE, which I find to be an absolute abomination. In SUSE, it is near impossible to configure and troubleshoot the box. Just don't even try. Everything has to be done from the GUI, or you'll spend an hour (if you're lucky) trying to reverse-engineer their stupid take-all-the-choices-away-from-the-user daemons. Worse, if you dive into the source or the documentation, there are emoticons all over the place, and people using words like "lol" when describing a bug, or a decision that's counter-intuitive. There's nothing I hate more in Unix than those smug little fucks, being proud of their stupidity. Look, user, I disappeared the config file for this app so you don't have to see it!! Lol!
So, in comparison to what seems to be happening everywhere in Linux (notable exceptions being Linux From Scratch and RHEL), Ubuntu seems to have a balanced approach, offering both the mind-numbing gui as well as a reasonably coherent at&t substrate. I am particularly pleased with the /etc/network/interfaces file, despite initially thinking it would be terrible. The other thing is, that while it uses apt as a package manager, I can also use dpkg, rpm, and yum (and I'm sure others I'm not familiar with). This is really important, as it allows me to install and keep track of packages from anyone, and manage them with the best tool for the job. Recently I pulled down a bunch of rpms for a piece of software I'm using at work, and was able to modify the packages and reinstall them with the goodies I wanted in them. The other benefit of this is that I have installed numerous packages for the HPC cluster locally, from different sources. Through this method, I actually have a fully functioning HPC node on my laptop, which is configured seamlessly with the rest of the system, and if I didn't know it was there, it wouldn't bother me in the least.
This is pretty impressive. The other thing that struck me was that most of these fancy post-post-modern Linuxes have a limited range of hardware they'll run on because they extensively use new features that might be poorly supported on some platforms. In this case, I was able to install it on my nc2400 (HP) with relatively few issues. It happily sits on the wireless at home, gig-e at work, and I don't even notice it switching interfaces. This, compared to RHEL/CentOS, Fedora, SLES, and a vanilla Debian, all of which failed to even boot.
Anyhow, I am pleasantly surprised.