Friday, May 30, 2008

So, how's it working?

Been trying the South Beach-influenced diet for a couple days. Still too early to tell if it's going to work, but the initial results are promising. Weight dropped the first day, by about 5 pounds -- I'd say most of that was water loss from bicycling, but I drank enough water to pee clear, so I'm not sure there.

Anyway, second day, weight was up 0.3 pounds, which is realistically within the error margin on the scale. So, it seems to be okay so far. We'll see how it holds up over the weekend.

Wednesday, May 28, 2008

Discovery of the Day

According to the scale at work, the capacity of my bladder is approximately 1.4 pounds of liquid.

Diet Update

Okay, so what I've been doing hasn't been working. Or, more to the point, what I was trying to do was not what I was actually doing. So, time to try something else.

Looked at South Beach, which seems to be the best of the 'ooh magic wand eat this super-special diet and get magically thin' diets. Unfortunately, I find I'm morally opposed to them, perhaps because I've used them too often in negative comparisons when describing Dave Ramsey. (Summary: there are two types of diet books, 'magic miracle diet' and 'eat less, exercise more'; likewise, there are two types of personal finance books, 'magic miracle money' and 'spend less, earn more'. Dave Ramsey is solidly in the last category.)

So I'm trying to steal some South Beach ideas, mix it into what I'm doing now, and see if it helps. Basically, avoiding the stupid sugars and mixing in some better carbs and fats. Hey, worth a shot, right?

Monday, May 26, 2008

What He Said

I was trying to think of something to say for Memorial Day.

Ambulance Driver already said it.

Sunday, May 25, 2008

Congratulations to the Phoenix team

Having worked for a member of the science team for Odyssey and MER, I'm always happy to hear that somebody else beat the odds and made it safely to orbit or the surface (as appropriate).

Now comes the fun part, folks.

Saturday, May 24, 2008

Indiana Jones mini-review

So, work took us out to see IJ4 yesterday. Mini non-spoiler review:

While I didn't much care for their choice of McGuffin, it was definitely an Indiana Jones movie, and if you liked the first three, you'll probably like this one.

Thursday, May 22, 2008

Trending...down?!

If you look to the right, the diet box has something in it hasn't for a while.

Green text, saying: "Deficit 27 cal/day Loss 0.05lb/week".

For the first time in quite a while, my trend line is actually down long enough to have a negative weekly trend.

(Yes, I know, at 1/20th of a pound per week, that's a whopping loss of just over two and a half pounds a year. It's a start, though.)

Tuesday, May 20, 2008

Diet Plans

So, there's a box on the right with weight tracking, and the twitter is keeping a food journal. But the things showing up there aren't necessarily diet food...you may wonder "What's up?"

The problems with diets come down to two major kinds of issues: sustaining the diet while on it, and transitioning to maintenance when you're at goal. I'm hoping to ease both by, effectively, transitioning to a reasonable lifestyle now, and then letting the weight trend downward on its own.

Specific things I'm doing: restricting portions at meals. No seconds. Watch snacks, and choose reasonably. Bicycle when feasible to do so. Limit straight sugar.

The goal is that, living reasonably, when I get to a saner weight there's no transition to make. (Granted, it'll take longer to get there, assuming I do.)

Monday, May 19, 2008

Financial Detour

Need to build up funds for short-term expenses, so we've created three sinking funds for condo rental for the vacation, everything else for the vacation, and curriculum for next year.

Since we've been saving for the vacation for a while, the first one is fully-funded and the second is 2/3 done. The vacation is at the end of July, and the curriculum needs to be ready by August, but we should be okay. Just means the consolidation loan doesn't get the full snowball quite yet.

Sunday, May 18, 2008

Mmmbrisket.

Brisket came out well. Had beans and macaroni and cheese on the side. Then grilled up some marinated chicken for sandwiches during the week.

Brisket!

Today's mission: smoke a brisket.

Grill's warming up. Brisket's been slathered and rubbed. Just waiting for the coals to finish ashing over, and it's time to start. Mostly pecan wood today, with perhaps a bit of hickory and/or mesquite. (Haven't decided yet.)

Saturday, May 17, 2008

80% done...

Step 2: pay off all debt except the mortgage, using the snowball method.

