To those it may concern

Please find enclosed an updated version of Mike Taylor's FAQ, "Why Debian Is Not My Favourite Operating System".

  1. How can I add a package?

    That's easy! Just use aptitude install package.

  2. How can I upgrade my installation to the latest version?

    That's easy! Just use aptitude update; aptitude full-upgrade.

  3. How can I search for a package?

    That's easy! Just use aptitude search keyword.

  4. How can I reconfigure an already-installed package?

    That's easy! Just use dpkg-reconfigure package. (Sorry, this one still sucks.)

  5. How can I get cutting-edge versions of some packages?

    You can upgrade to testing or unstable by replacing your distribution name in /etc/apt/sources.list with one of those keywords, and then following the instructions in FAQ 2. Please be warned that this is not, in general, a reversible operation.

  6. How can I keep stable versions of most packages?

    You can't; mixing and maxing packages from stable with packages from unstable or testing will likely result in insanity, hair loss, and result in a broken system. However, if you want to mostly stick with stable, but want updated versions of a handful of packages, backported versions of many packages are available at backports.org; these are newer versions of packages compiled against the older libraries in stable. See the site for more information on how to make use of backports.

  7. Why is php4 deleted when I install netpbm?

    It isn't. However, when trying to diagnose other issues of this kind, you can use aptitude why package to tell you why a certain package is required, and aptitude why-not package to tell you why a certain package conflicts with other packages if you try to install it.

  8. Why can't I reinstall PHP4?

    You can, but see FAQ 7 for more information about similar issues.

  9. How can I downgrade my system back to stable?

    You can't. While you can attempt to downgrade any individual package by forcing the package manager to select an older version (for example, aptitude install package=version), downgrades are explicitly not supported, and trying to downgrade masses of packages at once, or downgrade a package to a much older version, will likely result in failure and a broken system.

  10. How can I fix “also in package'' errors?

    Don't downgrade. If you got this error while doing something else, report a bug.

  11. How can I fix another, seemingly identical, error?

    Seriously, no downgrades!

  12. How can I fix yet another, also seemingly identical, error?

    I mean it, no downgrades!

  13. How can I fix all the other similar errors?

    Seriously, I'm not even joking.

  14. So how the hell are you supposed to downgrade?

    You're not!

  15. What's the relationship between apt, dpkg and dselect?

    dpkg is the low level tool for manipulating Debian packages. apt is a library that provides additional functionality on top of dpkg, such as locating and downloading packages on demand, and performing dependency analysis to install dependencies at the same time. apt-get is a basic apt frontend usable from the command-line. aptitude is a more advanced apt frontend which is usable from the command-line as well as having an ncurses GUI. There are also a variety of other package management frontends, such as synaptic. dselect is an ancient dpkg frontend that basically nobody uses anymore; if you don't know what it is, then forget you ever heard about it.

  16. Remind me again how easy Debian makes package-management?

    Well, Debian's far from perfect, it's just better than everything else. *g*

Increments in Monochrome

I've recently been grappling once again with an old problem: how to manage the development evolution of an idea that's too big for my mind to consider all at once. Technology has provided tools to help deal with this problem in general, mostly in the form of enhanced communication channels and "external memory" (ie. storage), as well as information processing tools to sift through external memory. Unfortunately, these tools only go so far; for one thing, in order to write down information or otherwise store it externally in some form, you need to be able to encode the information (say, in English). This works great in many cases, but is of little help in a situation where the ideas and concepts are not sufficiently crystallised in order to be able to encode and communicate them. For ideas with sufficiently small scope, it's not a problem to keep the idea in my mind over a period of time, as I slowly refine and crystallise the idea to the point where it can be communicated to others; but every now and then, something comes along that's so huge that I can't keep it in mind all at once.

One solution that some people resort to is encoding partial fragments of the idea independently. Unfortunately, this leads to a breakdown in cohesion and coherency; instead of a single coherent idea, you now have a sprawling mass of interrelated ideas that don't fit together so well, which really isn't a good substitute for the real thing.

