Archive for the ‘work’ Category

Buying Parts

Slam Stick: dissected!

Woot! It sounds like a gadget I designed will be featured in next month’s EDN magazine (Prying Eyes column). This must be some kind of ironic career turning point: I landed a job by reverse-engineering other peoples’ stuff; now people reverse-engineer my stuff.

You are invited to participate in a research study. Afterward, there will be cake.

Heh… I’ve just completed NIH certification to administer human test protocols. I feel like that’s got to be worth a few mad scientist points.

So, I’m working on this project at work involving research into new forms of computer interface peripherals. (No, not that one.) As part of the project, we are required to test these interface concepts with live humans, survey them and see how well it works for them. The survey is positively harmless: basically like handing someone a shiny new cellphone set to vibrate, and programmed to vibrate in a different pattern depending who’s calling. Then run each pattern and see if the user can use it to successfully identify the caller. To make things simple, we had proposed to do these tests with our own employees (everyone pretty much said, “hell yeah, I’d like to play with that” when I described the project, and it sure as hell beats pulling in random strangers from the Craigslists to nose around in our secret lab).

Oh, for the catch: it’s a DARPA-funded project, and this required usability survey stuff constitutes Human Testing. To do any Human Testing, you need to draft a Human Test Protocol detailing exactly what you hope to get out of the research, intricate details of the exact test(s) that will be performed (down to the specific questions you will ask, and in what order) and the exact hardware involved in each test (note, this hardware hasn’t yet been designed by the time these forms/tests must be finalized…also remember that the entire point of these tests is to guide the design of said hardware, which now must be set in stone long before the test). So much for iterative development, that’s for sure. Add to that lengthy Informed Consent forms, confidentiality procedures, SOPs, HIPAA forms, risk assessments relative to daily activities (like, say, using your cell phone…), Conflict of Interest forms, Anti-Coercion Forms, and the whole shebang must be submitted to, and approved by, an IRB (Institutional Review Board), then the IRB’s approval approved by the governmental Office of Something Something Something. The package we submitted went up to Appendix V. (Not V as in roman numeral 5, V as in A thru… . I kid you not.). We each also had to take this lengthy “Protecting Human Research Participants” online course. Not that I’m not completely for protecting my human research participants, but come on – we’re asking them simple gadget usability questions, not giving them experimental drugs.

We got feedback from the IRB today, our protocol is NOT yet approved. They need more forms submitted and a bunch more specific details carved in stone.

I shouldn’t be complaining. Poor Jeff, my officemate, is handling the vast majority of this process in concert with a PhD consultant who is actually used to dealing with this crap. It just burns having to scramble around slapping together super-crude prototypes to test on-the-sneak to get even some rough semblance of how to structure the tests, not to mention the hardware, to get any kind of meaningful results (screwing the schedules on my other projects), how much of the project’s fixed budget will be swallowed up by this approval process instead of, say, actual R&D, and just how pointless the tests will be when it’s all said and done. Our money shot is 3 days’ worth of usability testing at the end of the program, predetermined at the start of the program.

Oh yeah, and letting your own staff participate instead of random losers from off the street? BIG MISTAKE. Far from simplifying the random Craigslist idiot, asking strangers medical screening questions, losers breaking our equipment, NDA, and losers selling our tech secrets to the Commies cans of worms, it actually hugely complicates things. Now you need to prove to the IRB, and the governmental IRB approval approvers, that employees’ participation in the research is indeed voluntary (not, “hey, participate in my research study or ur fired”), and all the steps you have taken to ensure that all participation is voluntary, that no one has the capability to bribe or coerce anyone into participating, that supervisors/bosses cannot determine who participated, etc.

Some notes, in case I EVER have to do this again:

Do Not promise, or get involved in a project where they will make you promise, human testing (no matter how harmless it seems) for any government project.

Do Not promise human testing -of anything- on a Phase I SBIR budget.

