A cricket bat!
Twelve years, and four psychiatrists!
Four?
I kept biting them!
Why?
They said you weren't real.

Tuesday, January 13

Geek

The Death and Resurrection of Pam

I ran the up2date utility on one of the Fedora servers at work on Friday to catch up with all the latest patches. For some reason - possibly because of a timeout while downloading the new kernel - up2date crashed. Trying to run it again just brought more crashes.

Since it was Friday afternoon, I left it at that. After all, the box was working fine, it just wasn't fully patched.

Fast forward to Monday morning and an irate phone call. It seems that files that normally arrive via FTP aren't, and people who can normally log in using FTP can't.

So I log in using SSH (which works fine) and sure enough, FTP is rejecting my login. Also everyone else's logins. Also a new login I set up just to test it.

Strange.

I restart the FTP server. No difference.

I check the config file and fiddle a little. No difference.

I download the latest source and compile and install a new copy of the FTP server. No difference.

I install a completely different FTP server. No difference.

Now hang on just a minute there. The two FTP servers share no parameters, no config files, no directories. And they reject all logins, but they do ask for a password. So it's an authentication issue.

Linux offers something called PAM: pluggable authentication modules. Basically it's a centralised mechanism for checking usernames and passwords and other such stuff. And both of the FTP servers rely on PAM to check logins.

So, I float a hypothesis: I know up2date was trying to update the kernel. I know that it didn't finish doing this. I know from the log files that the server rebooted over the weekend - possibly due to a power glitch, since it's not on a UPS. (Yeah, yeah.) So maybe up2date had gotten far enough in to mess up PAM but not far enough in to actually make it all work again. So if I download and install the kernel manually, it will say:

error: Failed dependencies:
        /bin/sh is needed by kernel-2.4.22-1.2140.nptl
Bum!

What it really means is that you have to update to the very latest version of bash before updating the kernel. Yes, that seems strange to me too, but what do I know?

So I update bash, and I update the kernel, and I reboot, and it works! It works it works it works!

And a good thing too, because I have no idea how I would have proceeded if that hadn't fixed the problem.

Posted by: Pixy Misa at 02:02 AM | Comments (2) | Add Comment | Trackbacks (Suck)
Post contains 429 words, total size 3 kb.

Sunday, January 11

Geek

Hum Hum

It would appear to be the video driver, and not the mousie after all.

Posted by: Pixy Misa at 02:23 PM | No Comments | Add Comment | Trackbacks (Suck)
Post contains 18 words, total size 1 kb.

Saturday, January 10

Geek

Minx

Those of you who frequent Munuviana, the MuNu group blog, will already know that I am writing a blogging system of my own. It's called Minx, and it now has a blog of its own. Admittedly, the blog is still running under Movable Type, since Minx currently does not actually work...

It's sort of a developer's diary, and will morph into a documentation and support site once Minx is up and running. If you're interested in shaping the feature set of Minx - or even in contributing, since Minx will be released as open source - drop by and have a look.

Important Geek Details (for Rossz)

Minx is written in Python. I am also planning a small PHP library to allow easy access to Minx functions for all the PHP coders out there (though this may not be ready for the initial release). Minx will also support access via XML-RPC, and that will be in the initial release.

The system is being built around the Metakit database, and won't support SQL. This may change in the future - I would like to support SQL, but I haven't done any planning for that yet. If you are after remote access to the Minx database (rather than plugging Minx into an existing SQL database), there is a SQL access layer available for Metakit.

Minx will initially be delivered on Linux, but it should work on Windows as well (and I hope to have a chance to test this before release) and any version of Unix. Since that now includes everything from MacOS X to OS/390, the only platforms likely to have a problem are OS/400 and the Nintendo Gamecube.

To run Minx you will need Python 2.3 or later, Metakit, and (optional but recommended) the Python Imaging Library. Also you will need either the Apache web server (or another web server that supports Apache SSI tags) or PHP.

I will put a more detailed version of this post up on the Minx blog shortly.

