Log in

No account? Create an account
The Mad Schemes of Dr. Tectonic [entries|archive|friends|userinfo]

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Work accomplishments [Apr. 16th, 2019|10:26 pm]
I spent last week at an in-house software engineering conference, and I learned a lot of interesting stuff about machine learning. I think I know how you would use ML techniques to do bias correction, which is pretty neat. (You'd use the same technique they use to teach a system how to make pictures of horses look like pictures of zebras.) The question is, what happens when you start to extrapolate a little bit? If you start giving it pictures of ponies and mules instead of horses, does it still behave sensibly? Or does it go completely off the rails?

At the same time, I managed to push my entire dataset through the multivariate bias-correction machinery and get it published, so that yesterday I could go into the reporting app for one of our grants and tick the "complete" box on that task by the due date. So that made me feel pretty accomplished. And now I can stop thinking about it and get my brain back!

I was able to pull it off because the conference was a very mixed bag in terms of my interest levels in the different talks, so I had plenty of time when I could focus on the bias correction work. Plus, I already had the machinery built, and there are a number of steps that take a while, so there was a lot of "okay, start step 3 running then wait 20 minutes to see if it worked." I did also spend a decent chunk of time working on it this last weekend, too.

Now I don't have any looming deadlines and I hardly know what to do with myself. Time to update the to-do list, I guess.
LinkLeave a comment

Pallets and Palates [Apr. 9th, 2019|05:03 pm]
Jerry and I went to Costco on Sunday, not really to get anything, but just so I could have a sense of what to maybe put on the shopping list. (He has a card, for work; I do not.)

Main impressions: first, a vague sense of unease, I think because the place is just So Much. Second, that it must be great for large families; for two adults, not so much. And third, that I definitely need to do some research about what to buy and what not to buy there; I think you could easily fool yourself into a lot of false savings.

We did end up buying a great big bottle of rinse aid for the dishwasher (so massively on sale it was less than have the price of generic at the grocery store), a triple pack of Q-tips (which we were nearly out of -- wet ears after showering are the worst), and a 20-pack of sugar-free Vitamin Water (also massively on sale).

The Vitamin Water is partly orange (the best flavor), partly lemonade (also good), and partly too-many-berries-and-acai-flavored, which I hadn't really had before. I tried one and was disappointed; it's much too sweet with not a lot else going on.

"Gee, I really wish this had some tartness to it," I lamented. And then I thought: you know, that's actually really easy to fix. Just because it was designed to taste that way doesn't mean I have to consume it as manufactured.

So I added a glug of cider vinegar and a pinch of salt. And whaddaya know, now it's much more palatable. Tasty, even.

(There's probably a precept or an aphorism lurking around here. I leave it as an exercise for the reader to dig up and polish.)
LinkLeave a comment

Ambidaxetrous [Mar. 11th, 2019|11:34 pm]
Last week was Jerry's birthday, so to celebrate this weekend we used the gift certificates my sister gave us for Christmas: movies and axe-throwing!

Saturday we saw Captain Marvel, which I enjoyed very much. I maintain that a big part of Marvel Studios' secret sauce is that they're very good at casting, and there were a number of very well-cast roles in this movie. Also a lot of good nostalgic '90s music. And, y'know, good story, good pacing, all that stuff.

And then on Sunday we went axe throwing! We went to Bad Axe Throwing over on 73rd and Washington. We had originally planned to go after the movie, but they didn't have any walk-in availability on Saturday, so we decided to get going early on Sunday morning. We go there around 10:45 (after the Daylight Saving shift, even!), and that turned out to be fairly clever, because it was empty when we got there and we got an entire lane to ourselves, and then not long after a couple large groups showed up.

The setup is that they've got lanes with a pair of targets at the end painted on a wall covered with a bunch of raw wood planks. (I think they were cedar, maybe?) Fenced in on both sides with chain-link. There's a box with six axes in it -- two each of three different kinds (different size and balance) painted red, yellow, and blue. They had a "coach" who gave us basic tips (throw overhand, bring your arm down in a straight line from 12 to 6, and if it's under- or over-rotating adjust your distance), and then it was mostly just... try it.

We were both not terrible but not great. We managed to get the axes to stick into the wall about, oh, one time in three, maybe? Hit the bullseye a few times, but aim was not great. I determined that I am ambid-AXE-trous and can throw equally well (poorly) with either hand. (Or two-handed.) Also that it didn't matter which flavor axe I was throwing. Managed to not strain anything, though a day later I have some muscles protesting because they don't normally have to do that much work.

Overall, it was definitely fun and an enjoyable use of an hour. I'd do it again.

(Amazingly, they sell beer and wine, though they cut you off at three. My theory is that the waiver they have you sign is so extensive and their liability insurance is probably so high already that adding alcohol doesn't make anything worse.)

Other stuff: got a haircut and did grocery shopping Friday; fed kitties for Bob & Jeff; ran Star Wars Sunday, and the ludicrously complex plan for taking over the Star Destroyer went off the rails delightfully quickly.
LinkLeave a comment

Derailed plans [Feb. 25th, 2019|09:23 pm]
We had my Star Wars game scheduled for this weekend, but life happened and the game did not.

My parents came into town for a funeral of a family friend -- the sister of one of my brother Dave's good friends. It was someone who I knew in middle school, but hadn't seen for probably three decades, so I didn't go, but we did get together with them (and Dave and Leah) to get dinner at Wishbone.

There was also some kitty health drama. Nico threw up a couple times during the day, and after we came home from dinner, he threw up yet again and we decided, okay, time to take him to the emergency clinic. So we got there and handed our boy over for exams and x-rays and sat there worrying and fretting until they were able to tell us that he was otherwise in good health, but very constipated. So he was throwing up every time he ate because there was no place for the food to go past his stomach. Mr. Kitty got to spend the night in the hospital to get IV fluids and an enema, poor guy.

We brought him home Sunday morning and after a little bit of checking that he was indeed home, he retreated under the bed and spent the rest of the day there. He came out a little bit today and this evening he's been acting a bit more like his usual self, so I think he'll be fine, but it was emotionally stressful for all of us.

After that, I definitely didn't have the focus or mojo to prepare and run game Sunday night, so instead we got together at Thomas's and played a couple board games. We tried out the game the bears got us (Gunkimono), which was fun, and played a round of Sentinels of the Multiverse (losing horribly to The Matriarch).

I also cooked a big pot of Thai soup on Sunday. Working of an outline Brandon posted, I fried up some garlic and green curry paste (it was supposed to be red, but it's what I had in the fridge to use up), then added a couple cans of coconut milk, some lemongrass paste, a spoonful of dashi granules, and some fish sauce and let it simmer a couple minutes. Then added an onion, three bell peppers, a bunch of shiitake mushrooms, eight or so baby bok choi, and let it simmer half an hour. Fried up a brick of tofu for extra protein and tossed in a bag of frozen shrimp at the end. Adjusted the flavor with salt and aji-no-moto, and it turned out pretty darn tasty.

Oh, and I finished doing our taxes. (Well, federal, anyway.) Still need to print them out and mail them in, but I did all the paperwork. There are BIG CHANGES to the forms this year, so if yours are at all complicated, you may want to start early!

So a lot of worry and stress this weekend, but it all turned out okay.
LinkLeave a comment

In Defense of the Genie [Feb. 18th, 2019|04:00 pm]
A friend posted about this comic about Aladdin and a bunch of philosophers and my comment metastasized into a post. (Is it worth this many words? No, it is not. But I wrote them anyway.)

I think that comic-Searle's position is basically correct, that as a social fact princehood is a consensus hallucination, but he misses the fact that there are many ways for the genie to get an entire nation to believe that Aladdin is a prince; a clever genie is not limited to the direct manipulation of minds in order to fulfill this wish.

Let us assume that the genie is bound not to violate causality or free will, and has a strong preference against the use of force or violence. Further, let us infer from his discomfort in the tenth panel of the comic that the magical conjuration of an entire nation out of nothing is also in some way off-limits. And finally, let us impose a time limit of a few days or at most a week or two for the jump cut between the declaration of the wish and Prince Ali's debut. Even with all these constraints, a plethora of options remains available. Consider:

1) The genie uses his magical powers to identify a distant monarchy that is currently undergoing a crisis of succession. He travels to this faraway principality of Babwa and presents them with conjured evidence that Aladdin is the proper heir. The Babwans agree and acclaim Aladdin as prince, et voila! This is essentially fraud, but that doesn't seem out of character for the genie. The major difficulty I see is the possibility that the presentation of a previously unknown heir, despite the supporting evidence, would not suffice to resolve the crisis, and that a great deal of effort would then be expended in maintaining the throne. That, and finding such a situation ready and waiting when the wish is made.

2) If no such situation can be found, the genie could instead look for an elective monarchy in the throes of a crisis of any kind. The genie could offer to resolve the crisis using his magic if the electors will declare Aladdin the new heir. (This approach also satisfies the Kripkean requirement for legitimacy, by the by.) Of course, while the odds of finding an specific type monarchy with a generic crisis conveniently underway may be marginally better than the odds of finding a generic monarchy with a specific type of crisis, in neither case are the odds particularly good.

3) The genie could instead use his powers to find an elective monarchy, manufacture a crisis, and resolve it. This seems much more practical, but it may push the limits of the genie's ethics; while he seems happy to trick people, trafficking in wholesale blackmail and extortion may run too close to use of force. In addition, the time required to both set up and resolve such a scam may be difficult given the time limit.

4) The genie could establish the principality of Babwa, not by magic, but by social manipulation. Find a small group of people in some out of the way place and offer them a fabulous reward if they declare themselves a sovereign nation with Aladdin as their prince.

5) The genie could create Babwa through transmutation rather than ex nihilo. He could select a group of living creatures and, via temporal acceleration and controlled magical augmentation, rapidly evolve them to sapience and guide the development of a society that would regard Aladdin as their monarch. Perhaps Babwa occupies a single mote of dust, a la Seuss's Whoville, an the Babwans are hyper-evolved mites from Aladdin's own follicles.

