graydon is currently certified at Master level.

Name: graydon hoare
Member since: 2000-02-06 05:06:58
Last Login: 2008-03-28 22:10:16

FOAF RDF Share This

Homepage: www.pobox.com/~graydon

Notes: Currently at mozilla corporation. Formerly at red hat, zks, UofT, novare, and elsewhere.

Interested primarily in languages and software engineering automation (formal methods, automated debugging, version control, SCM, etc), with side interests in lots of other fiddly things.

Projects

Articles Posted by graydon

Recent blog entries by graydon

Syndication: RSS 2.0

23 Feb 2005 »

jedit's main text pane now seems to work, and all the gui-branch work is merged back to the gcc trunk in time for the 4.0 branch. if you download trunk, configure it with the cairo 0.3.0 snapshot, and run

gij -Dgnu.java.awt.peer.gtk.Graphics=Graphics2D -jar jedit.jar

you should get something like this.

22 Jan 2005 »

free swing

today jedit started working on free swing. it's a bit ugly and slow, but it's by far the largest free swing GUI we've constructed yet. that's rendering on cairo, which seems to be maturing nicely. I also taught the imageio system to use gdk-pixbuf, so now we can load and save most major image formats.

monotone

we've upgraded to sqlite 3.0, which does away with most real size restrictions. I put some of my ogg files and digital camera images in it. seems to work. also the current head supports "single file" diffs, commits, reverts, etc. many active development branches now; people are adding features faster than I can keep track. that's quite satisfying.

24 Nov 2004 »

free runtimes summit

Red Hat had a little summit which I attended last week, showing off the excellent work our free java hackers have been up to lately. But it was not all show and tell; an important theme to this meeting was getting various disagreeing people to talk face to face, with civility, rather than fighting through email.

Personally I don't like fighting much anymore. I'm particularly uninterested in the java and C# fight. So I wrote up a little exploration of the differences, to see if we can't just learn to live with them as minor dialects of the same basic language.

statistics and information theory

I got a couple nice books recently:

  1. Probability Theory: The Logic of Science
  2. Information Theory, Inference, and Learning Algorithms

Both these books are important to me, because the little statistics I tried to learn in university didn't make any sense. It wasn't for fear of math. I studied math. The stats I learned made vague sense when discussing uniform and discrete problems, but seemed increasingly mysterious as continuous non-uniform distributions were introduced: the justification for assigning a particular process to a particular distribution never seemed very clear, and the flow of information between knowns and unknowns, data and hypotheses, and the meaning of "randomness", became increasingly muddled. It resisted my ability to understand.

These books -- especially the former -- seem to place all that muddle in the context of a titanic struggle between Bayesian and Frequentist philosophical perspectives. Which is good. It's actually very important to me to see that there has been meaningful digression into the deeper epistemology of probability, because most statistics textbooks just pressure philosophical questions about the reasoning framework into humiliation and silence. These books come out plainly in favour of the Bayesian (knowledge-representation) view of probability, and give a pleasant contextualization of classical information theory in these terms. But they also spend a good deal of time discussing how a probabilistic reasoning process can be thought to make sense -- to be well-motivated and executed with confidence -- from the pragmatic needs of a creature needing to perform some uncertain reasoning.