Unfortunately, I don't yet have an answer to this; the particular idea that I'm working on (which will probably turn into a blog) is simply too important to break down into separate ideas, as it just won't have the necessary impact in that form. Every time I pick the idea up again, I realise that I've lost my grasp on various aspects of the idea, so it seems like I can't make any progress; as soon as I develop one aspect, I lose what I've developed on another aspect.

Anyhow, I guess I'm not really expecting a solution to any of this, but I thought I'd throw it out there while I'm banging my head against the wall.

PETArds

People for the Ethical Treatment of Animals… sounds like a worthy cause, right? Sign me up! Unfortunately, the organisation seems to be run by clueless retards. Here are two of the latest examples I've run across:

Torture in Thailand: Imogen Bailey features in an advertisement protesting cruel elephant "training" techniques in Thailand. In the ad, we have the eminent Ms. Bailey looking like a playful submissive dressed, err, undressed for a bondage shoot; this is an advert /against/ elephant torture?

Human Battery Cage: Ah yes, the battery cage, bane of hapless chickens everywhere. From the site:

The Human Battery Cage is a unique piece of installation/performance

art designed to show the public, in a vivid and realistic way, the

cramped conditions caged birds are subjected to for the production of

eggs for human consumption.

Right, so, they have a nice gallery full of people sitting in the cage in these horrific cramped conditions… and every single one of them has a grin so big it looks like The Joker was on makeup duty for the day. Hello?

Basically, it seems like PETA don't care what message they send, as long as people get the message; this seems to completely defeat the point of trying to send a message in the first place.

Even in death, I gave you life

This is more of a “dear diary” or “note to self” post; go read something else if that’s not what you’re looking for. It follows on from an earlier post, but isn’t nearly as introspective, so don’t look for any deep insights here. I probably wouldn’t have posted this at all, but the words were flowing, and lately I’ve been trying to take advantage of that whenever I can. So, don’t say I didn’t warn you…

I was the one who would not abandon you;

even in death I was the one who would not leave you.

I used my freedom to protect you,

and all the while direct you;

do you remember me this time?

Even in death I gave you life,

I gave you life.

– Dream Theater, The Ministry of Lost Souls

For the past few weeks (actually, past couple of months), I’ve been rather busy on the work front. I don’t want to go into too much detail, because the detail is mostly irrelevant, but suffice to say that it’s been enough to consume a substantial amount of time and attention. I tend to work best under pressure, and so I’ve been operating at much closer to my maximum potential than I’ve experienced for a while; coupled with my relatively newly unlocked emotional intensity, this has made for a rather extreme ride, although it has also been immensely fulfilling.

There’s one aspect I’m having to adjust to right now, though. I’ve been drawing much more deeply on my emotional strength to keep me going; this was necessary to avoid burnout, but since I’m still not really used to these levels of intensity, I’ve been experiencing again something I had completely forgotten about until now. Somewhere back when I first took control of my emotions after flaring out of control for so long, I recognised that while certain situations might threaten to overwhelm me with negative emotions, turning away from these situations would be just as fatal in the long run as suppressing the emotional responses would have been. Turning away means isolating myself from parts of the world, while suppressing the response leads to a mental callousness or numbness that would prevent me from empathising with others. I knew I could cope with the emotion no matter how intense, so it was just a matter of exerting the willpower to endure the experience.

Over time, I became used to the process; the experience never became any less intense, but the willpower required to avoid turning away became second-nature. Now that things have escalated to a much higher level, I’m suddenly having to deal with this temptation again. When confronted with pain, suffering, sorrow, anger, and other negatives, I’m finding that a much higher level of willpower is required. Intellectually, I know this isn’t something there’s a mental limit to; no matter the intensity of the emotion, the mental capacity will be there to cope with it; if not, the mind automatically filters the intensity down to manageable levels. However, knowing this, and actually practicing it, are two completely different things; so, I’m having to learn all over again to consciously suppress the urge to turn away from the situation at hand, or suppress the emotional response.

Anyhow, that’s all for now; I’ve got some other stuff floating around, but it’ll have to wait for another post, since nothing is concrete enough yet to put into words.

