...I have posted the slides. The code examples are also on-line.[Read More]
Thursday Jun 04, 2009
Wednesday Jun 03, 2009
Tuesday Jun 02, 2009
I suppose this is a strictly personal event, but as beautiful things deserve be shared, I would like to provide a glimpse of what this woman was like, in a photo of her and me taken 18 months ago.
That picture shows Grandma Ev's authentic, habitual brightness of expression. It shone brightly even on days when the mortal machinery was breaking down. "Don't ever get old", she'd say then, with a gentle smile. In her life, hardship was met with integrity and grace, and deep-set habits of peacemaking and service were always at work building up what had been torn down. Her family and friends found her to be an earnest and perceptive encourager, ready to celebrate any of our well-doings.
As her systems slowed to a halt, she remained the woman she has been for 90-odd years, the woman who gave me some of my first lessons in kindness. Those at her bedside say that as breath for speech became scarce, she continued to bless her family with assurances of love, with smiles, kisses, and mouthed words of comfort.
Ev's signature motto, given as an answer to "how are you doing?" has long been a cheerful "I'm Happy on the Way", meaning specifically the way of Jesus. Grandma, your way has been a gift to many, and has brought you to earthly completion with the honor of family and friends. May such happiness be in our way also. Thanks for an example worth following.
Monday Jun 01, 2009
Wednesday Apr 15, 2009
May 8 update: After the conference I enjoyed a video chat with Charles Torre of Microsoft Channel 9 about the Da Vinci Machine Project. Charles has posted a number of very good interviews from Lang.NET; check out those with Lars, Gilad, Anders, and Erik. Also, the Lang.NET organizers have posted synchronized slides and audio of the talks.
Saturday Mar 28, 2009
Wednesday Mar 25, 2009
Monday Feb 23, 2009
M bits which is queried at K quasi-randomly selected positions pk (k < K). If all of the bits are set, then the query returns positive, indicating that someone has already visited the array, setting the bits at all the positions pk.
The filters are quite simple, but the math is a little slippery until you get the right grip on it. Here’s the way I like to grab it, presented in case it helps anyone else.
First of all, the bottom line: Size your Bloom filter to contain NK bits, plus an overhead of 44%. Put another way, for an error rate of ε, allocate lg(1/ε)·lg(e) bits for each key you intend your filter to hold.[Read More]
Monday Feb 16, 2009
invokedynamic. Like the other four invocation instructions, it is statically typed. What is new is that an invokedynamic instruction is dynamically linked under program control. In this blog, I will be giving “recipes” to demonstrate some of its applications. For today, here is a light aperitif showing how invokedynamic could be used to simulate the other invocation instructions. Caution: This blog post is for people who enjoy their bytecodes full strength and without mixers.[Read More]
Monday Dec 08, 2008
But, why did the eventual consensus settle on December 25? Accounts vary, and it is a curious mystery. I think our date is equal parts historic reconstruction, arbitrary convention, and high art. [Read More]
Friday Nov 07, 2008
It will take more time:Relaxing the syllable count limit in favor of word count gives each epigram a fuller and more independent expression:
If you touch it, it will break...
Software is wily.
Somehow it always takes longer:Those latter three lines express the way I feel about my chosen craft.
If you touch it, it will break...
Software is a wily opponent.
I think of the middle line as Kempf’s Law of Software. It was a favorite expression of Jim Kempf, who was on the Sun Common Lisp team with me, long ago.
The last line expresses a stance I call “defensive programming”, which is what we programmers do when we take Murphy’'s Law seriously.
Thursday Oct 02, 2008

Pizza with extra MOP
Here are my top-level takeaways:
- The
invokedynamicdesign is sound, but the exposition needs more work. - The synergy of JSR 292 with Attila Szegedi’s MOP looks very promising.
- Interface injection is going to be helpful to a lot of people, and it is not hard to implement (on top of method handles).
- Tailcall and value types will never go away. We have to plan for them.
- Unless we do this sort of innovation on the JVM, crucial multicore research will move elsewhere.
- We have to do this again next year.
Tuesday Aug 26, 2008
In the wee hours of this morning, the JVM has for the first time processed a full bootstrap cycle for invokedynamic instructions, linking the constant pool entries, creating the reified call site object, finding and calling the per-class bootstrap method, linking the reified call site to a method handle, and then calling the linked call site 999 more times through the method handle, at full speed. The method names mentioned by the caller and the callee were different, though the signatures were the same. The linkage was done by random, hand-written Java code inside the bootstrap methdod.
The Email thread of the announcement is truly international, since Guillaume Laforge celebrated by sending virtual champagne.
The example code is included in the Email, and also posted (as a truly rebarbative test in a NetBeans project) with the patches. As for the JVM code, it only works on x86/32; the next step is to move the assembler code into the right files, and finish the support for x86/64 and SPARC.
Happy International Invokedynamic Day!
(And by a curious anagrammatic permutation of letters, it could also be International Davinci-Monkey Day. My co-workers, who watched me pounding on my keyboard all summer, claim to see some significance in this.)
Saturday May 31, 2008
Here are the top ten things I learned about Android and the Dalvik VM...[Read More]
Monday May 19, 2008
Update: There are some good conversations going on about the EDR at the jvm-languages Google group. Here are some rough changes to the EDR I will be proposing in response; the EG may choose to make these changes (or something like them) official with an EDR update pushed through the JCP (Java Community Process).
This blog copyright 2009 by jrose


