I’m sending you a letter

My dad is trying to make a website for my little brother’s high school PTSA; Among the functions he needed to use was mail(). It’s pretty drop-dead simple, but I needed to figure out what I was doing for sendmail, first, since I’d never set it up before. A little bit of searching showed that sendmail on my system was provided by ssmtp, and I was able to edit it’s config file to set up the proper external host.

Changing windows Profile ownership

I’ve learned a lot about how windows profiles and the registry work today. In the interests of unlearning it quicker, I am going to write it down so I no longer need to know it.

First: The windows registry is a terrible thing. It is a full ACL’d filesystem, except with retarded files. Further, it supports mounting loopback files, but only at one level below the predefined roots. And, yet, despite that, it is one of the most unix-like and useful parts of windows. *Facepalm*

So, you’ve got a user profile, and you’re, say, migrating your entire corporation from a primitive LDAP solution to a primitive AD solution. You want those user profiles to transfer over to the new domain. All the user profiles are stored as local profiles.

There’s three things of import: Change the permissions of the directory, change the permissions of the registry, and deal with all the little nitpicks that come up.

The directory is simple: Just log in as admin, remove the permissions from the old domain user, and add full access as the new. Should be set to propagate by default, and things will just work out.

The registry permissions are a little more complex. First, they can’t be edited while either the new or old user is logged in. Second, we’ll need to detach the registry hive: I recommend just rebooting, first, because windows has a tendency to not allow you to detach that hive.

The first thing you need to do is find the new user’s profile in the windows Profiles List, and point that at the old location, while deleting the old profile list entry for that profile. You can find the profile list in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList. Under there should be a list of SID’s; You can lookup the SID and do it that way, or just find the ones that are pointing to the old and new profiles. First, copy the profile location of the old user SID, and then (for safety) export that key and it’s subkeys, then delete it. Now, paste the profile location of the old profile into the new SID’s

Then, you need to mount the old user’s hive, and alter the permissions. Open up regedit, and then select HKEY_USERS. You’ll then want to go to File -> Load Hive. Browse to the user directory, then select the user’s NTUSER.DAT file. This is their personal registry hive. Open that, and name it what you will; it’s irrelavent for now (though naming it with the users SID can avert problems if you forget to unmount it).

Change the permissions on the root of the user hive, as well as in HKEY_CURRENT_USER\Software\Policies (The only exception I’ve found); They’ll have previous ACL’s for the old SID for full access and read-only, respectively.

Against Privacy

I have a friend, a good friend of several years. We laugh, we joke,  we gossip, and we’re part of a larger community, so we often share tidbits of conversations with each other. All of this was well and good; The community is not super-open, but well enough open that all of this was acceptable.

As happens from time to time, new people join the community. Recently, my friend has made friends with a new member. This newbie seems nice enough, however, they are very concerned about privacy. They seem like a nice enough person, and I’ve had enjoyable conversations with them in the past. However, they also have a secret. And thus, privacy.

Now, I’m a staunch anti-privatist. The world is far too prudish for me to be as open as I’d like, but I do try and be as open as I can, and while I’ve been burned, I’ve also profited from it. I know my game theory, and it turns out that games of perfect information are a lot more fair than games with hidden information. Many people I know have told me “Google is destroying privacy”, and I have replied with “I know, isn’t it wonderful?” Privacy benefits larger entities; Corporations, Governments, and special interests. Public information benefits the common good.

I’ve recently gotten into trouble with my friend; and I can only liken it to a playground metaphor. Friend A has a cool new friend, B, and now A won’t hang out with me. Nor will B. Friend A gets in trouble for laughing, joking, or, most of all. gossiping with me. I’ve put up sincere effort to be friendly with B; They are concerned for their privacy whenever I try to share a joke or try to share in a joke. It’s not cool, it’s hurting my friendship with A, and it’s a dick move from square 1.

So, basically, Fuck You, Tango_. You and your Wife can do whatever you’d like; I really don’t care. But be a human being; There’s only drama when you make it.

Notes towards an invasion

I’ve been playing a lot of Babo:Invasion recently. It’s a fun little game, and for the $3 or so it cost me on steam the price couldn’t be beat. It’s been great fun on windows, but I’m trying to get my desktop (now codenamed “hera”) up to be my perfect box: Tri boot Windows, Ubuntu, and FreeBSD. One of the neat tricks I have up my sleeve is a simple symlink: ~/.wine/drive_c/Program Files/Steam/steamapps is a symlink to /mnt/windows/Program Files (x86)/Steam/steamapps. This is pretty nifty; Worst case scenario, my Linux steaminstall keeps all my steamapps up to date in periods of inactivity. In the best case, for a couple games (like Civ IV), this means I’ve got just one install, but I can play either on ubuntu via Wine or on my windows box with basically zero hassle.

However, Babo is not one of the nice games. Here’s what I’ve done so far to get it to work, and where I am right now: First off, it wanted an initial install, which consisted of a directx update. Obviously, this didn’t install under wine, so I had to fake it out by adding the following key to the registry: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MIBI\DXMar2009\ “DirectX”=dword:00000001

