« | » Main « | »

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.

Synergy: software keyboard sharing

Wednesday 25 May 2005

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.

Character styling with Unicode

Sunday 22 May 2005

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.

Unix cheat sheets

Sunday 22 May 2005

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).

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.

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...

Gay marriage, one year later

Tuesday 17 May 2005

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.

Precog and Templarian

Tuesday 17 May 2005

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.

.NET stuff: dispose guidelines and c++/cli

Monday 16 May 2005

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.

Schedule games

Saturday 14 May 2005

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...

TiddlyWiki

Friday 13 May 2005

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!

More C++ constructor trivia

Thursday 12 May 2005

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)

TNX Scribble

Thursday 12 May 2005

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.

Enums and switches

Monday 9 May 2005

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.

Making Peace With Autism

Sunday 8 May 2005

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.

Quick links: fade, logos, comic, colourlovers, edit, png

Friday 6 May 2005

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.

Bad day for date formats

Thursday 5 May 2005

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?

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.

Wobbly windows

Wednesday 4 May 2005

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.

Summer Without Structure

Monday 2 May 2005

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?

Alien birthday cake

Monday 2 May 2005

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.

« | » Main « | »