|
I had a sort of uneventful weekend. Friday, being so tired at the end of the
week, I ended up crashing round 10:00 instead of making any use of the evening.
But having taken note of the time when I realized that I couldn't stay awake
any longer, I can note that I slept for a very long time indeed.
Saturday was occupied with a few household chores, some bad attempts at baking
cookies (I was preparing for a party where the host specifically mentioned in
the invitation that baked goods would be appreciated), and Chris's
housewarming party (where baked goods were at least nominally appreciated).
As an aside, my long-standing desire to stop eating take-out, mixed with a
little encouragement and a passing fascination with Kitchen Science, seems to
have developed into a full-blown hobby. So I was baking these cookies. Sure,
I'm told that every American child goes through this phase where they learn to
make cookies, by my parents were rather protective, so we were never allowed
near the oven. And there was that one cooking class in the seventh grade.
(The soup you get when you forget the flour from the cookie recipe is pretty
tasty, though messy.) Which is why I'm starting at what is probably the
easiest baked good you can try to bake. That is progress.
Anyway, I misplaced an ingredient, went out to replenish my stock of it
(picking up some additional spices at the local Penzey's because they were open), and ended
up finding those little M&M bits that you can use instead of chocolate chips
(they need to be semi-sweet, so while M&Ms Minis might otherwise seem like a
good idea, they're not suitable). So I took M&M cookies to Chris's party
instead of the chocolate chip cookies he'd have otherwise have gotten. At
least nobody keeled over in pain, and nobody died. The toffie batch didn't
fare as well — realizing that relying exclusively on my one little cookie
sheet would force baking time into several hours, I tried to use some foil
baking sheets, and managed only to consistently burn four dozen cookies. I
suspect that leaving the butter out while I shopped for baking soda might have
contributed to it, but I can't be sure. The shortening made for crumblier
dough, but as blizzard pointed out to
me, it results in softer cookies.
Sunday was likewise occupied cooking — I think I'm getting the hang of this
stuff the British call "curry" (an umbrella term for that which my
people more or less refer to simply as "food"), and have figured out
why my attempts to stir-fry potatoes have often been met with failure (I was
cutting them too thin — potatoes just about halve in size in each dimension
when they're cooked, and I was cutting them to the cooked size — the end
result being that in the time it took to even start cooking the entire batch,
part of it would burn, ugh.) Time permitting, I'll get to verify that this
weekend.
It's true what they say: most of the difficulty of cooking is making sure you
have the right ingredients on-hand. Having to go out to find a crucial
ingredient just sucks the enthusiasm and energy right out of you.
I should try my hand at other baked goods. I think the cookie thing is squared
away.
In work-related news, I think I've finally gotten oddjob to a point where I'm
willing to call it feature-complete. Now I just need to double-check for
memory leaks, and to make sure that the conditional code which makes it run on
RHEL4 works reasonably well in comparison to the code I'm actively testing,
which of course is targeted at Raw Hide. Spent the last couple of days
writing up some decent long-form documentation, using it as an excuse to
reacqaint myself with DocBook. The end result ("oddjob: Threat or
Menace?") might have made a useful paper for OLS, but it would have been
dumb to wait another 8 months to write it just so that I could present it
somewhere.
The commute to work is really beginning to worry me. Moving to my second
apartment in Massachusetts cut the distance to the office from 37 miles down
to about 30, which was a marked improvement. But if I count 5 round trips to
the office each week, divide that sum by the rated fuel efficiency for my car,
and then multiply that by what it costs to fuel it, over the course of a
month, it's pretty disturbing.
The one good thing about the commute (and really, any commute) is that it
clearly separates your work world from your home world. It also offers a
period which you can use to analyze how the day went, mull over important
things, or even just get that crap out of your head. For the last few months,
I've been attempting to fill the otherwise-quiet commute by listening to
Podcasts, and I have to say: Sturgeon's Law applies: 90% of podcasts are
crap. Not even kinda crappy, I'm talking full-bore, snooze-inducing,
please-hire-a-writer crap, filled with "um"s and
"uh"s which might as well say "I don't care enough that I make
you suffer through my long pauses to actually write things down
beforehand".
|
|
I spend a lot of time wondering what the next Next Big Thing is going to be,
and I think I've figured it out: it's Pie Delivery. It'd be just
like ordering a pizza, except you'd be ordering pie.
|
|
It's a tax holiday in Massachusetts this weekend, and no matter how disdainful of the whole thing
clee
seems to be, there's magic in the air. Or maybe it's just the humidity, which
stayed consistently bad for the majority of it.
I went to the Galleria today, and the Apple store was packed. As
John mentioned to me earlier,
people seem to be taking the weekend to make those big-ticket computer and
electronics purchases. Me? I got some new socks.
|
|
John, wait until next
weekend, and then you'll be able to buy one at a local store without paying
sales tax. Legally.
|
|
There must be some kind of conspiracy behind all of the not-really-hot Hot
Salsas I see at grocery stores. The end-goal must be to make people feel
better about themselves because hey, they're handling the hot stuff.
Except that it's not hot at all, so I frequently feel cheated when I open up
a jar of salsa I've never had before.
Hmm, I wonder if the FTC knows about this....
|
|
Okay, so here's why the pam_limits module doesn't work. Or at
least, why it doesn't always work, and why it can't.
Let's look at what pam_limits does first. It sets process limits
for the calling application at the point where it is called. This seems
harmless enough, but it leads you to scary places.
Anyway, one of the things the pam_limits module lets you do is
increase the value of one of your limits, say, the maximum number of
open files. This, of course, requires superuser (root) privileges.
One of the other things the module lets you do is set a maximum on the
number of processes the invoking user can have. The conflict here stems from
the kernel assuming that the limit which a calling process sets using the
setrlimit() syscall is to be applied to the calling user. If that
calling user is root (as above), then you don't get to fork a new process to
start a user shell, which is kind of important if you're handling interactive
logins.
Why does this break? Applications call pam_open_session(),
and therefore pam_limits, exactly once. And you can't be
root and not root at the same time. The result is large numbers of support
calls. Let's hear it for cross-platform standards everybody!
|
|
I run Raw Hide, the Fedora Core development snapshot, on my notebook and main
workstation at work. And at some point, when attempts to upgrade Eclipse were
stymied by a hard-coded package dependency on a package which went away, I
started wondering why aren't we tracking Java dependencies
automatically?
At this point I turn to Google to try to
find out what kind of information is contained in all of those .class and .jar
files which are littering my hard drive, and whaddaya know, there's all kinds
of stuff in there, including the name of the class which the .class file
defines, its superclass (the class from which it's derived), and the names,
types, and types of parameters for every method. Sweet!
Several hours of scripting later, I discover that while you can massage the
output of jcf-dump into pretty text, the fact that a dependency on
foo.coolbar.method() recorded in one .class file can be
satisfied by foo.bar.method() if foo.coolbar
is derived from foo.bar kind of breaks you because RPM doesn't
have any concept of inheritance for dependencies.
Suck.
At least we can track these things at the level of classes, which is better
than what we had before. So you start tracking those, and then you realize
that yes, there are packages in Raw Hide which include the entirety of
other packages. Ouch, man, very ouch.
|