Do not write, review, modify or proofread human test protocols after playing Portal. Now the whole thing is in GLaDOS Voice. Likewise for the Big Red (supercolliding super-) Button that stops the test. (“The effects prolonged exposure to the e-stop are not a part of this test.”) I’m incredibly tempted to slip something into the protocol promising cake after the study, but then I’d probably have to get FDA approval too :-(

HIPAA stands for Highly Increased Paperwork and Annoyance Act.

(And yes, technically I *could* construct a test sequence in such a way as to make the prototype play music. But I haven’t gotten around to it yet choose not to. Yeah, that’s it.)

Creepy government project…

Title: Virtual Dialogue Application for Families of Deployed Service Members

Objective: To develop a highly interactive PC or web-based application to allow family members to verbally interact with “virtual” renditions of deployed Service Members.

This RFP from the Office of the Secretary of Defense (OSD09-H03) floated across my desk the other day. After reading the first line I thought, “They want internet voice chat with avatars? Quit wasting my tax dollars, go download SecondLife.”

Then I kept reading. That is not the goal of the project. At all.

Description: The Defense Centers of Excellence for Psychological Health and Traumatic Brain Injury recognizes that family outreach and advocacy is pivotal for both the psychological health of the family and the resilience of the Service Member. Deployments put stress on the entire family, especially small children and communication is key. The ability to reach out and communicate with loved ones from areas of conflict is better than at any time in history. Nevertheless, the stresses of deployment might be softened if spouses and especially children could conduct simple conversations with their loved ones in immediate times of stress or prolonged absence. Historically, families have derived comfort and support from photographs or mementos, but current technology SHOULD allow for more personal interactive messages of support. Over 80% of American children between the ages of three and five regularly use computers, and 83% of families have a computer in their home. So, computer-based applications would resonate with children and capture their interest and imagination. The challenge is to design an application that would would allow a child to receive comfort from being able to have simple, virtual conversations with a parent who is not aivailable “in-person”. We are looking for innovative applications that explore and harness the power of “advanced” interactive multimedia computer technologies to produce compelling interactive dialogue between a Service member and their families via a pc- or web-based application using video footage or high-resolution 3-D rendering. The child should be able to have a simulated conversation with a parent about generic, everyday topics. For instance, a child may get a response from saying “I love you”, or “I miss you”, or “Good night mommy/daddy.” This is a technologically challenging application because it relies on the ability to have convincing voice-recognition, artificial intelligence, and the ability to easily and inexpensively develop a customized application tailored to a specific parent.

No, I don’t see any potential to scar a kid for life with this. Especially if a detached, AI “Dad” suddenly has no recollection of the existence of the family dog, or memorable recent events in the kid’s life. Or catching on that “Dad” is a fake, and for a long time after, never trusting whether he’s talking to his real parent or a computer simulation. Or, mid-conversation, the arrival of a letter apologetically informing the family that the person the kid’s currently speaking to was actually killed in combat three weeks ago.

Could the current state of AI not only fool someone into mistaking it for a human, but mistaking it for a human they’ve known intimately for their entire life? (Then again, I have known some humans that might not reliably pass a Turing test, either.)

We are seeking development of a tool which can be used to help families (especially, children) cope with deployments by providing a means to have simple verbal interactions with loved ones for re-assurance, support, affection, and generic discussion when phone and internet conversations are not possible. The application should incorporate an AI that allows for flexibility in language comprehension to give the illusion of a natural (but simple) interaction. The current solicitation is not aiming to build entertainment, but a highly accurate and advanced simulation platform. Voice-recognition and voice-interaction are required. The User Interface is a critical component for this program. Application must be user friendly and application must be easy to install and maintain. Verbal interactions should be as normal as current technology will allow. Proven track record for creating similar types of applications is desired, but not required. Development plans should include the use of trained psychological health and family advocacy experts with experience providing services to military populations. Project MUST include discussion of how personal information would be collected, recorded, and rendered as well as address issues about information content and complexity of proposed simulation application. If using a web-based application, security and maintenance issues must be addressed. Application must run on typical family-owned computer systems.

Fixing Dell Precision T3400 USB not working

This is an update to a previous rant about the mysterious Windows XP “Dee-Dunk” error (and the novel concept of presenting an “error message” when an error condition exists), possibly in conjunction with broken or intermittent USB functionality. This post is mainly for Googlers – my friends are more than welcome to skip it.

I haz solved the mystery! It turns out that some Dell Precision T3400 machines (my work machine was one of them) ship with buggy/broken BIOSes and/or chipset support. Anyway, to fix:

Worm your way onto Dell’s support site for updates, enter your model number; download and run the following three patches:

  • BIOS Update (T3400A08.EXE, or whatever is newest)
  • Chipset Software update (R174616.exe)
  • Desktop System Software update (R160758.exe)

The above are intentionally not linked; the filenames and/or URLS may shift around as newer versions of this crap come out. Also, exact support packages may be different for other Dell products exhibiting the same malfunctions.

Symptoms include:

  • USB devices do not work, or only work intermittently (every Nth reboot); behavior may change slightly by enabling/disabling different combinations of USB ports in the BIOS (or this may be a placebo effect on my part, who knows)
  • Dreaded “Dee-Dunk” noise shortly after Windows desktop appears
  • USB devices such as keyboards, mouse, etc. work for a while, then mysteriously stop working until machine is rebooted
  • “USB Device Not Recognized”…
  • “There was a problem installing this hardware: <blah> The device cannot start. (Code 10)”
  • After installing a certain USB driver, machine crashes/hangs with a black screen for several minutes before the Windows desktop appears (may depend whether the corresponding device is plugged in)
  • Machine hangs when trying to install USB device driver
  • Software hangs trying to scan the bus or access a USB device

Daily Windows Rant

Error messages, people. Error messages. When an “error” occurs, it should be accompanied by an “error message”, which informs the user a) that an error did occur; b) what that error was. It does not even necessarily have to be understandable to mere mortals (although this would be really nice), because understanding it is the job of your IT Guy and/or someone before you who got that error, posted it on a help forum somewhere and got an answer. Thus, mere mortals will Google the error message, and if results == 0, post it to a help forum somewhere.

Now, a “Dee-Dunk” error (available only at your local PC speakers, assuming you have any and they are turned on at the moment, and the volume is turned up, and the error being reported isn’t a soundcard error*) is really hard to Google. Besides that, consider the conversation between the user and the IT guy:

IT Guy: What was the error message?
User: Well, it was kind of like um… a low rumbling, kind of like somebody dragging a department-store mannequin across a warehouse floor strewn with marbles, followed by an orchestra hit.
IT Guy: Was it a high orchestra hit or a low orchestra hit?**
User: Umm…