Elephant naming

The blind man at the back takes firm hold of the tail and says, "But why do we need to call it an *elephant*? No-one knows what that is. Everyone knows what a rope is, so we should just call it a rope."

And that is how the elephant came to be labelled a rope in all the guide books.

— Dougal Stanton, Haskell-cafe mailing list
(in <ea8ae9fb0901161321k1beadf8crd42e57e6cc4e3587@mail.gmail.com>)

SSH h4x0rz

I continue to be baffled by the SSH intrusion attempts that show up in my logs.

Jan 11 10:03:47 azure sshd[6044]: Invalid user white\twhite from 121.144.130.32

Jan 11 10:04:23 azure sshd[6070]: Invalid user venta\tventa from 121.144.130.32

Jan 11 10:04:34 azure sshd[6081]: Invalid user white\twhite from 121.144.130.32

Jan 11 10:05:11 azure sshd[6106]: Invalid user venta\tventa from 121.144.130.32

No, none of my usernames have a tab or a t in them.

Jan 10 17:24:05 crimson sshd[23214]: Invalid user llinco361ir from 209.222.52.89

Who?

Jan  8 13:14:12 crimson sshd[12153]: Invalid user has-cechova$ from 64.119.177.36

Jan  8 13:46:54 crimson sshd[13596]: Invalid user !a@b#c from 64.119.177.36

Jan  8 13:46:56 crimson sshd[13598]: Invalid user !@#abc from 64.119.177.36

Jan  8 13:47:26 crimson sshd[13620]: Invalid user mail$ from 64.119.177.36

Jan  8 13:50:37 crimson sshd[13762]: Invalid user Xu}7fXta!p7y from 64.119.177.36

Jan  8 13:50:39 crimson sshd[13764]: Invalid user Xu}7fXta!p7y from 64.119.177.36

Jan  8 13:50:42 crimson sshd[13766]: Invalid user Xu}7fXta!p7y from 64.119.177.36

Jan  8 13:50:45 crimson sshd[13768]: Invalid user Xu}7fXta!p7y from 64.119.177.36

Jan  8 13:50:47 crimson sshd[13770]: Invalid user Xu}7fXta!p7y from 64.119.177.36

<snip more identical attempts>

Why would any of these usernames exist on my system? And why does “Xu}7fXta!p7y” get a zillion attempts, but the others only get one each?

Jan  8 11:09:18 crimson sshd[7359]: Invalid user 123!@# from 190.14.234.71

Jan  8 11:09:54 crimson sshd[7383]: Invalid user bl345hajk from 190.14.234.71

Jan  8 11:15:46 crimson sshd[7607]: Invalid user fv11r01rc3@l from 190.14.234.71

Jan  8 11:15:52 crimson sshd[7611]: Invalid user pcsarl,49 from 190.14.234.71

Jan  8 11:19:16 crimson sshd[7746]: Invalid user r00tp@ssw0rd from 190.14.234.71

Jan  8 11:21:45 crimson sshd[7845]: Invalid user 4fj^w! from 190.14.234.71

Jan  8 11:22:03 crimson sshd[7857]: Invalid user #jaime56 from 190.14.234.71

Jan  8 11:34:57 crimson sshd[8360]: Invalid user moromete*!*@* from 190.14.234.71

Jan  8 11:35:01 crimson sshd[8362]: Invalid user moromete*!*@* from 190.14.234.71

Jan  8 11:35:04 crimson sshd[8364]: Invalid user cartaya*!*@* from 190.14.234.71

Jan  8 11:35:07 crimson sshd[8366]: Invalid user cartaya*!*@* from 190.14.234.71

Jan  8 11:35:22 crimson sshd[8376]: Invalid user moromete*!*@* from 190.14.234.71

Jan  8 11:35:25 crimson sshd[8378]: Invalid user cartaya*!*@* from 190.14.234.71

Protocol mismatch: expect SSH but found IRC.

Jan  8 10:33:41 azure sshd[17826]: Invalid user !#!@#&*#!@#$ from 190.14.234.71

Jan  8 10:33:54 azure sshd[17834]: Invalid user !@###$@ from 190.14.234.71

