|Ned Batchelder : Blog | Code | Text | Site|
» Home : Blog
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.
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!
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.
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.
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.
Q: How big is the universe?
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
(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:
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.
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.
We just came back from seeing Revenge of the Sith. Here are my thoughts. Warning: this gives some stuff away but only a little.
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!):
I don't think I'm going to be using those last two anytime soon...
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.
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:
My seven-year-old son Ben was mad at a classmate, and said about him the other day,
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.
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.
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:
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.)
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.
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.
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.
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.
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:
¶ AllTheLogos, a huge searchable database of logos
¶ Comic Art Effect, a Photoshop how-to for making a photo look like a comic.
¶ 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?
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.
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.
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?
For our second March* birthday this year, we had an alien-themed 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.