So for anyone who is dying to know: Under Windows XP, a “doodoodoo” error*** (sounds like the first half of a doo-dink notification repeated three times really fast) when attaching a hardware device means that the device is successfully identified, but its drivers are kinda-sorta-semi-quasi-blacklisted because somebody at one time clicked “STOP Installation” at one of those “This driver has not undergone Windows Logo Extortion Certification and will probably do really terrible things [Continue anyway] [STOP Installation]” screens. From that point forward, the user will never again be prompted to install the driver or change his mind, regardless of how many times the device is subsequently unplugged and plugged back in. To fix: Find the brokenly-installed device in Device Manager, dig down to driver details and ‘Reinstall Driver’; this will allow you to manually force a driver despite any previous accidental blacklistings.

*As with many work PCs, we did not bother hunting down a set of speakers to attach to, for example, our EE lab workstation. This is not unreasonable considering that it is a workstation, not a watch-youtube-station.

**The next version of Windows will communicate with the user entirely by winks, nudges and significant glances. (IT guy: “Are you sure it wasn’t a drum solo? ‘Cuz a drum solo error is really bad.”)

*** or doo-doo-doo or DoDoDo or doodoodoot or boobooboop, or however you would enter it in Google if you thought that might actually work

And these points of data make a beautiful line…

(and we’re out of beta, we’re releasing on time… Err… deliverable code freeze will happen monday morning, or wednesday afternoon (due date), or before 50% of the devices are sealed up for delivery with the code already on them, whichever comes before the last bug is found. [Especially if the bugs are discovered in hardware, third-party hardware or attached wetware.]) As of tonight, all outstanding issues that I know of have been resolved and the hardware is performing beautifully… now we just have to build 30 more of them :-p

So, guess who has been and will continue to be semi-insanely busy for the next couple weeks or so?

My schedule for the forseeable future (i.e. as far as I’ve been forced to p-l-a-n):

Monday: Meatz, 7:30pm @ Midwest Grill, for mah birfday.

Tue-Fri.: Playing Metroid Set up a cot in the lab(?), get deliverable shizzle together, start(!) coding the (sender,receiver) sides of a completely secondary gadget our TPOC (not an embedded engineer) added to a very short contract extension at the very end, because “it’s the exact same thing, just operating 1,000x faster, right?” :-p Officially due Wed. as well, but that’s not going to happen, so I’m not going to spend the next two days sweating about it. (The actual delivery date is still up in the air, since we AFAIK haven’t been provided one, nor a destination address. Wed. is just the contract end date, i.e. last day we can book hours to it vs. stuffing engineering hours under “office supplies” or some such nonsense.)

Friday night ~ Wed. the 24th: Demoing my sssexy, self-powering gadget at the RSI conference in Chicago (train stuff, not excessive 2- or 1-handed typing injuries*) (environmental energy harvesting, not over-unity quantum-foam perpetual motion BS :-))

Wed ~ ???: Catching up; putting out whatever fires were started in my absence.

Real entries to come soon(ish)!


So yeah, that particular work project just keeps getting better. Today I got this in my email from the manufacturer of a critical component, reaffirming my personal “If it’s not in-stock on Digikey, I do not specify it in my design” policy.

[…] The <display> is on
hold. There are no technical reasons but it has been decided that it will be turned
on again if we receive a commitment from a customer. Makes it a bit harder to sell
without a product but that is the path that <vendor> has chosen to take. At 10K the
display would be $### each. Once turned back on, samples would take 10 to 12 weeks.

So, this display turns out to be a rather special type of display, which we’ve gone to considerable expense in researching, testing, and designing a product around. We’d been working with this vendor for the better part of a year and they’re already aware of and (until around today, apparently) cool with our expected volumes (5kU-10kU, contingent on, among other things, their product actually existing), so this is kind of a giant kick in the nuts. Basically, we’re too small-fish and they’ll maybe consider manufacturing the (already-designed) display product if a larger customer wants some. The specific reason we were working with <vendor> to begin with was that they were the only vendor of this type of display that didn’t give us the old “fuck off, come back and speak to us when you have that PO for 50kU in hand *click*” that seems to be the industry standard. Soooo… project is back to square one, $$$ of development money thrown into the trashcan. Not even from e.g. a big government contract, where it’s pretty much unnoticed and understood if some of the development time we’ve spent vaporizes for reasons beyond our control, but the hard-earned cash of a couple entrepeneurs, who are not going to be the least bit happy that their almost-product just went up in vaporware.


It’s a mean old bitch and it has stupid name, bitch bitch bitch bitch bitch bitch bitch

So, I got an email back today from a contractee, whereupon I learned:
1) A technology I created, which I envisioned as having significant pro-consumer subversive uses, will instead be used as a carrier for evil (“hey, can it collect usage data to sell to credit-card companies every time they use it? That would be gr-rrreat!”)
2) It’s going to have a really stupid name. The kind of short, vowel-laden nonsense syllable combination used by start-up Web marketing firms and overly cute Web 2.0 niche services for the Myspace generation. But stupider.


On nomenclature (Soylent Green is… is..)

Ok, so, apparently in certain circles of defense parlance, you do not blow up people. Well, you do, but the correct euphemism is “soft targets” (as opposed to “hard targets”, such as tanks, buildings, etc.). Referring to soft targets as people is rather frowned upon. I managed to inadvertently silence a getting-out-of-hand meeting yesterday as follows:

(various talking, sniggering and head-shaking about ‘targets’ nomenclature)
me: So this thing has about 4 seconds to decide if it’s being shot at buildings or people…
AL: Soft targets!
me: OK, so seriously, in the event of Soft Targets (arf! arf!), 4 seconds to reconfigure?
DE: How about bad people?
me: How about, brown people?


