I want my hexadecimal dollar

I’m taking the GRE this week as part of a foolish endeavor to possibly get more learning. Wow, have I forgotten lots of high school math. In preparation for the subject test, which I still haven’t signed up for, I picked up a copy of volumes 1 & 2 of TAOCP. I think these will be much better books once the MMIX versions are out in a few years. For now, they are hilariously antiquated as far as any of the MIX stuff goes. 6-bit (binary or decimal!) bytes, no stack, self-modifying code, punch cards, a weird assembly language that encodes the target registers in the opcode. It makes x86 look like a good ISA. Of course as Knuth says, the concepts themselves are timeless. And it does have me wanting to find a reason for using coroutines, so that’s something.

rm -r

43 files changed, 5671 deletions(-)

Today was a good day. I love deleting XML parsers more than anything in the whole world.

javac sucks

More evidence that javac is one of the dumbest compilers ever:

public class Foo extends java.lang.Object{
public Foo();
Code:
0:   aload_0
1:   invokespecial   #1; //Method java/lang/Object."":()V
4:   return

public static void main(java.lang.String[]);
Code:
0:   aconst_null
1:   instanceof      #2; //class Foo
4:   ifeq    15
7:   getstatic       #3; //Field java/lang/System.out:Ljava/io/PrintStream;
10:  ldc     #4; //String never!
12:  invokevirtual   #5; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
15:  return
}


Ok, I’ll give them a break — this probably never comes up in a real application.

HFCS Fail

As long as I’ve known about kosher for Passover Coke, I’ve needed it. Coca-cola made with sugar, they said, the way it used to be. I wasn’t sure I believed it existed, but I was hopeful. Last year, I dropped by the KosherMart around Seder time looking for this mythical cola, but all they had was Dr. Brown’s and kosher Diet Coke. “WTF?” I asked the clerk, but he was still unable to help me.

Then, last night I spotted a crate of yellow-capped 2-liters at Giant. “w00t!” I exclaimed, as I snagged a few. Finally, I would be able to answer that age old question: is KFP Coke really better than normal Coke? (I seem to remember from last year that the company line was, “no, you are imagining things. Please go back to enjoying your corn syrup.”)

I’m all about the science, so I had my lovely assistant decant equal amounts of regular and KFP coke into glasses while I was in the other room. Not knowing which was which, I took a sip of each, and selected my favorite.

And the winner is: KFP, easily. They do taste similar enough, but the big difference is in finish. Sucrose has a clean, smooth finish, while HFCS has quite a harsh aftertaste — not Splenda harsh, mind you, but definitely noticeable if you have something to compare it against.

I approve of this religious tradition!

PSA

Don’t believe anything you read on the internet today, especially this post.

Readying for launch

To correct my earlier post, the kite festival is actually tomorrow, March 29, not March 28th. Our final count for # of kites between the two of us is 5. I couldn’t find a spar for #6. (Why do I have 6 kites?) Meanwhile, I still need to finish up my 10-kite rollup bag tonight.

On the programming front, I officially posted OMFS for kernel inclusion as I’m tired of having to make minor changes every time someone updates the VFS api. The #ifdef jungle was getting dense. So far the review hasn’t been overwhelmingly negative, so maybe this will encourage me to flesh out the remaining unimplemented features that the FUSE version has.

Diebold: With a Vengance

If there was any doubt (who am I kidding) that election machine manufacturers are pure evil, check out the nastygram Ed Felten got from Sequoia. Incidentally, my home county election officials are batshit insane on this issue. Notice “[printable]” doesn’t mean “voter verifiable.” Just because they can print from it doesn’t mean they do.

Brute force ftw

I write dumb scripts with git! Here’s how to (slowly / automatically) remove any @SuppressWarnings annotations that don’t do anything:

for i in `grep -rl @SuppressWarnings src` ; do
echo $i
cp $i $i.tmp
grep -v "@SuppressWarnings" $i.tmp > $i
rm $i.tmp
git-commit -a -m "Disable warning suppressions for $i"
ant compile > build.txt

res=`grep "[javac].*error" build.txt || 
grep "[javac].*warning" build.txt`

if [[ ! -z $res ]]; then
echo error!
git-reset --hard HEAD~1
fi
done