I've heard people describe Bayesian inference as a cult. I'd be curious to hear that side of the argument distilled; so far it just seems like refreshingly clear thinking (similar to the clarity of thinking in Exploring Randomness, another one I've recently enjoyed).

cool language of the week

IBAL is a nice language for playing with inference in a way which is easy for programmers. Perhaps the future will see more such languages

19 Aug 2004 »

hashes

depending on how you view the state of cryptographic research, the results from this week are either very good or very bad. in the short term it probably means not much; in the slightly longer term it probably means we have a lot of replacing and upgrading to do.

this incident points out two facts:

  • cryptography is an arms race and you need to keep spending money on it as long as your opponents are
  • the ability to extend, augment, or replace algorithms in the field is an important feature for a security system

there will inevitably be an increase in pointers to henson's paper. beyond the preceding two points, the paper makes a valid argument that input or algorithm randomization can help turn permanent failure cases into transient ones. however, it extends these points, I think unfairly, into an attack against the whole concept of cryptographic hash functions (CHFs). that's a mistake, and really involves a lot of glossing over of what a CHF is and why we need them:

  • difference detection is the principal task of data integrity
  • humans can see big differences but not small differences
  • the meaning of "big" and "small" can be changed, depending on the type of lens you use
  • a CHF is a lens which enlarges some differences and shrinks others
  • integrity systems should always use as many lenses as they can afford to
  • working with "no lenses" is a meaningless concept: computers produce derived images of data all the time. even loading and storing bytes from memory is a copying operation, and there is always -- even with no attackers -- a certain probability that any bit in a string will flip.
  • CHFs produce good value for the money: you spend a little bit of money on R&D, a little bit of CPU time calculating, and a little bit of disk space for storing; you get a lot of integrity. that's the equation.

I agree with the point about hash randomization, but tossing out CHFs as a concept is a serious mistake. coding theory, along with say binary search, is one of the exceedingly few sources of computers' Real Ultimate Power.

7 Jul 2004 »

LSP and subtyping

I don't usually care about subtyping. I read a theory of objects and found it pleasantly formal, but I probably missed a lot. the issue just doesn't usually grab me.

then I read oleg's old page about many OO languages failing to satisfy the LSP, and realized how important and overlooked this critique is. the basic result is that subtyping in most OO languages these days is behaviorally wrong, and when it works it is working only by accident.

I find this remarkable!

there appear, from a further evening of digging in the literature, to be only two known ways to produce subtyping relationships which satisfy the LSP: the first statically prohibits the problem by careful construction of the type system and restrictions on the kinds of extensions possible in subtypes: the essential difference being to dispatch by type rather than by object. this is what CLU does, and amazingly the approach seems to have completely died off.

the second approach is to let the problem persist dynamically in your language, but check it at runtime using explicit pre and post conditions ("design by contract"), and combine ancestor contracts appropriately when subtyping. this is of course what Eiffel is famous for, but the only other language I see picking up on it is D. in both cases, I find no mention of the fact that the correct combination of contracts in subtyping is a pure necessity for behavioral correctness. as necessary as an array bounds check or a null pointer check -- oh wait.

looking over the pantheon of modern OO languages which fail to address this issue lends further evidence to my belief that language design is actually regressing. CLU was developed before I was born.

113 older entries...

 

graydon certified others as follows:

  • graydon certified alan as Master
  • graydon certified lewing as Journeyer
  • graydon certified stig as Journeyer
  • graydon certified miguel as Master
  • graydon certified raph as Master
  • graydon certified fatjim as Apprentice
  • graydon certified shaver as Master
  • graydon certified mael as Journeyer
  • graydon certified Ankh as Master
  • graydon certified washort as Apprentice
  • graydon certified joey as Journeyer
  • graydon certified zab as Master
  • graydon certified trance9 as Journeyer
  • graydon certified bryanf as Journeyer
  • graydon certified blizzard as Master
  • graydon certified alex as Journeyer
  • graydon certified lilo as Journeyer
  • graydon certified jgg as Journeyer
  • graydon certified knghtbrd as Journeyer
  • graydon certified netgod as Journeyer
  • graydon certified srivasta as Journeyer
  • graydon certified doogie as Journeyer
  • graydon certified dres as Journeyer
  • graydon certified stefan as Master
  • graydon certified tetron as Apprentice
  • graydon certified apgarcia as Journeyer
  • graydon certified opiate as Journeyer
  • graydon certified phe as Journeyer
  • graydon certified davej as Master
  • graydon certified chalst as Master
  • graydon certified Zooko as Journeyer
  • graydon certified tromey as Master
  • graydon certified DV as Master
  • graydon certified rth as Master
  • graydon certified jimb as Master
  • graydon certified aoliva as Master
  • graydon certified mjw as Journeyer
  • graydon certified Zaitcev as Master
  • graydon certified mbp as Master
  • graydon certified robilad as Master
  • graydon certified Anthony as Master
  • graydon certified bje as Master
  • graydon certified jpick as Master
  • graydon certified zw as Master
  • graydon certified ncm as Master
  • graydon certified movement as Master

Others have certified graydon as follows:

  • kroah certified graydon as Journeyer
  • kelly certified graydon as Journeyer
  • temas certified graydon as Journeyer
  • mathieu certified graydon as Master
  • Ankh certified graydon as Master
  • kai certified graydon as Journeyer
  • washort certified graydon as Journeyer
  • dwaite certified graydon as Journeyer
  • fusion94 certified graydon as Journeyer
  • joey certified graydon as Journeyer
  • DizzyD certified graydon as Journeyer
  • beppu certified graydon as Journeyer
  • andrei certified graydon as Journeyer
  • matias certified graydon as Journeyer
  • djcb certified graydon as Journeyer
  • trance9 certified graydon as Master
  • CentralScrutinizer certified graydon as Master
  • psj certified graydon as Journeyer
  • jgg certified graydon as Journeyer
  • fatjim certified graydon as Master
  • dres certified graydon as Journeyer
  • knghtbrd certified graydon as Master
  • joe certified graydon as Master
  • stefan certified graydon as Master
  • rcw certified graydon as Master
  • mlsm certified graydon as Master
  • jpick certified graydon as Journeyer
  • eMBee certified graydon as Journeyer
  • lazarus certified graydon as Journeyer
  • NickElm certified graydon as Master
  • cbbrowne certified graydon as Master
  • chalky certified graydon as Master
  • Noryungi certified graydon as Master
  • mattbradshaw certified graydon as Master
  • bjc certified graydon as Master
  • ncm certified graydon as Master
  • jbowman certified graydon as Journeyer
  • chalst certified graydon as Master
  • fabien certified graydon as Master
  • steveh certified graydon as Journeyer
  • ariya certified graydon as Master
  • hunger certified graydon as Master
  • mstarch certified graydon as Master
  • JoshO certified graydon as Master
  • apgarcia certified graydon as Master
  • maelstorm certified graydon as Master
  • opiate certified graydon as Master
  • grant certified graydon as Master
  • realblades certified graydon as Master
  • fxn certified graydon as Journeyer
  • movement certified graydon as Journeyer
  • phe certified graydon as Journeyer
  • mdupont certified graydon as Master
  • mjw certified graydon as Master
  • robilad certified graydon as Master
  • shlomif certified graydon as Journeyer
  • nconway certified graydon as Master
  • lerdsuwa certified graydon as Journeyer
  • oxygene certified graydon as Master
  • jserv certified graydon as Master
  • ean certified graydon as Journeyer
  • kinetik certified graydon as Master
  • randombit certified graydon as Master
  • jpraher certified graydon as Master
  • Zaitcev certified graydon as Master
  • echristo certified graydon as Master
  • self certified graydon as Master

[ Certification disabled because you're not logged in. ]

New Advogato Features

FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

X
Share this page