Apparently, certain coworkers have far not enough respect for Carlin. (That and, certain coworkers probably now think certain other coworkers have far not enough respect for other cultures and/or not being a racist fuck, even after attempting to explain the Carlin sketch…)

Ok, I’ma just continue sitting on my hands and rocking. (“I am not designing a weapons system… I am not a racist fuck… I am not designing a weapons system…”)

* * *

On a lighter note, from the People who Have Entirely Too Much Fun at their Jobs department…

Toilet colors. The person at toilet companies whose job it is to name the different colors their product comes in* has the Funnest. Job. Evar. One particular model comes in your choice of Thunder Gray, Innocent Blush, or Biscuit.

Hehe…Innocent Blush… “who, me?” Yeah, I’ve had performances like that. Usually a few hours after eating Anna’s.

* * *

Some days ago my girlfriend was staying over, and I was in earshot when she called up her lab to ask someone to turn off an experiment in her hood that was inadvertently left running. My eyes widened and I said, “Whoa, you can do that? You just MeatVNC’d into your lab.” She had no idea what I was talking about and I had to explain. (Meanwhile however, one or more nearby computer geeks were cracking up.)

* not to mention file trademark applications if they Google it and get 2 or less digits of hits. Imagine how that must look on a re`sume`. “I’m also the mark holder for Baby Green(R), Cornfetti(R) and Pilsner Swirl(R)!”

Spinlock This: Less productive than reading slashdot all day! Film at 11.

1) Dude. Seriously. The display we’ll be designing into our gadget won’t be ready for 6 more months? You said it was ready a week ago, and that was two months ago. Our customer is crawling up my ass for the prototype we promised them in December. So you gave me this other one and said “prototype with this, it’s exactly the same.” After three days’ strangling a datasheet out of your chip vendor, I got a partial datasheet with NO protocol info. Now three more days and re-pinging your guy I weasel the protocol info from your end, and the protocol on this one bears no freaking resemblance to the one we’ll actually be using. So why am I to be spending the time to integrate this one when 90% of that code will have to be scrapped and rewritten anyway?

2) Dude. Seriously. Tell me mortgage guy, what the hell is, and why are you sending me documents through some meaningless middleman instead of just emailing, faxing or dead treeing them to me directly? … Ok, I signed up on this dealy, but it just says “There are no messages to display for the selected month and year.” Also, it didn’t ask for any verification info, address, SSN or anything when I signed up to receive my Super Secure Documents that are apparently too sensitive to email. Did I miss a memo here? …Ohhhh, you didn’t say anything about having to sign up with this specific email address, which you shouldn’t have anyway; I created a new email address for this signup, as I do with every other place I sign up on the green earth. … Dude, seriously. I gave you the correct address to send the stuff to that middleman site with THREE TIMES already. Dude. Seriously. I just gave you the insurance company’s full details and phone number in the email you replied to to ask what the insurance company’s name and phone number is. Open your g*dd*mmuth******in eyes. …Dude. Seriously. I do not sign up for random commercial Web sites using my (only-remaining-spam-free) personal email address. I don’t care if you think this mail-a-dealy thing is the bees’ knees, and I don’t care if you want to save a buck in postage by giving me Yet Another Password to Remember and Yet Another Site to Login and Poll Frequently for New Messages, no frickety way. And if that does not work, I still have a “mail box”, which is still perfectly functional and in fact attached to the very house we are trying to refinance here. In fact, I pass by it on a regular basis, which is more than I can say for “”.

3) Ma’am. Seriously. What do you mean you can’t fax proof of homeowners’ insurance to the mortgage guy? I am the policy holder, and I am explicitly authorizing you to do so. They have to call directly..What do you mean I can’t authorize it? I AM THE FRICKING POLICY HOLDER.

4) Dude. Seriously. No less than three admin people and a Director of Mechanical Engineering are in a meeting with a battery and <specialized electronic gadget> company, the goal of said meeting being to discuss combining our technologies into a seamless product, gazing glasseyedly at schematic diagrams on the projector, and you did not think to invite a single electronics engineer to this meeting? (Oh yes, this IS one of the companies that found out about us by meeting me at ESC. I found this out when the DME came running into my office after the meeting with a stack of electronics samples and evaluation kits, asking when I will have a chance to look at them.)

5) Dude. Seriously. Can I get a quote to get these circuit boards made? This is the third time I’ve asked. Yes, I understand I can’t get electrical testing on a multi-project panel, and yes, I know you received the file, but how much will it cost to make them? Dude. Seriously. I know Chinese New Year was last week, but you can’t *still* be hungover, seriously?

6) Dude. Seriously. What do you mean our Molex crimper doesn’t crimp Molex crimp terminals? No, hand-soldering bare wires to 0.5mm crimp terminals in volume quantities is non-trivial. Wait, you already shipped out the gadget that needed the crimp terminals last Friday, without any? Why are you asking me about crimp terminals today?

And I wonder why I spend an entire day and get *butt* done.

Salesdouche game for a bored day

Today was one of those little icky days where, after the fun and mildly arty process of designing a set of boards, the next step was to spend all day in Excel sourcing parts and getting all their prices filled in (and ripping up parts of the design where the part had gone non-stock, etc.). As a fitting punctuation to this experience, I had a meeting with a Toshiba(?) sales rep today hyping a line of 16-bit microcontrollers. (How did I get involved in such a meeting? Note to self, stop agreeing to offers for free devkits :P)