Last night, we paid off the last credit card. Of the 5 items we had to deal with in step 2, that's the fourth...all that's left is a consolidation loan we took out after the layoff in 2001.

Almost there...

Surprise!

Got a summons to jury duty today. Okay, not a problem, employer will pay me for jury duty...

Wait, what's this? Northwest Regional Center, Surprise, AZ? (For those not familiar with it: that's 50 miles away in the opposite corner of the county.)

Oh, this'll be fun. Trying to get all the way across metro Phoenix for 8am court arrival.

Thursday, May 15, 2008

Arizona Revised Statues 20-1057.08

A. If a health care services organization issues evidence of coverage that provides coverage for:

1. Prescription drugs, the evidence of coverage shall provide coverage for any prescribed drug or device that is approved by the United States food and drug administration for use as a contraceptive. (...continues, but nothing in it would alter this. My employer is quite definitely not a religious organization whose religious tenets would allow them to not offer any contraceptive at all. Full text.)

Translation: my insurance company is paying up for the IUD.

Wednesday, May 14, 2008

Things I Hate About You Detour: Medical Insurance

Monthly birth-control pills? Covered.
Viagra? Covered.
Pregnancy and childbirth? Covered.
Abortion? Covered.
Sterilization? Covered.
Infertility? Covered.

IUD? Of course not. Why would we want to cover that?

Things I Hate About You #3: Python

This one's tougher, because my Python isn't anywhere near as good as my Perl or Java.
  1. Whitespace - Low-hanging fruit. The whole whitespace thing is Python's bugaboo the way that speed is/was for Java and a resemblance to line noise is for Perl. But there is still something here, and not the usual "OMG it makes me indent!" that shows up. The problem is that using whitespace as the delimiter causes issues when modifying code later. A very, very common maintenance idiom is taking a block of code and wrapping it with an if statement because you've found cases where it shouldn't be run. In C-styled languages, when using emacs, the usual way I've done this is to put in the if statement, then walk through the code, reindenting each line with the tab key, until it's time to close the block. In Python, if you try this, you will screw up the indentation for each block inside the new block you're creating. More generally, programming in C-styled languages in emacs teaches you that re-indenting with tab does not semantically change the program; that's no longer the case in Python. (Other editors generally have similar concepts; it's not just an emacs thing.) Or, in the general case again - if you lose leading whitespace in a Python program somehow, there is no automatic way to get it back. (This can happen with a bad translation to HTML, a funky mail filter, or many other ways.) Now, there are ways to work around this (ending all blocks with 'pass', '#end if' comments, etc.), decent editor support makes it less of a problem, and there are advantages to Python's approach, but it's not without its issues as well.
  2. PyGTK - Not entirely Python's fault here, I suppose, but PyGTK is quite possibly the least intuitive, most annoying GUI toolkit I've ever worked with. (And, remember, I've worked with both Java AWT and Swing.) GtkTreeView in particular is just plain twisted.
  3. Python People - Mention #1 to a Python advocate, and...hoo boy. Python's got some damn good Kool-Aid, I guess. Any mention that there is possibly a problem with using whitespace as the delimiter is met with either blaming the user ("Well, clearly you shouldn't be editing that way, then") or shifting the issue ("Well, you'd have to fix the indents anyway, right?") and missing the point that making whitespace significant causes issues of its own.
A relatively lame list, I think. Clearly I need a few more years working in Python to build up some good hatred for it.

Tuesday, May 13, 2008

Things I Hate About You #2: Java

So - Java. Most of the folks who hadn't worked in Java would mumble something about speed or lack of native compilation when asked what they disliked. Now, I'm just coming back into Java development after being away since about 2000, but from what I've seen so far, these items still haven't improved much...
  1. TMTOWTDI (poorly) - The Perl motto is "There's more than one way to do it", and it (mostly) works well in Perl. You've got several ways to do something, and can choose the appropriate one for the task you're dealing with. Java, on the other hand, has far, far too many cases where they implemented one way to do something, realized it was wrong, implemented a second while leaving the first one in place. They can't just remove the first one, because it's embedded in other parts of the API, so it just...festers. The worst example of this is java.util.Date, which has 6 constructors (4 of which are deprecated) and 27 methods (17 of which are deprecated)...you can't just use Calendar everywhere, so you have to change back and forth between Date and Calendar all the time. In particular, if you're using SQL, java.sql.Date and its kin are all subclasses of Date, but you can't get any information out without using a deprecated call or converting it to a Calendar. (So what's the solution? JodaTime, of course! Replacing a broken API with another incompatible one is the Java Way!) Other examples: there are three separate UI systems now (Java 1.0.2 AWT, Java 1.1+ AWT, and Swing), there's the whole Reader/Writer vs. InputStream/OutputStream issue (now with Channels to make life even more confusing), HashTable/Vector vs. Collections...and those are just the ones off the top of my head. The biggest advantage that C# has is that Microsoft was able to learn from Sun's mistakes and not have as much deprecated cruft cluttering their APIs.
  2. Make the simple things simple and the hard things tedious - A pattern I've run into several times in Java: "To make this work, you need all these other objects to be in place...a convenience method is provided for the common case." And so, as long as you're doing exactly what the programmers expected, it's easy...and as soon as you wander even a little bit off that track, you need to do everything manually. Places I've run into this include Swing (JTable, specifically, as I recall) and security/cryptography (adding a new trusted key for an SSL connection).
  3. Frameworks upon Frameworks - Java EE is, apparently, built around the idea that if you have enough frameworks, every problem will come out of them eventually. Er, no, it's build around the idea that the solution to every problem will come out eventually. (In practice, it seems the first statement was more accurate, though.) Why I Hate Frameworks sums this up better than I can, though, so I'll let them have it. True story: I went to look into how to use a particular framework at work. Lo and behold, this framework in and of itself is an agglomeration of seven external frameworks plus four more internal frameworks. Now that's Enterprise.