Once that was done, the application wouldn’t launch. It wanted two dlls: d3dx9_41.dll and xinput1_3.dll; Get those from the windows\system32 directory of a windows box that has it installed, or if you can extract the CAB files they’re in baboinvasion\directx\dxdllreg_x86.cab and APR2007_xinput_x86.cab . Put those in the application directory.

Once that’s done, launch steam and launch babo. This is as far as I’ve gotten; It appears to be working, but it’s got a constant ‘down’ input and a screen flicker; sound is tempermental, meaning it’s worked at least once but I don’t know why it worked that time, and most importantly there’s /huge/ screen flicker; It looks to me to be vsync related. Upgrading to the more recent Wine, it’s no longer got the ‘down’ input, but the other two problems persist.

Two steps Forward.

And one step back. Or rather, today it seems like a whole tango backwards. I managed to blow up my computer yesterday. A loose fan wire sparked against my case. It seems to have destroyed my primary hard drive. Not my secondary, though, nor my backup… I didn’t have proper backups going, though, so I’m out quite a bit. I’ll have to see if I can recover it, find a second copy of that board; I think, though, it might just have been a fuse or diode that blew, so I’ll see if I can repair it.

A Modest Proposal: A Solution to AIDS

AIDS is an epidemic. There’s a lot of money and research going to find a cure. Ebola; Not so Epidemic. Why is this?

AIDS transmits fairly easily, but slowly. Ebola is faster at transmission. Why is AIDS more common? It kills slowly. Ebola kills, fast and often. The solution?

Make AIDS more deadly. Right now, if you’re HIV Infected, you’ve got years to live. We need to make it far more deadly, far more of a threat, far more liable to destroy it’s population before it has a chance to spread.

Adventure Log, Part II

It’s been three weeks since I posted that last entry, but it’s been a somewhat eventful three weeks. I moved the weekend after that. I’ve been on various spurts of productivity and non; Tonight, for example, was very productive. I did a fair amount of coding work on a project I’ve been working on; I figured out how to get my router set up with OpenVPN in a non-standard way (It’s mounting my windows box for it’s config files, as well as the OpenVPN executable, giving me a fair bit more flexibility than I’d otherwise have). I also dived some into Quagga, which I need to get working to make fullest use of OpenVPN. I configured my work Ubuntu box substantially; It’s now making pretty full use of it’s graphics card (though it turns out that there’s a nasty tradeoff involved; I can either have my monitor rotated the way I want or have full graphical effects; Since they’re both cosmetic, I went for the graphical effects.)

I’ve also, since last writing, gotten a significant amount done in my personal life: I’ve convinced myself to join a dating site and message a girl (Though not gotten a response from that one, I think I can do this once more). Aforementioned programming project took a significant amount of getting over mental blocks; I figured out how to use SVN properly, and have myself a repository now. It is also heavily perl and regex based, which is good for me.

In the past few weeks, I’ve managed to get a number of other things done; I got my PS3 and Xbox set up in my new place so they can browse media, I got  OpenVPN set up between my work and cloud machines, as well as my work machine upgraded with my old desktop graphics card, enabling me to use it as a proper desktop.

Some of this progress has come at the expense of work, though; I know I’m not keeping up with my work as well as I used to. I did recently change to a new schedule, and that’s part of it, but a big part of it is just that I’m not doing anything. I’ve gotten some good insights, though, into many things; I’ve delved deep into areas that aren’t as common for the support team, and I’m certain that I have the best breadth and often depth of knowledge of the frontline group (and I think I stack favorably against the escalations group, too). We’ll see how it works out, though; Stuff has been bad at work for a few weeks, but maybe it is turning itself around.

Adventure Log

My ego needs a boost (Ha!), so I’ve decided to write down an accomplishment each day. The past three days have been easy; Tonight is looking a little harder. On Saturday morning I wrote up a doc abotu dealing with “over protection” failure; What to do when a customer loses more drives than they were set to protect for. On Sunday night I figured out, finally, how to cause those in an elegant way. Even with our QA tools, this is not easy on OneFS. Monday morning I documented sparse file behavior, and filed a bug that has gained minor traction; One of our Engineering Managers chimed in approvingly. Today… I’ve survived. Dealt with a few cases, too. Not much more than that, sadly.

I am stupid

I have spent a good several hours over the past several months fighting with my ubuntu machine. It would come up and attempt to mount my raid (A simple RAID1 over two drives), and, upon boot, try and mount the MD device with /dev/sda1 and /dev/sdb, not /dev/sdb1. It turned out that, while a mdadm -E didn’t show it, /dev/sdb had enough of a superblock on it that mdadm tried to use it as part of an array… And that prevented it from reading the partition table, preventing me from even manually mounting it. I used –zero-superblock to clear it, and suddenly my machine is booting fine.

Ted's Excellent Adventure.