Jan  8 10:42:09 azure sshd[18122]: Invalid user #@#POLICE@!!@!@!@ from 190.14.234.71

Jan  8 10:43:45 azure sshd[18188]: Invalid user *&_%$#*&!@#$@! from 190.14.234.71

Jan  8 10:44:34 azure sshd[18215]: Invalid user fericitmereu@l from 190.14.234.71

Jan  8 10:53:09 azure sshd[18577]: Invalid user %$#$%!@#^& from 190.14.234.71

Shit! It’s the POLICE, run for it!

Jan  8 10:59:41 crimson sshd[6038]: Invalid user kx028897chebeuname+a from 190.14.234.71

Who?

Anyhow, if you have some explanation for any of these, please let me know; I’m dying of curiosity.

Denial; realization

I have tasted of the fruit,
and it's opened up my eyes;
it's given me a thirst,
that's so hard to satisfy;
drink from juicy lips,
delicious in a kiss,
allow yourself.

— Infected Mushroom, Illuminaughty

Fear of change is a common human affliction. Some fear change in the world around them, because they do not know whether they will be able to survive in a world that is different to the one they now live in. Some fear change in all things, because they fear that the change may be for the worse, rather than the better. Others fear intellectual change; that is, a change in their thinking, in their mind. This fear stems from a fear of losing one's identity; and of course, the accompanying fear that should such a change occur, they would no longer be able to understand why the change is good or bad, or perhaps even realise that any change has occurred.

Such fear is certainly not baseless; it can be truly terrifying to observe the downward spiral of someone afflicted with a psychological or neurological disease that slowly tears apart what was once a person, while the individual thus afflicted is almost oblivious to the process. Then there are forms of "brainwashing", or forced intellectual change; people hear of things like the so-called "Stockholm syndrome" (which, incidentally, is not a real medical term), and brainwashing through the use of psychotropic drugs and mental torture. Thus, it is perhaps not such a great leap from fearing these extreme scenarios, to fearing any kind of intellectual change at all.

However, down this path lies many dangers. First and foremost are the consequences of being unable to correct incorrect views that one holds; you need no longer worry about changing from correct beliefs to incorrect beliefs, but at the same time, any incorrect beliefs you hold will continue to mislead you, as you resist any attempts to change them. Then, too, there are the consequences of isolating yourself from others; even if you are, in fact, right, and they are wrong, you cannot hope to interact with them on anything more than a superficial level if you cannot at least understand their perspective, however incorrect it may be.

Thus, while I respect in some way those who seek to avoid intellectual change, I choose to embrace it fully. This does not mean that I buy into any hair-brained theory or belief that gets thrown my way. Any new ideas and concepts are carefully examined, tested, torn apart and put back together; but at the end of this process, if the new idea meets muster, then I will embrace it. Far from seeing this as "losing" myself, I feel that the new me is simply something greater than the old me; I don't discard the old beliefs or perspective as the new ones are embraced, I simply cut them out of the decision-making loop. Thus, I retain all of the previous awareness I had, but now it is augmented by new and different things.

I should, perhaps, stress the latter point; while some people seek to forget about painful memories or times of their life, to "put it behind them", I don't wish to do that. I don't wish to dwell on the past, but neither do I wish to discard the past, and lose the value of experiences. All of the pain, misery, suffering, and darkness is as much a part of me as the joy, love, peace, happiness, and light; to discard that is to discard part of who I am, and to become something less than I was before.

I urge those of you who fear change to, instead, embrace it, and release yourselves from that fear.

Reassessing

That age is best which is the first,

When youth and blood are warmer;

But being spent, the worse, and worst

Times still succeed the former.

— Robert Herrick, To the Virgins, to Make Much of Time

Feed my will to feel this moment,

urging me to cross the line;

reaching out to embrace the random,

reaching out to embrace whatever may come.

— Tool, Lateralus

Breathe… the air while you still can;

leave… all tomorrow’s plans.

Here… the calm before the storm;

heed… the message of the Dawn.

— Rhea’s Obsession, Death by Moonlight

