I heard the most bestest excuse ever today.
In the context of a third party having been laid off (details lacking, but apparently laid off from what had been a steady job with the government of an affluent city), I mentioned that, while everyone around here suspects businesses of laying off people just before their stock options (or, more rarely, pensions) vest, the military has apparently begun pulling the same stunt.
The prompt response? "Well, that's just good Republican management! It's Romney's specialty!"
So: an action of the Obama administration that can't be blamed on President Bush... gets blamed on President Romney. Most be using Karl Rove's time machine again.
(Oh, and those businesses I mentioned? The local tycoons are more or less uniformly Democrat supporters. They're the ones who attend the $38K/plate Obama fundraising dinners. There's no point being a Republican, since the Californa Republican Party is barely a joke and has no influence to peddle.)
Sunday, 29 January 2012 | Permalink | Comments (0) | TrackBack (0)
Being mostly over last week's cruddy virus, I'm putting in some work time this weekend to try to get caught up.
I'd had just about enough productivity last week to deal with the high-priority issues that had cropped up as a client was putting on a dog-and-pony show, trying to get the end customer to sign off on one of the more ambitious toasters*.
Anyway, one of the things that had turned up was a panic-and-reboot cycle that appeared in their lab and mine at the same time, and didn't appear to be related to any changed I or my apprentice had made. Turned out that I'd goofed up a bit definition, such that a model-specific bit reflecting the status of the overdone-toast detector** was stepping on the generic bit indicating a major self-test failure, and we both had the signal turned up on our simulators such that the toast appeared to be burning at startup. While a burning-toast indication at startup arguably does constitute a self-test failure, this was not the behavior we wanted, and correcting the bit definition made the symptoms go away.
Well, I was still curious about the cause of the panic, and was much afeared that I'd be diving into the innards of the OS trying to find it. Turns out, though, that it was a silly little thing: this model also has an LCD panel to display status, which includes the current operating state (by a highly condensed name). Well... when I'd added a new state for "inoperable due to self-test failure", in support of another model, I'd updated the generic table of full-length state names, but not this model's table of condensed names. So, it was trying to use the contents of an unrelated word in flash as a string pointer, resulting in the observed dabort trap.
And so the code gradually improves. Some of the recent fixes affect other current models; others add new capabilities that will likely be of use in future models. One fix involved diving into the FPGA code again, and had me regretting designing in a Spartan 3E instead of a Spartan 6***.
Also: when I returned to the project today, the test that had been running since yesterday morning had rebooted with an Out Of Cheese Error. I updated the status monitor to include the cheese**** level, and it's been holding steady. Or, rather, flickering among 23K, 23.4K, and 23.8K bites of cheese available (cheese allocation being highly dynamic); the level not progressively diminishing, there would seem not to be a cheese leak. Could have been a secondary effect of disruption caused by EMI coupled into the wiring (a known problem with the lab setup; not so much with the actual appliance).
Update: Got the Out Of Cheese Error again (with the panic, system dump, and Redo From Start). Last iteration of the status display showed 23448 bites of cheese available, so it's something that happens suddenly, not a gradual leak. The active task at the time was http_server (it's a net-connected toaster)... which shouldn't have been allocating any large pieces of cheese. Could be the Big Cheese got all full of holes so a modest-sized slice couldn't be allocated, or maybe... hmph. I gotta figure out how to do a stack trace in ARM EABI, to find out who made the request (could have been an interrupt handler, or the task switcher, rather than the server task). Meanwhile, I guess I could throw in a cheese-list dump when that error occurs.
Update 2: The available cheese isn't getting all Swiss; it's getting all crumbly. Apparently adjacent curds are failing to fuse together as they should. Which means there's one more freakin' special case my cheese-release function needs to handle. Er. Or... D'OH! I need to get rid of an else, or perhaps make the merge iterative. Putting a bit of cheese back into the ball checks for merge-before and merge-after, but if the piece being put back fits neatly between two pieces already there, only one of the two merges will happen. Which makes the whole afternoon and evening non-billable time; such is life.
Update 3: That didn't take long. Just needed one more check/merge following the append-after case. Seems to be preventing fragmentation so far. Now to leave a test running overnight, before declaring it good.
* Not really toasters, but a sort of appliance that has an embedded controller, which is my department.
** Not really an overdone-toast detector; see above.
*** Just because the Spartan 6 wasn't out yet when I designed the controller board. What kind of excuse is that?
**** Not really cheese, either, but surely you knew that already.
Sunday, 29 January 2012 | Permalink | Comments (0) | TrackBack (0)
Tinga seems to need a more stimulating environment.
In a new effort to make her life more interesting, in a way that doesn't involve having her cling to my shirt while I'm trying to work, I decided to repurpose the Chumby from alarm clock to bird entertainer.
OK, so look for something to put on the screen. How about this one: "Neotropical Birds." Sounds good, even if the picture are mostly of little tweety birds.
Now for some audio. Main reason for using the Chumby is that classical radio has become unavailable around here, so for a classical station one must resort to internet radio. Lessee... Shoutcast... "Venice Classic Radio" sounds like a good one to try. Set it up, hit play, and hear the middle of something by Respighi.
No prize for guessing which piece by Respighi... think I picked the right channel?
Anyway, we shall see if that keeps her amused at all. Maybe eventually I'll set up a cage-mountable peckscreen computer and let her change the channel, play video games, etc.
(Might actually be a good use for one of those crappy-cheap Android mini-tablets. I'm not sure a capacitive touchscreen would work with a beak anyway, and it's not like she's going to use multitouch, so the resistive sensor might even be advantageous. Just so she doesn't spend her days playing Nyancat.)
Saturday, 28 January 2012 | Permalink | Comments (0) | TrackBack (0)
Back when I was occasionally using eBay, I noticed something about the seller ratings:
Given the opportunity to rate a seller in under 79 characters (or whatever the limit was), I'd try to squeeze in something informative. Like, I dunno, maybe "Item as described; prompt shipment; no problems." That kind of thing.
Most of the other positive seller ratings, though were of the form "AAAAAAAA+++++ sUper eBayEr!!!" Apparently, rating containing fewer than 7 As and 5 +es meant "you suck."
Well, that's a bunch of online kiddies. Grownups don't do that sort of thing, do they?
Er... so how come sovereign bond ratings seem to run from AAAAAAA+++++ ("will probably make the payments on time") all the way down to B ("total junk; regime unstable; default imminent")?
Obviously, it's just another manifestation of "everyone gets a trophy," brought to you this time by the fulsome and meretricious people in the world of high finance.
Friday, 27 January 2012 | Permalink | Comments (0) | TrackBack (0)
The virus I'd been fighting all weekend seems to have caught up with me: stuffy head, cough, bit of a sore throat, and really nasty headache, sporadic wobbliness. Moderate morning walkies didn't help much.
So, home today, and being basically useless, so I've been attending to sundry IT chores.
Finished setting up a Debian-stable (Squeeze) virtual machine as a stable build environment for some mission-critical firmware. This way, I can archive a copy of the VM along with the release firmware that was built with it, and years form now anyone with a machine capable of running a compatible version of VirtualBox should be able to replicate the binaries. (Well, except for the timestamps.)
Also revisited the Windows XP virtual machine, installed from a generic XP Home CD a while ago, using the magic numbers from my eldest laptop (wherefrom Windows had long since been purged). Will it activate? Yes! And so I downloaded and installed SP3 (necessary before the Windows Update site and IE would even begin to get along), and went through many iterations of updates to get current. Then installed Office 2010 (wouldn't install on the VM from the host DVD drive for some reason, so I had to copy all the files, under Linux, to a shared folder, then run the setup program there), and installed the huge pack of updates for that. Then figured out how to get a decent virtual screen size (install the guest additions, check "auto-resize guest display", and maximize the VirtualBox window). Hey presto! The old klunker I'd been using as an office Windows machine (and which has been in a somewhat disassembled state, out in the hall, of late) is no longer needed... assuming I can get a couple of CAD programs working too.
With all this, and the migration I've been doing the past few days in odd bits of time, I'm pretty near moved into the new workstation. The main remaining item is shuffling all my Firefox bookmarks, cookies, saved passwords, and suchlike over to the new machine.
Coming back to the old workstation to type up a blog post is... eerie. All those virtual desktops with nothing on them but disused shell sessions and file browsers; all the real apps (except Firefox) shut down and now running on the new machine. It's like wandering through the building of a company that's in process of shutting down. Needs an app like "sheep", only with tumbleweeds (the nearest I can find is "amor" set for "spooky ghost").
Anyway: nap time now.
Tuesday, 24 January 2012 | Permalink | Comments (0) | TrackBack (0)
Sometime during my recent episode of workery-swampery, I saw something go past on Slashdot about a push to get Climate Change (i.e., catatonic anthropomorphic manbearpig) put on the same footing as evolution, and deniers roundly denounced in all public schools.
Because the two are just exactly the same, you know. And we've all heard what modern biology has to say about evolution:
Er, wait.
Sunday, 22 January 2012 | Permalink | Comments (0) | TrackBack (0)
No, I didn't go dark for a fortnight to protest that SOPAPILLA thing. Just been busy, mainly with work.
Luckily, the military side of business got a slow start on the year, 'cause I was suddenly supposed to be more or less full time on each of two, count 'em, two automotive projects (manufacturing test equipment for two unrelated factories; this makes for more interesting tales I can't tell here). Meanwhile, the boss has been getting still more leads on projects for various industries, and I think I was supposed to make a start on a test system for a medical device about two days ago.
Then, the last couple of days, military stuff started pouring over the transom, so it'll be a working weekend for me. Got pulse trains to limit, power supplies to short out, and... where did I put that to-do list, anyway?
And there's a bunch of domestic IT stuff that requires attention. Not to mention domestic laundry stuff.
(Domestic IT update: a few days ago, I finally got around to setting up OpenVPN on the newish server and the newish laptop, the better to be able to send mail, as some unhelpful netadmin went and configured a router to prevent random computers on the inside from connecting to random SMTP ports on the outside*. Also, I'm making progress at migrating from the old workstation to the new one, though I'm finding a distressing lack of some familiar utilities in KDE4, such as a print queue manager that works right. What became of the old "kcmshell printers" utility?)
(*Yes, I know I've been saying for years that most routers ought to be configured that way, to fight spambots. Doesn't stop me complaining when someone goes and does it.)
Saturday, 21 January 2012 | Permalink | Comments (0) | TrackBack (0)
On my to-do list these past several months: look at bug-tracking systems, pick one that does what I'll be needing for various projects for various clients, learn to use and configure it, and get it set up.
And I looked at various of them, and found them to have all manner of advanced features for which I had no near-term use, and to be an almighty pain to configure the way I wanted for the immediate future.
In the meantime, a client had started passing around an issue list in the form of an Excel spreadsheet. Noooooooo....
So, this past week, I decided to do it the easy way, IMCFT. I structured up a simple little SQL database, and threw together a small collection of PHP scripts, dragging in a little bit of Javascript (mainly to invoke TinyMCE for the "describe the problem in excruciating detail" box) and some CSS adapted from samples I had lying around. Probably put in about 12 hours on it (not that I really bother tracking hours on non-revenue work). 'Tain't all polished, but it covers the immediate needs, and provides the groundwork for a system that'll do exactly what I need for future, more complicated projects (and entwined projects, and compartmentalized projects).
And, what with the web interface and PostgreSQL backend, it doesn't require passing a file around and wondering who's got the master copy at any given moment.
Looking at UI stuff that could use improvement, I start pondering frameworks, like jQuery... and it looks like jQuery doesn't really do the kind of stuff I want, at least no more easily than doing it myself... and I notice that, back in, um, 2005, when I had some time on my hands, I started writing a wildly generalized database webapp thingy... and that includes some Javascript bits that seem to be just what I'll be needing here, or that can be adapted easily.
Anyway, it's currently in the "plan to throw one away" phase; I figure I can get good use out of it in the current form, adding features as needed, and then rewrite the web interface properly without messing up the database in the process. Being far more specific than the '05 effort (and there being an immediate use for it), it should even be finishable.
Sunday, 08 January 2012 | Permalink | Comments (0) | TrackBack (0)
Idea #1: we've all heard of the old-time traveling medicine show. Imagine, if you will, a traveling forensic medicine show.
Idea #2: for the neighbor who has a disgustingly flat lawn that could pass for a duckweed-covered pond, a novelty item: the eyes and snout of an alligator to poke above the surface.
Wednesday, 04 January 2012 | Permalink | Comments (0) | TrackBack (0)


Recent Comments