Wednesday, September 30, 2009

What Obama's doing

Ever hear of the Gordian Knot? Read up on it if you haven't.

The vast majority of politicians who try to solve a problem try to do so in a fashion that avoids breaking as many assumptions about the System as possible. Budget, things that depend on existing infrastructure, political clout and favor, etc. etc. "Broad, sweeping changes" are usually little more than patching a subsystem of government, without doing anything that would disrupt other components. Because making the changes that are actually campaigned on are either difficult or impossible to do without burning through political capital, throwing the "budget" out of anticipated patterns, or disrupting something else that people like just the way it is.

People simply don't see the disconnect between what they vote a candidate in for, and what the consequences of that candidate actually following through on anything. I'm not saying Obama did or did not follow through on any campaign promises, just that people don't realize that they vote for what they'll find difficult or unpleasant to experience the implementation of.

If you're familiar with the Gordian Knot by the time you're reading this paragraph, you can probably already see where I'm going. So here it is. By throwing budgetary caution to the wind and implementing the policies and programs he wants implemented, Obama is cutting the Gordian knot. Don't bother untying it, just cut it in half and lace things back together where necessary.

I don't know what the fallout is going to be. I don't think anyone knows to totality, but I can at least say things are going to be different. He was voted in on Change, and that's Change for you...

Liberals and Conservatives

Of the three to five places I posted this, it seems someone misunderstood what I was saying in each place. So I'll be more verbose than 140 characters...

"Liberal" denotes a philosophy where law is aggressively formed and applied to address observed problems. "Conservative" denotes a philosophy where new law may be formed and applied, but not aggressively; This philosophy tends to prefer solutions that do not involve the creation of new law.

My assertion was that people who subscribe to the conservative philosophy would subscribe to the liberal philosophy if they didn't already have what they want; I.e. if they weren't comfortable with the status quo as it currently enabled them. I might go so far as to say that both of these philosophies are moderate ones. The non-moderate form of conservatism using this measurement metric might be libertarianism or anarchism; The idea that law needs to be repealed in a general sense until there is little or no government law in effect. The non-moderate form of liberalism is totalitarianism; The idea that the Government knows best*, and so they should regulate everything.

And "independents?" A misnomer in this context. I'm not talking about political parties, I'm talking about political philosophies.

Granted, all generalizations are false**. It's simply something to think about.

Me? I'm not liberal or conservative. I'm not red or blue. I'm not Republican or Democrat. And though I'm not a card-carrying member of any party, I won't call myself an "independent"...Most independents seem to me to be unofficial and unaware party members. I'm jaded enough about the parties in power and the colors on the tickets that I don't think there's any party that fits more than a third of my personal views.

* Including this one.
** The reasoning for "government knows best" varies from perspective to perspective. It might be "government knows best because it's a representative democracy, and thus carries the will of the People", or it might be "government knows best because scientists and economists drive the decisions." There are other reasons for non-government people to think "government knows best".

A folk approach to the BSOD

(My boss thinks I only listen to techno and electronica, for some reason. This started forming in my head while I was thinking about work today.)

Now, I was sittin' there doing my job as a plain-jane userland programmer. I was lookin' to the side for a moment, and I noticed som'n out of the corner of my eye. Som'n...blue. I looked at the screen. Was it the sysinternals screensaver? No...It only affected two out of the four monitors.

It was the
Blue screen of death
It came to bother me
Blue screen of death
Its code had set it free!
Blue screen of death
That color's pretty nice
Blue screen of Death
But it's comin' for your life!

Now ya gotta code real fast
And ya gotta code real hard
But if you don't code it right
It won't get very far!

Hardware and software
It's all the same to me
Drivers and firmware
It's borked as you can see!

It was the Blue screen of Death
It came to bother me
Blue screen of Death
Its code had set it free!
Blue screen of Death
That color's pretty nice
Blue screen of Death
But it's comin' for your life!

Now, y'all might be wonderin' why I'm telling you all this. Y'see, it's for your own good. When you don't mind your dwords and your qwords, when you forget that your calling convention is more than the introduction when the other guy picks up the phone, when you think a pointer is just a piece of advice, that there's when you're gunnin' for some trouble. Yeah, that's right. You're breaking *my* computer. And I don't take too kindly to that.

That there's the
Blue screen of death
It's come to bother me
Blue screen of death
Your code has set it free!
Blue screen of Death
That color's pretty nice
Blue screen of Death
But it's comin' for your life!