I know, I know, the timing is horribly ironic; I’m writing this post on New Year’s Eve, yet I find the concept of the “New Year’s Resolution” to be laughably crude, simplistic, and naïve. Nevertheless, here we are; the self-realisation I alluded to in a previous post has given rise to things I never could have imagined. For the first time in years, I’m truly operating outside of the reactionary prison I built for myself, without ever realising it. In many ways, this changes nothing; but at the same time, it somehow changes everything. One particularly important aspect of this epiphany (at the risk of sounding pompous): stepping outside the cage unlocked a reservoir of inner emotional intensity that I did not believe existed; it seems this may have been the cause of the “muting” of my own emotions. For some, being suddenly deluged by emotional energy like this may have been devastating, but for me, it’s really the exact opposite; being driven to the edge emotionally is something I can draw deeply on for strength, regardless of the nature of the emotion. Intense fear, intense joy, intense sorrow, intense anger, it’s all the same to that part of me, although the negative emotions do take their toll on me in other ways.

This brings me to the next aspect: I’m now also aware that the depression I thought I had long since left behind me was never truly gone; but with the aid of this new-found source of emotional energy, I’ve finally been able to perceive my depression on a mental level for the first time. In the past, the only way I’ve been able to gauge the effects of the depression is through the indirect physical effects that it’s had; while others close to me could sense the darkness, it always overwhelmed me to the point where I was not even consciously aware of it while being affected by it. This doesn’t mean that I’ve suddenly been able to finally throw it off for good, but now that I’m aware exactly how and where it has been affecting me, I’ve been able to start doing something about the problem.

One particular quandary I find myself in now, is deciding exactly how much of this new-found emotion to show others in my interactions with them. To a large extent, my normal social responses, body language cues, and so on are completely simulated; my natural responses don’t even vaguely match what most other people actually expect to see, and so I have to fake it in order to avoid miscommunication. I’ve mostly been doing nothing to reveal the changes in my interactions, but concealing my emotional reactions to this extent seems somehow dishonest, although I couldn’t really explain why. I guess it’s something I’ll have to figure out as I go along.

On a practical level, this hasn’t yet had any effect on a day-to-day “getting things done” level; I’m right in the middle of the holiday season, so things have been relatively quiet, and I’d been planning on taking as much time as I could to just sit back and relax anyway; but it looks like I’m going to be approaching life quite differently in some ways next year, as I start focusing on driving my real priorities forward, rather than just reacting.

The thing that truly terrifies me right now is that I’m not sure I’ll be able to hang onto the state I’m in now. I can easily imagine slipping back to where I was before in a few weeks, at which point all this will seem like so much drivel and handwaving. Then again, there’s not much I can do about it, and I won’t truly be able to grasp what I’ve lost if I do lose it again, so I suppose there’s no sense worrying about it. Somehow, that line of reasoning isn’t particularly comforting…

JavaScript horrors

Okay, so you probably already know JavaScript is bad; but did you know exactly how bad? Here’s a couple of my favourite examples; if you haven’t seen all of these already, then hopefully you’ll also be saved some future headaches by reading this. Please note that I am using = to denote the concept of structural equality, since there isn’t really any JavaScript operator that maps to that concept.

String coercion:

[js]

"5" + "10" = "510"

5 + "10" = "510"

"5" + 10 = "510"

5 + 10 = 15

[/js]

[js]

[1,2,3] + 4 = "1,2,34"

1 + [2,3,4] = "12,3,4"

[/js]

[js]

null + "foo" = "nullfoo"

undefined + "foo" = "undefinedfoo"

null + [1,2] = "null1,2"

undefined + [1,2] = "undefined1,2"

null + null = 0

undefined + undefined = NaN

[/js]

Array constructor:

[js]

Array("1", "2", "3") = ["1", "2", "3"]

Array(1, 2, 3) = [1, 2, 3]

Array(4) = [undefined, undefined, undefined, undefined]

[/js]

“Equality”:

[js]

1 == 1 = true

1 == 2 = false

1 == "1" = true

[1] == 1 = true

