« | » Main « | »

XSLT is a powerful technology that uses some unusual constructs compared to more traditional programming environments. I like it, in fact, I use it to generate the page you are reading right now. But it is an XML dialect, meaning that if you want to write XSLT, you are stuck with the horrible-for-humans XML syntax.

To solve this, Alex Moffat has written XLSTXT, an alternative syntax for XSLT. It's a great idea, but the implementation needs some work. Some of my XSLT constructs occupied more lines as XSLTXT constructs, and I couldn't roundtrip some of my complicated files. But I'm glad to see that someone is thinking about other ways for people to produce XSLT code.

tagged: , » 1 reaction

If you've ever upgraded a piece of software and thought that the old version was better than the new one, then you understand oldversion.com's motto: "because newer is not always better". They archive old versions of commonly-used software so you can find an older, simpler version of software you really use.

tagged:   /   via: Tao of the Machine» react

Prothon is a derivative of Python using prototypes rather than inheritance as the basis for its object orientation. Prototype-based languages seem powerful and intuitive, more so than inheritance-based languages. I'm not sure why they aren't used more. Also, Prothon fixes a few of my main annoyances with Python, especially the ubiquitous self variable, although it does it with dangerously Perl-like prefixes.

tagged:   /   via: Ian Bicking» react

The Genealogy of the Presidents of the USA has some pretty impressive information about the ancestors of the presidents. One of the ways they've sliced and diced it is to figure out which presidents are related to each other (beyond the Bushes, Adamses, and Roosevelts). For example, George Washington (#1) and George W. Bush (#43) are 10th cousins 8 times removed.

tagged: ,   /   via: memepool» 1 reaction

For our second March birthday, we made a race car cake:

Race car cake, front view Race car cake, back view

The headlights are malted milkball candies, the front bumper is a licorice Twizzler, the front wheels are chocolate covered cookies, the windshield is a Hershey's bar, the antenna is a thin pretzel, the back wheels are chocolate covered doughnuts, the brake lights are cherry Dum-Dums with their handles sunk into the cake, the exhaust pipe is another Twizzler, and the spoiler is a frosted graham cracker supported by wafer cookies.

I record it here for posterity, because the cake itself is already gone, down the gullets of a couple of dozen six-year-olds.

Air America is a liberal answer to conservative talk radio. It debuts next Wednesday on stations in New York (WLIB), Chicago (WNTD), and Los Angeles (KBLA). The showcase is Al Franken's show, The O'Franken Factor, from noon to 3:00, opposite Rush Limbaugh, with programming running all day, 6 AM to 11 PM. I wish there were an affiliate in Boston, but they'll also be streaming the shows from their website.

tagged: » 5 reactions

John Miller gave a presentation at PyCon 2004 entitled Promoting Computer Literacy Through Programming Python. It's an interesting topic for me. I'm getting involved in my sons' school, volunteering to teach computer topics. The presentation is in annoying .mov form (you can only go forward, and can't copy text out of it), and begins with boring statistics about newsgroups (!), but then settles into the philosophy of education, the place of programming in the subjects students learn, and so on. There are two links in the presentation (which you cannot click!):

tagged: , » react

One of the common components of software engineering culture is the shared build. A team of people work together to produce a piece of software, and on a regular basis, often daily, that software is built for the team. One of the cardinal sins in this culture is breaking the build: changing the software so that it can no longer be built. To punish the offender, and provide a bonding experience for the innocent victims on the team, a ritual develops around how to treat the offender.

At a previous startup, a totem figure would appear on the culprit's desk. At Kubi, we've taken to using ordinary caution tape to identify the problem source.

Brozilla A cubicle draped in caution tape

An additional benefit of these tribal behaviors is that it gets people talking about the process. When opinions differ on the severity of an infraction, people will talk about whether the punishment was deserved or not. Without a visible and derisive consequence, the process failure may not have been discussed further once the build was working again.

Usually when a software person talks about random numbers, they mean ones generated by a software algorithm, which means they are really talking about pseudo-random numbers. There are better (but less plentiful) sources, which are based on physical processes that produce truly random numbers. Quantum physics is behind randomnumber.info, which generates numbers using a single-photon optics rig. Another is HotBits, which relies on radioactive decay. I'm not sure how you'd put these to use in any practical way, but it's somehow comforting and empowering to know that in distant corners of the world, physics has been harnessed to give me truly random numbers at my fingertips.

tagged:   /   via: Bob Congdon» 4 reactions

A Bloom filter is a clever data structure that lets you check if an element is a member of a set, while storing much less data than the entire set. The tradeoff is that there are false positives: you might ask if a member is in the set, and get the answer "yes", when it should have been "no".

» read more of: Bloom filters... (10 paragraphs)

One of the things that fascinates me about computer science is that the seemingly simple can be studied for long enough to find the non-obvious in it. Consider the problem of finding a small string somewhere inside a larger one. It's easy to do it a simple way: for every character in the larger string, see if it is an exact copy of the smaller string. Turns out, though, that people have been coming up with better and better ways to perform this simple feat, so that now there are dozens of different algorithms.