Now you gotta code real fast
And ya gotta code real hard
But if you don't code it right
You won't get very far!

Hardware and software
It's all the same to me.
Drivers and firmware
You broke it, don't you see?!

Tuesday, September 29, 2009

Ah, the cursed hardware flake.

So I no longer have access to the vast, vast majority of my data. The only machine with SATA ports has a memory corruption issue. I discovered this while running digikam under strace, trying to identify why kipi-plugins wasn't seeing any plugins, and strace aborted when malloc reported to it that it had detected corruption.

Now, normally, one might figure this to be a software issue; Careless memory management can and will eventually lead to corruption. Say hi to 0xFEEEFEEE and 0xBAADFOOD. However, my system has been periodically locking up in the middle of the night, and I hadn't been able to track down why; I assumed it was due to some software quirk (Gentoo does have a reputation for being bleeding-edge, but I've been coming to find that it's merely a sharp edge, without all that much bleeding.). When I finally noticed that whatever caused the flakes wasn't getting logged to syslog, I figured it was likely a hardware issue; Mainline kernel releases tend to be free of such bugs, no matter how much you twiddle things around with "make menuconfig" .., I didn't know when I'd have time to take things apart piece by piece to identify the culprit, but I'd already started looking up the components I'd used, to see if the reports of failures had changed notably.)

So if strace reports memory corruption under these circumstances, there's a very high chance it's a hardware issue rather than a coding bug. My mainboard has a compatible version of memtest86+ in ROM, and I'm letting that run until it flakes. (The mainboard has all kinds of features in support of overclocking, including automated tweaking of relevant settings, but I've always been running everything at stock levels.) Could be a couple days, could be a week. I'd prefer to see the flake twice, so I get a feel for how long it takes to manifest before I try rerunning the testing with various RAM modules removed.

Meanwhile, all my data is sitting on a 1TB SAMSUNG SATA drive (Yes, that very same model I hate with that very same firmware version I know to be buggy), and I don't have the time to set up alternate access while my desktop/server system is testing its memory.

Add to that that my laptop's screen has gotten incredibly flaky; In addition to the connecting cable's flaking enough to require not-infrequent repositioning of the display angle, I now have (or had, I can't find it now) one pixel where both the green and blue subpixels have died. My left ALT key started resisting oddly last week, but finally fell off over the weekend; I can now use the membrane switch without an impeding piece of plastic. (No jokes about membrane keyboards, Das Keyboards or modern Model Ms, please, unless someone knows where I can find a modern laptop with a built-in buckling-spring keyboard. :P )

So that's both my home machine's giving me headaches.

Fortunately, my desktop's RAM comes with lifetime warranty. (Don't they all, these days?) And I've still got about six months left on the extended warranty I bought with my laptop, to which I haven't done any internal hardware or otherwise warranty-breaking work.

The truly ironic-in-the-Alanis-sense thing, though? Shortly after I got back from Atlanta, I moved all of my data from my laptop to my now-unavailable desktop, in anticipation of getting the warranty work done on the laptop. I'd been using FUSE and sshfs to keep it reasonably accessible (an awesome combination that even works fairly well over 802.11g), but now I don't (and won't) have access to any of my data (for a while). No music I haven't copied to my PS3 already, no working on the con photos, no doing squat with anything I already have.

Time to make more data. :P

Friday, September 25, 2009

Disassociation

It's one thing to see pictures and video of disasters in places you've never been, impacting people you've never met. It's another, painful thing to see pictures of disasters in places you know impacting people you're familiar with.

I don't like thinking about how many people I had friendly interactions with in Atlanta and at AWA who are having severe problems resulting from the flooding, and I don't like thinking about myself having very nearly locked in due to flooded roads.

I'm home. I'm safe. I haven't lost much. I hope you all recover quickly.

Too much vs insufficient context

When you lay out the scenario, people get fixated on the wrong problem. When you don't, they don't understand what you're talking about. There is no happy medium.

Wednesday, September 23, 2009

Cryptic notetaking

* Try to stick within same time period, for art similarity
* May try adjusting image saturation for mood. Probably not going to touch artificial grain, scratches and loss of vsync. Too tacky in this case.

* May be able to stick with simple editing tools.

Act 1: Politics and War
* Need to establish major actors
* Need to find good "committee"-style politicking sources.
Act 2: War and Death
* Reuse some of major actors
* GitS:SAC 2nd gig mexican civil war scenes and project sunset scenes
* Eva N2 scenes
* Ruins. Play "Dawn in Mars" by Julian Mack. Sync with decay detonation at 1:25 and similar. Rain at 1:35. Fade into act 3 at 3:20.
Act 3: Death and Life
* A couple ideas.

Sunday, September 13, 2009

Devil's Advocate or Dare.

Same rules as "Truth or Dare," except that instead of being asked to truthfully respond to a query (as opposed to a dare), you're asked to play devil's advocate for an arbitrary position.

Of course, it's all fun and games until somebody breaks out the weapons...Better take "dare" on that one.

Saturday, September 12, 2009

Friday, September 11, 2009

Console and Virtual machines

I know I may occasionally come off a bit hard-core in favor of the the text-mode and console environments, but, at the moment, there's something impacted beyond my preference of interface.

I've been working a lot with virtual machine setups over the last couple years. Rosetta Code has been running on VPS accounts under Xen (first at Slicehost, now at Linode) for quite some time, and then there's the various things I've done at work using various versions of VMWare.

VMWare is interesting, though. In a graphical OS such as Windows or Linux, it supports forcing the guests's virtual display to conform to VMWare's available view area; That's rather nice, as it means you're not stuck looking at a postage stamp on a huge monitor, or scrolling around a huge virtual display when you've got to look at it through a postage stamp. (Unity and Fusion are awesome and something else, but that's another tangent.)