Et cetera. Those are just the first few ideas that occurred to me. I'm sure we could think of more.

Note that the context of Aladdin's wish very strongly implies that he doesn't just wish to become a prince, he wishes to become a prince in order to woo Princess Jasmine. And since the genie is operating in a mode of benevolent generosity rather than malicious compliance, he desires to fulfill the spirit of the wish as well as the letter. Which means that it will not suffice for him to merely make Aladdin a prince in the abstract, but in the eyes of the people of Agrabah, particularly the Princess and Sultan, as well. (Which is where Searle's definition of princehood comes into play.)

So regardless of how he makes Aladdin a prince, he also needs to make a convincing presentation of Prince Ali's bonafides to all of Agrabah. Hence the fancy duds (especially the hat), the big musical number, and the princely retinue of camels, peacocks, monkeys, slaves, servants, flunkies, elephants, llamas, bears, lions, brass band, fakirs, cooks, bakers, birds, and more. The great spectacle is necessary for Aladdin to be a prince in the eyes of Agrabah.

Now, consider. The genie is likely the only one who knows which the details of which option he chose and exactly how he caused the state of princehood to be conferred upon Aladdin. The actual state of Babwa's line of succession is well outside Agrabah's informational horizon. Agrabah must -- and is shown to be content to -- update its beliefs about Ali's princeness based solely on the available information: the great spectacle is not only necessary, it is sufficient.

That being the case, does Aladdin's actual status in Babwa matter at all? Does the genie need to pick any of the options? If reports were received of some disaster that severed all communications between the two locales for a span greater than one man's life, would Prince Ali's status be revoked? What about a disaster that also prevented any reports? Is Prince Ali's princeness somehow retroactively contingent on the unknown possibility of hypothetical communications?

The answer to all these questions is no! Because whether Aladdin counts as a prince in Agrabah depends on whether the society of Agrabah agrees that Ali is a prince of Babwa.

Which they do (at least until Jafar's interference (temporarily) negates the wish), because the genie changed the society of Agrabah (not Babwa) to make them believe that Aladdin is a prince. And he did it not by interfering with their minds, but by presenting Ali as a prince and providing a surfeit of corroborative evidence in the form of princely trappings -- which is to say, via the hat and the song (et cetera), exactly as the genie attempts to explain in panels 12 and 13.

Aladdin did, in fact, have his wish granted the whole time. Aristotle is a dope, the philosophers need to listen better, and Aladdin needs to quit trying to rules-lawyer his way into extra wishes.
LinkLeave a comment

Falsehoods Organizations Believe About Timecards [Feb. 13th, 2019|04:16 pm]
Many organizations have policies, procedures, and tools for reporting hours worked. These are often used to determine how many hours an employee has worked on different projects and hence how much to charge to the account keys associated with those projects.

For some kinds of work, this accounting process is relatively straightforward, but for others, not so much. Particularly when it comes to knowledge work, these systems rely upon and encode a variety of assumptions that are, to varying degrees, wrong. (It's the view imposed by this system that matters here, not what individuals involved with the system think, which is why this is titled "Falsehoods organizations believe..." rather than the usual "Falsehoods programmers believe...")

For jobs like mine, none of the following assumptions are reliably true, most of them aren't even commonly true, and some of them are never true. (Note that this is by no means an exhaustive list.)

Falsehoods Your Time Reporting System Probably Believes
  1. Work can be cleanly associated with a single project.

  2. Work can be cleanly allocated amongst a fixed set of projects.

  3. Projects are distinct from one another.

  4. There is no essential work that isn't associated with a project.

  5. Switching tasks takes no time.

  6. Working productively is a boolean state, either off or on.

  7. Working is synonymous with being in the office.

  8. Employees have regular and predictable schedules.

  9. Hours worked can be predicted in advance.

  10. Knowledge workers can do 8 hours of useful work in a day.

  11. The amount of useful work an employee can do in a day is a constant.

  12. A 40-hour work week maximizes net productivity for knowledge work.

  13. Productivity has a linear relationship with hours worked.

  14. Project budgets reflect estimates of work that are accurate and precise.

  15. It is possible for estimates of work to be accurate, precise, and bounded.

  16. Project plans accurately reflect the work to be done.

  17. Projects are finished when the funding runs out.

  18. Once a project is complete, it stays finished and no longer requires work.

  19. A supervisor's approval of a timecard is meaningful.

Now, the fact that these assumptions are wrong doesn't mean that something is broken and needs to be changed. A timecard system is essentially a model of how employees do work, and everyone knows the aphorism that all models are wrong, but some models are useful. As long as the model is useful, it's okay for it to be imperfect. Plus, it may be required that the system pretend that these assumptions are true for various legal and practical reasons.

Consequently, there are there important things to keep in mind when implementing or changing a timecard system: first, that it is in fact a model and not an objective measurement, so the measure of its worth is its utility, not its correctness. Second, that context matters and it's best to proceed with caution when considering policies, procedures, and tools that were created for other endeavors and may have different wrong-but-useful assumptions. And third and most importantly, that the work performed is what matters, so if there is a divergence between how work actually gets done and assumptions about how work should be done, the thing to change is the assumptions.

Feel free to suggest additions in the comments!
LinkLeave a comment

Nebraska Birthday [Feb. 2nd, 2019|07:43 pm]
I'm in Nebraska! Today is my step-dad's 80th birthday and my step-brother Dave and his girlfriend Michelle were heading out here to surprise him, so yesterday afternoon I hopped in the truck with them and came along.

After a long and uneventful drive (other than spilling guacamole all over my shirt while eating dinner), we got in a bit before midnight (successful surprise!) and socialized for a bit before bed.

This morning I went for a walk with my mom and the dog (Squirt) and one of the cats (Toodle). Then after lunch all of us walked over to the little defunct cafe on main street (well, what passes for it in a town of less than a hundred) that my parents bought and are going to renovate into a bunkhouse for the hordes that come into town for hunting trips. So they're going to expand the bathroom and contract the kitchen, wall off part of the main room to make some bedrooms, and have a place that a bunch of hunters can stay.

Later on we all hopped in the truck and drove down to the lake and walked around on the shore (very muddy!), then drove around looking at various properties for sale to get a sense of what's available for a friend of my brother's who's looking for a place to buy.

We grilled some steaks for dinner, plus a salad, baked potatoes (for everybody else), and some cauliflower I roasted. There was no birthday cake, so my mom stuck a few candles into a bowl of peanut M&Ms to create a symbolic cake.

We just finished a game of Illimat, which my Mom won, and will be heading to bed soon so we can get back to Denver tomorrow in time for the Superb Owl (for them what follow the footballs).

Pretty low-key overall, other than the phone ringing all day with birthday wishes for Larry. A nice visit. Good to hang out with my brother, who I don't see very often.
Link1 comment|Leave a comment

Crispy Inside-Out Omelet [Jan. 29th, 2019|10:29 am]
My journaling backlog is appalling, so to keep it from paralyzing me further, I'm ignoring it and posting something, anything. Here's a recipe.

This is what I make for breakfast most days of the week.

Crispy Inside-Out Omelet


shredded cheese
heavy cream
sausage (or other fillings of preference)


Scatter a handful of shredded cheese over the bottom of a large non-stick pan. You want enough to cover the bottom. Turn the burner on to about 4 (a bit less than medium).

Cut up your filling and distribute it uniformly over the top of the cheese. I typically use two links of breakfast sausage (previously cooked) sliced into little rounds. Let it sit undisturbed until the cheese has begun to melt and bubble. You want it to melt evenly, so keep an eye on it and see if you need to tweak the pan's position on the burner as it starts to melt.

Meanwhile, crack two eggs into a small bowl. Add a pinch of kosher salt and a long splash of heavy cream. (Probably a couple tablespoons?) Whisk with a fork until thoroughly blended.

When the cheese is bubbling away, pour the egg mixture into the middle of the pan and let it spread out to cover the cheese. You may need to swirl the pan a little to cover any bare spots, but you don't want to be too vigorous or the eggs will go up the sides of the pan and give you a lot of thin film along the edges of your omelet.

Let it sit until the eggs are set, then use a spatula to fold the omelet in half. Slide the spatula under the middle of the omelet, turn it sideways, and transfer the omelet onto a plate. If you do it right, you can get it to form a sort of tent shape, which looks neat and will help it cool off to edible temperature more quickly. (And also makes it fit on the plate better if your plates are smaller than your pan.)

The outside of the omelet should be a rich orange-brown color with a gentle crunch. Toasting the cheese on the outside enhances its flavor, plus it greases the pan for you.


It's a little trickier if you're using something big and flat instead of small and chunky for your filling, like slices of lunchmeat. If you put a slice of lunchmeat between the cheese and the eggs, it may keep them from bonding and cause to things slide apart on your plate, but if you put it on top of the eggs, it slows their cooking and makes it harder to judge when they're done, so you're more likely to get either detachable filling or burnt cheese. You just have to do your best and remember to get more sausage next time you go shopping.

Salsa makes a nice filling, but it's prone to the same problems. Instead, you can beat it into the eggs in place of the cream. Just beware the giant blup of thixotropic flow dropping way too much into the bowl.
Link1 comment|Leave a comment

AGU & Recovery [Dec. 20th, 2018|05:30 am]
AGU was good, other than catching a nasty cold that started on Monday. I think it helped that my hotel was so close, and my schedule this year was kind; I only had early morning stuff on one or two days.

I ended up working all day on Sunday finishing things up for my talk. I finally called it done at 1 am that night. Uploading it on Monday and the talk itself on Tuesday afternoon both went smoothly, and I was apparently speaking coherent English, because a couple people told me it was good. So yay!

Had a few useful side meetings (none in the evening, which was nice), and the DC convention center is reasonably laid-out (although the signage wasn't the greatest), so I didn't feel like I was running running running to see everything. Absorbed what feels like useful information about a number of topics.

I got dinner with Ian L. on Tuesday after my talk, at a vegetarian middle-eastern place (Shouk) a few blocks away. And then I was able to meet up with Seth S. for lunch at the Native American Museum on Wednesday, in celebration of his completing his nursing program. Since I had the next afternoon off, I trekked out to Bethesda and got a massage from him, too, and that was quite nice.

They had a "night at the museum" set up for conference attendees to go visit several of the Smithsonian museums from 7-10 on Thursday night, and I had plans to go see the Air & Space Museum (picked up my wristband and everything), but I was just too wiped out to leave my hotel room after dinner.

What with getting sick and pushing hard to get things finished, I was too wiped for a lot of things. I tacked on a personal day before and after the meeting, and I was hoping to visit more friends and do more sightseeing, but I just didn't have it in me. (Apologies to everyone I missed!)

I did manage to get to the Air & Space Museum for a couple hours before closing on Saturday. It started raining on Friday afternoon and didn't stop until I left on Sunday, so it wasn't terribly crowded. There were a number of things that were neat to see the in person -- not a replica, not a model, but the actual thing itself. They have a piece of moon rock that you can touch, and that was pretty keen, actually. I got a shiver from it. I also really liked the Wright brothers exhibit. They did a good job of telling the story of how they figured out flight, and then you turn and look at it and there it is! The first airplane ever!

I also managed to drag myself to the Green Lantern on Saturday evening to meet up with Seth and some other folks, once I realized it was only three and a half blocks from the hotel. It is very stealthy - I circled it twice before figuring out where it was. I was wandering through an alley in the rain thinking I can hear the thump-thump-thump of dance music, so there HAS to be a gay bar somewhere nearby! Had a pleasant time. It was low-key, and we were able to just hang out and chat.

I realized at some point on the trip back that I have been working at about 120% of my normal capacity since, like, October, and that I need to operate at reduced capacity for a while to rebuild my reserves. I've been working half days all week so far. Today I managed to shovel out my inbox. That's not actually dealing with anything, just reading through the backlog and deleting all the unimportant stuff. And that was enough.
LinkLeave a comment

DC [Dec. 8th, 2018|08:17 pm]
I'm back in DC! I was here week before last for another conference, but other than meeting up with Ian for dinner one night, I hardly even left my hotel room. (There was nothing at the conference I was interested in, but one of our grants requires us to attend and present on our funded work.)

So I spent all my time at that meeting working on the research for AGU, which is what I'm here for now. I'm still working on my presentation, but after many long hours, I finally have my code for the multivariate bias correction working. Yes! Finally!

Travels today were smooth and boring. I'm staying at a (brand-new) Residence Inn that's right across the street from the convention center, which itself sits athwart the Metro station, so that's about as maximally convenient as it gets. On checking in, I realized that it's actually a little tiny apartment. It has a living room and a little kitchen! Which is actually stocked with implements of cooking and usable for the preparations of comestibles!

So I wandered over to the Safeway a few blocks east of here and picked up groceries for several meals. I figure it'll be nice to just run back to the hotel for lunch and not have to fight the crowds. (It's tricky to buy groceries when you want about a week's worth of food but nothing left over. And are trying to stick to a low-carb diet.)

I also got dinner at Sweetgreens, which is a great fast-casual chain that does big hearty salads. Thanks to Ian for pointing it out to me on the previous trip!

P.S.: Here's the description of how the multivariate bias correction works that I came up with while pondering whether I could condense it all into a single sentence or whether it would implode under the density of the jargon:

Using an augmented moving window, we detrend the data with a broken-stick regression, apply a rank transformation to extract the copula, bias-correct the copula using repeated quantile mapping of random orthogonal rotations, transform the probabilities back to variable values via a kernel density estimate of the observational cumulative distribution function integrated using the trapezoid rule, and finally restore the trend with an offset equal to the mean bias during the overlap between observations and the historical simulation; for precipitation, we also work in log space, replace sub-trace values with random uniform noise, and apply a final distribution mapping and mean scaling step at the end.

Isn't that delightfully opaque?
LinkLeave a comment

[ viewing | most recent entries ]
[ go | earlier ]