A brief note setting out the three main ways that server to browser communication can be implemented. Reverse Ajax
I was searching for a book X on Amazon just now and at the top of the search results they now show a section titled Customers who searched for X ultimately chose: which lists three of the search results. This is pretty cool because with 1115 other results to look through this at least gives a good starting point.
This Ajaxian » Apache XAP Proposal contains the following quote:
XAP is to provide an XML-based declarative framework for building, deploying and maintaining rich, interactive, Ajax-powered web applications. A basic principal of XAP is to leverage existing Ajax projects such as Apache Kabuki and Dojo, as well as other community efforts such as Eclipse openAjax. It aims to be pluggable with various Ajax toolkits, reduce the need of scripting and solve the development challenge as well as application maintenance challenges associated with Ajax programming.
Now let's work out how many buzz words. XML, declarative, framework, rich, interactive, ajax, community, pluggable, toolkit. So +9 for this but they left out modular, which wouldn't have been too hard to stuff in so I'm going to deduct 1 point for a score of 8. We should probably add three for the three open source projects mentioned and one extra for claiming to solve all of the challenges associated with ajax programming. Final score 12.
The ripoffs are interesting, the presentation is amusing, and the html used to display them looks really nice. I like the inplace expand of the thumbnail images and the highlighting that happens when you move the mouse on to and off of the expanded image. Panic - Extras - The Rip-Off Express
Interesting article about developing a massively multiplayer online game with an unusual theme. Is it real or just a joke, who knows. It's an interesting idea though. The Escapist - I Was Young, I Needed the Money
Here's an idea for a little app, the Desktop Roomba. This would be represented by a little vacuum cleaner that moved about the desktop during idle moments in a random walk. When it came across a file that had not been accessed in a while it would collect it up in its bag. It would take the same approach with windows that hadn't recently been used.
If Apple made Wedding planning software it would just have to be called iDo wouldn't it?
I used this expression at work today and was surprised to find not everyone had heard it before. Anyway, here's a definition of hair shirt. Why I'm posting this I just don't know.
It's hard to find what I think is a good hot cross bun in Austin. Here's a Hot Cross Bun recipe from the UK where the cross on top is baked on and then the finished bun glazed. Here the cross is just put on with icing. Also, they're not spicy enough. Anyway, the real point of this is to introduce my Hot Cross Bun rating system. Going from the worst to the best we have.
Thank you, thank you, we'll be here all week. Try the veal, it's lovely
Got back from an overnight trip to Houston today and the weather in Austin was just great. Left yesterday in the rain. It drizzled on the way to Houston and rained harder as we drove past the refineries and chemical plants in Pasadena. It let up a bit on the Battleship TEXAS. It rained on the drive to Galveston but cleared up while we were looking at historic houses, and cruise ships that look like tower blocks on their sides, and the sea wall, (sort of Blackpool Promenade without the historic bits, or the tower, or the illuminations, or the Pleasure Beach). Came back to Austin today and the sun was shining so I went for a run round Town Lake, what a relief. Actually dispite the rain I did enjoy the trip, interesting stuff.
By the way, cruise ships don't look like I thought they should. My image was always of liners like the Normandie or Queen Elizabeth, but that's not what a modern cruise ship looks like. One of the ships in Galveston was the Grand Princess, a rather slab sided vessel with no funnels, instead it has a cluster of metal tubes poking out of the top. We saw the Grand Princess leave harbour. A strange experience in some ways as the ship sailed to its own sound track. As it pulled away from the dock its loudspeaker system started to play music as if the whole thing was actually a film, instead of some real experience with its own sights and sounds that the passengers were actually participating in. Besides that weird disconnect it must have been really loud on board for us to be able to hear it pretty clearly on shore.
Turns out that when converting from XSL in XML format to XSL in XSLTXT format XSLTXT produces different results for Java 1.4 and Java 1.5. In Java 1.4 the default SAX parser is org.apache.crimson.jaxp.SAXParserImpl while Java 1.5 uses com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl. Unfortunately they differ in the way they treat newlines at the start of text, the crimson parser incorrectly drops them. To get around this I've created a jar file for XSLTXT that includes the implementation classes for Xerces 2.6.2. If you're using Java 1.4, and you're converting from XSL in XML to XSL in XSLTXT format using the toXSLTXT command you should use this file. The xsltxt.jar and xsltxtWithXerces.jar file both check the class name of SAX parser that will be used and issue a warning if the name includes the string .crimson.. Get the latest version of XSLTXT from xsltxt.dev.java.net.
From inside of IntelliJ IDEA I want to be able to right click on a directory or file in the Project view and open a Terminal window already set up with its current directory set to the location of the directory or file. Unfortunately I couldn't find a simple way to do this! There is a command open that will open a file but that by default uses the Finder if you pass it a file or directory and trying open -a Terminal didn't work.
Using applescript its possible to open a Terminal window and issue it commands. If you use
tell application "Terminal" activate do script with command "cd " & "/Users/foo" end tell
you end up with a Terminal window open on directory /Users/foo. Now the problem is that the standard way to execute an applescript from the command line, and hence what I have to use from IDEA, doesn't accept parameters. In fact, if you look at the man page for osascript this is listed as one of the bugs. To get around this problem I used osasubr which can execute a subroutine in an applescript and pass it parameters. So, I ended up with an applescript like
on doit(dir)
tell application "Terminal"
activate
do script with command "cd " & quoted form of dir
end tell
end doit
saved in a file OpenTerminal.scpt and entry for an enternal tool in IDEA with a program of /usr/local/bin/osasubr and parameters of /Users/amoffat/Projects/AppleScript/OpenTerminal.scpt doit $FileDir$
This works but it certainly seems like a lot of work!
Coaling from a Collier, something that isn't done these days. It's important to remember the old saying one hand overhauling the clewline is worth a dozen on the sheet, especially if you have any idea what it means. So far I have discovered that overhauling is to haul a fall of rope through a block till it is slack, a clewline is a rope that runs from the bottom corner of a square sail to the yard and is used when reefing to pull the corners of the sail up to the yard, and a sheet is a rope running from the clew to the deck and is used to trim the sail when its angle to the wind has been adjusted by moving the yards. So, I'd guess that what the saying means is that more can be achieved by a small amount of properly applied effort than a lot of brute force, one person slacking off the rope holding the clew is worth twelve trying to pull the clew down with the sheets?
I went and got a haircut yesterday. After the first bit of chopping I thought the sides needed some trimming, and that's what I asked for. It now appears that I have accidentally acquired the early stages of a mullet. Ah well...
I drove from Austin to Houston and back this weekend. I saw absolutely no Bush-Cheney stickers on any cars. I did see a Kerry sticker though.
Never eaten it and after reading The Power of Lutefisk I don't think I ever will. Funny writing in a "Three Men in a Boat" style. How to describe that first bite? Its a bit like describing passing a kidneystone to the uninitiated. If you are talking to someone else who has lived through the experience, a nod will suffice to acknowledge your shared pain, but to explain it to the person who has not been there, mere words seem inadequate to the task. So it is with lutefisk.
Due, of course, to work. Did see this recently though. bit-tech :: Orac³ - Part 3, the finest case mod I've seen so far. More of a custom engineering effort than a mod but shows what you can achieve if you have a vision and take the time to do a good job.
Here's the traditional definition of a cran. But here we have Measures, Stowage Rates and Yields of Fishery Products which provides the information that one cran is 37.5 gallons or 6.03 cubic feet which is on average 1,200 herrings (can be between 700 to 2,500 depending on the size) and weighs about 28 stone or 28 * 14 = 392 lbs of herring).
p.s. 1 cran = 4 baskets
If Apple were to make spectacles would they be called iGlasses?
This should be probably be accompanied by some terrible BBC style graphic of some specs with a firewire cable photoshopped onto the frame. But I haven't the time or talent to do that.
Cher phoned in to CSPAN today. There's a transcript of her comments available. You can view the video at c-span.org - skip ahead to about the 20th minute of the video link entitled "Washington Journal Entire Program (10/27/2003)" so it looks genuine.
Well don't actually as I'm not sure myself. However, I'd like to report that I just reached the end of week 12 of the American Running association 12 Week Run/Walk program. This, combined with not eating all the snacks at work, has helped me lose 14 pounds. A side effect is that I can now run round Town Lake (First Street to Mopac and back) without collapsing in a heap. The downside is that I probably have to keep running round Town Lake or the weight will come back. The New Yorker had a great cartoon in the October 6th issue with the title "Your Lost Weight". It shows various blobs standing around with one looking at its watch and being asked by another "Ready to head back?"
Posting about this is sort of inspired by The Truffle Diet. Someone who lost 10 pounds using Dance Dance Revolution as the exercise component. I adopted a less embarassing, for me, and more conventional exercise option and I didn't really count calories. It did work though so hurray.
Realising yet again that decent design takes time. Not just time spend doing it but elapsed time so that it can be subconsciously considered. I've spent the past few weeks working on a design for some new software features at work. After a couple of rounds of review meetings I think it's starting to come together. It's also starting to look less like something bolted on to the side of the product and more like an integral part. I know that time spent now considering alternatives is better than just leaping in to coding the first idea but sometimes it's hard to convince yourself that you're actually making progress when you have 1000 lines of document and lots of diagrams instead of 1000 lines of java.
which language to learn? - The Joel on Software Forum. Of course I had to chime in with my $0.02
If you don't know lisp or scheme I'd recommend one of those (scheme would be my preference) first. Of the three you list I wouldn't pick ADA as it's AFAIK a fairly standard procedural language. Between Haskell and ML I'd probably choose Haskell. It's such a purely functional language you have to start to think functionally, I think ML still let's you code imperative code if you want to. On the other hand, Haskell is, IMHO, difficult to find practical applications for, that is it is difficult to interface with the outside, generally imperative, world. If you go with ML you can use OCaml, which offers all sort of programming paradigms in one box. Personally I wouldn't bother with perl, python, or ruby if you want to learn anything beyond a new syntax. Sure they're all slightly different from each other but no where near as different as scheme or haskell.
Looking back it's always easier to see when something ended than when you're actually living through it. As the Roman empire declined people probably didn't identify at the time when it "ended". They didn't wake up one day and say, wow, looks like the empire ended yesterday.
So, when did Microsoft's domination of personal computing end? Looking back from twenty years hence will people point to Linux, or Java, or Netscape (I know they failed, but did they do enough as they died to pull down MS as well) or the Blaster worm or the first moblie phone running app X, or something else and say, "well, they didn't know it at the time, but that's when it was all over for tMicrosoft"?
Ok, it may be provocative, but such domination can't last forever, can it? And if it can't when will it end, if it's not already? Is Microsoft currently in the position of dominating the thought space for some section of computing while the actual work is switching over to another platform?
All Things Considered this evening had a review of an album from Verve called Verve Remixed 2. Just now I looked on the ITunes store and it was listed as number one in the Today's Top Albums section! Perhaps the intersection between All Things Considered listeners and Mac owners is rather large :)
Today I bought a Maxtor 5000DV drive for MSS because the hard drive on her Mac is only 10 gigabytes. Yesterday we had a celebration for shipping our latest release and us lucky developers got iPods as a thank you (feels so 90s sometimes). However, even the smallest 15 Gb iPod has 5Gb more storage that MSS's whole computer, and there was no way any music would fit, along with her photos and other things, on her machine. So, off to Frys.
The new drive is 200Gb (well 189 when you actually check) which caused a few problems setting it up. The instructions for connecting to a Mac were very simple, just plug the firewire cable into the back of the Mac and the drive should appear on the desktop. Well, it turned out it wasn't that simple after all. I followed the instructions and nothing happened. I went to the Maxtor support website and followed the additional instructions there (including numerous reboots) and still no joy.
Finally I did the sensible thing and applied some unix to the problem. Looking at the output of dmesg showed a line mountmsdosfs(): disk too big, sorry. A bit of poking around on google indicated that BSD systems have problems with very large FAT32 partitions. This meant I was going to have to reformat the disk as HFS+ before Mac OS X could deal with it. The problem was I didn't know how Mac OS X did this. Back to google, plus some poking around in /sbin revealed that the correct thing to do was pdisk followed by newfs_hfs. I found the correct name for the device to partition and format by looking the the system log. When I plugged in the firewire cable it complained about the device it couldn't read. The final piece of the puzzle was how to get root access to perform the partition and format. Fortunately this blog entry on root access under Mac OS X came to my rescue.
Once I knew what to to solving the problem only took a few minutes and the drive's now working nicely. If anyone else has the same problems I hope this helps them out.
Expanded .mailfilter script to deliver messages marked as spam by bogofilter directly to the spam mailbox. Simple stuff.
if (/^X-Bogosity: Yes/)
{
to "$HOME/Maildir/.Spam/"
}
else
{
to "$HOME/Maildir/"
}
I read my mail at home using the mail client in mozilla. I'm very happy with the Bayesian mail filtering it provides as it does a great job of distinguishing between spam and non spam. However, I thought I'd like to experiment with some server based filtering.
My first attempt is to use bogofilter to perform the mail clasification. In the future I'll probably try CRM114 as it claims an amazing accuracy. The only tricky part of the process so far was to work out how to get qmail to deliver the mail to my maildir after filtering with bogofilter.
I found various recipes through google for qmail and bogofilter but they all seemed to use separate accounts for spam and non spam email. What I wanted was to keep the folder structure that mozilla's junk mail filtering is using. My initial setup is very simple, all I do is use bogofilter to add an X-Bogosity header to the mail and then use maildrop to put it in my maildir inbox. This involves three files.
.qmail file that qmail uses to perform delivery. This just passes the incoming mail through preline to a script I wrote that invokes bogofilter and then maildrop.
|preline spam/qmail-bogofilter.sh
qmail-bogofilter.shscript. I need the LD_LIBRARY_PATH as BerkeleyDB isn't where it "should" be. Then just pass the message through bogofilter and then to maildrop for delivery according to the instructions in .mailfilter
export LD_LIBRARY_PATH=/usr/local/BerkeleyDB.4.0/lib /usr/local/bin/bogofilter -p -3 | /usr/local/bin/maildrop
.mailfilter file that controls maildrop. At the moment very simple, it just puts the mail into the default folder.
to "$HOME/Maildir/"
Of course bogofilter makes mistakes from time to time, later I'll describe the python program I use to "train" it after I've manually (well, with mozilla's help) clasified the mail. In the future I'm planning on expanding the .mailfilter recipe so that spam is automatically delivered to the correct mailbox.
Mostly a case of trying to avoid the power lines to the left and right. In this photo it really doesn't look too bad. This is a view of the back of the building in the early morning. The "lake" is a flooded quarry, in the summer high school kids come and jump off the cliff.
Just take a look at some of the things in Greg's Digital Portfolio then! Especially the three photographs of people. Amazing work.
What it generally looks like. Hardly room to swing a mouse. Not a genuine IBM Model M keyboard but an oldish Dell of the same quailty. IntelliJ IDEA on the right hand screen, Mozilla on the left.
Just listening to some tunes by Vin Garbutt while I work. One of which is The Beggar's Bridge about Tom Ferris who built a bridge over the Esk river in 1619 after making his fortune in the Elizabethan navy. Of course the bridge is still there in Glaisdale, after all after only 400 years why wouldn't it be!
I suppose in my mind the Esk's other claim to fame is that it reaches the North Sea at Whitby, where Dracula landed abord the Demeter. Here are some very nice pictures of Whitby, or as the title says Dracula's Whitby (dramatic music). One day I'll have to visit.
Just swapped over at work from a single Dell 200FP 20 inch flat panel to dual Dell 1800FP 18 inch flat panels. Either setup is, in my opinion, a very nice. The 20 inch was bought at the end of last year when Dell was having a special that brought the price down to about $800, the current price is pretty outrageous. At that time the developers had the choice of dual 18 or single 20. I, and one other person, chose single 20, the others went for dual 18. The 2000FP is a very nice monitor, but dual 1800FP turns out to be better. Recent reorgs and moves means I can now pinch, or "free up", enough 1800FPs for me.
The dual setup has a lot more useful real estate because its greater horizontal space is more useful to me that the greater vertical with the 20 inch monitor. It let's me keep IntelliJ open on one screen and still let's me see a browser or running app on the other. Setting up the linux box wasn't too difficult. As it's a Nvidia card I had to download and install their driver before the dual head feature would work. For the rest of it I just copied a colleague's XF86Config.
Chiliastic. Discovered in a New Yorker book review (I generally only look at the cartoons) . Apparently a "chiliastic ideology" is one of the six criteria that must be met for a regime to be totalitarian. A word so sstrange I had to look it up. This definition of chiliastic is perhaps better for understanding what a chiliastic ideology might be.
I found the first few paragraphs of this New York Times article, Video Artists Escape Hollywood Sensibility pretty interesting. They talk about the way some people have been using video games as the basis for making "Art".
In my opinion some games are pretty close to Art, if not already there, even without reinterpretation. This isn't about that though, it's about creating someting new by looking at a game from a different perspective, not the one the game makers had in mind. Even if you don't agree games are Art I think you've got to admit that the idea of approaching Grand Theft Auto, as if the protagonist were a Canadian tourist, instead of the violent criminal he's meant to be, and recording a virtual tour of the setting, Liberty City, is clever. The resulting video can be seen at My Trip to Liberty City. I'm intrigued by these sorts of repurposings.

Yummy. At least every couple of years it is. A photographic souvenir of my recent holiday in the UK.
Shandon and I went to see this today and we both enjoyed it enormously. I was dubious going in, but it was most lighthearted fun I've had at the movies so far this year.
Johnny Depp was an excellent, and in my opinion, very camp, good pirate captain Jack Sparrow. I kept feeling that at some point there would be a quick aside, or even a plot twist, where he was going to admit that he really preferred cabin boys to Keira Knightly.
Geoffery Rush was the bad pirate captain Barbossa. He reminded me most of Tom Baker playing Captain Redbeard Rum in Black Adder II. Keira Knightly's character, Elizabeth, wasn't just a screaming love interest, she took the lead at couple of points.
The whole movie was funny and well worth seeing. There were a couple of places where you could guess what the next line was going to be, and I was disappointed the scriptwriters didn't try and confound our expectations. Otherwise the dialog was great and some of it pretty amusing. Curse of Monkey Island sort of stuff, an insult based duel wouldn't be out of place.
The effects, apart from a disappointing and very cgi looking first shot, were great. Storybook Pirates set in a storybook 18th century Caribbean with some nice twists and swashbuckling stunts.
Even the plot, apart from what I though was a weak ending, held together well. Classic structure of a quest with a reversal. It's also interesting how they were able to maneuver round pirates' propensity for rape. It becomes clear in the movie that Elizabeth is safe with these pirates because of a peculiarity of their condition.
All in all we both enjoyed ourselves greatly, I'd even go and see it again at the cinema. Recently I've felt that I've wasted my time after some of the stuff I've seen so this was a really pleasant change.
and with lots of work to do. This has meant that I've had no time to do possibly more interesting stuff on the side. Ah well.
Probably cause I have no time to put together anything interesting, even in the limited sense I use it on this blog, recently. I've been very busy at work trying to get the next release out and that's not left much time for anything else. I did find this interesting discussion about a upcoming book about models of computer programming. I hope to get round to reading it sometime :)
Just cause I could I decided to post this from Java One. So far it's been fun and I've learned some useful/interesting things. I've also managed to check my email at home using ssh from a SunRay 100 machine here, which I'm quite proud of :)
The other day I was googling for meat slurry, for reasons that now escape me, and I found this site, ADMIX - Advanced Mixing Technologies - Meat. It's the last question and answer in the list that is most interesting.
Question: We are hoping to produce a high quality meat emulsion from left over trimmings and chicken parts. What do you have?
Answer: Our Boston Shearpump® will grind, chop and emulsify trimmings and other parts to a smooth consistency down to 1-micron ensuring cohesiveness and stability.
But what are they going to use the high quality meat emulsion for? And this must be some definition of high quality I wasn't previously aware of. I always though that pate was high quality meat emulsion, and I hope that's not what they're making here :)
I heard a report about this paper in nature, Video games boost visual skills: Spiderman may help to train pilots and treat stroke patients., on All Things Considered while I was driving home this evening. What I found especially interesting was the speculation that it was the, simulated, tension and danger that made the "gaming experience" such a good teacher. From my limited experience that's certainly the way it seems to work. Even playing platformers like Jax and Daxter you learn pretty quickly what to look out for when missing it means you fall into the ick and have to start again.
My main computer at home has died, after a very short illness, possibly caused by some mods I made to it. Ah well, I think I'll be able to reuse most of the parts to build a newer and better one. Hopefully more Six Million Dollar man (not that I liked the show) and less FrankenComputer. These days you couldn't rebuild much of anything for six million dollars though.
Following a link on, I think, Slashdot, I visited Glowire. They sell Electroluminescent Wire which combined with the glowing keyboard on the new Apple PowerBook G4 17" inspired me to try a little mod to my own IBM Model M keyboard which I bought used from Goodwill computing in Austin.
I thought I'd try and give my keyboard the glowing keys treatment. Turned out to be pretty easy. First take the keyboard to pieces. This gave me a great opportunity to give mine a much needed cleaning. Next, run the glowire along the backing plate next to the keys. Finally, of course, reassemble it. It looks like there's enough space inside to put the glowire driver/voltage converter and battery but I've not done that yet because the converter makes an annoying whine and I wanted to try to quiet it a bit first.
Today I was looking at Bit-tech and I found a picture of a similar mod about three quarters of the way down the page. As you can see these sorts of mods don't photograph well, but it did encourage me to get round to putting up a picture of my own efforts. It shows more of the keys but less of the glow.