[1,2] == "1,2" = true

[1,2,3] == [1,2,3] = false

var x = [1,2,3]; x == x = true

null == undefined = true

null == "null" = false

[/js]

Fantasy

And I,
want to tell you;
but words so clumsy are not my friends,
they starve these thoughts when they begin.

And I,
still need you to know;
but my lips are tightly holding back,
the sentiment inside is lying trapped.

— The Crüxshadows, The Sentiment Inside

So, you may be wondering what's up with the weird prose I've been posting here lately; hopefully this post can shed a little light on something that's not so easily put into words. We're going to be heading into some of the deeper regions of my mind here, so if none of this makes any sense, it's probably either because your mind is wired very differently to mine (which is true for most people), or because I'm just a raving lunatic (I certainly hope that's not the case, but there's obviously no way for me to tell).

I have a relatively high degree of meta-awareness of my mind's functionings; I've recently discovered that it doesn't actually go as deep as I thought — or rather, that my mind goes deeper than I had previously thought, but nonetheless, I suspect this self-awareness is above normal levels. I am also a concept user (this may, in fact, be the source of my self-awareness); as a high-level concept user, my mind tends to make associations and take note of isomorphisms across concepts drawn from completely unrelated areas. One of the results of this process is what I have sometimes referred to as my "inner fantasy narrative".

At a certain level, all concepts are simply metaphors layered on other metaphors; if I use a word, such as "red", that word is simply a metaphor for the aggregate concept attached to that word; that concept is an aggregation of the individual conceptualizations of thousands (or millions, or billions) of people, and yet every person will have a slightly different mental representation or conceptualization of that concept, since mental concepts cannot stand in isolation from other related / dependent concepts. What I refer to as my inner fantasy narrative is a surreal blend of fantasy, imagery, and metaphor. On one level, it serves as an outlet for my romantic approach to life; on another level, it serves as a mental tool for manipulating concepts that are not fully formed — particularly concepts that simply cannot be put into plain language to be communicated to others. The source of these "partial" concepts is, of course, my intuition; for all my scientific-mindedness, on an operational level I am a highly intuitive being. I rely almost exclusively on my intuition for decision-making, and my intuition is almost never wrong; that's not to say that my intuition always provides the "right answer" in any particular situation, but the answers it does provide come with an associated degree of certainty; so when my intuition suggests a particular answer with a high degree of certainty, I can be highly confident in that answer.

So, what the heck *is* this fantasy narrative? In one way, it's like a work of fantasy fiction; I draw on concepts and images from works of fiction by many authors, as well as other media such as music, movies, TV series, games, and so on, along with images of my own creation. In this narrative, I am, of course, the hero of the story: the wizard battling the power forces of his enemies, the spy slipping quietly through society leaving no traces, the white knight in his shining armour riding to rescue the damsel in distress, the dark demon leaving carnage and sorrow in his wake. These aren't delusions of grandeur; the whole point is that it *is* fantasy, not something I truly believe. It's not meant to be a concrete representation of reality, and in fact, it cannot be a representation of reality; it provides a way to mentally represent combinations of concepts that are not necessarily reified in real life (say, a conceptual overlap between business and music), or even concepts that are incoherent or inconsistent.

This is the source of the writing I've been spewing out here of late; in some sense, it's a biographical / autobiographical story, but certain aspects are dramatized / fantasized, and in other places I've deliberately changed the facts of the story, either for effect, or because I cannot adequately describe the true facts of history.

Where am I going with all of this? I'm not entirely sure; I've mostly been writing simply for the sake of writing. If you find it enjoyable simply for the sake of reading, that's great; if you identify with some of the fuzzy concepts embedded in the writing, even better. Just don't take any of this too seriously; in some sense, there are deep truths buried here, but only in the same sense that the alphabet contains every possible concept. This is not Zen Buddhism: any deep truths you discover will be drawn from your own experiences and wisdom, not through some deep wisdom that I've cleverly hidden in my writing.

There's probably more to come in this meta-expository vein; in particularly, there's more stuff I'd like to say about emotion and empathy, but I'll stop here for now.