I'd be interested to hear what other Java developers would choose for their three items.

Monday, May 12, 2008

Things I Hate About You #1: Perl

An interview question we used to use to separate the posers from the folks who knew their stuff was "Name three things you dislike about Java". The idea is that if you've seriously worked with a language, you've run into several things about it that drive you nuts, but if you've just poked at it a bit, you're likely to spout a few superficial things like "...it's slow..."

So, I'm going to work through this for a few programming languages. Today's victim: Perl.

  1. Perl 6 - An interesting comparison: Python 2.0 was released about 3 months after Perl 6 was first announced. In that time, Python has released 6 versions (2.0 to 2.5), announced Python 3.0, and released 5 alpha versions of Python 3.0 with a scheduled release of 3.0 in September. Perl has released a few partial versions, has a partly-written virtual machine, and no planned release date. To be honest, Perl 6 reminds me of everything I've heard and seen about ALGOL 68 - a Byzantine language spec that tried to be all things to all people, with the end result of killing off the parent language (ALGOL 60). The best result we're likely to see out of Perl 6 is the backports into the Perl 5 project, but it took far, far too long for folks to realize that Perl 6 itself was a dead end and begin reviving Perl 5.
  2. CPAN - CPAN is a great idea: a single repository for user-contributed modules with a handy front-end and dependency-handling. Unfortunately, both of those systems fail. As a single repository, it's great...until you try to actually find anything in it. Say, hypothetically, that you wish to read a CSV file. And so you go to CPAN and search for CSV...and get 261 results. Which do you use? There's a small amount of guidance now, with ratings and reviews starting to show up...this is a vast improvement over before, where you had literally no indication, but it's just a start. (And CSV is a small example; try XML, which has a FAQ list just about finding which one of 14 XML modules is the right one. A search for XML finds 3522 matching modules.) As a front-end, it's also great...until you run into a mandatory upgrade of some sort. Fortunately, they seem to have fixed the issue where it would try to upgrade Perl on you...
  3. Non-Obviousness - There are a lot of cases where what Perl is doing is extremely not obvious to anyone who hasn't spent a lot of time programming Perl. (I've commented elsewhere that Perl is an extremely difficult language to be an expert in, because it's got so many odd edge cases.) Basically, Perl tries to guess the right thing for you...this is great when it guesses right. When it guesses wrong, tracking down the problem is a major pain. Examples include autovivification, scalar context vs. list context, true/false vs. defined vs. exists... There are also a lot of cases where Perl is egregiously Different for no readily apparent reason. (break/continue vs. last/next, switch vs. given - especially egregious since the 'given' statement needs to be activated with "use 'switch'") And let's not even get started on the punctuation variables. A lot of these things are hacks nested upon hacks, where the 'obvious' original use wasn't as obvious as they thought and a new addition had to be made for cases outside the original plan. (Example: lists cannot contain lists. Solution: references. So now you've got all the fun of C pointer manipulation.)