Unfortunately, there are times and setups where you cannot have the overhead of a full GUI system. Linux being what it is, having the history it has, and the community origins it did, supports text-only environments. Additionally, Linux/UNIX console tools, coming from the roots they do, support resizing the display of text-only applications. Try resizing an xterm or PuTTY window, for example; The number of rows and columns change with the size of the window--you're not stuck in 80x24 or 132x24 land. (Yes, this sort of thing depends on termcap support, but that's not important at the moment.)

Unfortunately, unlike the with GUI goodness of X, VMWare can't resize the guest OS console to scale the same way. Sure, I can set up OpenSSH, connect in with PuTTY and get that same behavior, but what if I'm tweaking iptables chains? Fat lot of fun it is disconnecting oneself.

Oddly enough, Xen seems to have a similar problem. With both Linode and Slicehost, you get an AJAXy "console" much like you get if you run Linux without a GUI on an actual PC. Unfortunately, while my browser window might have a client area of 1680x1050, and the console font might only take 8x16 pixels per character, I'm not going to get a console environment of 210x65, no matter how nice such a large console might be.

Yes, I understand there's a variety of obstacles to the kernel framebuffer supporting dynamically changing display sizes. At the top of the list: Kernel programming is non-trivial. Yeah, I understand that. I occasionally watch lkml and read up on various subsystems for amusement, need and curiosity. Sure, there are framebuffer apps that assume that once the framebuffer size is set, it 's fixed. Oddly enough, GUI environments (even under X) did the same thing at one time, and some still do. That guest resizing deal only really works well with specific window managers; Some of my personal favorites are left out in the cold.

I'm not demanding anything; I can live with annoyances as I always have. But I'd like to put the bug in folks' ears and have them think about this sort of things...

Wednesday, September 9, 2009

A taxonomy guide for emotionally descriptive vocabulary on IRC

  • heh family
    • heh -- grunt
    • hehe -- chuckle
    • hehehe -- chortle
    • hehehehe -- sinister chuckle
  • hee family
    • hee -- Indeterminate meaning. Not often seen in the wild. Possibly a typo.
    • heehee -- giggle
    • heeheehee -- sinister giggle
  • ha family
    • ha -- ha
    • haha -- laugh
    • hahaha -- enthusiastic laugh
    • hahahaha -- sidesplitting laugh
    • hahahahaha -- rolling on the floor laughing.
  • acro family
    • rofl -- Varies. Typically an enthusiastic laugh ... Frequently mistaken for "Rolling on the Floor Laughing"
    • lol -- Varies. Typically a grunt, sometimes merely a smile.

Monday, September 7, 2009

Not done *yet*, but...

I sprung for a Linode 540 account. I copied RC over, and have been tuning everything all evening. The new VPS server is serving up 5-7Mb/s to my stress testing. Of dynamically-generated pages.

