« | » Main « | »

My friend and ex-co-worker Brian Levine has started blogging. There's not much there yet ("you call that a blog!?") but if it turns out anything like Brian himself, it will be urbane, smart, warm, funny, and intense. Stay tuned.

I've never seen anything like this: an outdoor play using marionettes 20 or 30 feet tall. See Bob's links about the Royal de Luxe show.

tagged: » 1 reaction

Store Wars

Saturday 28 May 2005

Store Wars is a good-natured and well-made spoof of Star Wars with a message: organic food is good for you. Tofu-D2, save me!

tagged: , , » react

Just to show that this blog is fair and balanced, after yesterday's story of bad hardware, here's a story with the opposite moral.

» read more of: Of course, sometimes it is your software's fault... (17 paragraphs)

Pike

Thursday 26 May 2005

Pike is "a dynamic programming language with a syntax similar to Java and C". It claims to be faster than Python and easier to pick up because it looks like all those static languages. I was impressed that its author is named Fredrik Hübbenet, and therefore can use the domain name fredrik.hubbe.net. With my name, I have to wait until Eritrea opens up to non-Eritreans before I can use ned.batcheld.er.

Yesterday, I had a bad morning at work. Nothing was working right. It's working now, and I guess I learned something.

» read more of: Bad hardware... (9 paragraphs)

Synergy is software that does the Keyboard and Mouse part of KVM. The idea is that you have a bunch of computers, each with their own screen. But you want to use only one keyboard and mouse. Install Synergy server on the machine with the keyboard, and install Synergy clients on the other machines. Now all the screens act as a single unified desktop, and you switch where the input is going simply by moving the mouse off the edge of one screen onto another. And it works on multiple operating systems!

I haven't tried it, but it sounds damn handy.

tagged:   /   via: Pito Salas» 9 reactions

Q: How big is the universe?

A: 156 billion light years!

tagged: » react

I mentioned Quicksilver back in September. One of the unusual things about it is its attention to cosmetic detail. This even extends to its name. Even in the Finder, the name appears in small caps, with the version number in subscripts. How do they do that? How can the name of a file include styling information like that?