Several of these could be expanded out further. Now, in practice - I like Perl, and I'm reasonably good at it. (I can't consider myself an expert, though - still too many odd edge cases I don't know about yet.) But...well, there's a reason I'm trying to do quick hacks in Python now. (Python's list of problems is coming later this week.)

Sunday, May 11, 2008

Dramatis Personae

It occurs to me that we've had three pictures of Number Two Son, and no pictures of Number One Son or Darling Daughter yet. So:

Number One Son. Seven and a half years old. Loves video games and music.


Darling Daughter. Nine and a half years old. Loves books and Neopets.

Happy Mother's Day

So. Mother's Day. Not exactly a day everyone here was looking forward to this year.

Things are still a bit raw around the edges, but we're going on. Last night, we let Number Two Son choose dinner. He wanted a hamburger and a play place. (The joys of being four. Number One Son will probably request Islands again, because he likes their french fries.) So off to Carl's Jr, where they ran around for an hour and a half.

Aunt Jacquie sent a check for his birthday, so he picked out some Legos. Number One Son is helping him put the intended set together. (Read: Number One Son is putting part three together while N2S is playing with parts one and two.)

Today, we visit Grandma and Grandpa for a slightly belated birthday. (And Mother's Day. But we're not talking about that part much.)

Saturday, May 10, 2008

Goin' Mobile...

He's loose!

He's 4!

He's 4 today. He got a Webkinz from his siblings, and a bike and helmet from his parents. (Helmet isn't shown in the picture because it was too small. It's getting replaced before he gets to ride. Oops.)

Friday, May 9, 2008

Looking for a word...

What do you call it when you're watching folks who are getting a tremendous (long-term) deal, and suddenly it's going away? It's not quite schadenfreude, because I'm not particularly happy to watch this, but I'm not feeling terribly sympathetic either.

Bike

Rode the bike in again today. A little sore, but not too bad. When I was locking it up at Safeway to deposit a check and drop off mail, I noticed that the cable to the front derailleur was badly frayed and probably not long for this world. Fun. Guess I'll drop it off at the shop on Monday.

My Last Day With A Three-Year-Old


Number Two Son turns four tomorrow.

I'm not entirely sure how I feel about this. I'm glad he's getting older and growing up, but I'm going to miss the uncluttered view of life he has now.

On the other hand, it's frequently a view of life that has little to do with reality. We're continually convincing him that, no, just because he's making up a new word for something, that doesn't mean that anyone else will understand what he means.

And, well, I've commented before that Hell is a seven-year-old with an infinite supply of joke books. Deeper levels of Hell supplement that with a three-year-old sidekick who's trying to tell their own versions of the jokes.

But all of this is part of learning how to be a person. And he is learning, and quickly. Give him another couple months, and he'll be reading the joke books on his own.

I suspect that I'll miss the person he is now when he's grown up.

Thursday, May 8, 2008

Yay blog (part 2)

Apparently, I tripped the "potentially evil" sensors accidentally, so I was blogless for the day while Blogspot confirmed that I am not, in fact, a scumsucking weasel of a spammer.

(Scumsucking Weasel Anti-Defamation League on line 1...)

Anyway, rode the bike again yesterday, and weight was up again. Need to get back in the groove of eating less and biking more. Bike again tomorrow, I think.

Wednesday, May 7, 2008

About the old blog...

I'll leave it as-is, but it won't get any more changes at this point. It's over here if anyone cares about it.

Yay blog.

Finally got annoyed enough at myself to deal with the lack of blog.

The diet...mostly isn't right now. It's hard to diet when your employer provides free lunch and snackyfood. Although I'm ramping up the bicycling again, which should help some, and trying to be reasonable about food at work.

Daily food log is at http://twitter.com/kazrak.

Weight tracking is at Hacker's Diet Online under public account Epsilon Sinlaku. (There doesn't appear to be a way to create direct links to it.) The badge in the upper right shows the status over the previous week.

Coming up: a few archived things I've typed up, and assorted things that have been festering but haven't been sent out yet.