From http://www.myspace.com/LegoDoug—my MySpace page.
Amazing Dental Technology
This morning I reported to my dentist at 8:00 a.m. to have a crown done. They use a CEREC system, and I was amazed by the technology.
They shot me up with Novocaine, got rid of the old filling and ground down the disintegrating part of the molar. Then they use an IR imager to get a 3D image of the tooth that remains, and match—in beautifully animated 3D—the crown that will be milled to the base that remains, using the tooth outline against a database of about 500 3D teeth to get one that looks natural. (See the video above. It’s jaw-dropping.)
The dentist then can adjust this using a mouse and 3D view. They pick a tint that matches the rest of your teeth, throw a block of dental material in a tiny, computerized milling machine, and in 11 to 22 minutes, the crown is done.
This gets molecularly bonded (rather than just cemented) to the original tooth surface, and voila—essentially a new tooth, in less time than it takes the Novocaine to wear off.
I was out and on my way again at 9:20.
Game Camp Nation – “Isaacing”
Isaac and David spent two weeks this year at Game Camp Nation, which has been operated for a number of years by our friends Phil Luchon and Steve Deyesso and their staff, originally under the name of “Camp Turing.”
[Best_Wordpress_Gallery id=”11″ gal_title=”Game Camp Nation, 2007″]
All the photos from those weeks can also be viewed here on Google Photos.
David and Isaac were among the first students to test a new curriculum designed for younger students. They developed games using the GameMaker software, which allows sprite-based games to be created using a relatively simple properties-panel-driven model. (Game Maker also features its own scripting language, and the ability to do more advanced things, even as much as a 3D FPS game.) Game Camp Nation also offers courses in game programming using C++ (which will probably be switched to Java next year), and 3D modeling and animation using AutoDesk’s Maya.
Each student gets his own computer to work and play on all day. Attendees also have some non-computer time to play board games and enjoy meals. Still, this was more of a “Geek Heaven” kind of place than one might be expecting in a summer camp. (I wonder if any of the children noticed that the conference room the hotel gave them didn’t have any windows.)
Isaac and David Outside the Conference Center used by Game Camp Nation for their Waltham, Ma., sessions.
Both weasels enjoyed camp immensely, and readily learned to create and debug games. They were up before I was every morning, and I let them stay late almost every night to participate in the network gaming tournaments that the camp runs at the end of the day. David got so tired one day that he fell asleep in the car in the morning, and then on the couch in seconds when we got home, sleeping there nearly 12 hours through the night.
Isaac and David with Game Camp Nation staff members Chris, Steve, and Joy.
We Have a Weiner Winner!
The game tournament is open to all camp attendees, whether they stay overnight or not. To keep things balanced among different types of games, they played FPS games (Halo and Call of Duty), RTS games (StarCraft and Command & Conquer 3), and Motocross Madness 2. Scores were kept all week, and the winner each week got a $50 gift certificate to Best Buy.
Of course that meant that Isaac and David were staying until 8:30 every night, but I figured it was worth the effort for two weeks.
Isaac came in first the first week, despite my dragging him out early one night. During the second week, he was leading by 100% of the second-place person’s score. Steve decided that dominating by that much for two weeks in a row would be called “Isaacing.”
Isaac with the huge Lego set he purchased, #7662 Trade Federation MTT
Dual-Core Processors and Video Performance
I’d installed Rainbow Six 3: Raven Shield, a game which is a couple of years old, on my relatively new dual-core AMD Athlon machine at home. (It should run fine on both machines, and I own two copies, making it ideal for gaming multiplayer with the kids.) To my surprise, the game ran absolutely horribly—a first for this box—in fact, it was completely unplayable. The video, even in the opening movie, stuttered whenever it was trying to do a fade affect. In the mission I tried, the characters wouldn’t move, although I could pan the camera, almost like the game was trying to poll the keyboard wrongly. The video seemed far jerkier than it should have been, also.
So, I did the usual bit of updating the video driver and DirectX drivers, but that didn’t help.
After a little research, and a couple of forum posts that didn’t have the right answer, but did point to a related Microsoft Knowledge Base article, I learned the cause of the problem. With visions of having to patch my BIOS (a slightly risky operation), I wen to the AMD Web site as Microsoft recommended, and discovered a surprisingly straightforward solution:
AMD Dual-Core Optimizer – The AMD Dual-Core Optimizer can help improve some PC gaming video performance by compensating for those applications that bypass the Windows API for timing by directly using the RDTSC (Read Time Stamp Counter) instruction. Applications that rely on RDTSC do not benefit from the logic in the operating system to properly account for the affect of power management mechanisms on the rate at which a processor core’s Time Stamp Counter (TSC) is incremented. The AMD Dual-Core Optimizer helps to correct the resulting video performance effects or other incorrect timing effects that these applications may experience on dual-core processor systems, by periodically adjusting the core time-stamp-counters, so that they are synchronized.
A quick Windows install and reboot, and the game ran flawlessly—at 1280 x 1024 with all the video and sound options maxed out. Sweet!
I believe there is a similar utility available for Intel multicore processors.
For the benefit of others:
Photos via Picasa Web Albums
I started experimenting with Picasa’s (Google’s) free Web Albums last night. One gigabyte of storage, seamlessly integrated with Picasa, which is the free photo management software God would use if He didn’t run Linux.
Check out our new Picasa Web Albums, which I’ll be updating over the next week, and which are also linked to our sidebar. You can even subscribe to them via RSS!
And, here’s the photo I promised of my Mom and her fiancé, George Fortini:
And here’s another image of NaNi, the world’s cutest 3-year-old. She’s got the Wii controller in her hand, and is beating nearly everyone at bowling. This was taken at Nichelle’s birthday party in March:
The Future of Computer Interfaces
(Thanks to Kevin Ilsen for pointing me to the video.)
This is absolutely amazing. With a few simple gestures, this is way beyond the “ancient” computer interfaces we use today, and is nearly exactly like what was seen in Minority Report, which is an excellent film despite Tom Cruz’s presence.
I was thinking about this recently. We complain about the mouse, but the mouse is incredibly intutive to use. All our children were computer-mouse-capable by age 2.5. Watching Naomi is interesting, though. She can use the computer mouse without difficulty. She’s learned to do pretty well with the keyboard, also, good enough to play World of WarCraft.
The Xbox controller, however, still befuddles her. She’ll try to play Halo 2, but end up with her character stuck up against a wall. We discovered yesterday, however, that she did much better with the “Superman: Returns” game, which offers more freedom of movement, and didn’t require her to stay alive by fighting.
Back to computer interfaces. One of the things that hasn’t “arrived” yet, despite the fact that our current computers are more-than-capable, is voice activated software. It just hasn’t caught on, which surprises me. Is is simply too complicated for most users? Is it merely too annoying for most offices?
Thoughts?
Local Software Developer Achieves World Fame
Technically, we’re not supposed to BLOG about [the company for which I work], because it’s a public company, and [blah blah blah], but I think I can get away with this much, as I snagged a very brief spot in the video described below (which, if nothing else, has convinced me more than ever of my need to lose weight—something which is already in progress):
Over the past year [message redacted] has placed great effort in building a strong and expansive strategic relationship with Microsoft. We have continued to leverage and expand our use of Microsoft technologies as our two organizations come closer together to deliver greater value and powerful solutions to our mutual customers. Here is a three-minute video … for you to share with your customers/prospects. This video features executives from Microsoft, [message redacted], and a mutual customer and discusses the business value of this partnership and the powerful benefits it offers to [message redacted] and our customers.
One of my co-workers just stopped by and noted that our tarantula, Susan, is visible in the video. She’s in the blue-lidded, plastic box on the table that’s behind Bernard Farrell and me. Cool!
Educational Update
Isaac and David both earned highest honors for their first quarter. That means they get a $1/week raise in their allowances, which will now compensate for the $1/week they contribute toward our World of WarCraft subscription. David has become very proficient in handwriting, which is always difficult for a lefty; there’s a huge improvement over last year. Congratulations to them both, the weasels!
Last night I took the second of two “midterms”—our single major exams—for my Boston University graduate courses. I got a stinking “B” on my first exam, in “Object-Oriented Analysis and Design.” I think I did better on the Software Engineering exam yesterday.
Both classes have projects due within a couple of weeks. The Software Engineering course is a group project with three of my co-workers, and we’re building, using Ruby on Rails, a Web-based calendar that is idea for families and small organizations. This is a program I’ve always wanted to put together, and it will be fun finishing it up. So far we’ve learned that Rails is amazing in putting together the data connectivity and display pieces virtually automatically.
In OOAD, I am having a blast designing a simulator of a Star Trek transporter, including replicating the Enterpise D transporter control panel. For this I’m uisng Adobe’s Flex Builder 2, at the suggestion of co-worker RaviShekhar Gopalan, to create my application programmatically for Flash. Although far from finished (I should be “mostly done” by Monday), I’ve published my incomplete-but-working project to http://transporter.wilcoxfamily.net/ . There are some fun hidden features (and I’ll be adding several more), although the simulation/demonstration code isn’t in there yet. I fell victim a bit to a common programmer’s overconfidence: “If I know one object-oriented language, then I can learn another one in minutes!” I’ve figured out just about everything I need to do in Flex (I have one more technical problem to solve, and it’s a small one), but I’m my no means a master yet. You can also take a peek at the PowerPoint presentation I gave to the class for that project. (Can you spot the big omission from my Domain Diagram? It’s a real forehead-slapper!)
(It’s been determined that I will get real credit for the courses I am taking, but that I cannot get my Certificate in Software Engineering, because I don’t have a baccalaureate. I will investigate, after the next two courses are done in the spring, what it would take to convert these credits into undergraduate credits and fill in the missing pieces to get a B.S. in computer science.)
John (we still hear from him occasionally) has been telling people for a while that he is enrolled in a GED review course at Massasoit, but if he is, he’s taking on days it isn’t offered, at times of the day it isn’t offered, with an instructor who isn’t teaching it, using a textbook that isn’t part of the course, and getting a ride from people who claim they aren’t giving him a ride to the class.
And NaNi continues to learn letter recognition and writing from Nichelle, although the impending holidays have cut down on the teaching schedule a bit. Naomi can spot capital As anywhere, and writes them perfectly, except for tending to draw them upside-down.
IE7 Doesn’t Like gzip Compression
Geek Version:
(See the Non-Geek Version below, as well as the Blonde Version.)
It seems that Internet Explorer 7 doesn’t like gzip compression being served up from at least some Web servers.
For a week or more, I’ve been aware that getting to our BLOG using IE7 was impossible. (Bob Richardson first pointed it out to me.) More specifically, one could get to the BLOG, but it would nearly immediately disappear with the “Internet Explorer could not display the webpage” being displayed instead.
The Wilcox Family BLOG, before today, as viewed by Internet Explorer 7.
I hunted off and on for the past week, using a computer at work we have at the office running the prerelease version of Windows Vista (which is amazing, for the record). I removed pieces of the BLOG, checked for logs that would tell me the problem, but was completely unsuccessful. I could take off every piece of the BLOG, and just display some text via PHP, and the problem would still occur; but, if I saved the HTML to a plain file and served that from my Web server, everything would work fine, which seemed ridiculous, as the HTML delivered was exactly the same.
While we were waiting for a server restart, I explained all this to my co-worker RaviShekhar, and he said, “Have you looked at the headers?” So I took a peek. The header from the BLOG that failed in IE 7 looked (retrieved via Firefox) like this:
Response Headers - http://blog.wilcoxfamily.net/ Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Connection: close Date: Wed, 25 Oct 2006 20:22:53 GMT Pragma: no-cache Content-Type: text/html; charset=UTF-8 Content-Encoding: gzip Expires: Thu, 19 Nov 1981 08:52:00 GMT Vary: Accept-Encoding Server: Microsoft-IIS/6.0 X-Powered-By: PHP/4.3.11-dev, ASP.NET X-Pingback: http://blog.wilcoxfamily.net/xmlrpc.php 200 OK
And the one from a nearly identical BLOG that worked fine looked like this:
Response Headers - http://robots.wilcoxfamily.net/ Connection: close Date: Wed, 25 Oct 2006 20:23:27 GMTm Content-Type: text/html; charset=UTF-8 Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET, PHP/4.3.11-dev X-Pingback: http://robots.wilcoxfamily.net/xmlrpc.php 200 OK
One obvious difference is the gzip compression. What happens is this: Certain Web servers, to save bandwidth and improve speed, will compress the data that is sent out to the browser. The browser uncompresses the data when it receives it. This allows more information, especially blocks of text, to be sent more quickly.
But what if a browser can’t support the compression? Well, the browser is supposed to communicate with the Web server, and say what it will actually accept, and this is communicated in the request header. So, a browser should only be sent gzip-compressed information if it sends a code to the server that says it accepts gzip.
I don’t yet have the header information that IE7 is sending to the server, but I think it’s sending an “accepts gzip” when either it doesn’t accept it, or there’s something wrong with the uncompression algorithm.
At any rate, turning off the gzip compression on the BLOG lets me visit it using glorious IE 7 (which isn’t bad at all).
To be continued (when I have time to investigate the request headers) …
Non-Geek Version:
The latest version of Internet Explorer, just released by Microsoft, would not display the Wilcox Family BLOG for more than a fraction of a second.
After much investigation, and some helpful suggestions, I found the cause of the problem, and changed the BLOG settings to work around it.
Blonde Version:
It took our blonde site visitors a week to realize that “Internet Explorer could not display the webpage” wasn’t a new BLOG entry; so, no harm done.
Running Multiple Versions of Firefox Simultaneously
(Based on information from this entry at the Dojo Foundation BLOG. This information is for Windows machines, specifically for concurrently running Firefox 1.0.7 and 1.5.0.x, but the same information applies to other versions of Ff as well. David Schontzler’s aforementioned post covers ‘Nix machines.)
As a Web developer on some fairly complex projects, it’s important to be able to run the current Firefox browser, as well as the previous release.
These instructions are based on having first installed Firefox 1.0.7.
Locate your current Firefox profile. Normally it will be in a folder under your Application Data folder, typically such as the following:
C:Documents and Settings{user_id}Application DataMozillaFirefox
Copy the entire Firefox directory someplace convenient, so you have a backup, for when you miss a step and something goes horribly wrong. (I know—this would never happen to me, either, but I was grateful I had a backup the two times I munged this setup and had to fix my initial Ff 1.0.7 installation.) You want to be able to fix your Firefox extensions in the event your running of Firefox 1.5 tries to upgrade them, which is a one-way process.
Then download and install Firefox 1.5.0.x, to a location other than the default location. (I recommend using a directory named C:Program FilesMozilla Firefox 1.5, as C:Program FilesMozilla Firefox is the default.) Do not launch Firefox 1.5 yet. (Be sure not to tell the install wizard to launch Firefox at the end.) If you do, you’ll need to quit the browser, and replace the now-upgraded profile folder with the one you backed up.
To allow you to clearly identify separate processes in the Task Manager process list, and to avoid accidentally running the Firefox 1.5 installation without the batch file that will preserve the Firefox 1.0.7 profile information, I recommend renaming the C:Program FilesMozilla Firefox 1.5firefox.exe to firefox15.exe. However, if you choose to perform this step, you’ll need to rename firefox.exe to firefox15.exe each time you perform an upgrade (such as from 1.5.0.3 to 1.5.0.4) of Firefox 1.5. (See “Future Upgrades,” below.)
Next, you’ll need to create a batch file to launch Firefox 1.5 and load a Firefox 1.5-specific profile:
set MOZ_NO_REMOTE=1
start "Firefox" "C:Program FilesMozilla Firefox
1.5firefox15.exe" -P "Firefox 1.5"
set MOZ_NO_REMOTE=0
The above batch file presumes that Firefox 1.5 is installed in the directory specified, that the executable is named firefox15.exe, and that a user profile named Firefox 1.5 will normally be used. If you’ve used values for any of these items that are different than the recommendations above, alter the portions marked in red accordingly.
The first time you launch Firefox 1.5, the Profile Manager will appear. Create a profile that matches the name used in your batch file.
If you want to change the icon shown (on the taskbar and the Firefox title bar), create a new icon and place it in C:Program FilesMozilla Firefox 1.5chromeiconsdefault with the name main-window.ico. You can find one that has a “1.5” overlaid atop the regular Firefox icon here. You can also find utilities to change the text in the title bar itself, such as the Titlebar Tweaks Firefox extension—which, ironically, has not yet been officially updated for Ff 1.5.0.x (as of June 7, 2006). You can install an updated, but unofficial, version from here.
I have also found that using significantly different themes (skins) for my different Firefox versions helps keep them straight at a glance.
And, of course, if you prefer to make Firefox 1.5 your default Ff version, do so, and modify the batch file to point to 1.0.7 instead.
The best thing to do when one is about to upgrade Firefox 1.5.x, is rename the firefox15.exe back to firefox.exe, run the ugprade, and then rename it back. If you don’t, you’ll find that your firefox15.exe is still around, but that the upgrader has added its own firefox.exe, requiring a delete-and-rename, as well as producing some interesting quirks, like Firefox not realizing it’s been upgraded because the .exe you’re running is the old one, while everything else is new.