Anyway, one of those better-known salesdouche academy tricks is to match the mark’s body language–it’s supposed to instill comfort and trust or some such, or more to the point, increase the odds someone will buy your stuff: if the mark leans in, the salesdouche leans in; if the mark crosses his legs a certain direction, the salesdouche should follow suit within a minute or two. What I like to do is exhibit increasingly bizarre body language and see how far I can get the salesdouche to track it.

For example, I like to start small, with an “interested” forward lean to get him hooked. Once he’s tracking, I may segue into the Thinker pose or an ever-pensive elbow rub. Once the spiel is well underway and the SD is douching it up at full lather, when he mentions something I don’t like, I recoil a bit and hit him up with the jazz hands to see if he jazzes back.

me: “Ooh. So you mainly work with __JAZZ HANDS__ high-volume customers?”
SD: “Oh _JAZZ HANDS_ nono! We’re totally receptive to smaller orders…” (score!)

I like to follow up with some twitchy elbow and a little feet-on-table action. By the end of the meeting, I might well be in full stripper-table-lay, knees on chair, belly and elbows on table, under the auspices of interestedly poring over a brochure they carelessly left of Their Side of the table. I’m small, so I can get away with this. So far, I haven’t succeeded in getting a salesdouche into full sprawl on our conference table, but that day will come.

Just another day, you and me in paradise

So, today I did this massive circuit board layout for our big Shaft Seal test fixture controller. All right, I mean, I really meant to. Honest.

Oh, and got on about half the company’s shit lists within a few days. It’s not everyday you can piss off two entire departments by accident.

Anyway, last Friday one of our Mechies CC’ed the EEs on an email about product development, and why a certain (halfway-developed-sitting-on-the-shelf*) electronic product of ours isn’t on our web site as a product, with some well-intentioned suggestions on how to get it there (such as license it to our huge competitor, who already has a product line of these things). I replied to it with an explanation of what would be involved in getting it there and unwittingly set off this whole firestorm. As previously mentioned, “List it on your own website and wait for Google to find it” does not a marketing strategy make. Sure, this strategy (along with qDot pimping it heavily at conferences, and links in The Register and a print magazine) made sales of the Drmn’ Trance Vibe soar to over 6 a month at one point, but in a Real Company, 6 sales a month does not brisk business make. (My company’s energy harvesting product, using the same “marketing strategy” (minus qDot), has comparable sales volumes.) Anyway, this did not go over well – our Marketing Department (webmaster), miffed that his mighty HTML efforts had gone underappreciated, shot back with some product placement suggestions of his own.

Now today, Production (2 guys) announces that the high voltage amplifier they’ve been borrowing in ELAB for the last year or so has been relocated to Production for the time being. Knowing why this is the case (they broke theirs a year ago and have been using ours rather than pay the upkeep on their own equipment), I wrote back a reply privately asking why they haven’t replaced their own yet, noting it isn’t really fair to push their operating costs off onto other departments. Crap, ‘nother firestorm.

Not two hours later, one of the production guys catches me at lunch with Yet Another Router Emergency. I had to ask him if he was serious at least twice, thinking ProdGuy2 copied him in on the shitstorm and he was dicking me around as payback, but I come downstairs to humor him and sure enough, the router is juddering around like a freshly-swatted hornet in response to any attempt to command it to home position. The problem only manifests right when it gets to the optical home switch (after which it fine-tunes its position using an index wheel), so it looks like an open-and-shut case of hosing some dust off the index wheel and going back upstairs to get some real work done.


Okay, how about changing out the indexer for a spare. Get into the storage room, and find that someone threw away one of the spare CNC routers, along with its accompanying sound-proofing dust hood. Not eBayed, not Craigslisted, not taken it home… put it out next to the dumpster without asking anyone, because it was taking space. What. The. Fuck. (Granted, this machine was non-functional due to previous part pilferings, but these machines go for about $50K new, and with some creativity, suitable replacement parts would have run less than a grand.) (Had I known, that shit would be safely in my basement, carving me some furniture right now.) Anyway, there was one indexer left and by the time 5:00 rolls around I’ve found the actual source of the problem, after changing out the indexer just made things worse (machine just sits there with the jitters). It was a worn-out control box connector; plugging it out and in to add wires for a ‘scope caused the machine to unfail, in true heisenbug fashion. Yeah, now I feel like an idiot, but a vaguely angry one at that.

* Hardware-wise, the device is developed, in the sense that there are working prototypes; we’re even using them in the lab and they blow the pants off of Futek’s boards and any of Omega’s anonymous little black shitboxes. The initial design was completed literally in two days during an oh-shit-emergency-we-need-this-yesterday installfest at a customer’s site. However, the other 90% needed to actually make a product of it — characterizing it over an entire range of temperatures, input voltages and other conditions, qualifying it, coming up with guaranteed specs, making a datasheet and user’s manual, idiotproofing, design-for-manufacture and setting up a production run, to say nothing of all the ass-kissing / gladhanding / marketing dollars needed to get it exposed — weren’t in the cards.

Code monkey get up get coffee; code monkey goto job

> DE wrote:
> Anyone interested in having a fantasy ice hockey league. No money
> involved, just for fun.

Does this involve quests and dragons?
My wizard's hockey stick has a +5 against Canadians...

T. R. Myself
etc etc

Disclaimer: When said Canadians are vendors, said stick also deals +4 pissed-off EE
damage and +n lamb nomination damage, where n is the number of available lambs.
NOTE: Flinging the dice at your opponent does 2d6 damage. But it may affect your
ability to participate in future games.