Testing
Quickly build a classpath from the jar files in a single directory.
-classpath `ls -1 ../build/lib/*.jar | tr '\n' ':'`
If you have more than one directory to deal with then you can just add them to the ls command.
-classpath `ls -1 ../build/lib/*.jar lib/*.jar | tr '\n' ':'`
On the one hand it's no fun having to work late all the time, on the other I like the people I work with and at least I have a job. So no updates recently. I'm still trying to work on SEQUENCE, though with varying success.
In the meantime I've had, for me, lots of comments recently to older posts so I thought I'd link to them here.
Brian Ewins added some links to my plea for Query Rewriting information. The Patterns for Object/Relational Access Layers looks well worth a read. I'll pass it round at work as well. We currently delegate the O/R mapping portion of our system to CocoBase but have our own system of delegates and factories to provide access to it.
A comment in support of the current format for providing input to SEQUENCE. I agree with James. Saying what the return value is close to the point where you describe the call makes it easier to see what's going on. I'm thinking of also trying to support a more Java style syntax as well. Perhaps:
void foo(Bar b) {
Zoop baz()
}
Scott Walters added a really interesting comment to Design Patterns Are about Perl and design patterns and the Perl community. He has a Savannah project to produce a Perl Design Patterns Book. The content so far, about 100 pages, is on line at TinyWiki - PerlDesignPatterns. I followed the SkipTheIntroduction link initially as it was all very complicated for someone who last used perl in anger four years ago. Going back to the beginning and looking at the simpler ones first was a much better bet for me:)
The company I work for just closed a round of funding. This means that we'll be in business for, hopefully, at least two more years. It also means that we've been cleaning the office. I suppose the cleaning is a "fresh start" sort of thing but it's certainly turned up a lot of relics of the old dot com days when we burnt through our first round of funding. Such things as the various designs for the old tradeshow booth we used to have. This was an amazing piece of work and pretty expensive to boot. We used it at about four tradeshows, stored it offsite for a while and then sold it for much less than we paid for it. A low grade sort of Spruce Goose, perhaps closer to Mr. Burns' Spruce Moose Smithers, I've designed a new plane. I call it the Spruce Moose, and it will carry 200 passengers from the New York's idle-wild airport to the Belgium Congo in 17 minutes! Remarkably like some business plans from the end of the last century.
pictures of cats. This isn't my cat. It just struck me as an excellent example of the picture of my pet genre. A wet cat.
From The Inquirer comes a link to Personal Computer Milestones
I'd never heard of this law before I saw the link on Haddock.org. The basic statement is Good customers make for good products. When the customer can't distinguish a good, but more expensive product, from a poor but cheaper one the cheaper, but poor quality, products come to dominate the market. A marketplace with more experienced customers with a better understanding of what they want will support better products. I wonder how this applies to the product I work on. We've certainly faced the problem of trying to sell something for which there wasn't a well defined marketplace, perhaps we're going to next have to fight off a bunch of poor quality rebrandings of software originally written for other domains. Anyway, here's Moen's Law of Bicycles.
I've just finished reading an interesting book I thought I'd recommend. Called Craze: Gin and Debauchery in an Age of Reason, by Jessica Warner, the subtitle, in a mock 18th C style is Consisting of a Tragicomedy in three acts in which High and Low are brought together much to their Mutual Discomfort. Complete with Stories, some witty and some not, conducive to medidation on Recent Events. It's a look at the Gin Craze of the first half of the 18th Century, the first modern "drug epidemic", and the reactions of the ruling classes to it. You've probably seen Hogarth's famous propaganda prints Gin Lane and Beer Street, produced as the craze was coming to an end. At the end of the book Ms. Warner relates the reactions to gin consumption by the lower orders in the 1700s to the reactions to current drug epidemics, such as crack, a great read.
From The Register comes Microsoft's masterplan to screw phone partner - full details. This is an interesting case, especially, as the writer of article says, if the discovery phase of the trial plays the way it might. Whether or not to partner with Microsoft must be an interesting decision these days, it looks like you'd have to be pretty desperate to risk it.
Mainstream coverage of the Lindows Microsoft spat. What Marx can tell us about Bill Gates
Another interesting Gamasutra postmorten, this time on a game called Dungeon Siege. I've found these things interesting in the past. The What Went Right sections are generally good but the What Went Wrong lessons are always great. You can have fun matching both sides up against the classic development mistakes. The examples of how these errors played out, or were avoided, in real projects are very helpful in fixing the ideas in your head.
What about a lossy audio encoding system that uses information about the hearing profile of the listener to tune the encoding? For instance if you can't hear frequencies above a certain range then there's no need to encode the data for those frequencies. The software performs a hearing test to check which frequencies you can hear and create the profile. Obviously the files wouldn't be as good for swapping between listeners as generically encoded ones but I personally don't do that anyway. A further refinement would be to also tune for the playback environment. I'd like some files for playback in the car and some for through headphones at work. The first environment is much noisier than the first and the speakers are different. Perhaps a different encoding could exploit this to provide increased compression and fidelity for the portions that are actually going to be audible. Of course I'm not going to actually do anything with this idea :)
This Christmas I build a PC for playing games as a gift. There are some pictures here showing the "human side" of PC construction. I'm just going to write about the "technical" parts. The end result isn't perfect I'm sure but it's still about three to four times faster than any of the other machines I've got.
The constraints were that we were going to build the thing from scratch, it had to be able to play the latest PC games, and that everything had to be available at Fry's cause this was a last minute idea.
I used the ArsTechnica Buyer's Guide as the basic reference to give me an idea of what to look for. The current CPU recommendation is AMD, which I've used in the past and liked. I picked the motherboard possibilities based on this AnandTech motherboard review.
So off to Fry's we went to return with:
I think that's quite a list but at least there was no need for a floppy, keyboard, or mouse as I've got those bits already.
Putting the hardware together was pretty easy, as usual. All of the big bits are never any trouble, it's hooking up all of the leads to the leds on the front, usb ports etc. that's tricky. Installing windows was easy, though took a long time, RedHat's quicker. The only problem, and it took some time as was pretty frustrating, was trying to load the motherboard drivers. Every time we tried it would freeze up, and without the drivers the built in lan wouldn't work. Fortunately we noticed that the freeze was after the lan was enabled so I was able to download a later set of drivers from the web and they installed with no problem. Fortunately we've got a DSL line. Without that downloading 18MB of driver would be very painful. Of course once all that's done it's time to play windows update. Finally, after another 20MB (excluding the .NET Framework), we were ready to go.
So, how does it play? Fantastic. The No One Lives Forever, A Spy in HARMS way demo will run smoothly at maximum resolution. Lots of fun, not that I plan to do this anytime soon. I've sworn off windows at home so my PC gaming is over, well as long as I can resist it is anyway. It just takes up too much time that could otherwise be spent programming.
Today marks the official watching of National Lampoon's Christmas Vacation for 2002. That is all.
While drinking some egg nog just now I remembered The Sagas of Noggin the Nog. The same team was also responsible for The Clangers. I especially liked the Soup Dragon and the Iron Chicken.
I wanted to connect a laptop I borrowed from work to the network at home. This needs dhcp if it's going to work in any reasonable way. So I installed a dhcp server on my debian box, easy with apt-get, and followed the instructions in The CTDP Linux User's Guide - DHCP and BOOTP and other places to get the thing configured.
However, the first time I try to start the server it won't work because it says the kernel isn't compiled with CONFIG_PACKET and CONFIG_FILTER set. True enough it isn't, and true enough this is my fault as this is a "custom" kernel I compiled last year. So, in order to attach a laptop to the network I have to recompile the kernel. OTOH, at least I've now got a more up to date kernel installed.
Fads for using various words and phrases seem to come and go in software companies. One month they're in and everyone's using them, the next they're out. Maybe a boss starts using a particular word or phrase and suddenly everyone's at it. It's probably the same in other industries as well. While I was in Redmond I heard a couple of new ones that seem to be popular at Microsoft at the moment.
The first is performant, as in writing performant code or we have put a lot of effort into making the framework perfomant. It looks like it means performs well though Google doesn't have a definition for it. Here's a post from 1999 claiming a French origin for the word and there's even a company founded in 2000 that calls its self Performant.
The other phrase I heard a lot was take a dependency, as in we'll be taking a dependency on the CLR project. Of course this means dependent, but uses more words.
Where I work the current favourite is socialize, as in we'll be socializing this message with the other groups. Just means talk about or discuss with.
A few years ago out of pocket was popular to mean out of touch, as in she'll be out of pocket when she's at the client site next week. I thinks this is currently declining in popularity. Here's a post discussing it arising at least 25 years ago.
From a New York Times article Scratching Without Vinyl: A Hip-Hop Revolution Hip-hop D.J.'s are a stubborn and purist bunch.
A useful search for today in the US. Google Search: temperature turkey internal cooked
When you hear Mr.Gravel is in the foyer in a theatre what does it really mean? This thread provides some answers/guesses/complete inventions. I really can't distinguish between the three cases as I've never had a job where anyone's told me any of this sort of stuff.
I was reading an article on the BBC site about the firefighter's strike which includes the quote pour discourager les autres. This is interesting because I think the author meant pour decourager les autres. I'm not claiming my knowledge of French is even slightly above minimal, I have an O level from a long time ago, but Google reassures me on this. The original quote, which was, I'm sure, being knowingly referred to is pour encourager les autres. Applicable in many situations when a punishment far heavier than is warranted by the offense is imposed in a politically motivated, and fairly cynical, attempt to prevent others committing the same offense, and to deflect blame.
The original quote is by Voltaire in Candide
Dans ce pay-ci, il est bon de tuer de temps en temps un amiral pour encourager les autres.
In this country it is good to kill an admiral from time to time, to encourage the others.
He's referring to the execution of Admiral John Byng in England in 1757. Sent in 1756 to prevent the French from taking Minorca, he arrived when the island was already under siege and, after an indecisive naval engagement, withdrew without relieving the siege. He was court-martialed and executed for "failure to do his utmost". This brought charges that he had been used as a scapegoat for ministerial failure. On his tombstone it says "bravery and loyalty were insufficient securities for the life and honour of a naval officer".
I sort of got carried away with this post. I knew the original quote and vaguely what the story behind it was but it's interesting how easy it is to find things out on the web. I'm sure I don't have any books at home that mention Admiral Byng at all, so doing this a few years ago would have involved many trips to the library; which, though fun in themselves, can be a bit time consuming.
From The Register, what is purported to be an internal MS whitepaper comparing Win2K and FreeBSD from the point of view of running Hotmail. Gotta love the tabloid headline though. MS paper touts Unix in Hotmail's Win2k switch.
It looks like I'll be taking a trip to Redmond to take part in a Java to .NET migration workshop. Of course the whole thing is covered by an NDA so that's about it. Maybe I'll find out the real answer to the question "Why .NET?" that I wrote about on kuro5hin.
An experiment. The Java to .NET evalgalist who's running this workshop is called David Weller. The usual google search turns up the fact that he has a blog. Interesting, I wonder if he, or Microsoft, will do similar searches on the attendees? At work we tend to search on google for anyone who comes for an interview, or arrives to take up some position or other, which recently of course hasn't been many people!
I really don't like going to the dentist. A couple of months ago I finally plucked up the courage and went in for an exam. Of course it turned out that I needed what I considered major work, to whit removal of two wisdom teeth and four fillings. So what's the point of this? Well, two things really. First I can heartily recommend the oral surgeon and dentist I went to. The wisdom tooth removal was completely painless and the fillings were bearable. Second, laughing gas greatly improves the Cartoon Network. I was lying in the dentists chair before the fillings breathing laughing gas (I'm a nervous patient!) waiting for the local to take effect and watching the Cartoon Network, without the sound, on the TV on the wall. I had three thoughts, one, I have no idea what sort of animal some of those little Warner Brothers cartoons were based on, I mean, I only know little bugs bunny was a rabbit because big bugs bunny looks slightly like one. Two, several movies I've seen recently would be much improved by laughing gas. Three, these ideas are all pretty silly and therefore I should write them down.
Things are pretty hectic at the moment.
This happened in Knutsford, the town down the road from where I grew up. Granddad guns down terror squirrel We have squirrels in the back garden here in Austin but they seem much more timid, thankfully :)
A O'Reilly Weblogs post extolling the benefits of code generation. I tried to look at the Gen
Will Stuyvesant provides the shortest renaming. You can just type ren *.txt *.xml when using Windows. The full rules for using ren to rename multiple files are here.
I wonder if they'll eventually be more firms like Netbox to provide less generic computers? The selling point is the design, the technical specs are good enough for general work but it certainly looks better than the three beige boxes I've got at home.
Yesterday I got a cold call voice mail at home from the Domain Support Group saying that there had "recently been changes in the internet" and I should contact them. As I suspected, it's a scam. As Paul Graham suggests in his note, Domain Support Group, I'm linking to it in the hope that it improves its Google ranking.
From Joe Conason's journal on Salon. As this story on yahoo news says It is not radioactive, it is not chemical and it is not explosive. Surprisingly, or not, we've not heard much about this in the media. According to Debkafile, the uranium seizure resulted from a joint operation by the [Russian] Foreign Intelligence Service and the CIA which began at the start of August. I would not be at all surprised, the dog appears to be wagging more each day.
Related to the programming languages for smart people discussion here's the original paper talking about how much harder it is for the unskilled to correctly assess their skill level. Unskilled and Unaware of It: How Difficulties in Recognizing One's Own Incompetence Lead to Inflated Self-Assessments
Some thoughts from Dan Bricklin, the co-creator of VisiCalc, about why regular people don't routinely program. Why Johnny can't program
I found this via LtU where there is already an interesting discussion.
One reason I'm interested in this is because I've worked for companies developing various products where part of the pitch was that you didn't have to be a programmer to develop using the product. The range of success in actually implementing this was none to some. To use these "end user" or "you don't have to be a programmer" systems I've seen the user still has to understand the concepts of variables standing for values, conditions, and loops, among others.
So, is it possible to remove these requirements, or are they fundamental, and are there users who are unable to understand them? Is there a portion of the population who will never be able to program, or is that just elitest thinking and it's matter of presenting the information correctly? On the other hand as you make it easier and easier does it cease to be programming? Is "programming" a VCR really programming.
From the New York Times, so free registration required, an article Up, Down, In and Out in Beverly Hills: Rats about rodents in Beverly Hills. The species is actually Rattus rattus, the rat believed responsible for the spread of the plague, and in the generally gently humorous article is the following wonderfull quote about it:
It is less aggressive and well suited to the California lifestyle, preferring a vegetarian diet.
Speaking of the plague, when it first arrived in England it killed 30-45% of the population between 1348 and 1350. It completely wiped out some villages. Yet Medieval society survived, wages for surviving peasants went up slightly and in fact life for the "lower orders" probably improved. With demand for labor outstripping supply people were able to negotiate more freedom of movement and status.
Would modern society survive that sort of death rate? How many people does it take to keep America functioning? Certainly record company executives, barristas, lots of programmers, marketing specialists, and lots of other jobs could be done without. How do you run an oil refinery though? Where do you get the oil from? How many people to run a hydro electric station? A chip fabrication plant? Looked at from the other point of view, what percentage of the population would have to die for society to collapse, if the death rate was evenly spread? Of course it probably wouldn't be, we'd end up with a surplus of Members of Congress, CEOs, and the rich, while all of the farmers died.
Found on Haddock.org. A video clip of a Emily stacking plastic cups. Take a look. The caption says it's actual speed, which is amazing as it's difficult sometimes to see her hands move. This is apparently a "sport" or physical education activity. There's lots of stuff on the site about the benefits participation brings. I'm not so sure about that but it looks like it might be fun to try. We've got lots of left over plastic cups in the cupboards at work, maybe I'll have a copyright infringing try with those tomorrow.
Under the misleading title of Assessing the risks of open source. the METAGroup has a report on the use of Open Source Java code in commercial environments. Despite the title the actual article is fairly positive.
It includes the following quote: By 2006/07, the cycle of movement between open source and standards will be common, and 80 percent of organizations developing with Java will make some use of open-source products. I really surprised that it's not higher already. For instance if you use WebLogic or WebSphere you're already using code from Jakarta. In fact I think it would be pretty difficult these days to put together a Java project of any size without including some open source code. Some things money just can't buy anymore, for instance where would you go to get an XML parser if you had to pay for it? In this situation the alternative to open source is writing it yourself, and that's certainly not efficient, and is more error prone.
Open letter from Richard Stallman in The Register. The Free Software movement really needs Stallman and the Open Source movement could do with listening to him more. The distinction between Free Software and Open Source is important to understand, as is the fact that the first arises from some principles and the second from some pragamatic decisions that provide a, hopefully, better development methodology.
The next release at work now has a code name, and it's Maxwell. In the email announcing this the CTO said the name was taken from Maxwell Smart. He's described in the previous link with the adjectives Annoying, Cheap, Clumsy, Demanding, Dumb, Hilarious, Loyal, and Trustworthy.
If the code name is going to be Maxwell I'd prefer it came from James Clerk Maxwell. Most famous for the Maxwell-Boltzmann kinetic theory of gasses and the Maxwell equations of the electromagnetic field. James Clerk Maxwell already has at least a radio telescope and a foundation named after him. I don't know of anything named after Maxwell Smart.
Perhaps a fictional character is safer. You may remember the problems Apple had when they code named a release Sagan.
When I lived in London I used to enjoy taking the bus back home on a Saturday afternoon from Oxford Circus or Trafalgar Square to Clapham North or Brixton. As this article James Meek reflects on the end of the double-decker bus says it's really nice to sit at the front on the top deck and watch the world go by. Even if I took a book to read, as I always did, I always ended up looking out of the window. As you're much higher up than normal you get to see over walls and notice things you just can't from ground level.
On the other hand, to get to or from work I always took the tube. Originally Clapham North to Oxford Circus or Bank on the Northern line, and then the Central line to Chancery Lane. Later Brixton to Oxford Circus on the Victoria line and then to Chancery Lane. Much faster than the bus, when it arrived, but no where near as enjoyable. I also remember on the Northern Line having, on especially bad days, to first of all travel backwards to Balham to be able to get on at all.
From Simon Schama a comment piece in the Guardian called The dead and the guilty.
United States Inc is currently being run by an oligarchy, conducting its affairs with a plutocratic effrontery which in comparison makes the age of the robber barons in the late 19th century seem a model of capitalist rectitude.
Of his books I'm afraid I've only read Citizens. Obviously very good but to get the most out of it I really needed to know more about the French Revolution when I started than I did. I think my knowledge of history is worse than that parodied in 1066 and all that. I know something about the period from 1873 (Franco Prussian War) to 1939 as that was the period I studied for my O levels. Outside of there my understanding is perhaps not as detailed as it ought to be.
Interesting report from the New York Times. Investigating 9/11: An Unimaginable Calamity, Still Largely Unexamined. This quote gives you the sense of it. One year later, the public knows less about the circumstances of 2,801 deaths at the foot of Manhattan in broad daylight than people in 1912 knew within weeks about the Titanic, which sank in the middle of an ocean in the dead of night. Why haven't we heard more? Perhaps we won't yet be able to find out more about the terrorists but surely we should try and understand why the firefighter's radios didn't work?
I wrote earlier about my opinion that xXx would be a better game than movie This report on the money made by 'Grand Theft Auto' contains the information that it made $350 million. In terms of domestic box office receipts (not exactly apples to apples but a useful sense of scale) this would apparently make it the seventh highest grossing film of all time, just ahead of "Forrest Gump" and behind "Jurassic Park". Of course it didn't cost anywhere near as much to make as either of those films so the actual profits were higher.
If you've got $5 million to invest you won't get much of a movie these days, but you could get one hell of a game. In fact if you're a VC (very unlikely if you're reading this) then perhaps a games studio would be a better bet than yet another maker of enterprise software packages.
If you enjoyed The Perfect Storm by Sebastian Junger I think you should read The Serpent's Coil by Farley Mowat. Written in 1961 about rescuing a badly listing Liberty ship during two hurricanes in 1948 it's fascinating. Compared to The Perfect Storm the bravery of the people involved and the danger they were in is understated.
It's also interesting because the events take place before satelite weather forcasting and reliable radios. A hurricane could "vanish" for several days as it crossed the Atlantic. Unless a ship ran into it and reported it's position the best the forcasters could do was make predictions about where it might be. It make you wonder about what it must have been like in the age of sail, with no radios and no long range forcasting.
I've seen this before but thought I'd link to it. Borges' Encyclopedia. It really does make you think about classifications. Also, follow the link to the author's home page and take a look around. Lot's of interesting stuff, well, interesting if you like computing stories like I do :)
While trying to come up with possible "code names" for a new software release I found the following.
An O'Reilly weblog entry talks about the great benefits of web services for application integration. I'm a bit more sceptical.
While WebServices certainly make the technical part of integration easier I'd question whether that wa