Points of interest:

  • 540MB of RAM.
  • memcached -k -m128M
  • php5-xcache
  • Tuned MySQL parameters
  • The site's code is on a tmpfs mount
  • Not using Squid
  • My stress testing was done from a connection capped at 6Mb/s
  • My stress testing was eight concurrent runs of wget -m --spider http://hostname

Kinda pleased.

Still have to set up all the subdomains, but the site should run a lot faster once I'm ready to switch DNS over. I'm also spending most of my CPU time in system, and that's coming from the apache forked processes (post-fork, mind you). I haven't figured out why.

You might have noticed the mention of tmpfs...I had a lot of spare RAM. I have a hard upper limit on the number of running forked PHP processes, an upper limit on memcached, and MySQL doesn't seem to be able to be coaxed into keeping its M_DRS memory resident. So I had about 300MB of RAM used for file cache.

Since I don't need to change the PHP files often, losing the contents of the tmpfs mount in an outage isn't a major concern, and I can cron an rsync to disk.

Thursday, September 3, 2009

Beta software

I'm trying to figure out of a weird quirk I'm dealing with is the result of combining Daemon Tools and Windows 7. And I happen across this thread where users of DT were reporting that it wasn't installing on the Beta of Windows 7.

Kudos to the Daemon Tools developers for completely missing the purposes of the beta releases. Those purposes being:

  1. Identify bugs in the operating system to ensure that they don't make their way to RTM, where they might break things that don't need to be broken.
  2. Identify compatibility issues between new operating systems and widely used 3rd-party tools. Believe it or not, Microsoft actually changes and patches their operating system when they learn when such tools break.
  3. Ensure that the developers of a 3rd-party tool can have working software for the RTM release before the RTM

Again, kudos to those developers for not wasting their time taking advantage of a process intended to ensure their product works with the new OS.

After the catharsis

After the catharsis

A campaign I'd like to run.

For various reasons, roleplaying in games like D&D has long fascinated me. My own roleplaying is interesting, but the roleplaying of people around me has a tendency to puzzle me. Even more odd is that while individual players may say their characters subscribe to particular values, their actual playing of those characters often don't reflect those values. Thus, whatever a player puts under "Alignment" on their character sheet tends not to have any bearing on how their character behaves under pressure. (Or even normally, if the player is particularly new to the game; Take the "Lawful Good" paladin that takes a liking to brigandry, for example.) In a group where the roleplaying is particularly weak, the group as a whole tends to have a stronger alignment than any individual character.

I had an idea for a campaign I wanted to run that would let me observe the aggregate alignment-related effects of a group and its characters. It would somewhat like a sandbox world, but there would be specific campaign end conditions. (No, those conditions don't include TPKs.)

Take a campaign setting where there are effectively four keystone NPCs. Each of these effective NPCs (they might be an individual NPC, or they might be an aggregate of similar related NPCs) would represent a classic D&D alignment. You could go with cardinal alignments, (LN, NG, CN, NE), or you could go with corner alignments (LE, LG, CG, CE). Each of these NPCs, intentionally or not, vie in some way for philosophical domination of the campaign setting. The ending condition is such that one of these NPC's philosophies is so incredibly dominant that there is no forseeably near event that could swing the balance away.

The party's role? Well, each of these four NPCs may hire the party for their own purposes. Each of these jobs would in some way change the balance of power withing the campaign environment. The party is free to pick up and drop employers whenever and for whatever reason they wish, but by favoring one NPC over another, or even a pair of non-directly-opposed NPCs, they're helping those NPCs become dominant. Game over when things can't reasonably tilt back the other way.

I'd like to try this particular experiment with various groups, and see what insights it might give me to a particular group's motivations and roleplaying style.

Wednesday, September 2, 2009

Tokyo's coming to town.

I have the tracking number. It's running around in Tokyo.

Well, you better go catch it.

What?

You'll never find your package if your tracking number's running around Tokyo.

No, I HAVE the tracking number. MY PACKAGE is running around Tokyo.

Hm. It should be here Friday.

Tokyo?

Yes. All of the Tokyo metropolis will be here Friday.

(I love surrealist humor.)

Tuesday, September 1, 2009

Expand your grammar and improve your technical writing

From "Engineering Windows 7: Disk Defragmentation":



"Note that a concept that is relatively simple to understand, such as the amount of fragmentation and its impact, is in reality much more complex, and its real impact requires comprehensive evaluation of the entire system to accurately address."



"Note that a concept that is relatively simple to understand, such as the amount of fragmentation and its impact, is in reality difficult to grok."