Posted by: Pixy Misa at 10:40 AM | Comments (5) | Add Comment | Trackbacks (Suck)
Post contains 335 words, total size 2 kb.

Art

Firefly, Part II

I bought the box set.

Not that it's out in Australia. It's only available, as far as I know, in Region 1. Of course, that just means that I can walk into the shop and buy it just like a Region 4 DVD, and take it home and play it just like a Region 4 DVD, except that...

Except that nothing. Tell me why they're bothering with this again?

Posted by: Pixy Misa at 08:37 AM | Comments (3) | Add Comment | Trackbacks (Suck)
Post contains 75 words, total size 1 kb.

Thursday, January 08

Cool

For LeeAnn

Click!

(Thanks to Avocet and Dave)

Posted by: Pixy Misa at 01:29 PM | Comments (4) | Add Comment | Trackbacks (Suck)
Post contains 10 words, total size 1 kb.

Cool

Nobody's Pixy


Again from the Flea:

Pixy Misa

 

 
   
   

You don't exist. Go and look in the mirror. If you see something then we're wrong else you're some kind of magic pixie, elf, carrot or vampire. Sorry.

Want a 1 in 2800 chance of winning a Mercedes SL 500 for £65?

Click for full list and Details

PIXY1

See Reg Plates based on  your name.

How? How did they know?

Oh, and check out their Random Domain Name Generator:

www.abolishableweevil.com
www.kebabgluestickcadger.com
www.junkyardcucumber.com

Posted by: Pixy Misa at 10:11 AM | Comments (2) | Add Comment | Trackbacks (Suck)
Post contains 82 words, total size 5 kb.

Cool

Firefly


"The Mechanic"
Which Firefly character are you?
brought to you by Quizilla

(via the Flea)

Posted by: Pixy Misa at 12:20 AM | Comments (2) | Add Comment | Trackbacks (Suck)
Post contains 17 words, total size 1 kb.

Wednesday, January 07

World

Idealism, Struggle, Despair, Passion, Success, Failure, and Enormously Long Lunch Breaks

Steven Den Beste has written another of those thoughtful pieces of his, this time tracing the philosophies that have given rise to the strange three-sided war of ideas that characterises so much of the world today. One of these philosophies is known as idealism.

If you haven't studied philosophy, you may not have run into this concept. I'll explain what it is by first describing its counterpart, materialism.

The basic concept of materialism is very simple, and it is this: The universe exists. Got that? Well, that's all it is, really. The universe exists, and we exist within it. Living creatures are made up of the same fundamental particles as stars and planets and comets and so on; our brains are made up of the same sort of molecules as our bodies, and we use those brains to observe the universe and try to make some sense of it.

Now, idealism says exactly the opposite: The universe does not exist of itself, but is merely an artifact of mind. It is our perceptions that are the fundamental reality, and matter has no existence independent of perception.

Yes, I know. You don't have to tell me, I know. Until a year or so ago, I thought that the entire concept of idealism was just a game thought up by philosophers to tease first-year philosophy students... But it's not. There are people who really believe this.