Christian Charras and Thierry Lecroq have gathered them all together, with explanations, pictures, and even Java animations of the algorithms at work: Exact String Matching Algorithms.

tagged:   /   via: Bob Congdon» react

I made a few minor updates to cog, my code generation tool that uses Python code to generate code for any other language. Version 1.1 allows it to be used for languages without multi-line comments to hide the cog code in. The cool thing is, this was a suggestion by Greg Smith in the reader comments. If you have an idea, send it in!

tagged: » react

My almost-six-year-old and I made this pop-up scene this morning:

A simple pop-up scene

I liked the way it came out, so I wrote up how to do it: How to make a pop-up scene.

tagged: , » 1 reaction

Marcin Wichary has created a comprehensive compendium of user interface elements over the years: GUIdebook. It's cool to see the different pieces of UI from different systems, but on the other hand, there aren't many unusual ways of making a calculator. The component icons pages is particularly compelling.

tagged:   /   via: xBlog» react

A fascinating article about how Sports Illustrated uses digital photography to produce their images: Sports Illustrated's Digital Workflow. They took 16,183 shots at the Super Bowl, over a million over the course of the year. It's interesting to read the details of how they manage and process the photos.

Best quote, on the sports-specific trick of color-correcting photos:

There's only so many pro teams, and we know what color their uniforms are.

tagged:   /   via: xBlog» react

Groovy

Saturday 20 March 2004

Groovy is a new dynamic language that's borrowing heavily from Python and Ruby. It compiles to standard Java bytecodes, and so can be run on existing JVMs. It looks very interesting. This snippet in particular caught my eye:

foo = 'cheese'
sql = TestHelper.makeSql()

sql.eachRow("select * from FOOD where type=${foo}") {
    println "Gromit likes ${it.name}"
}
tagged:   /   via: Ted Leung» react

Why don't more people teach language skills like this? Bob Quick Guide to the Apostrophe, You Idiots. Maybe they can do one for "its" and "it's".

tagged:   /   via: HMK's Spurious Thoughts» 4 reactions

Charles considers what his time is worth, and shares this great jwz quote:

I hate [sysadmin crap]. I have always hated it. Always. If you made a Venn diagram, there would be two non-overlapping circles, one of which was labeled, "Times when I am truly happy" and the other of which was labeled, "Times when I am logged in as root, holding a cable, or have the case open."

Amen.

ArtRage

Wednesday 17 March 2004

ArtRage is a free painting program based on natural media and tools. In other words, it's designed to work and feel as much as possible like real paints, chalks, and so on. I was very impressed with it. It has one of those non-standard but intuitive interfaces where you can just start clicking around, and you'll see how stuff works. And the real-media effects are remarkable. A single stroke of oil paint:

A beautiful blue oil paint stroke

tagged: ,   /   via: Bob Congdon» 4 reactions

I like to play the piano. Not very well, but I like to. The problem is finding sheet music on impulse. I hear a song, and would like to play it, but even if good sheet music exists for it, by the time I can get around to finding it somewhere, my interest may have wandered off to another song. Musicnotes has digital sheet music (buy and download a digital file), but their coverage isn't complete (what store's is?)