So, Tuesday begins the setup for Wednesday-Thurs’ big exhibition where hundreds of fellow corporate whores embedded geeks, wireless tweaks and sensor freaks exhibit their wares at the Boston Embedded Systems Conference. Including myself, as of 5pm Friday. Only one problem. That niggling little “yeah, you don’t have a demo together” problem, you say? Yeah, that’d be it. How smart you are.

Anyway, we’re sharing a booth with (Unspecified Vendor Eh?) since we have complementary technologies. This is really cool of them, since a booth is Wicked Expensive and the high-ups would have never sprung for it themselves (we’d have to sell, like, aboot 10 units just to break even). However, about a month ago, they kind of just dropped off the face of the planet, not responding to phone/email/voicemails/etc. starting aboot the day after we met with their sales rep in person. Now, as a small R&D company, I’m sort of used to this by now. Vendor sees we’re a small R&D company (“…marketing strategy? We put a blurb on our web site, what more do you want? …Yes, technically our marketing department is GoDaddy), realizes he’s wasting his breath and *poof* gone. So, when I suddenly got a reply to Thursday’s hail-mary email, I have to admit I was kind of caught with my pants down around my bootloader. So Sunday and today have been spent jerry-rigging a demo together, and realizing how [bleeping] much I [blippity] hate [nargin] MATLAB, the [@instrcallback] Language of [razza-fragga] Standing on the [message redacted] Street Corner Doing One [readasync()] Thing. Looks like tomorrow will be too*. I also discovered why laboratory shakers are so expensive, after trying and failing to build my own from scrounged lab gear. Once again that dissected Drmn’ toy has become a vibration source for an energy scavenging demo.

*Exploration for today: Discovering what particular flavour of crack MATLAB is smoking such that plotting points to a figure only causes said figure to update after the script terminates, which is non-optimal behaviour when said script is to read its input data continuously from a serial port from aboot 2-7pm, the length of time I’m sitting with it in a booth demoing. Oh, and it supports callbacks (triggered by, say, serial port carriage return), but only when not executing a loop, but also only in response to a readasync() which, if you’re reading more than one line, is in a loop.

The morning-after-vacation pill

And back home am I. The actual trip (complete with thousands of pictures of rocks :P) will be documented soonish.

As previously mentioned during tonight’s game of telephone pictionary* at LE and crew’s house, I accomplished the following at work today:

I wrote one line of code.

And it was a #DEFINE. (Followed by a ; FIXME: WRITEME: make this actually do something in the code)

Surrounding this stunning achievement, I dequeued the vast mountain of emails, voice mails and Action Items that had piled up in my absence, put out some fires, grovelled through the notes for a meeting I wasn’t at, full of itty bitty little new specs from the new commercial partner we were meeting with, which would necessitate a pretty substantial redesign (and maintaining two separate versions thereafter) to answer some questions and prepare an accurate power-consumption estimate for this design that doesn’t exist yet (in preparation for a pop teleconference tomorrow morning), pinged several vendors whose lack of punctuality (or, lack of returning our calls) is causing stalls in various projects, and doing viewgraphs and an Excel sheet for tomorrow’s monthly project review (the project has only two engineers on it, and one of them is me, so in the days before Monthly Project Reviews, this would have been accomplished with a 2-line email). All right, I did get one piece of actual, non-throwaway work done – threw together a quick ‘n dirty test jig for load-testing a particular type of rechargeable battery at extremely low temperatures in the environment chamber.

Anyway, I was a little spent after today, ending up all quiet and preoccupied with nothing in particular (the noise of blotting mental silence following the destructive collision of too many ideas and too much state for the ol’ brain buffer to accommodate). Methinks there needs to be a morning-after pill for vacations, softening the blow that follows a long week of relaxation (aka putting things off).

* Picture that didn’t happen: Brilliantly backlit cloud, with a deep booming voice emanating forth:

(void *)u = new Universe(&heavens, &earth); //TODO: Fix lighting

Do not look into laser with remaining eye

Hehe…From a Navy SBIR solicitation for an automatic sniper-warning system:

This topic seeks technology that will provide a capability to detect a potential sniper at a distance. The technology needs to work autonomously, without having the user actively participate in the scan of the area. […] The most likely technology would be a laser or other directed energy scanner that could detect a return signal from optic systems to include human eyes. The system could also automatically direct a dazzling laser toward the detected potential sniper to dissuade them from continuing to target the Marines.

…and coming back

So, I get into work Monday morning, dive immediately for the coffee machine to get a pot started, and get allllmost fully seated at my desk when one of the Mechies calls up with “Tim, you’re here! Um…can I come over?”. These are some of those words you just love to hear, like when a girlfriend says “we need to talk…”. Normally people just prariedog their heads around the corner, visually poll for a human and start gabbering; they don’t ask formal permission to enter. Something is up.

Sure enough, in pops Mechie with a dire emergency. I guess Friday or so, one of the lab’s two production routers (again, the mechanical, jigsaw cutting kind, not the computer kind) blew a controller box, and they sprang into action, disemboweling an almost-working spare in a misguided effort to fix it by replacing parts at random. By the time I showed up Monday morning, someone had removed the Y axis motor (stripping out one of the screws in the process) and took the Y axis ballscrew assembly apart, liberating some several dozen ball bearings all over the floor. Really, a ball screw is kind of like one of those novelty peanut cans full of spring-loaded snakes, except instead of snakes, it’s loaded with dozens to hundreds of little ball bearings instead. So yeah, dozens of these bouncing all over the floor, probably not to be seen again.