(There's also another philosophy known as dualism which says that mind and matter exist independently of each other and have nothing at all in common (and that the mind is fundamentally inexplicable by scientific method, since it cannot be directly measured or even detected)... But somehow interact. But everybody ignores the dualists.)

One of the consequences of the philosophy of materialism is realism. If the universe exists, there's not much you can do about it. It exists, you are part of it, and you need to deal with the universe the way it is. The most successful example of this is scientific materialism, which adds a second basic concept: The universe exists, and it works in a consistent manner. The whole aim of science is to find out just what that consistent manner is.

Now, if you are an idealist, you will tend to work in the opposite direction: Mind exists, and the universe is the perceptions of that mind. Which means that the universe should work the way we think it does... Rather than the way it actually does.

Which is why very few cavemen were idealists. They died out rather quickly. It takes a robust and peaceful civilisation to support concepts that far out of whack with reality.

Den Beste also ties idealism to socialism. The link is not direct, but it is there, and it has strengthened rather than weakened over time. In the 19th century, socialism could be viewed as an interesting if untested hypothesis in social theory. It has since been tested - and has failed. So to be a supporter of socialism today necessarily brings one close to the idealist philosophy: We know that socialism doesn't work... But it's the world that's wrong, not the idea.

So it should be no surprise that many of the proponents of idealist philosophy with whom I have, shall we say, debated, are also socialists.

The really telling example, as Den Beste shows, is the comparison of the two great revolutions of the late 18th century, the American and the French. The American revolution, led by realists (if not necessarily pure materialists) founded a nation that is still growing with the same basic social structure two centuries later. The French revolution, led by idealists, turned to oppression and carnage and failed utterly within 15 years. The romanticised view of the French revolution common today hides the fact that the two revolutions really had nothing in common except a desire to be rid of an annoying king.

It's the same realists who are running America today, and it's the same idealists who are running much of Europe. That's where the fundamental divide comes from: America sees the world as it is; Europe sees the world as it should be. And if we weren't, materialists and idealists alike, under threat from the third philosophy of militant religion, that wouldn't matter. All it would mean is that at some point, France would need to increase the working week and reduce the pension so the books would balance.

But we do live in a world where we are under such a threat, and if the Europeans, still chasing their failed ideas, try to obstruct the actions undertaken by the realists to defend both groups, that is indeed a problem. And it is why those who claim that the Bush government's failure at diplomacy squandered international support are so completely wrong: There never was such support, not in France or Germany, not among the left. Because they live in the world of ideas, of what should be, not what is. Sympathy there may have been; support, never.

Update: Munuvia welcomes visitors from U.S.S. Clueless! Mind the cat, it hasn't been well.

Link: Marc Miyake discusses idealism in the field of lingustics.

Posted by: Pixy Misa at 11:21 AM | Comments (52) | Add Comment | Trackbacks (Suck)
Post contains 884 words, total size 5 kb.

Tuesday, January 06

Geek

Neato-Keen

I just wrote an almost completely generic object-oriented wrapper for Metakit records in 35 lines of Python code. Which includes 4 lines of comments, 5 blank lines and 5 lines of debugging code.

It handles searching by the primary key, creation if it's not found, and completely transparent transferral of data from the argh. Uzgbf. Never mind. Back to the drawing board.

Update: I just wrote an even more almost completely generic object-oriented blah blah, same length (well, I took out the 5 debugging lines), only this time it doesn't screw everything up when two threads try to manipulate the same record.

I call it MEOW: The Metakit Easy Object Wrapper. Hooray for getattr, setattr and hasattr! I've never tinkered with Python objects like this before, but after only a couple of hours it all makes sense. In fact, it's obvious that this is how to do it. (Actually, there's probably an even simpler way that I have yet to find, but pfft. This is neat and understandable, very general, fast enough, and works.)

A little more tweaking and I'll have a base class that I can derive all my objects from. Yay!

(For those of you saying What?: Persistent objects made easy. For those of you still saying What?: Shiny programmer thing!)

More Update: Poo! The mere presence of __getattr__ in a class definition causes the class to run like molasses in January. When I enable __getattr__, time taken to instantiate the class increases by a factor of 250 - even though it is never called! I may have to ask the Python wizards about this.

Err, in theory it should never be called. In practice, it is getting called 2988 times for a single instantiation. Odd, that.

Oh. Using hasattr() within the definition of __getattr__ is a Bad Thing. Access __dict__ directly. Right.

Posted by: Pixy Misa at 01:19 PM | Comments (5) | Add Comment | Trackbacks (Suck)
Post contains 307 words, total size 2 kb.

Cool

Sounds Reasonable


Take the Affliction Test Today!

(via The Quizmistress of Chaos)

Posted by: Pixy Misa at 12:35 PM | Comments (2) | Add Comment | Trackbacks (Suck)
Post contains 14 words, total size 1 kb.

<< Page 5 of 6 >>
144kb generated in CPU 0.0438, elapsed 0.7174 seconds.
59 queries taking 0.6907 seconds, 434 records returned.
Powered by Minx 1.1.6c-pink.
Using http / http://ai.mee.nu / 432