Archive for the ‘Work’ Category
I worked in ITG, Microsoft’s internal technology group (AKA operations) in the mid-late 90s, as well as Microsoft’s internal security group. ITG owned the internal USENET server; it was run on a machine under someone’s desk (maybe not literally, but it was recycled hardware well behind the current state of the art hardware). It did just fine – until it didn’t. It was falling over under extreme load, which it shouldn’t have. Looking into it, it was clear one user was downloading huge amounts of child porn via USENET. I was one of the few UNIX guys in tools, so it fell to me to add specific logging to see exactly what this guy was up to.
I saw the logs, which consisted of username, timestamp, subject, and file names (since these were UUENCODEd or MPACKed, this was a simple grep-like operation). That’s it. I didn’t see the pictures, videos, or any of that – I saw subjects and filenames.
I was really fucked up by this experience. I don’t know how cops handle this. Maybe I’m a wilting violet and should have just manned up and powered through it, but it disturbed me.
I write this article as a sidecar to a tweet from yesterday where I complained about how graphic people are on MSN Messenger when they don’t think anyone is looking. Nothing I read there was obviously illegal, but it was depraved.
Wrote an installer to download and unzip git repos from the internet. Someone else baked it into another installer, claiming that it was in there; running it seemed to produce no network traffic, but the files showed up. Suspecting they had merely downloaded the files and baked them into the installer (defeating the whole purpose of the exercise), I fired up WireShark and saw no traffic – they said I was Doing It Wrong. Fine, cleared all of my caches, unplugged the network cable, ran installer. Files showed up. They’re now “looking into it”.
In WireShark I trust.
Coworker was talking about his neighbors complaining that when his dad moved out, he didn’t sell to someone within his minority. I said if it bugged them that much, they should have bought his unit. “That’s what my dad said!”
Now I’m reminding coworkers older than me of their parents. I should think young thoughts.
My former employer, PhotoRocket, just sent out the long-expected “we’re closing the doors” email. It’s a hard, under-served space – photo sharing. I still think the problem we were solving needs solved, but the people writing the checks didn’t see PhotoRocket having enough adoption to make funding it worthwhile.
You might think I’m being snarky, since there is a seemingly never-ending torrent of photo sharing sites, but none of them captured the nub of what we were about. Maybe someday.
I’ve linked to it multiple times, but Feynman’s Appendix F to the Rogers Report should be required reading.
For a successful technology, reality must take precedence over public relations, for nature cannot be fooled.
For software testers out there:
To summarize then, the computer software checking system and attitude is of the highest quality. There appears to be no process of gradually fooling oneself while degrading standards so characteristic of the Solid Rocket Booster or Space Shuttle Main Engine safety systems. To be sure, there have been recent suggestions by management to curtail such elaborate and expensive tests as being unnecessary at this late date in Shuttle history. This must be resisted for it does not appreciate the mutual subtle influences, and sources of error generated by even small changes of one part of a program on another. There are perpetual requests for changes as new payloads and new demands and modifications are suggested by the users. Changes are expensive because they require extensive testing. The proper way to save money is to curtail the number of requested changes, not the quality of testing for each.
If you’re working in a git workspace for a while, you might end up with a dependency change that doesn’t make sense.
c depends on b depends on a (merged)
Now, you want to push c for review but when you do this, b will be pushed as well. Use rebase to undo this:
git checkout c git rebase --onto b a
using the SHA (or tag, or whatever).
If download and try to run a Powershell script (or type one up and try to run it), you’ll get an error about unsigned scripts. The usual solution is to set a default policy of “do any damn thing”. Instead, I made a cmd script to do this:
doit.cmd: powershell line.of.powershell.script powershell another.line.of.powershell
Basically, the cmd shell script takes a bunch of hashes and downloads zip files from cgit, expands, and rejiggers them. Here is the one liner that is the core of the script.
I did not know this feature was built in since Vista. Excellent! Now to find an OS X equivalent…
Sometimes you create a gerrit change that you shouldn’t have, and abandoning the change isn’t good enough.
The other day I created a couple dozen. I followed these instructions and it worked just fine – your gerrit account will need to have sql access, though, so not just anyone can pull the trick off. This trick works for any pending changeset, not just abandoned ones.
To prevent linkrot, I’ll reproduce the instructions here. I’ll assume it’s changeset 123 patch 1 you need to delete.
ssh GERRITSSHALIAS gerrit gsl
update changes setstatus='d'wherechange_id='123';
update patch_sets setdraft='Y'wherechange_id='123';
ssh GERRITSSHALIAS gerrit flush-caches --cache changes
ssh GERRITSSHALIAS gerrit review 12
I ran this over all the stuff I accidentally posted and it worked as described.