I get downstairs and Ozo Support Guy is down in the lab waiting for us. I guess someone called him up in desperation Friday and said to book a ticket for Wed. (presumably after an EE could look at it), but he grabbed the first red-eye to be here early Monday morning instead, so here he is. I thought that was a bit cheesy, but on the other hand, it took him all of about 3 minutes to diagnose the problem and have the machine functional again (about long enough for me to come back with a scope expecting possibly hours of debugging), pulling the control box from the spare. $1200 consulting bill later, we have a (mostly) working machine again, just needing to be sort of trial-and-error realigned as Mechie pulled the leadscrew/Y stepper/index wheel off this one too, completely screwing up the factory calibration. (The index wheel is a part that helps the machine determine its home position. After being removed, fiddled around and reattached in an arbitrary position, “home” may be up to a full leadscrew rotation off of where it’s supposed to be…) Something tells me it’s going to take a lifetime of chasing to get Mechie to corral the ball bearings and put my Almost Working spare back together. In fact, something tells me it’s not going to happen within my lifetime (I either end up fixing it again myself, else relegating the whole project to the Fuckit Bucket.)


Quick update: HAL, a friend and former college roommate from Back Home (or close), is going to be in Boston this weekend for a job interview on Friday. I’d like to drag him around the city a bit and introduce him to my friends. What are people doing this weekend?

Looks like I have a very slight reprieve (Monday) to decide just what I’m doing about that whole homeowning thing; full-stop closing date would be july 18 at latest (rate lock expires).

The last couple days have been the Days from Hell. Maybe not the 7th circle of hell, reserved for child molesters and encyclopedia salesmen, but the more temperate outside fringe, where habitual porn surfers and serial jaywalkers are condemned to rig up micropower demos for energy harvesting applications (hardware and firmware) on zero notice, all the while being interrupted every 15 seconds to help them out with wiring, coding, come up with a reliable demo-quality adjustable disturbance source (Rezu! Yes, my company is now demoing cutting-edge research using vibrator parts), driver installs, fix the demos after they break them during while machining their enclosures, have long chats with customers, fish through email to forward some contacts to said customer, or immediately tackle some other subcrisis.

“Yeah, we need this stuff ready in like 3 days (1.5 of which are already taken up by your existing projects with immediate deadlines). We could have come to you with this last week, but, ah, didn’t. Did you used to have any plans tonight?”

Between all this stuff and 4am-still-staring-at-the-ceiling mortgage thought, I’m pretty fuckin’ beat.

Notes on Windows 2000 Server Edition…

Windows should not be used for servers. End of discussion.
OSes which have a Registry should not be used for servers.
OSes which can only be configured through a GUI should not be used for servers.

Three guesses why I didn’t get jack done today, why the entire office has no website or email, and what I’ll likely be doing tomorrow.

Bulk update & APG testing rant

It’s been one of those weeks… seasons. There has been simultaneously so much, and so little, to report. Work is kind of the same old; it seems as though I’ve been spending record numbers of hours there, and yet, getting not a damned thing done. As for personal life, not much to report there either, be it achievements, new relationships or personal advancement. So what HAVE I been up to in the last undocumented couple weeks?

Meat making, and close encounters of the Midwest Grill kind
Pictionary and a crash refresher course in biology (and then some!)