But there are tons of MIDI files out on the web. For example, Electric Light Orchestra MIDI files (today's song is Mr. Blue Sky). Some are good reproductions, some not so much. But they all are computer-readable lists of notes to play. What if I could convert a MIDI file into printed sheet music? There are MIDI disassemblers out there, but their output is hardly something you could play from.

Lilypond is a GNU music typesetter, and a very powerful one at that. It can turn music notation into a MIDI file, but what about the other way around? Has anyone heard of something like that?

tagged: » 8 reactions

I haven't made these yet, but they will be hard to resist. Robot Tairiku has dozens of one-page PDFs of cuttable foldable gluable robots, all in hip Japanese pop culture style. There's an English page, but the Japanese home page is really the way to go to get the entire experience.

Pink and blue paper robots

tagged: , ,   /   via: Boing Boing» 1 reaction

The thing about CSS is that it can do an awful lot of things, but most of them feel like clever tricks until you are an expert at it. Maybe that's the way all technologies are. In any case, here's another tricky CSS example: CSS Diagrams.

tagged:   /   via: Chris Heller» react

I was a real math geek in high school, and was taught "new math" at the time, so I got a pretty good introduction to math at a theoretical level. Still, Mathematical Background by John Sowa is a good overview of math concepts. He doesn't cover the connection to computer science directly, but a lot of this stuff underlies software concepts we engineers encounter everyday.

You can get along without the math background, but it helps to have it under your belt. For example, did you know relational databases are called that because they are based on the mathematical concept of relations? See section 5.

In some places, he uses terms only in their mathematical sense, without touching on the more common computer science uses. For example, "idempotency" referring to operations, but not to functions: a function f is idempotent if f(f(x)) = f(x) for all x.

tagged: , » react

Speaking of conventions in movies (I mentioned a starving person seeing someone turned into a chicken in my post on Charlie Chaplin), Television Tropes, Idioms, and Devices catalogues all of the commonly-used devices in TV shows. An example:

Door Focus
When a character leaves a room and the focus stays on the door. Within seconds, the character comes charging back in for some unfinished business; usually to collect a much-needed object left behind, or to deliver a funny line. Used at least five times per Friends episode.
tagged:   /   via: Boing Boing» 1 reaction

I guess it's art, or maybe just humor. Kelly Heaton has made an Elmo coat, that is, a fur coat using the pelts of Tickle Me Elmo's.

tagged:   /   via: 50 cups of coffee» react

Turner Classic Movies (a cable TV station for those of you not in the U.S.) is featuring Charlie Chaplin this month. My cinemaphagic* son and I watched some movies and part of a documentary about him, and we really enjoyed them.

» read more of: Charlie Chaplin... (5 paragraphs)

tagged: » 1 reaction

This is clearly an extremely geeky topic, but here goes. CSS Jokes:

Q: Why was IE5's 3-metre wide cell in the insane asylum smaller than IE6's 3-metre wide cell?

A: Because the width of the cell included the padding.

tagged: , ,   /   via: Simon Willison» react

Russell Beattie had some pictures of his family on his web site. Then he got a phone threat against his son. Then he reacted, or possibly overreacted. Finally, he took down the photos.

The issue of how public to make one's family on one's web site is a tough one. I have erred on the side of privacy on this site, which fits my natural inclinations better anyway. The comments on the three posts above are all good reading on other people's reactions to the incident.

tagged: ,   /   via: Simon Willison» 3 reactions

Some thought-provoking software engineering reading:

¶   Generics Aren't

¶   Frameworks, Good Code and the Opposite of YAGNI

¶   On Software Failures

¶   Software Development Attitude

¶   Naming Classes - Do it Once and Do it Right

For the first of our March birthdays, we had a Homestar Runner birthday, complete with homemade cake:

Homestar Runner birthday cake

For those of you who missed it back in October, we also had a Homestar pumpkin for Halloween.

Julian Robichaux, concerned about know-nothings passing themselves off as programmers, gives us How to Spot a Fake Programmer:

  • tells their boss that they can't possibly start using a new language without at least 3 formal, week-long training classes and a certification under their belt
  • claims to be a master of a new language after completing 3 weeks of training and obtaining a certification
tagged: ,   /   via: Small Values of Cool» react

If you've installed the MSDN library on top of your Visual Studio, you've got a ton of documentation at your fingertips. In fact, way too much, at least in my opinion. Here's how to get rid of some of it.

» read more of: Making Visual Studio less annoying #2... (7 paragraphs)

tagged: , » 3 reactions

Fun on the web:

¶   Worth1000.com - The Far Side, real-life versions of Far Side cartoons.

¶   Steve's Web Page, the guy from Blue's Clues!

¶   WEBoggle

¶   The Man in Blue > Experiment > SSCrabble, just CSS and JavaScript.

QRIO

Thursday 4 March 2004

QRIO is a remarkable consumer robot from Sony. I don't know exactly why you would want one of these things wandering around your house, but it does seem like a stunning technical achievement. Photomatt has some amazing videos.

tagged: , » 1 reaction

One of the toughest things about being a parent is having to choose among all the things competing for your attention. Yesterday I felt lousy about a choice I had made. Writing Parents' choices made me feel better.

tagged: » react

If you are like me, you use Microsoft Visual Studio 2003, and there are things about it that are just plain annoying. I've discovered a few tips to ease the irritation. The first is how to get the solution explorer to stop flipping and flapping.

» read more of: Making Visual Studio less annoying #1... (7 paragraphs)

tagged: , » 5 reactions

Perhaps even more impressive than Google's complete capture of the textual web search arena are its continuing efforts to make absolutely all information available through its web site. Now they give us search by number, which includes an esoteric assortment of numeric searches (vehicle identification numbers?). For example, you can search for patents by patent number: patent 6351767

tagged:   /   via: Pito Salas» 3 reactions

My soon-to-be twelve-year-old thought this site needed something to give it a little more pizzazz, and decided an intro flash movie was just the thing. So he whipped up a movie showing the mythic creation of this site: Intro Flash

Ned working at his laptop, creating this site

tagged: , » 5 reactions

Martijn Reemst hosts an awesome resource: Calvin and Hobbes Extensive Strip Search, a searchable database of all published Calvin and Hobbes comic strips. A quick test proved the power of the system. Searching for "black and white" turned up the very strip I was thinking of: Calvin's Dad explaining how the world used to be in black and white.

tagged:   /   via: Bob Congdon» 4 reactions

Alvy Ray Smith is a true computer graphics pioneer, and one of the founders of Pixar. He wrote a memo nine years ago entitled A Pixel Is Not A Little Square, in which he teaches us simple-minded Euclidean types about what's really going on with computer images. I don't want to give away the ending, but: a pixel is a point sample.

tagged:   /   via: The Old New Thing» 2 reactions

In all the debate about gay marriage, a common refrain heard from opponents is that the definition of marriage has been the same for centuries if not millennia. Not so. The fact is, the current rules about who can be married have been in place (in some states) for less than 40 years.

» read more of: Loving v. Virginia... (7 paragraphs)

« | » Main « | »