Archive for the ‘Software’ Category

Anders Hejlsberg demos LINQ

Thursday, June 1st, 2006

While I was eating the pizza described here, I was being very impressed by the technology on display here. Anders Hejlsberg, Microsoft Distinguished Engineer and lead architect of C# (and, previously, Delphi) presents the current state of XLinq and DLinq to Jon Udell. LINQ is the headline feature for C# 3.0 (which is just a language and library update, not a runtime update); it stands for Language-INtegrated Query. XLinq is the implementation of LINQ for XML data and DLinq is the implementation for Database (SQL) data.

As you see towards the end of the lengthy (nearly an hour) video, you can mix them together. This means that you can write a query in C# that joins XML and SQL data. The LINQ engine will formulate a real SQL query to get the relational part of the data and send it off to the database for execution, then do the necessary joining and filtering with the XML part and return a set of strongly-typed objects. The amount of code required to do this is quite small, assuming you sweep the auto-generated object-relational mapping code under the rug.

My favorite Firefox extensions

Friday, February 18th, 2005

Flashblock — Flash ads are even more annoying than animated GIFs, but there’s some nifty Flash stuff on the web as well. My old solution was to not install the Flash plugin in Firefox and just use IE whenever I encountered Flash content that I did want to load. With Flashblock, I can load individual Flash files with a single click.

Go Up — In IE, the Google toolbar has a handy “go up a level” button. This provides that function in Firefox.

Linky — When you want to open a large number of links in tabs, just select them, right click, and use the Linky submenu to do it all at once.

BugMeNot — Bypass “free registration required” sites like newspapers by right-clicking on the login box.

I used to use Tabbrowser Extensions, but there are hidden prefs in Firefox 1.0 that cover 95% of what I wanted, so I don’t bother with it any more.

The Problem with Electronic Voting Machines

Wednesday, November 10th, 2004

Bruce Schneier’s new essay, “The Problem with Electronic Voting Machines,” is an excellent introduction to the problems with Direct Record Electronic voting machines, which include both the famous Diebold touchscreens and Harris County’s eSlate button-based system. I would recommend this essay to anyone who wonders why there is so much concern about these systems (”if there’s no hanging chads, what’s the problem?”).

Schneier begins with the goals of a voting system, accuracy, anonymity, scalability, and speed, and from there covers the connection between simplicity and accuracy, the effect of error distribution on the accuracy of the final tally, anecdotes about the sort of problems that have occurred with DRE machines, and the “it works for ATMs, why not for voting?” argument. Finally, he explains the two things that need to happen to make the systems trustworthy: a paper record verified by the voter at the time the vote is cast and open review of the voting machine source code.

The price of backwards compatibility

Tuesday, August 24th, 2004

Reading Raymond Chen today, you get the impression that the Windows API is just one big minefield where if you take anything at face value, your program will be full of bugs and holes. Is there any way out of this mess? Or will it always be the case that unlimited backwards compatibility leads to an unlimited number of gotchas in the API? It seems like the only hope is to use the newest Microsoft-written API wrapper available and pray that CRegKey or Microsoft.Win32.RegistryKey understands that just because REG_SZ implies that the string will be null-terminated doesn’t mean that it actually will be.

Eric Sink v. Paul Graham

Wednesday, August 4th, 2004

Paul Graham recently posted an essay describing the qualities of a class of programmers he calls “great hackers.” Eric Sink wrote a response about why such great hackers might not make such great employees. Both essays are worth reading for software types.

One funny coincidence—as an example of an important but uninteresting task at SourceGear, Eric says he is procrastinating on “some enhancements to our online store website.” I wonder if Eric is aware that Paul made his name as the architect of Viaweb? Yahoo acquired Viaweb in 1998 and turned it into store.yahoo.com. Incidentally, Viaweb may most successful Lisp application ever - it certainly has more users today than Emacs.

Sounds like corpse, corps, horse, and worse

Saturday, July 17th, 2004

Paul Lamere gives a glimpse into the complexities of doing real text-to-speech in English. The 60,000 word dictionary in FreeTTS is just for the exceptions that aren’t handled correctly by the 13,000 states in the letter-to-sound state machine! But the cool part of the post is a poem that illustrates the problem. It reminds me of a silly sentence I heard years ago: “The tough coughs as he ploughs the dough.” (via Tim Bray)

Gmail

Tuesday, June 29th, 2004

Incidentally, I have a few Gmail invitations left if anyone wants one.

Do not underestimate the power of the game Deer Hunter

Saturday, June 12th, 2004

Beta releases of software aren’t expected to be perfect, but to be effective at gathering feedback, at least a basic amount of functionality has to work - otherwise no one will use it for long enough to find the undiscovered problems. Microsoft is currently preparing Service Pack 2 for Windows XP. This is a bit more important than their usual service packs because it will most likely be the only client OS release between now and Longhorn, which is probably at least 2 years away. So the beta of XP SP2 needs to be good. For example, Deer Hunter 4 needs to work.

The iVue - unshareable music

Sunday, June 6th, 2004

The RIAA has contracted with a biometrics company called Veritouch to produce the iVue, a portable music player with a fingerprint reader. Current “legal music downloads” like the iTunes Music Store and the new Napster use a system that ties purchased tracks to individual computers. In the case of iTunes, you can “authorize” up to five computers to play tracks you buy (iPods don’t count against this total - you can put the tracks on an unlimited number of iPods as long as the iPod is physically connected to an authorized computer for the transfer). Napster may allow for more than one computer too - I don’t know.

But the iVue will tie tracks not to computers, but to the physical presence of their buyer (or, presumably, a reasonable facsimile). Mark is right: this has “a zero percent chance of catching on.” And I should hope not; do we really want to move towards a world where Blockbuster charges you a different rental fee depending on how many people are in the room while you show the movie? And modifies your TV to enforce that policy?

There being two square roots of any number

Friday, June 4th, 2004

A mathematician attempts to determine whether girls are evil.

Via Ray Slakinski, author of Nucleus, a specialized tool for watching an RSS feed with links to .torrents and downloading files that match keywords. In other words, it lets you build a collection of TV show episodes with basically zero work.