Last Saturday, we made incredibly tasty tamales at JR’s; everyone pretty much fell into food coma thereafter. JR’s gerbil Gaby was also laid to rest in my backyard that morning :-(. Sunday I pretty much slacked around on my ass at home all day, eating leftover tamales and getting not much done.

Tuesday I had to be up at the buttcrack of dawn (4am) to head out to Maryland and do some testing, specifically, to shoot at some experimental armor prototypes (one prototype each of 3 different configurations) and see what happens. This was not as much fun as it sounds. Expecting a very quick wham-bam-thankyou-ma’am test, my bossman books me a flight arriving at 8-something am and leaving at 4-something pm. Given a 1-hr drive each way between the airport (Baltimore) and Aberdeen, and arriving 1-2h ahead of departure to actually catch it, this leaves not much time for testing. Still, after 3 “whams” all of our prototypes should be destroyed, so it shouldn’t take long, right? Anyway, the flight out of Boston is delayed by an hour. So I get my rental car (there must have been something big going on in Baltimore that day; the 4th rental agency I called had a nonzero number of cars left, and the smallest was a beefy minivan*) and floorpedal it to the APG security gate with all the information I have (an email with the name and number of the guy who will be my escort around the secure areas, whom I’ve never met or talked to). They’ve never heard of him. Officially you’re supposed to know the building number you’re going to before they let you through, but security guy #1 takes pity, gives me a visitor pass anyway and directs me (poorly) to another gate where they might know who this person is. Some driving in circles and asking directions and I get to the right gate. However, when SecGuy1 said go to the gate, he did not literally mean go to the gate. As I find out from gruff SecGuy#2 at said gate, visitors are not to even approach an inner gate without an escort. He meant a small white building 100 yards away with a front desk. Eventually they find out which building my contact works in and direct me there, where I surrender my cameraphone, then, after describing all the equipment I have with me, am asked to go back to the van for the Big Bag o’ Camera (item #2 on bossman’s Things To Bring list) and surrender it too. Another 20 minutes and repeated calling around, the front desk there manages to track him down and tell him he has a visitor (who it seems he wasn’t really told when or whether to expect). So I finally meet TJ, who turns out to be a young mechanical engineer and a really cool guy, and he takes me Behind the Fence to another building where the tests will be done.

“Shooting at stuff” is kind of a simplification; there was no shooting in the traditional (by-hand) sense. (Damn, and I thought that’s why they sent me of all people. Maybe that and being a US citizen with no family/etc. obligations who could go on short notice.) All the projectiles were electronically fired (keyswitch, warning siren and safety interlocks), behind a blast door, in a thick concrete chamber, sapping most of the fun out of it. We got to watch the impact from a CCTV monitor in the next room.

Probably for cost reasons, there was exactly one prototype of each configuration, meaning I only had one shot at each test (no pun intended) to get it right and collect the data. Before leaving, I was told to expect results on the order of kilo[unit]s and kilo[unit]s out of them, and brought along fancy equipment to downscale and measure results of that scale (not to mention, prevent damage to the instruments). So I connect everything up, give the first armor plate a few love taps to verify I’ve got a signal, then we’re ready to drop & pop the first test. Needless to say, I’m sweating bullets that the whole setup is correctly instrumented and the recorder is scaled (both event time resolution and amplitude) such that we’ll get meaningful data from the prototype, which will respond in a way not fully known. The round is fired and I see *something* (later found to be just the witness plate–a thin aluminum plate behind the test stand to determine if any significant fragments got past the armor) go flying. Run to the instruments and…NADA. No traces. The recorder didn’t even trigger. We just blew the first unit with NO DATA and not the foggiest idea of why. A very nervous call to my bossman saying we got no data from the first test.

It’s not until 10 minutes later anyone is allowed back into the firing chamber (some safety paranoia about venting all the gunpowder fumes first), but we find the article is still (mostly) intact, so I’m like, “um…how do you guys feel about shooting it again?” This time, (after much time re-checking all connections and independently verifying operation of each piece of equipment) the recording triggers (sensitivity now set to 500[unit] instead of 10k[unit]) and there’s a tiny little spike on the screen. It can’t really be considered a valid result (since the test article was already damaged from the first shot), but at least gave me some insight as to the true scale of the data I was measuring. It turned out to be not 10+k[unit], but about +/-2[unit]. No wonder the first recording didn’t trigger. By now it’s too late to do any more testing–these guys have to knock off at Sixteen Hundred (4pm), and I just barely get back to the front desk in time to reclaim my phone and camera bag before the receptionist goes home.

OK, so much for that flight. Now I get some directions to a stand of hotels a ways off-base (TJ was very helpful, even got computer access and Mapquested them for me) and call up the airline and book a 1-way back for the next night ($400+), and don’t bother calling the rental car place to say I won’t be back today (I’m told they’re used to it). Got a good amount of reading in, and got to sleep in a bit the next morning because everyone had a long meeting and couldn’t get back to business ’til after noon.

The next two tests go much faster and without incident. We end up firing 2 rounds into each prototype, while I scribble all the non-trace data into a notebook to recombine later. By the time all the testing is done and equipment packed up, it’s right around 4:00 again, just enough time to bolt for the airport (with a 20-min detour looking for gas at the I-95 “travel plaza” that has 15 different kinds of fast food, but only carries diesel fuel), drop the car and race for Delta’s ticketing desk, where I stand endlessly as it takes another 15 minutes and a total of three desk personnel plus a supervisor to print my ticket (“…I don’t know, sometimes it just does this, this comes up and it won’t go through…” “…now do s, star, star, special, 7…”)… of course, it’s an SSSS ticket**. To identify fliers who are to be subjected to intense hassling in the TSA screening line, airlines will mark the ticket with S’s at the bottom. SSSS involves a guy with a rubber glove, who invariably seems to enjoy his job far more than he should. Seeing that I was traveling with only 1x wallet, 2x shoes and 1x set of car keys sans metal flashlight, the personalized screening didn’t take too long (they didn’t even pull out all my credit cards looking for razor blades in between, like on the Michigan never-fly-NWA-again return flight). One-way, purchased the night before and showing up to the counter flushed and sweating may have had something to do with it. He swabbed my shoes too, but I guess any gunpowder residue wasn’t enough to trigger any alarm bells. Despite the pat-down, it would have been easy enough to tape a sharpened shard of glass to the front of my leg undetected (they only felt up the sides), then board and use it to carve rude air-travel limericks into my tray table***, or whatever it is that people who smuggle shivs onto planes do with them.

It’s Someone Else’s Project, so all the extra expenses (2 days’ engineer time, 3 plane tickets, hotel, extra day car rental and extra day parking for my car at Logan) don’t come back to bite me personally, but I’m sure nobody is thrilled to have me booking it all against their project only to show up almost empty-handed (negative results).

* note to self: Never buy a modern car unless you can disable all the “smarts” in a sneaky enough way as to not void the warranty. I’m sure the engineers who build in said “smarts” have the best of intentions, but it doesn’t do much good for confidence when a large, dangerous piece of machinery under your control is continually second-guessing you. This actually warrants a rant all its own… my main beef with this one was a dodgy alarm that would go off whenever it felt like (even though the car was legitimately unlocked before opening).

** Stand, Spread ’em & Sweat Substantially?

*** A young stewardess from Southwest
Was impressively ample of breast
If the engines should freeze,
and drop us in the seas,
I call dibs on her as a life vest