randomdreams: riding up mini slickrock (Default)
One of my transistors isn't sistoring, and I don't know what to do about it. I think I'm just going to sleep.
randomdreams: riding up mini slickrock (Default)
Most of y'all know that I have a lot of memory problems, and I've had to turn into a somewhat Memento-esque person. I had two different instances of that today: looking for a piece of hardware/software I built for the Spitfire four months ago, and I found the control board nicely packaged with the sensor and the relevant processor, rather than having to hunt them down again (or more likely reorder them) so it's nice when I think enough at the moment of creating a project to physically include all its dependencies. On the other hand, looking through the firmware I wrote for it, and there's an uncommented constant that looks like nonsense, so I change it to something sensible, start working with the sensor, and can't figure out why the output is total garbage, until I look carefully at the hardware and realize I have it set up to use a precision voltage reference rather than just whatever the input voltage is, and that nonsense constant is actually the correct value for the precision voltage reference. So, switch it back to what it was, add some comments, and go back to working on the project. Sheesh.
randomdreams: riding up mini slickrock (Default)
I went to Moab, Utah, over the weekend to meet some G+ friends and ride all over creation. I'll post pictures later. It was utterly exhausting, mostly because I rode with them in the morning and then went and rode really hard in the evening on my own. I am officially no longer in contention for world-class racing. Dammit. But I am within a few percent of my best times from 15 years ago, which is nice. (Less peak power, but way better endurance.)

Right now I'm battling a spigot. We have frost-resistant spigots on the house, and both have now failed to a lesser or greater extent, one no longer working at all but at least not leaking, and the other leaking at somewhere between the rate a dog would pee and maybe a drop every two seconds if I mess about with it. Traditionally, frost-resistant spigots are easy to fix: you shut the house water off (or, in the case of my previous house, you turn off the cutoff valve I installed in the plumbing right in front of each spigot, for exactly this situation) and extract the spigot valve from the body and replace the gasket and you're good for another 15 years. Well, I shut off the house water and extracted the valve control hardware, and it doesn't have a gasket on the end. The entire valve control assembly is buried in the wall. The only access is by cutting a hole, either in the nice hardwood floor in the bedroom, or in the finished/textured drywall ceiling in the nonfiction library. I'm choosing the library.
randomdreams: riding up mini slickrock (Default)
I was outside working on some stuff in the workshop, and Monty was sitting on the deck whine/howling at me. It's freezing out there, literally. I'm all "Dog, I have stuff I desperately need to finish!" and she's all "NOOOOOO come in here and let me sleep on your lap" and finally I gave up. She's all smooshed up behind me, between my back and the sofa, but at least she's not shrieking.

I spent a lot of the day chasing a wrapper flaw. Labview can call Windows dll's, through wrapper functions, and someone on our corporate labview development team had miswritten one of a series of nearly identical wrappers. I was talking to the people who wrote the SDK that the wrapper encloses, and they assured me that the SDK worked just fine, so I got to learn how to write my own labview wrappers. Turns out that's surprisingly easy right up until I needed to pass a pointer to an array, and then I was very happy that another person on the labview development team sent me the correct function before I spent another two hours fighting with that process.
randomdreams: riding up mini slickrock (Default)
I had a dream that I no longer have particularly organized in my head, but: I was in an enormous decrepit old building, and the owner of the building pointed out one room that was haunted by a surly, physically aggressive spirit. Like, you went into the room, and if you hung out there very long at all, it started pushing you around and throwing things at you. I, of course, went in there to see, and sure enough, it started pushing me around, but I noticed this absolutely beautiful piano, somewhere in between a studio and a full upright, and played a few notes on it. It was *perfect*, despite the dust: the best-sounding piano I've ever heard. She said "oh, yeah, the spirit tunes it." I was all "this is spectacular. That spirit should tune pianos." The spirit promptly appeared, looking like an elderly Turkish guy (silvery hair, ferocious eyebrows, ferocious moustache) and said he'd be glad to if people would bring them to the room. I figured this would be a way to keep him busy and not pushing people around.
randomdreams: riding up mini slickrock (Default)
Things I learned today: one of my senators got $4M in campaign contributions from the NRA.
randomdreams: riding up mini slickrock (Default)
I put a pair of Polk Audio speakers in [personal profile] threemeninaboat's car. Man what a huge pain. Taking apart the doors was nothing like any of either the youtube videos or the forum discussions. (Well, okay, in general it was: use body panel tool to pull door loose, but the screw locations were all different and there were two extra screws hidden under the control panels.) The first door took me forever. The second door went much faster. To make things trickier, the stock speakers have three tabs, unevenly distributed about the periphery, that hold them into the car, and the new speakers have four holes, evenly distributed. I traced the new speaker outline on a bit of 5mm plywood, then the old speaker tab outline, drilled, and cut them out with a skilsaw. They fit well, and I managed to salvage some old foam from previous speakers I saved as acoustic insulation around the speaker to the grille so they aren't getting muddied up by the interior of the door. If I had a bit more time it would have been neat to put foam behind them, but even doing what I did had me out working until well after dark. What's frustrating is that it wasn't until I was trying to get the second door panel correctly aligned and reattached to the door that I managed to figure out how to remove it entirely, when it fell on my head. The whole project would have been much easier if I'd known that on the first panel. Crimping connectors behind a panel using what I can see through the speaker grille is not a recipe for success.
On which subject, does anyone have suggestions for decent, quality crimp connectors for cars? I got some Deutsch connectors and they're fabulous but they are total overkill for something like this. They're what I'd put in a firewall connection or the engine compartment.
randomdreams: riding up mini slickrock (Default)
The Ship Of Theseus Dilemma, asking what is the nature of a constructed item once all the individual parts of it have been replaced, is interesting enough. Thomas Hobbes made it worse by asking what would happen if some enterprising person collected all the old bits as they were replaced and then made a new ship out of them. I was thinking about this today in the context of us: all our atoms are replaced, several times, over a lifetime. (What would happen if someone collected all the atoms we discarded and built an identical copy? Which gets rapidly into the nature of living memory hardware.)
Japanese rebuild temples on a regular basis, because they regard the identity of the temple as being tied up with the location and its place in society, rather than the physical items. Aristotle spent a lot of time talking about different types of causes, that together made an item's existence relevant.