It can't. It's another Unicode trick. The filename isn't "QuicksilverB36", it's "Quıcĸsılⅴεʀᵦ₃₆". (The cosmetics of this will depend on your browser's support for some very unusual characters.) Some of these are the letters you think they are, others are not. They are actually:

0051 LATIN CAPITAL LETTER Q
0075 LATIN SMALL LETTER U
0131 LATIN SMALL LETTER DOTLESS I
0063 LATIN SMALL LETTER C
0138 LATIN SMALL LETTER KRA
0073 LATIN SMALL LETTER S
0131 LATIN SMALL LETTER DOTLESS I
006C LATIN SMALL LETTER L
2174 SMALL ROMAN NUMERAL FIVE
03B5 GREEK SMALL LETTER EPSILON
0280 LATIN LETTER SMALL CAPITAL R
1D66 GREEK SUBSCRIPT SMALL LETTER BETA
2083 SUBSCRIPT THREE
2086 SUBSCRIPT SIX

(I looked these up in UnicodeData.txt from the Unicode consortium.)

Why do some of these exist as subscript variants when their neighbors do not? Because they are parts of other "alphabets". For example, 0280, Latin Letter Small Capital R, does not follow a small Q, it is part of the International Phonetic Alphabet. And the K is actually a Kra, which is Greenlandic!

Quicksilver has cherry-picked characters that look right, and by using Unicode, have managed to sneak their styling into "plain text" that can be used as a filename.

I've had to dabble a bit with Unix machines recently, and have needed help with my rusty skills. Here are a few pages I found which helped:

  • Prompt magic: a quick tutorial on using escape sequences in a bash prompt.
  • Vi cheat sheet: just what it says.
  • Bash Prompt HOW-TO: an extensive guide to configuring the command prompt in bash.
  • Readline Init File: the .inputrc file controls how input is read from the terminal. (Hint: set completion-ignore-case on).
tagged: , » 1 reaction

One of the signatures of the Star Wars movies are the opening text crawls. Here are all six crawls. I was always bugged by the horrible word spacing needed to get the full justifcation to work properly.

NicheBot

Saturday 21 May 2005

At work, our sales team has started buying Google adwords ("email overload", "email management" and "email activity management", I think). That lead to a discussion of search keyword buying, which reminded me of NicheBot. It claims to help you hone in on better-performing search terms to buy, by narrowing the results to eliminate competition. Does it work? How would I know? I've never bought ad words.

tagged: » 3 reactions

We just came back from seeing Revenge of the Sith. Here are my thoughts. Warning: this gives some stuff away but only a little.

» read more of: Revenge of the sixth... (11 paragraphs)

Zsh-lovers

Thursday 19 May 2005

I occasionally use a Unix shell, but I don't use much of it. I can't tell the difference between csh and bash (and probably not even sh). So when I read the tips and tricks for zsh at zsh-lovers, I felt a bit like Kramer ("You just blew my mind!"). This is a Unix shell turned up to 11 (or maybe even 12!):

List file ’foobar’ via recursive search in directories:

$ ls **/foobar

List files with suffix c and pro (e.g. foo.c, bar.pro):

$ ls *.(c|pro)

List all .c-files except ’lex.c’:

$ ls *.c~lex.c

List all zero-length-files which are not group- or world-writable:

$ ls *(L0f.go-w.)

List all .c-files for which there doesn’t exist a .o file:

$ c=(*.c) o=(*.o(N)) eval ’ls ${${c:#(${~${(j:|:)${o:r}}}).c}:?done}’

I don't think I'm going to be using those last two anytime soon...

tagged: ,   /   via: Ted Leung» react

The mermaid

Wednesday 18 May 2005

Heinz Insu Fenkl wrote The Mermaid, an interesting treatise on mermaids. It starts with the Starbucks logo, detours through Sheela Na Gigs, and touches on early Christianity and Disney along the way.

tagged: ,   /   via: Betaland» 2 reactions

Chris Coyne has built a simple language for creating visual generative grammars: Context Free Design Grammar. The pictures show the typical complexity and subtlety that can arise from simple rules recursively applied. They are also beautiful. A number of implementations are available: Unix, Mac and Windows, Web page.

Beautiful trees, algorithmically generated

tagged:   /   via: Betaland» react

One year ago today, gay marriage became legal in Massachusetts. At the time, there was a lot of talk about activist judges, and amending the state constitution, and the people being heard. There's not much talk of that anymore, I think because those efforts looked like they would fail. Something like 6000 gay couples have gotten married here in the last year, and it has been quite peaceful.

On Mother's day this year, we had breakfast at a diner in Watertown. It was an interesting experience because of the variety of non-traditional groups we saw there. In a few cases, we couldn't quite parse out the relationships. Next to us at the counter were three white women and a black toddler. One thing was clear: they were very happy. Everyone in the place was happy, they were just families celebrating a day for families.

I wholeheartedly support allowing two committed adults to formalize their relationship and enjoy the same advantages and benefits as any other family. The only reason to oppose gay marriage is if you oppose homosexuality. While I completely disagree with those that think homosexuality is wrong, at least those people have a consistent world view when they oppose gay marriage.

Those that claim they are fine with gays but don't support gay marriage either haven't thought it through or are trying to get elected. I think as people see these relationships in practice, the opposition to them lessens. There is still very vocal opposition, both in Massachusetts and across the country, but it seems inevitable to me that people will come around. It may takes decades, but it will happen.

Two more tools like my Cog code generator:

  • Precog is a PHP implementation of a Cog-style code generator by Jon Ramsey.
  • Templarian is a parallel-universe independent implementation of a very similar tool by Miłosz Krajewski I haven't had time to delve into a contrast-and-compare analysis of it.
tagged: , » react

My seven-year-old son Ben was mad at a classmate, and said about him the other day,

I didn't see Johnny today, so I couldn't ignore him.

I haven't even read all this stuff, much less understand it, but they seem like things in my future.

Dispose, Finalization, and Resource Management is an in-depth treatise on the nitty-gritty details about the end of life for .NET objects. Modern languages seem to prefer not promising much when it comes to destroying objects, and .NET is no different. Some day, this is going to save my ass.

Modern Language Features of Visual C++ 2005 is a detailed overview of the .NET features being added to C++. It seems a bit overwhelming trying to merge the complexity of C++ with the deep new features of .NET, but Microsoft has never been shy about loading on developer features. I think their strategy is to guarantee developers have enough Microsoft choices in front of them that they feel like they're choosing among technologies without ever considering a non-Microsoft offering.

tagged: ,   /   via: Ed at Work» 2 reactions

An interesting behind-the-scenes look at the media circus surrounding Revenge of the Sith: I want my MTV at Skywalker Ranch. I can't decide which is more bizarre: Wookiees mixing martinis, or interviewing minor TV stars about the import of the movie.

tagged: » 1 reaction

Jeff Atwood provides a handy table of contents to Johanna Rothman's Schedule Games, a series of blog postings about a dozen different ways to do the wrong thing when scheduling a project. *Sigh* I wish these weren't so familiar...

This has been out for a while, and I remember glancing at it last fall, but I didn't fully appreciate it then. TiddlyWiki is yet another wiki implementation, but with a difference: the entire wiki, including the implementation and all the data, is stored in a single HTML file. The file is displayed in a browser, where the content can be read and edited. A "save changes" button writes the HTML file back to disk.

First: this is very clever as an architectural design. There's no server to worry about, and anyone who can open an HTML file (who can't?) can read the content. It even allows for unique deployment scenarios like WikiOnAStick (put the HTML file on a thumb drive, and carry it with you anywhere).

Second: holy cow, the mad technical skillz displayed in the implementation are awesome!

Back in December, I wrote about C++ constructor trivia. There, I said:

(*) C++ semantics state that if a constructor of a heap allocated object throws an exception, that the object's destructor is called.

Joe Ganley wrote to point out that I had it wrong, and indeed I did. (I've used the linguist's convention of starring sentences that are incorrect, though they do it for grammatical incorrectness.)

» read more of: More C++ constructor trivia... (14 paragraphs)

tagged: » 3 reactions

I couldn't find this today, so now that I have, I'm blogging it so I'll always be able to find it. TNX Scribble is an online scratch-pad. It's good for when you want to talk about code over instant messaging. Typing code into the IM client usually smilifies it, garbling it. So you paste the code into Scribble, and it gives you a unique URL for it. Paste the URL into IM, and your friend can visit the URL to see it.

tagged: » react

An amazing bookmarklet: Mouseover DOM Inspector. It gives you live information about a web page, with dynamically displayed info about the element under the mouse. Keyboard shortcuts let you manipulate the DOM to change diagnose or change the display. Outstanding.

tagged:   /   via: kryogenix.org» 1 reaction

The two most-often missed language features from Python are enums and switches. Recently, there seem to be a new crop of recipes at the Python Cookbook for implementing these. These two seem pretty good:

These are interesting for a few reasons: first, you can use them if you want to have enums or switches at your disposal in your Python code. Second, reading them and understanding how they are constructed usually provides a mini-tutorial in some dark corner of Python semantics. And third, the debate that springs up around them is usually rich in programming language philosophy and implementation topics.

tagged: » 1 reaction

After a great deal of hard work, my wife Susan is going to have a book published this September: Making Peace With Autism. It's her memoir about our family, and how we have dealt with the autism that afflicts our oldest son.

Making Peace With Autism

We're all very excited about the book. I've put together her web site if you want to read more about the book or other pieces Susan has written: Susan Senator.

Could I ask a favor? Susan's name makes Google searches difficult. Searching for "Susan Senator" tends to find Senators named Susan, and "Sue Senator" is worse: there are lots of news stories about people suing their senators. Here's the favor: make a link to Susan Senator to help Google find its way.

I caught up with about a month's worth of posts from xBlog: The visual thinking weblog, and these were the ones that caught my eye:

¶   The Fade Anything Technique, a JavaScript mechanism for fading out a background color.

¶   AllTheLogos, a huge searchable database of logos

¶   Comic Art Effect, a Photoshop how-to for making a photo look like a comic.

¶   COLOURlovers, like an amihotornot for colors.

¶   Edit in Place with JavaScript and CSS, fancy DHTML mojo.

¶   Transparent PNG Generator, a dynamic color picker that generates transparent PNGs.

My task at work for today involves making date formats localizable, and getting our use of date formats more consistent. I realized that today is a very bad day to be doing this work, because it is 05/05/05. If I transpose two of the components by accident, how would I know?

tagged: » 2 reactions

Swftools

Wednesday 4 May 2005

I'm always interested in new ways to write small programs that do pretty things. SWFTOOLS could be another good way to do it. They've recognized that Flash is both an authoring environment and a playable file format, and that you can keep the latter while replacing the former. They've built over a dozen GPL'ed utilities that create .swf files from various sources, including C code and their own scripting language, SWFC.

tagged:   /   via: Keith Devens» react

Password generator, explained by Job Udell, also available as a bookmarklet and a Greasemonkey script. Next up: dessert topping and floor wax.

tagged: , » react

Wobbly Windows is an extreme window animation effect being played with in Luminosity, an experimental window manager for Gnome. I'm not sure I want my windows to look like Jello, but it's very cool that it can be done.

tagged: » react

My wife Susan Senator has an op-ed piece in this morning's Washington Post: Summer Without Structure. We're excited about it because it is her third op-ed for them, and because it's about one of our typical (not autistic) boys.

Could I ask a favor of any Washington-area readers? Could you send me a physical copy of the page?

tagged: » 2 reactions

For our second March* birthday this year, we had an alien-themed cake:

Alien birthday cake

The eyes are shaped pieces of Hershey bar, and the mouth is a Twizzler. Very simple, but just what the client wanted. We were in kind of a rush when we made it, so we applied the frosting and decorations before the cake had completely cooled. When we got the cake to the party, the chocolate eyes had melted a bit, so they were accidentally soft and gooey for eating, in that wonderful S'mores kind of way.

If you make something like this, take my advice: buy extra Herhsey bars, and bring them to the party, so that when all the kids start screaming "I want a piece with an eye!", you can hand out extra eyes.

(*) Due to a variety of scheduling difficulties, the party was held yesterday, about five weeks after the actual anniversary of birth.

tagged: , , » react

Edward Fretwell has written Id3Writer, a Python module for writing ID3v2 tags to an MP3 file. It's got a familial relationship to my id3reader module.

tagged: , » react

« | » Main « | »