Today I spent much of the day programming and running tests on the same board I had yesterday, with mostly all new components. Is it the same board? It runs the same. Right now I'm fighting with a noise problem that might end up with me building a power supply on a 9V battery to get something quiet enough to isolate a variable that's making me crazy. The day gave me a pounding headache.
randomdreams: riding up mini slickrock (Default)
I have an emergency project at work. We have a chip that automatically self-calibrates as it's starting up, and we (well, I) may have found a way to set it up in a perfectly reasonable design that users would actually choose, that interrupts the self-calibration just long enough to make it miscalibrate.
It is temperature-dependent.
The result of the failed calibration is complicated, and while not dire, it is not what the datasheet says and is definitely not what we want.
The way I can tell this is by measuring an output parameter, the output current it's regulating, because depending on how it calibrates, it will supply a slightly different output current on subsequent power-cycles.

Here's where things get messy. Ideally the output current would be a very sharp gaussian
distribution. (That's the whole point of the auto-calibration: to decrease the distribution width.) What I actually get is a bimodal distribution, with two very sharp peaks, each gaussian.
(By 'sharp' I mean peak value +/- 2% will include 99.95% of the measurements, and the two peaks are about 30% away from each other, so there is zero overlap for reasonable sample sizes.)
But as the chip's temperature changes via external forcing, both peaks stay the same distance apart but drift upwards about 20%, and as the chip's internal temperature changes as it self-heats during operation, the two peaks move apart from each other by about 10%, to their final 30% separation, starting at 20% or so.

I'm trying to write some sort of binning algorithm that can dynamically assign and fill two bins.

So far, the best I've come up with is to take the first reading, assign it to an arbitrary bin, then start taking a running average of subsequent readings and use that running average as the center point of the bin, and whenever I get a value that is more than 15% above or below that, assign it to the other bin, and take a running average of that, and over time I can create a bin2-bin1 difference and use that as my bin-dividing criterion.

I've read about kernel density estimation, and the math there seems overwhelming, frankly. I'm wondering if people have any ideas about how my algorithm would fail or how it could be improved.

In other news I went to my mom's house, tore out an old cracked toilet, and installed a new one tonight. The intent was to also pressure-drain the sprinkler system, but the vacuum breakers are misbehaving and I can't keep them closed for long enough to get the whole system emptied. I've never had to deal with this before. Water pressure will keep them closed, but air pressure won't unless it's so high I'm worried about it damaging the sprinkler system. I'd hate to burst lines trying to blow out the water so they don't burst from freezing. (How much alcohol would I have to inject to prevent them freezing?)
randomdreams: riding up mini slickrock (Default)
I was working on a small machining project for work in my workshop, another situation where the commercial version is available with a two week lead for $1K or so, and thirty minutes of work on a scrap piece of aluminum in my workshop will have us the equivalent on Monday. Which is great, when I get paid to run a lathe, until I dropped a tiny setscrew, bent over to pick it up, straightened up, and smacked my head into one of the handwheels on the mill. I am not exaggerating in the slightest when I say I pulled a crescent-shaped chunk of skin off the handwheel once I stood back up. Now I'm sitting in front of the fireplace with a pounding headache.

I had been intending to make a speedometer cable adapter for the Spitfire next, but I think I'll put that off until later.
randomdreams: riding up mini slickrock (Default)
Water temp meter part II:
I left the project half-finished last night, intending to fill the radiator with the water that had been lost in pulling out the water temperature sensor. This morning I got up, intending to drive the Spitfire over to the Annual Little British Car Show, poured a bunch of water in, and watched it cascade out of the sensor recess. Tightening the nutbolt (a bolt with a hole through the center that the sensor lives in) down didn't help. I drove my normal car over, checked out some pretty cars, and drove back, and then removed the sensor and started poking at it. Halfway up the bulb that lives in the water, there's a tapered ring of metal. I thought it was a precision tapered ring, that sealed against the matching taper inside the water pump. But this is automotive: there is nothing precision outside of the innards of the engine and transmission. Instead there was secretly a rubber gasket that, when I removed the old sensor, had stayed inside the water pump housing. It was totally shot, and no amount of trying to carefully put it back in was going to save it. I ended up getting an o-ring from my collection of high temperature water-resistant o-rings and using that instead, but because it was smaller, the nutbolt no longer managed to press the sensor down well enough to seal. I had to cut a little collet on the lathe, like a thick washer but sawed in half so it could be put in two pieces around the sensor line. With that, everything sealed correctly, as far as I can tell, and the car is ready to go again. A quick jaunt around the block shows the water temperature gauge indicating roughly the right numbers. I'll check tonight to see if the radiator is full of water.
randomdreams: riding up mini slickrock (Default)
The water temperature gauge on the Spitfire has slowly been dying. It was reading 120F when the car had been off for two days, and got up to 160F when the car was running. It was a really cheap unit. I bought another really cheap unit off ebay and replaced it last night, which was way more of a pain than it should have been, because the previous owner ran a LOT of extra wires through the grommet in the firewall and there was no longer room for the sensor to fit through. I also forgot that the first step is putting the gauge in the dash, because you can't remove the sensor from the gauge, so after routing the sensor through the grommet and along the engine and installing it in the water pump, I had to undo it, feed it through the dash, and redo it. But now it works, at least.

Yesterday I spent about five hours painting the house, getting a layer or two of exterior paint on all the sun-facing wood on the first floor, and getting a good start on the non-sun-facing wood. Today I'll get the small amount of wood on the second floor. Man this is sore work, all above my head, a lot of it from a ladder, but it should last several years and more importantly prevent the wood being damaged by being exposed, as it was. Looks a lot better, too, than all the flaking and peeling paint that had been there since we moved in.
randomdreams: riding up mini slickrock (Default)
We rode at lunch, on a nice 35k route, and while it wasn't by any means the fastest we've ever done it, or any section of it, it was extremely consistent for having a lot of climbs/descents and traffic. Here's my heart rate.
heartrate
There are two low blips where we stopped for stoplights, and a high point where my heart got up to 185 or so, but the rest is a nice solid consistent 160-ish, the rate I can maintain for an hour without throwing up.
It was also quite warm today, just about body temp.
The result was that when we got back, everyone showered and ate and then we had a staff meeting and at the end of the staff meeting, when the department manager stood up and said "thanks, everyone", and the rest of us all stood up, I promptly put my back against a wall and slid down it to a seated position, my manager fell over and landed halfway in a chair, and the other manager, who had been drafting me, just had to sit right back down and put his head down on the table.

So it's not just me.

Department manager was all "what are you guys DOING out there?"
randomdreams: riding up mini slickrock (Default)
I was just standing at the gas station a few minutes ago, waiting for the pump to finish, and someone talking on the phone made a wide turn and smashed into the adjacent gas pump. Boy did that make an amazing sound. No major damage or fires, though.
randomdreams: riding up mini slickrock (Default)
Rabbit cage available, free.

:(
randomdreams: riding up mini slickrock (Default)
I got a demo of my hardware/software/firmware project running reliably and, thankfully, did a soft-launch of it at our weekly tech meeting, which consists of my manager, my coworker, and I. Because I knew some aspects of it are fussy (we want to move away from our 1960's gpib interface towards lan, but setting up networking on these instruments is a slow, painful process, and if you let them use dhcp everything goes to hell in a handbasket every time any component gets power-cycled) I started the setup and testing forty minutes before our weekly meeting is supposed to start. The start time came and went, and I was still in there fighting with it, and nobody else had shown up. I got it working about ten minutes behind schedule, just as my coworker walked past and stopped and said "oh, I totally forgot about the meeting." He went off to find our manager, who is under a huge amount of stress and was dealing with it by taking his bike apart in his office and was surrounded by sprockets and grommets. They both showed up, and I talked them through the hardware and what I've got working so far, and we spent some time reviewing the software, as it's the basis for about 80% of the next year's worth of work we're going to do. It went pretty well.
Afterwards my coworker came in and nearly melted down, because he is unusually averse to change, and I'm putting vast quantities of change on the table: new software, new hardware interface, new instrumentation, new system for extracting data and manipulating it, I'm using parallel processing and calling modules I've precompiled in a different language. A lot of that I'm doing A: to see if it works and B: to see if it's worth the bother, not because I have to, but he sees this as an onslaught.
Aside: labview is a whackadoodle language. To call a subroutine, you drag the subroutine icon into your work window. There is a C-style header, with C-style parameters, that you can go find in a header file if you want to, but the way you actually handle that is you draw lines from the main program's output terminals on the main program box to the input terminals on your subroutine. If you're passing an array, it's a dotted green line. If you're passing a double, it's a pink line. If you're passing a signed/unsigned 8 or 16 bit integer it's a blue line. Terminals have to match lines, have to match terminals on the other end. You can t them, as well. Some parts are really obscure. A while loop is a box, with a terminal into which you feed an unsigned integer, to determine the number of iterations, and another terminal into which you feed whatever it is that the while loop is supposed to do. But you can also click on the point at which that line enters the while box, and hey presto suddenly it's a shift register instead of a while loop. ??!? Coz that makes sense, and is really easy to debug when you're looking at the program later.
And, excitingly, everything is pass-by-reference, so it's really easy to completely muck up a datastream if you're trying to just, say, increment a value every time you get a good reading, and inject a bunch of trash into your data. But it does let you return an arbitrary number of values from a function call without having to use pointers to structs, so that's kinda nice, I guess.
Anyway.
So today we went on a bike ride at lunch and when we got back my manager sent out a meeting invite to pretty much everyone in the building, with ten minutes of notice, to look at my project.
Luckily I hadn't broken it down.
But man that's not a lot of time to prepare for a raft of technical questions. It's a good thing I'm a loudmouth.
It went really well. I managed to field all the questions successfully. One coworker wanted to know if he could integrate what I was doing into matlab. Another had a bunch of questions about hardware parallelizing. I could see my poor coworker, the one averse to change, winding himself up into enough tension that he was bouncing both legs up and down uncontrollably, his stress tell. Afterwards he had *pages* of questions about the questions other people were asking. He really needs a more deterministic job.
Everybody liked it.
They're going to like it a lot more when I have a demo system ready to talk to new silicon the moment it comes through the door, while our applications software guy gets called off on other emergencies and won't have even a cursory interface ready for two weeks after we get new silicon, as happened the last two times. I'm trying to get our digital designer to give me a (FPGA-based) hardware simulator for the chip, so I can actually try out some more complex stuff before the new chip's anywhere close to coming back, but apparently his hardware simulation doesn't actually work like that.
randomdreams: riding up mini slickrock (Default)
My manager and I have been communicating poorly. He's under a lot of stress, and there are cultural differences that make for some issues. (He is not good at consistency: he'll lurch from pushy, temperamental boss to friendly discussing shared interests boss way faster than most of his employees can handle.) I was behind on a project, and he has in the past expressed his frustration that I'll focus on a problem for a lot longer than he thinks I should before asking for help. I'd focussed on a problem that was fairly complicated: I'm trying to use commodity hardware to interface with one of our chips, and write the driver to do that, and my diagnostics is pretty much does-it-talk? and the answer was no. One issue, that I worked out early on, was that I needed to power part of the chip that generally doesn't need to be powered because it's handled by external hardware, which I didn't know. Another part was that the interface I'm using assumes I'm typing in decimal and then converts that to hexadecimal for me, silently. Well, I was typing in hexadecimal that just happened to be numeric, so it wasn't clear that the result was hexa-hexadecimal. I'm not even sure what that is. (Aside: I realized this morning that we American English speakers count in base ten-base three: a thousand, a million, a billion. Japanese count in base ten-base four: they advance their counting word every four significant digits rather than every three. We were learning big numbers in japanese class today.) So, I asked my manager for help, he came in, we sat down with an oscilloscope and graph paper, and went through exactly what we were typing in and what was being transmitted and found the relationship between them and realized the hex/decimal weirdness, and thankfully it took him a long time to realize it, even as he worked through all the other things I'd done and found them all correct. When he did realize it, he was too busy being pleased at having figured it out to be frustrated, but then he left in a hurry, and having finished that I was actually at a decision point about where to go next, so I sent him a flurry of email saying should I do this? or that? or pursue this other line of development? and he didn't respond to any. I'm sitting around being nervous about this.
Lunchtime ride, and he came along. There are four of us who are quite fast, and another four people who are definitely junior varsity, including him. As I've written about before, I think he actually believes that people who work for him should wait for him, which two of the other fast guys think is bunk, but I'm willing to take the hit, for the simple reason that I get a serious workout any way this unfurls. The three fast guys take off, I get my manager and the other managerial person in behind me, and I try to catch the fast guys. I could have done it, too, but one or the other of them kept dropping off behind me, so I'd slow a bit, get them back into the draft behind me, crank it back up, and did that for 40km. It was fairly hot: above body temp, and nobody but me really excels when it's that warm, so I had an advantage.
However, the overall result was, after the other guy turned around at a reasonable point, that my manager and I were taking turns leading, with me taking about 65% of the lead, and we were able to keep the lead group in sight and even sometimes catch up a little, and that's a thrilling, if exhausting, feeling. When we got back to work he was simultaneously barely able to walk and completely filled with adrenaline and enthusiasm.
About ten minutes later he came into my office and basically said I was doing fine, my questions were great, we set out a list of goals and plans, and I think I have about two weeks of very low-stress development, that'll actually be fun, ahead of me. It's all in labview, which is kind of a silly programming language, but it's something to learn and could be of significant benefit to me if I end up heading to another job.
I was pretty knackered after that ride. Heart rate averaged 170 over the entire hour and change, and I was losing consciousness every time I stood up for part of the afternoon. (Not full-on fainting, just blacking out a bit and having to sit on the floor for a moment, before trying again.) But, yeah, it's definitely exhilarating.

I got home and started picking tomatoes and immediately noticed that one of the tomato plants was missing a LOT of leaves. That means there's a tomato-and-or-tobacco hornworm chewing on it. I asked [personal profile] threemeninaboat if she'd use her superior visual discrimination skills to try to locate it, because I was not seeing anything.
She walked out of the house and from halfway across the yard said "it's right there."
Of course she was right.
20170901_184908

Today I scraped the fascia, eaves, and soffits all around the house in preparation for repainting them. About 3/4 the way through, I ran across a wasp convention. They don't even have a nest. They're all just hanging out there together.
20170902_185401

I found this building the other day, while we were having mango chelatas.
20170827_160143
This is mostly for [personal profile] basefinder: it's on South Federal, maybe 9 blocks south of Alameda.
I was doing research for places to take [personal profile] rhiannonstone because she has a strong, new interest in mango chelatas.

What else. I did a bunch of work on the Triumph today. The brake master cylinder had worked itself loose. The speedometer cable had failed and was kinda thrashing around under the hood. Stuff like that.
randomdreams: riding up mini slickrock (Default)
Usually when Monty sees an insect in the house she goes over and sniffs at it and pushes it around with her nose until it dies.
The other day I came into the room and saw her with her ears as upright as it's possible for them to get, very much like Gromit's ears. She was staring at something and then clawing at it the way a praying mantis hits something with its arms.
It was a wasp.
I'm guessing she's learned about shoving her nose into wasps.
Poor dog. She's gotten stung so many times that I know of.
randomdreams: riding up mini slickrock (Default)
I will not eat all the Firework Oreos in one sitting.
I will not eat all the Firework Oreos in one sitting.
I will not eat all the Firework Oreos in one sitting.
I will not eat all the Firework Oreos in one sitting.
I will not eat all the Firework Oreos in one sitting.
I will not eat all the Firework Oreos in one sitting.
randomdreams: riding up mini slickrock (Default)
[personal profile] ivy sent me a bag of Fireworks Oreos! I haven't tried them yet: will after dinner.
Page generated Oct. 22nd, 2017 08:40 pm
Powered by Dreamwidth Studios