I posted earlier about copying files across my new Gigabit home network. I was getting about 10 MB/s (that's MegaBytes) between two laptops and I got responses like these in the comments that shook my confidence. Here's my thoughts after each interesting comment that appeared in the previous post.

"You should be pushing at least 100 megabytes per second with gigabit ethernet."

Hm..that doesn't sound right. Given bits/bytes math and some Maximum speed given overhead, etc, is usually 80% of spec, so 1000Mb/s  means about 80MB/s. But, still, the point is taken.

"His stats only caught my attention because just today I was profiling the speeds of a new hard drive array for one of the programmers and copied 3.2gb in 7 minutes over our 100mbit ethernet connection."

That's about 8-10 megs a second, so that's on par which what I was seeing. This makes me wonder about the hard drive speed.

"10Meg/sec is well below what I'd expect even for a laptop to laptop exchange over a gigabit connection where the drives probably top out at 30-50Meg/sec"

I checked my hard drive throughput and it was 70MB/s sequential writes and 40MB/s sequential large file reads on the big machine and 30/20 on the laptop. Certainly fast enough that I’d want to see similar network speeds when copying a single large VM, etc. However, I was copying hundreds of files on a medium fragmented drive, so 10MB/s isn't unreasonable, IMHO. I'll look at disks in a second.

"You should be getting about ~32meg per second with standard 5400rpm notebook hard drives copying a single large file."

OK, sure I can believe that, assuming there is nothing else going on and there's a nice contiguous spot to lay it down, absolutely. So, let's break this down step by step.

Starting Point

Here's where we start, as possibly useful background, I recently built a house and put some amount of effort into the Home Network.

The house is all Cat 6 wiring, and the main switch is a NetGear 24-port with 20 gigabits of total managed bandwidth. For this test machines are OFF the corporate network and I’ve physically turned their wireless cards OFF. They are single-homed on a basic flat 192.168.x.x network. Nothing fancy.

I brought VS2008 down from the cloud, the files, not the single file large ISO and copied the 3 gigs of files via Explorer Drag Drop between two Vista 32-bit RTM machines and got disappointing results.

No music was playing. The machines are all dual or quad core machines, one with a 10,000 RPM hard drive and the others are pretty fast laptops, so they are beefy machines.

clip_image002

Why mention this? First we eliminate slow or crappy hardware. In this instance, we know it's not CPU that's causing this. That doesn't mean the network cards aren't poo or something, but we gotta start somewhere. Point is, they are more than fast enough to handle the traffic.

The Initial Sub-Optimal Results

So, after the first run, I was getting 10MB/s between a Vista RTM machine (a Mac) and an SP1 machine. When Vista SP1 talks to Vista RTM it'll talk SMB 1.0, the common protocol between them (the one that's been used forever). 

badresults

Of course this isn't a BAD result, as one of the commenters pointed out. I mean, 10 MB/s is more than reasonable most often and this is the kind of thing one would only come up against when copying giant files. Still...now it's a mystery...

Disk Speed

Perhaps Disk Speed is the problem? Commenters on previous posts say Nay, Nay. SATA disks should get 40 to 70MB/s, and that's consistent with my test. The Hanselman-Atwood Ultimate Developer Rig gets 70Mb/s for sequential writes. Of course this assume non-fragmented disks and that nothing else is moving the disk heads around. The MacBookPro and Lenovo t60p get between 20 and 30MB/s, so they are not slouches either. All this points away from Disk Speed.

Here's disk throughput on a laptop:

C:\>disktest.exe -file "Random" -iobytes 8388608 -pipeline 2 -totalbytes 1073741824

---
File name: Random
Total size: 1073741824 bytes
I/O type: read
I/O size: 8388608 bytes
I/O concurrency: 2 (asynchronous)
Buffered: no

---Running the test...---

App. Throughput: 33.2 MBytes/sec (30.9 seconds)
Disk Throughput: 33.2 MBytes/sec (27 samples, 1 high variance)
Min. I/O latency: 250 ms
Avg. I/O latency: 480 ms
Max. I/O latency: 811 ms

So, disk throughput is fine.

Network Cards

In cases like these, it's always a good idea to step back and read the manual. I checked out the release notes for each of my Network Cards and confirmed that they do work on Gigagbit and on Vista and had no issues that smelled like what I am seeing.

One useful tip from Ed Briggs:

"One thing to watch.  On some motherboards, the gigibit NIC (usually a Marvell Yukon 88E8001) is wired to the PCI-33 bus, even if there is a PCI express bus.  I find this on a number of boards where they advertise multiple Gig Eth NICs.  So say, you'll have an NVidia on the PCI-E or the southbridge, and a Marvell on the PCI-33, and your Intel Pro1000 on the PCI-E.  So you'll see some differences there because PCI-33 runs out of steam. "

This wasn't the case for me, but it is very good to know.

Cabling

Even though it shouldn't matter I checked all the cables and confirmed that the house was Cat6. I had been using Cat5 (not 5e) patch cables, so I swapped those out for Cat 5e, and ordered some Cat6 ones just to have.

Switch/Router

Next, I confirmed that my Switch saw these different machines connecting as Gigabit. Here's a screenshot from the Administration Interface of my switch.

NETGEAR Web Smart Switch - Windows Internet Explorer

I'm going between g18, g19, and g21. The administration interface for the switch also shows the length of the cables.

image

Everything is reasonable from a cabling perspective.

Does the Center Hold?

I determined that I must be making some terrible mistake. Rather than pulling and proding, I just started testing with traffic. Here’s a NTttcp run. Note the CPU and MBits. You can get NTttcp in the Windows 2000 Resource Kit.

Total Bytes(MEG) Realtime(s) Average Frame Size Total Throughput(Mbit/s)
================ =========== ================== ========================
     1342.177280      20.649           1424.681                  519.997

Packets Sent Packets Received Total Retransmits Total Errors Avg. CPU %
============ ================ ================= ============ ==========
      942090            83137                 0            0       7.27

Here's a result with two threads. Kind of weird that it's more, but it is over 800 megabits. This implies that the network is generally OK.

Total Bytes(MEG) Realtime(s) Average Frame Size Total Throughput(Mbit/s)
================ =========== ================== ========================
     2684.354560      26.500          18753.481                  810.371

Packets Sent Packets Received Total Retransmits Total Errors Avg. CPU %
============ ================ ================= ============ ==========
      143139           175153                 3            0      15.46

Then I tried

I tried iPerf, the standard cross-platform network throughput tester.

Z:\ntttcp\iperf>iperf -c 192.168.1.14
------------------------------------------------------------
Client connecting to 192.168.1.14, TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[132] local 192.168.1.9 port 49642 connected with 192.168.1.14 port 5001
[ ID] Interval       Transfer     Bandwidth
[132]  0.0-10.0 sec   360 MBytes   302 Mbits/sec

Notice the small TCP window size. I'll try again with a larger one.

Z:\ntttcp\iperf>iperf -c 192.168.1.14 -w 64k
------------------------------------------------------------
Client connecting to 192.168.1.14, TCP port 5001
TCP window size: 64.0 KByte
------------------------------------------------------------
[132] local 192.168.1.9 port 49654 connected with 192.168.1.14 port 5001
[ ID] Interval       Transfer     Bandwidth
[132]  0.0-10.0 sec  1.08 GBytes   926 Mbits/sec

Ok, so that's good and implies again that the network doesn't totally suck. Note also that this very good test happened between a Vista RTM machine and a Vista SP1 machine.

Local TCP Settings

Next, I checked the window size on my MSFT Corporate t60p Laptop with Vista SP1 and was shocked to see the tuning level set to highlyrestricted. Not sure who set that but it wasn’t me (that I remember). I switched it back to “normal” but it didn’t affect any of the tests – I ran them again. Everyone is set to normal.

C:\Users\Scott\Desktop\ntttcp>netsh interface tcp show global
Querying active state...
TCP Global Parameters
----------------------------------------------
Receive-Side Scaling State          : enabled
Chimney Offload State               : enabled
Receive Window Auto-Tuning Level    : highlyrestricted (should be normal)
Add-On Congestion Control Provider  : none
ECN Capability                      : disabled
RFC 1323 Timestamps                 : disabled

The standard setting of "normal" should work for nearly everyone although some folks swear by "disabled."

Gigabit Jumbo Frames

Marc suggested enabling Jumbo Frames, usually a NIC Driver Level settings. If all your NICs and router/switch support it, you can have frame sizes up to 9014 bytes. However, only to of my NICs supported it, so I didn't bother.

UPDATE: Turns out that Jumbo Frames are obscenely useful. If your network card and router supports them, go for it. More on this at the bottom.

Reintroducing The Players

Right now here’s the machines:

  • Quadpower – The Good Lord's own machine. Truly. nForce chipset. Vista x64 RTM. WEI 5.8
  • MacBookPro – Vista x86 SP1 Beta from last week. WEI 4.9. This machine is no slouch.
  • Lenovo T60p – Vista x64 SP1 Beta from last week. WEI 4.2.  MSFT Domain joined, but not right now.
  • Server – Windows Home Server machine, based on Windows 2k3

The Test Matrix

Here are the four machines in question.

  Quadpower x64RTM MacBookPro x86SP1 T60p x64SP1 WHS 2k3
Quadpower x64RTM

X

<10Mb/s

<10Mb/s

<10Mb/s

MacBookPro x86SP1

X

X

33Mb/s

33Mb/s

T60p x64SP1

X

X

X

33Mb/s

WHS 2k3

X

X

X

X

So it appears the problem is on/around/near/adjacent to Quadpower. When stuff goes into or out of it, it's slower.

Here’s SP1 to WHS (W2k3) copying a 1 gig file of random data.

clip_image002[6]

Here’s SP1 to RTM:

clip_image004

Here’s the Lenovo t60p with Vista SP1 to a MacBookPro running Vista SP1

clip_image006

This is starting to sound familiar. I'm mixing my network protocols, specifically SMB2 vs. SMB1.

"These are some of the key enhancements in SMB 2.0:

  • SMB 2.0 supports an arbitrary, extensible way of compounding operations to reduce round trips. This makes the protocol less chatty as compared to SMB 1.0. Chattiness of SMB 1.0 has often been a major pain point. 
  • SMB 2.0 supports much larger buffer sizes compared to SMB 1.0. 
  • SMB 2.0 greatly grows the restrictive constants in the protocol, so we never need to worry about the protocol itself being the limiting factor for scalability. This includes increasing the number of concurrent open file handles on the server, and the number of shares that a server can share out, among other things. 
  • SMB 2.0 supports durable handles that can withstand short network glitches. 
  • SMB2.0 has support for symbolic links. "

NetMon 3.1 confirms that I'm talking SMB1 between my RTM and SP1 machines and SMB2 between SP1 machines.

Microsoft Network Monitor 3.1

Conclusion

One thing worth pointing out that slowed down my analysis was that I only saw this slowdown when doing a File Copy. I was assuming this was a Network Hardware or TCP issue, perhaps between Vista RTM and Vista SP1. However, the tests above that showed 900+ Mbits/s were actually between and RTM and SP1 machine. Vista Networking works rather fine it seems. It was the older SMB1 protocol being negotiated between my RTM and SP1 machines that was the bottleneck.

I was also prodded to look more into Jumbo Frames. (Thanks Robert G!) Seems my Windows Home Server machine's network card has a Marvell Yukon that supports Jumbo Frames, as does the Marvell Yukon in the MacBookPro. Even though the machines will be using SMB1 as their protocol, the 9104byte frame size makes a massive difference. How much? With a 1 gig file, twice as fast, so 65+ Megabytes a second, even over SMB1. Cool!

10 Seconds remaining

The NVidia nForce hardware chipset supports Jumbo Frames, but the drivers do not yet. NVidia is mum on the issue, which is lame. This the the chipset in my primary machine, the one I'd really like to support Jumbo.

In the Lenovo T60p there is a Intel Pro/1000 PL with an Intel 82573L chipset which apparently doesn't support Jumbo Frames when Active State Power Management (ASPM) is disabled, and since it's in a laptop, it's disabled. No Jumbo Frames on a Lenovo t60p, even with the latest Intel Network Adapter Driver for Vista 64-bit.

"Intel does not plan to resolve this erratum in the 82573 Gigabit Ethernet
Controller.
Jumbo frames is not supported in 82573E/V & is supported with the
workaround above in 82573L."

Regardless, it turns out SMB2 is a way better protocol than SMB1. As far as I'm concerned, problem solved, I'm upgraded to Vista SP1 everywhere and am enjoying Disk Speed on the wire. Now I've gotten speeds up to 33MB/s between machines when copying large files depending on the disk of the machines involved, etc, without Jumbo Frames, and up to 66MB/s with Jumbo. I'll be sure to only get network cards that support Jumbo Frames in the future. I'm happy I went gigabit and I'm happy I went Vista SP1 and I'm happy I went Cat6.

Whew. I was worried I'd have to tear my walls open. ;)



Plant, Pet, Person - Ten Days with Baby Thabo

Posted 2007-11-29 03:51 PM in Musings | Thabo.

Whew! As we enter Day 12 of our new life in a new house, Thabo enters his 10th day of Life. Not much to report so far as Thabo is still in Plant Mode as Zenzo has fully entered Person Mode.

CIMG7750

CIMG7763CIMG7753

As my friend Eli says, and I repeat often:

Kids go through three phases, Plant, Pet, Person. My daughter (A month old at this point) is currently a Plant. We feed her, she water us, and she sits for long periods. Zenzo is now in the Pet stage. He'll follow you anywhere and smiles when he sees you. God help us when they become People. Because with People come Opinions.

It's unreal how much this kids sleeps. I don't remember Zenzo sleeping that much. Like 22 hours a day. The Wife says that's Nature's Way of easing us into to the process. Fortunately a lot of this is coming back to us, and we've still got the all the Ultimate Baby Products, so we're digging those out.

Zenzo also turns two today if you can believe that. Seems like he literally turned one yesterday and six-months the day before. When we move we transitioned him into a Big Boy Bed. We figured since everything else in our lives was changing (house, job, baby, etc) why not change that too? Fortunately it's worked out great and he continues to sleep a happy ~11-12-hours undisturbed a night, so that's cool.

He also announces when he's going to poop, but perhaps that's too much information for one personal Blog Post, my Dear Reader? We now return you to your regularly scheduled blog.



imageSince I've been working at Microsoft, I've had a chance to make some new friends. Perhaps you know them?

Come to a VS2008 InstallFest - ask your local MSFT Wonk where yours is - and get a free copy of VS2008Pro. If you've got Beta 2 installed, remove it first.

From TimH: "We're providing a location, install dvd's (these will be evals because the finals aren't pressed yet), and food/drinks.  this will be a good time to get some questions answered, get vs 2008 installed, play around, and hang out with your peers.  each registered and attended individual will receive a special code to receive the fully-licensed visual studio 2008 professional copy sent to them when the full package product is available to ship."

Bring your laptop and install here. No downloading. You'll get a trial version that'll get you through to the final version that will be shipped to you for free. Slick.

Here's the link to the Portland Visual Studio 2008 InstallFest hosted by PADNUG, and there are others all over, and I'm sure more will be announced. I'll try to find a Master List.

imageThe events in the West of the US are:

Register NOW to get your spot ASAP. I'm going to talk to the wife and see if she'll trade me a "night out with the nerds" (as she calls them) for her night out with the girls.



UPDATE: I'm a putz, and did my math wrong. This is a crappy result. Turns out I was using Cat5 Patch Cables on a Cat 6 network, and what I'm seeing here is a probably a maxed out Cat5 cable. I'll redo this with decent cables using all 4 pair and update soon.

When designing the new house and home office I really wanted gigabit Ethernet through the house. I run a lot of VMs, music, HD Video, and generally don't like to wait when moving things from here to there.

All my systems have gigabit cards now, including my laptops and the Macs, so it seemed a reasonable thing to do.

This afternoon I was copying Visual Studio 2008 Installation Media between two machines, one a Lenovo T60p with a beta of Vista SP1 and the other a Mac Book Pro with Vista RTM via Bootcamp and I snapped this screenshot:

3 Minutes and 5 Seconds remaining

Ah. Moving ~4 gigs in about ~6 minutes. Just about 1/3 maximum 5400RPM laptop hard drive speed over the wire. Not too shabby for now. Gigabit is definitely worth the trouble and you can run it happily over Cat5e if you've got the wires. You just can't compare 54Mbs Wireless with 1Gbs. I'm just not so much into the wireless, even though I do run WPA rather than WEP, I just don't trust it.

Here's the complete house/office/wiring round-up so far:

Thanks!



This might seem a strange follow-up to our good news, but we have a lot going on, and sometimes I just need to get it out. Mo said recently that she wouldn't recommend what we've done in the last six months to anyone. In the course of half a year I quit my job, we bought and built a house, and we had a baby. We didn't plan it to go down this way, it just did. Certainly it wasn't ideally timed. We moved in on a Saturday and the baby was born the following Monday after day of intense unpacking.  Apparently we unpacked the baby.

My parental leave officially starts December 1, so I have to work this next week and tidy up a few things before take entire month of December off to focus on babies. Before I work, I really need my space to be organized so I can think; that's just how I'm wired.  Since we designed the entire house starting with a base plan and working with an architect, there was always a plan for a home office.

I've been able to work on finishing the home office an hour here and an hour there, mostly late at night. I finished it on Wednesday after we brought the baby home and the whole house was asleep. I needed to finish it now if I was going to be productive in my final week, and if it didn't happen soon, it'd never happen. The wife backed me up 100%. Now I'm prepared to put in my final work week of the year in a home office I can think in.

Here are my requirements and what I came up with. I think they are a pretty decent set of things to think about when designing your own home office or "think space."

Colors

CIMG7735

Color is huge when designing a space that you're going to spend 10 hours a day in.  When I started the Microsoft job just 8 weeks ago, I was doing the work in a spare bedroom with white walls and a cheesy random desk. My son's room was next door and I could hear him pounding for me to come out and play. It was not only a bummer but totally not a place in which I could get into the zone. The WHITE whiteness of the WHITE walls was hospital-like and medicinal. Not in the good way. It was stark and glaring.

In the new office I took a totally different tack, one that I was teased about by a number of friends and family. I painted the office a deep dark chocolate brown. I like to think about it as "Library Brown." It's the kind of color The Highlander would paint his secret sanctum sanctorum.

Turns out that the color really works, and that the room almost hugs you with the depth of the color. It also distinctly and dramatically sets them apart from other rooms in the house as there's no other room like it.

Art

CIMG7731Why is Art second on my list? Because just like Color, I believe that Art can really set the tone in a room. It's the difference between slapping a computer up in a random room and calling it "Office" and really putting some thought into your space and what you want to be surrounded with. If your surround yourself with crap, you're more likely to produce crap. We have a pile of Art in the house, maybe I'll share it with you some day. It's not expensive art, it's just what we like. Sure, there's a poster here and there, but most of it has been collected over the better part of a decade of wandering around the world and getting local art from local artists.

However in my office, I surround myself with two kinds of wall hanging, the first is info-diagrams. Since part of my job is making complex things simpler (or at least make them seem simpler) I like to explore different visualization techniques. I've got some clever visualizations up, like Tufte's favorite Napoleon's March as seen in the picture above, as well as the Death and Taxes Poster, a large representational graph of the US Federal Budget. Might seem weird to you, but these are the things that can inspire. Find yours.

The second is pictures that motivate. Pictures of the wife, the kids, folks I've met, folks I want to meet. The kinds of pictures that make you happy to wake up and happy to work towards a goal. Each carefully chosen. No negativity in the Home Office.

Home Office/Home Separation

image The room is on the first floor, away from the other bedrooms and the boy's playroom. It's off in a far corner of the house, near the garage and has it's own full bathroom. It's set aside such that it's even easy to miss and forget about as a room. 

It was really important to Mo and I that this room be separate, both for us and for the kids. When Daddy's at the office he's at the office. I tell my son "I'm going to work now!" and he says "work work work!" and signs work. 

We're thinking of putting up an LED or light of some kind that lets the kids know when I'm recording a show or on a call. I was thinking of getting a vintage Radio "On Air" Light, perhaps cheap on ebay.

Connectivity

image

Making it easy to connect was very important. I planned out where to put the network ports (I'm not a wireless fan, you just can't compare 54Mbs to 1Gbs) and put eight just at my feet and other four in the bookshelf. I'm not a fan of local hubs and switches, instead preferring to put those in the wiring closet.

I use Verizon Fios and have been very happy with them. They turned on option for 15Mbs downstream and 15Mbs UPSTREAM on the 19th of this month for just a little extra, so now I'm running symmetric. This makes uploading the podcast less of a chore.

Desk

image There's just no good way to take a picture of a computer desk and have it look nice...or even close to what it looks like in person. It always looks like a pile of cables and goo.

That said, I'm happy with mine. An interesting aside about this table is that it was mean to be built as an "L" but I never did it. I've had the desk (it's brushed steel and glass) for years but I took the corner piece and put it in the closet in the old house where it sat for literally years. But I didn't throw that piece away. When it came time to think about a desk for the new office, I was thinking to buy a new one. Then I remembered the extra piece. The bolts and hardware were long gone, but I took the parts to Home Depot and found bolts that would fit, including the corner piece. I put the desk together in the new office, and it was like having a brand-new desk. It was 25% larger, fit the corner perfectly and it was the desk I'd dreamed of. Never throw "extra" parts away of a larger thing.

It was funny, I tried dozens of desks and the one I wanted was always with me, just put together wrong. A good desk has lots of horizontal space, natch, and a clear and viable cable management strategy.

Cable Management

CIMG7739 I'm not obsessive about cable management, but I like my things tidy. I strongly recommend cable ties. Just buy a bin of hundreds and put it in the closet. If you have an unlimited supply you're more likely to use them and not treat them like a precious commodity.

Use cable ties like they are going out of style. Think through where each cable goes and with what other cable it can go "along for the ride."

I also keep every USB cable I've ever had, every power brick, and just put them in a large box. When work is by the hour, you need that special cable right now. Cable management is not just tying up loose cables, but also being able to find them when you need them.

CIMG7729Monitors

You just can't have enough screen space. Any space in front of your face that isn't a working monitor but is still in your field of view is a waste if it's not conveying information. I've got four monitors on the main machine, the MacBook Running Vista the left and the ThinkPad T60p on the right. Keep them all working. Screw Virtual Desktops, use real ones. I usually focus on three main monitors and use the other three for "scratch paper," full screen remote desktop sessions, Outlook email or calendar, or Virtual Machines. Seriously. Spend the money and add a monitor. It'll change your life.

Shelving

CIMG7725 I'm officially now a fan of shelving systems. Greg turned me on to the Billy Shelving System at IKEA and I picked up five pieces plus lights and two doors. They are infinitely configurable, incredibly cheap and rather nice looking. I was able to create a system that almost looks like a built-in for just over $300. Finally all my books and reference materials are easily accessible.

The one on the left with the doors is just Office Supplies. There's three 36" shelves, one 18" and one shorty 36" on the right. I was able to pick the lights I wanted, doors, shelves and colors and assembled the whole thing by myself in about 3 hours. Amazing. They are bolted to the wall for safety as well. Get shelves. They are happy things.

Ergonomics

Take the 15 minutes it'll take and measure your desk and chair and monitor according to an ergonomic chart. My chair was too high and my monitor too low. My chair arms were also too low. It is one of those things that we always have on our list but never do. Your butt will thank you.

Brainstorming in Comfort

CIMG7724I was surprised when I visited the Microsoft campus how many folks had deeply customized their offices. Most had at least couches. Many were unconventional. Don Box had just a few hipster chairs and a 42" plasma. It was a Voodoo Lounge more than an office.

And that's cool. If you're going to be somewhere for many hours, why not make it comfortable? This led me to bring in a couch and pillows into my office. Rather than buying a couch (I'm cheap, more on that later) I just bought a slipcover (the greatest thing, slipcovers) and covered a random nasty couch we'd been thinking to get rid of. I threw some matching pillows on top and now it fits the room it looks like it has always been there.

Find comfort things that help you brainstorm. I've got my couch and XM Radio Boombox (no TV's in the Home Office) and a whiteboard. I really recommend that Home Offices have whiteboards. Basically, be sure to have a "second seat" for you when you just need to be somewhere else, but leaving the office would mess up your flow.

Supplies

CIMG7732I dedicated one of the shelves to Office Supplies and put some doors on it. I really feel if you have an office you need all the typical supplies you never think you'll need, so I got a stapler, tape, pens, everything you'd have in a regular office. All this required was the will to do it and a big trip to an office supply shop. The goal is to never be blocked in some task because of a missing staple or paper.

Special Needs

I've got bad hands and probably always will. Consequently I use a combination of the keyboard and Vista Speech Recognition.

CIMG7742If you've thought about using Speech Recognition, seriously, get a decent microphone and a microphone stand. Not one of those cheap USB Headset Microphones, a real one, like a Samson USB C01U Studio Condenser Microphone. I often record podcasts with it, and I've got it sitting in front of my mouth on a professional microphone stand. If you are getting 90% recognition, a good quality microphone will get you that extra 5-7%.

If you have special needs, acknowledge them, plan for them, and take action on them.

Little Details

Where's your beverages? Your snacks? Your notebook or scratch paper? Do you have a whiteboard? I put each of these in a specific place so that nothing would be wanting when I'm in the "zone."

To be clear, I'm not saying that one should just put a catheter in and never leave the room. I leave all the time and hug the kids and hang out, do lunch, etc. What I'm proposing is that you should make sure that everything you need when you're in The Zone so that one item missing doesn't become a "speed bump" that jerks you out of the frame of positive, productive thought.

Backup/Getaway Strategy

2007backupstrategyI  posted about my family backup strategy before and I encourage you to have one when you are running a home office.

Do you use imaging software? Since I'm my own IT department (since I work remotely for Microsoft) I need to be able to bring any of my machines back to live in an emergency.

I've got:

  • Offline Sync'ed Backups of Important Stuff via FolderShare.
  • Windows Home Server backing up every machine in the house daily.
  • SyncBack SE (one of my advertisers, coincidentally) moving files from  primary to secondary storage daily as well as backing up this blog.
  • Mozy.com backing up everything to the cloud.

And I have a getaway drive. That's the one disk that you grab in the case of a fire.

Cost and Cost/Benefit Strategy

I'm frugal to say the least and even though I'm working for Microsoft remotely, they didn't pay for any of this. They only pay my monthly Internet bill because I negotiated it up front. The office was my own thing, so I needed to do it on the cheap.

  • Paint - $40
  • Shelves, Doors and Lights - $310
  • Desk - Already had
  • Sofa Slipcover - $60 on sale
  • Art - Got piles lying around, rotating it every six months
  • Office Supplies - $100
  • Thought and Planning - Priceless ;)

I can't tell you how great it feels to have my little space complete, especially since it was put together from empty room on Saturday to complete office on Weds night. Thank goodness for Electric Screwdrivers.



Baby Thabo arrives

Posted 2007-11-20 02:40 AM in Thabo.

Truly, I don't give my wife enough credit for what she does. This morning around 5am she said that she was feeling some contractions...minor, but enough for her to take notice. We had just moved house on Saturday, so we'd been running all over and unpacking. We didn't think too much of it because the baby's due date was the 29th (coincedentially our first son's birthday also). I figured it was just those beginning contractions that start a few weeks before you really get going. Plus, according to the doctor we'd just seen the previous Wednesday she wasn't at all ready.

The contractions continued, but with no particular pattern, so we didn't sweat them. Then they disappeared completely around lunch. Then around 6pm they started again, but she was still walking around, unpacking, playing with our two year old. She'd pause every 10-15 minutes, make a note of the length of the contraction, but still we weren't worried about it. Then around 8pm, she said, oh, that's not comfortable. I think we need to get going. Nah, you're not even close, I said. Let's hang out here and we'll probably head over tomorrow or the next day. No, she insisted. I'll drive myself if I have to, but I think we need to get out of there.

Since we'd just moved house on Saturday, we now live out in the country and we are over an hour away from the hospital. We start driving, leaving the two year old with my parents. It's dark and rainy and horrible and we pound through it. She continues with contractions, and we bet on dilation. I say 3cm, she says 7cm. I secretly wonder if we'll be sent back from the hospital, thinking that we're totally jumping the gun. I suspect she's worried about the same thing.

We show up at the hospital at 10pm, walk in and say, my wife's in labor. They look at my calm wife and say, um, ok, take our details, ask for timing, and show us to a room. It's clear that they're thinking we're in for a long night of waiting and that these folks (us) have shown up way early. We wait and wait for the nurse and Mo says, I really need some help here, this is really stating to hurt.

I politely go to the desk and say, I'm sorry, but I really think someone needs to look at my wife. They are kind, but again, I'm a nervous father, right? Sure, sir, someone will be right there.

A very nice nurse shows up, takes some readings and checks my wife out. She calmly says, ok, a lot of people are going to show up, but they are all here to help. She pushes a button and like seriously, five nurse ninjas appear from the floor and ceiling with carts and equipment. My wife is freaking out. She says it's time for drugs. Our doctor hasn't shown up yet, because we've only been here 15 minutes. An on-call doctor comes in and examines my wife. Ok, let me get my scrubs. My wife asks, what's going on? The nurse says, well, doctor is getting his scrubs, so a baby is coming and very soon.

I need drugs! she says, I can't do this! It's too late for drugs, you've got to do it naturally. The doctor returns and my wife starts pushing immediately. Fifteen minutes of hard drug-free labor later, our second son, Thabo Daniel Hanselman arrives. He's 6 lbs, 6 oz and healthy.

My wife and I walked into the hospital this evening at 10pm and Baby Thabo* arrived with a full head of hair and strong lungs at 10:43pm.

I will always listen to my wife from now on.

*Thabo means Happiness in Zulu/Ndebele and is pronounced "Taa-bo"



larryo My eighty-ninth podcast is up. In this episode, I chat with Larry Osterman, the man who makes Windows go "ding", about his two-plus decades working for Microsoft. We chat about sound, Vista, Security and generally geek out. I really enjoyed this show and I want to visit Larry again as he's got lots of wisdom to share.

(I stole the photo from Channel9.)

Subscribe: Subscribe to Hanselminutes Subscribe to my Podcast in iTunes

If you have trouble downloading, or your download is slow, do try the torrent with µtorrent or another BitTorrent Downloader.

Do also remember the complete archives are always up and they have PDF Transcripts, a little known feature that show up a few weeks after each show.

Telerik is our sponsor for this show.

Check out their UI Suite of controls for ASP.NET. It's very hardcore stuff. One of the things I appreciate about Telerik is their commitment to completeness. For example, they have a page about their Right-to-Left support while some vendors have zero support, or don't bother testing. They also are committed to XHTML compliance and publish their roadmap. It's nice when your controls vendor is very transparent.

As I've said before this show comes to you with the audio expertise and stewardship of Carl Franklin. The name comes from Travis Illig, but the goal of the show is simple. Avoid wasting the listener's time. (and make the commute less boring)

Enjoy. Who knows what'll happen in the next show?



Saving Money on Lighting the New House

Posted 2007-11-15 12:22 PM in Musings.

Our final move into the new house is this weekend. We did a three phase, three week move. First week - anything small not nailed down. Second week, medium-sized stuff...basically everything except a week's food. Third week, all furniture. This has allowed me to keep working and 9-month pregnant Wife to be relatively relaxed about the whole process.

Aside: If you're moving to Portland, or want to rent a house, let me know! I'll put a Craigslist listing up soon.

The new house is larger to accommodate a family of four as well as a guest room for overseas relatives and my home office. The builder put in incandescent lights in all fixtures, which was a bummer. I spent a few hours last weekend replacing all the lights with Compact Fluorescent (CFL) Lights.

There are usually three kinds/colors of these lights...it all depends on what their view of "white" is. We got natural-light (more blue-colored) full spectrum compact fluorescent to minimize that "office look." These are very natural-colored and produce a clean, crisp white that isn't depressing.

The total bill to replace every single light in the house was $205 from Home Depot. I saved up a bunch of coupons and waited for a 2 for 1 sale on some of these lights. Why spend so much on new lighting? Here's why, using a custom spreadsheet with some formulas from this very good article on lighting:

This spreadsheet shows EVERY light in the house that was replaced (all of them). There's "can lighting" in the ceiling in many cases, as well as closet lights, etc. This spreadsheet was originally aggressive, assuming each light was on 8 hours a day (usually from about 4pm to about midnight) when more realistically less than one half of them is on. Ideally each light would have a separate "hours on" number, so I put that they were all on 4 hours a day, which is more representative when averaged across all lights, but you get the idea and you're welcome to mess with the numbers.

(Yes, I realize that this table doesn't wrap well...sorry)

Location # LightHrs OldW Total kW Cost/Day Cost/Mo Cost/Year NewW Total  kW Cost/Day Cost/Mo Cost/Year Savings
Downstairs 27 108 60 6480 6.48  $       0.97  $29.16  $349.92 13 1404 1.40  $       0.21  $6.32  $75.82  $274.10
Kitchen 7 28 150 4200 4.2  $       0.63  $18.90  $226.80 23 644 0.64  $       0.10  $2.90  $34.78  $192.02
Office 4 16 100 1600 1.6  $       0.24  $7.20  $86.40 16 256 0.26  $       0.04  $1.15  $13.82  $72.58
Upstairs 18 72 60 4320 4.32  $       0.65  $19.44  $233.28 13 936 0.94  $       0.14  $4.21  $50.54  $182.74
Outside 5 20 75 1500 1.5  $       0.23  $6.75  $81.00 16 320 0.32  $       0.05  $1.44  $17.28  $63.72
Misc 6 24 60 1440 1.44  $       0.22  $6.48  $77.76 13 312 0.312  $       0.05  $1.40  $16.85  $60.91
Total 67 268 505 19540 19.54  $       2.93  $87.93  $1,055.16 94 3872 3.87  $       0.58  $17.42  $209.09  $846.07

It's not a very controversial spreadsheet. Certainly when you replace a 120W light bulb with a 23W one and start adding multipliers like hours*lights*etc, you will save money. The only question left is when will you break even on the initial capital expenditure?

For us, our outlay was $200 and we'll recoup that easily within a quarter to half-year. That will multiple again, as in my personal experience CFIs will last 3-6 years. After almost exactly 5 years we just had 3 of 6 CFL lights in our kitchen all die within a week of each other. That's a lifetime of about 10,000 hours for me compared to a 1,000 hours for a standard light. My outlay of $200 will last ~5 years and I avoid replacing every light in the house at least 5, if not 10, times in that 5 year period.

We've kept the old bulbs and will either give them to relatives or save them for a rainy day. Unfortunately this builder wouldn't omit the bulbs which seemed a silly thoughtless thing to me.



I'm playing with a dynamic translation service from the Windows Live Team. The user interface and implementation is incredibly clean and as with all computer based translation it's definitely questionable.

Here's the translation of my AboutMe page into Spanish. The part of what was the most fun was where it's that I worked in my "interior ministry" for Microsoft as a translation for "working out of my home office."

Here's an example:

"Mi nombre es Scott Hanselman. Me resuelvo de mi Ministerio del Interior para Microsoft como program manager mayor, apuntando separar la buena información sobre software que se convierte, generalmente en el apilado de Microsoft. Antes de que éste yo fuera el principal arquitecto en Corillian Corporation, ahora una parte de Checkfree, por los años 6+. También estuve implicado en algunas cosas del revelador de Microsoft durante muchos años como el MVP y los programas y yo del RD speak sobre las computadoras (y otras pasiones) siempre que escuche alguien."

From:

My name is Scott Hanselman. I work out of my home office for Microsoft as a Senior Program Manager, aiming to spread good information about developing software, usually on the Microsoft stack. Before this I was the Chief Architect at Corillian Corporation, now a part of Checkfree, for 6+ years. I was also involved in a few Microsoft Developer things for many years like the MVP and RD programs and I'll speak about computers (and other passions) whenever someone will listen.

Still, you can get the jist. It's pretty nice and compares well against the Google one I blogged about in March of this year. Both have really nice UIs. All I had to do was add this script:

     <script type="text/javascript" src="http://translator.live.com/TranslatePageLink.aspx?pl=en"></script>

...to my page. It's currently on the right side under my contact information. I encourage you to try it out. I wonder if it's useful to international readers?



During my Friday Keynote at the PNPSummit I did a silly 30 minute PowerPoint that ended with some LOLCats and a few examples of LOLCode. If you're not familiar with LOLCats, they are basically silly pictures of cats that speak a l33tspeak-like language, like IM IN UR BASE KILLIN YUR D00DS.

This language has turned into a Programming Language called LOLCode for which there are already at least TWO .NET implementations. The first implementation of LOLCode.NET is up on Google Code and is by Nick Johnson.

During my talk, unbeknownst to me, literally that minute John Lam was uploading the DLR team's own implementation of LOLCode implemented from scratch on the DLR. The amazing Martin Maly of the DLR team implemented LOLCode on his plane ride to Spain for presentation at TechEd.

I invited John up on stage spontaneously to give a demo of LOLCode and he did...he showed a Fibonacci implementation.

This is great code to read for two reasons. It's two completely separate implementations of the same general idea - an LOLCode compiler. However, they are implemented completely differently. Of course, the DLR team images this as a Dynamic Language so their implementation is a great primer on how to make your own language on the DLR.

HAI

CAN HAS STDIO?
VISIBLE "HAI WORLD!"

I HAS A CODE ITZ "CRAZY"
VISIBLE CODE

I HAS A NUMBR
LOL NUMBR R 2
VISIBLE NUMBR TIEMZ 2

I HAS A FIB
I HAS A A ITZ 1
I HAS A B ITZ 0

VISIBLE "Fibonacci: "
GIMMEH FIB

IM IN YR
    VISIBLE B

    IZ FIB SMALR 1?
		YARLY
			GTFO
	KTHX

    I HAS A TEMP ITZ A UP B
    LOL A R B
    LOL B R TEMP

    NERFZ FIB!!
KTHX

CAN HAS System?

VISIBLE CurrentDirectory ON Environment ON System
NJU Hashtable ON Collections ON System
I HAS A HT ITZ IT

I HAS A DT
LOL DT R DateTime ON System
VISIBLE Now ON DT

COL Add ON HT WIT "LolCode" AN "Rulezz!!"
VISIBLE COL get_Item ON HT WIT "LolCode"

COL Concat ON String ON System WIT "LolCode " AN "Rulezz!!"
VISIBLE IT

KTHXBYE

In order to get the DLR Team's implementation running on your own machine, you need to do the following:

  1. Get the LOLCode sources
  2. Get IronPython 2.0 Alpha 6
  3. Get the Gardens Point Parser Generator (GPPG) 
  4. Get the Gardens Point Scanner Generator (GPLEX)
    These are kind of Lex and Yacc for C#. Open up the Parser.y and Scanner.l to see the language grammar details.
  5. Confirm the PostBuild steps point to the right locations and make sure the Microsoft.Scripting.dll reference points to the Microsoft.Scripting.dll from the IronPython download.

Enjoy! If you don't think this is fun, go play with the MVC Demo Source Code from DevConnections and the PNPSummit.



Baby Sign Language - Update at 2 years

Posted 2007-11-10 04:12 PM in Musings | Zenzo.

My son is nearly two years old. He's 23 months. I suspect we'll stop counting months after he's second birthday.

It's always fun to be recognized at a conference and have folks ask about technology, but more and more people want to talk to me about Baby Sign Language. Most often they're folks from outside the U.S., which I think is great. I blogged about Baby Sign twice previously:

Often parents concerns are that a baby who is taught sign language will speak later or will be developmentally slowed in some way due to "confusion." Are they supposed to talk or sign?

I have found this with my own child, my brother's child and all my signing friend's children to be totally false. If anything the child begins speaking with more sophisticated phrases than one would expect.

My belief is this (remembering that I'm neither a doctor, nor a parenting expert, just a Signing Enthusiast and current father of one):

There is a window in a baby's development when they have needs, wants and feelings to express. This window might be from 6 months to 18 months or from 12 months to 2 years. It's usually at least a year long, and it's that time when your baby is "in there" but isn't able to express themselves verbally. Our goal with my son was to get involved in his head for that "missing year" and see what he had to say. For us, it prevented a lot of tantrums and early confusion about what he needed. Instead, he simply told us what was on his mind.

However, they haven't got the tools. If you listened carefully to their cries, posture and other thing I'm sure you'd find that the child was trying to get their need out, but it was either too subtle or unclear for us to see. Using Baby Signing - which is simply American Sign Language or ASL - is a way of formalizing this easily communication with your baby and letting he or she know that we're here, and we're listening.

When a child discovers that they are seen, that their opinion matters and that their parents understand them, I believe it enables and extends so many other interactions with our kids.

How To Start

A gentleman at the PNPSummit from Europe approached me to ask about Baby Signing for his 6 month old. This is the ideal time to start. The baby is just starting to get their bearings and realize that they are not alone and that there's a whole world to interact with.

Pick some basic signs, no more than 4 or 5, since you're going to be learning Sign Language as the child does. Plus, the baby's ability to learn signs will surpass your own very quickly.

To start with, we taught him: Milk, More, Eat, Dog, Mommy and Daddy. We did this from 6 months to about 9 months before we got anything. This is tip #1 - be patient. You'll do it for literally months before it'll POP one day. One day he or she will sign and they won't shut up until they move out of the house 20 years later.

He signed More one day, and the others quickly followed. The key was that we always signed while we spoke. This is important Tip #2 - teaching your child sign language doesn't mean you don't talk to them. Always talk and sign at the same time. Eventually the child will learn that talking is easier and abandon most signs. At two, my son rarely signs as he's not go the words for everything he had previously learned the sign for. However, the signs are still in his head if we need them someday.

You can buy an ASL Dictionary online, or get an inexpensive subscription to a site like HandSpeak.com that includes a video dictionary of over 2800 words. There are photo sites, but they don't quite capture the jist as the images are static. (There are also some free sites like the one at Michigan State University although it requires Quicktime and for you to click twice on the video to get it to play.)

There's also a great FREE "Signing Success Guide" here as a PDF on the Baby Signing Time site.

"Testimonials"

Many of my friends and family have taught their kids sign. For many, including all the non-American's, they were teased by family and friends - especially concerned mother's-in-law. But they stuck with it. My friend Daniel "Kzu" Cazzulino had a great experience with Baby Sign Language in Argentina:

"Just after a couple weeks signing 3 words to her (duck, drink and milk), she signed the duck! I was blown away by how fast she started with the first one, but it took another month for her to start picking up more and more signs. When she was exactly one year old (about a month after we started), I got a couple of books which tought me more techniques and approaches to signing to make it more effective. Three months later, she's able to sign: duck, drink, milk, cookie/cracker, eat, more, baby, take a bath, need heulp, hot, dog, cat, monkey, flower, shoes, hat, pain, water, sleep, silence (and clip, which Agustina uses at the kindergarten to also mean silence), dance (this one she made it up and we learned what she meant!). That's 22 words for a 15 months-old baby that can barely say Mom and Agus (her sister's nickname and the first thing she learnt to say :)). And there are many more that she understands but she's not signing yet.

Just like Scott felt, it's not just a matter of teaching her something to make her "smarter" early on. There's a new kind of connection that you can make with your baby. Aylen's face shines when she sees that we can listen to her needs and help her. She no longer cries when she's hungry or thirsty, or when she wants to take a bath. That's huge. "

Daniel as a native Spanish speaker also got an interesting sign benefit when we recommended Rachel's Baby Signing Time videos:

We bought a couple DVDs from the Baby Signing Time collection (awesome stuff) which both Aylen and Agustina love. It's playing on my TV almost every day for at least a couple hours. It teaches new signs through songs and showing other babies doing them, and it does so while pronouncing the words in english. That may sound obvious to you, but we live in Argentina, so english is not our primary language. However, both girls are now learning the words in both english and spanish at the same time! So my baby signs "baby" when you say the word in english AND spanish too! It's simply amazing.

Another good friend emailed last week when his daughter announced with sign that she needed to have her diaper changed:

"perhaps it's too soon to tell -- but we think we've had good consistent responses on the hand sign for "change me" today.
Great stuff!! [she's 9 months old now]"

Craig Andera is also huge Baby Signing Fan. He had to have patience early on though:

Just like Scott, it was initially like signing to a wall. She didn't seem to care, and she certainly didn't sign back. But I knew from my brother that it was just a matter of time, and sure enough, at about eight months, Ellen was able to mime the sign back to us. It's pretty amazing to get any communication whatsoever (other than smiling and crying) from an eight-month-old.

And Craig also sees Sign to be a good complement to an already bilingual education. ASL is recognized here by colleges as a legitimate foreign language:

It's funny for me to hear resistance to the idea. The one that really puzzles me is the "it'll slow down their speech" one. Not only is this contrary to clinical evidence (IIRC - we did the research but I no longer have the citation), but my personal experience has been the opposite. Ellen, like Zenzo, is bilingual in verbal languages (Chinese and English), and despite that seems to have verbal capabilities comparable to her contemporaries.

Does Ellen still sign? Yes she does, but not to communicate. She communicates exclusively (and nearly endlessly :) ) verbally, but there are about five signs she still makes even when speaking. For example, she still signs "sorry" even as she says it - in English or in Chinese.

I'm really interested to hear in the comments from anyone else whose had success with teaching their infant Sign Language. It's worked great for us. We're going to teach Un-named Son #2 sign lanuage. He's due in less than two weeks!



My eighty-eighth podcast is up. In this episode, I talk to Mel Sampat of the Windows Mobile team. He's written a desktop Facebook application called OutSync (link on Facebook) that brings your Facebook photos to Outlook and Windows Mobile. We also talk about how you can write your own Facebook apps with .NET and managed code. (This is the show that was almost lost but was rescued from the brink!)

Subscribe: Subscribe to Hanselminutes Subscribe to my Podcast in iTunes

If you have trouble downloading, or your download is slow, do try the torrent with µtorrent or another BitTorrent Downloader.

Do also remember the complete archives are always up and they have PDF Transcripts, a little known feature that show up a few weeks after each show.

Telerik is our sponsor for this show.

Check out their UI Suite of controls for ASP.NET. It's very hardcore stuff. One of the things I appreciate about Telerik is their commitment to completeness. For example, they have a page about their Right-to-Left support while some vendors have zero support, or don't bother testing. They also are committed to XHTML compliance and publish their roadmap. It's nice when your controls vendor is very transparent.

As I've said before this show comes to you with the audio expertise and stewardship of Carl Franklin. The name comes from Travis Illig, but the goal of the show is simple. Avoid wasting the listener's time. (and make the commute less boring)

Enjoy. Who knows what'll happen in the next show?



110207_2058_AnnouncingT1 Folks are chomping champing at the bits to get their hands on the MVC bits. There will be a CTP very soon, so hang in there and be patient. Bits will come as soon as possible, truly.

Until then, I talked to BradA and got permission to share with you the source code of all the demos that Phil, Chris, myself and others worked on and showed at the two conferences minus all DLLs.

<disclaimer>
To be clear, these demos are demos. They were put together for the talks. You won't be able to compile or run them, and they don't represent anything other than interesting proofs of concept for the purpose of demo'ing. They are useless for anything other than reading. If they kill your flowers, it's no one's fault but your own. Read at your own risk and for your own edification. These demos don't represent the final product, nor do they even represent anything other than being an interesting curiosity. Everything can and will change and likely already has.
</disclaimer>

Here they are:

Enjoy. Also, as an aside, I encourage you to go get the new ".NET Framework 3.5 Commonly Used Types and Namespaces" poster and find a printer large enough to print it out.



I've been up on campus talking at the PNPSummit and in my spare time recording podcasts with interesting people. A particularly cool show that'll be coming up very soon ran pretty long, and filled up my 1 gig CF Card. I had to transfer that now "part 1" off that disk and keep recording "part 2." My editor Lawrence will then stitch the two files together and make the transition sound natural.

I uploaded the two parts and went along with my day. However, I got a call from the guys saying that the file wouldn't open and that it might be corrupt. Yikes. This has happened before, but it's usually just a transmission error. I opened the original file and....crap!

Windows Media Player

It won't open. Hm. Well, I figured that some WAV file programs are more strict than others. Perhaps I could open it in another program.

Well, shoot. It's not opening in any programs. That's not cool. I tried WAV Saver and while I see on the net that lots of folks have had success with it, for me it crashed as I clicked repair. Apparently my file was messed up in a special way.

As I Googled around for answers and the program "GoldWave" kept coming up. It's apparently very well thought of.

When I dragged the corrupt file into GoldWave I got this friendly dialog:

File Format

This is cool because here I can get to the RAW PCM data. I just needed to tell the system what the original recording was in. Since we're on Intel, we're little endian. The recording was in stereo, at 44.1kHz and was 24-bit. Also, anything over 12-bit is usually signed. So, I'm feeling good at this point. However:

GoldWave - [mel sampat part 2 - ORIGINAL.wav]

...I ended up with a screen full of white noise. Bummer. At this point, I'm getting close to giving up. Then, on a whim, I remembered that you can click the tiny down arrow next to the Open button in the Visual Studio Open File Dialog.

image

I selected Binary Editor and got this:

mel sampat part 2 - ORIGINAL.wav - Microsoft Visual Studio

Now, I'm not an expert on the WAV file format, but I understand it's just a header and some RAW PCM data. It's supposed to be pretty simple, but ALL ZEROS is simpler than even I expected. :)

So, I opened up Part 1, the valid WAV file, and looked at its header. Then I selected it on a word boundary (guessing) and copied it to the clipboard. Then I flipped over to the broken WAV and pasted in the first 48 bytes of the header of the working file, up to and including the "data" chunk.

mel sampat part 1.wav - Microsoft Visual Studio (2)

Then, I saved the file with a new name and opened it in GoldWave.

GoldWave

Amazing, it worked! Notice the correct WAV format listed in the status bar. This trick worked, because I stole the WAV Header from a file that was encoded in the identical way. It wouldn't have worked with different files. There was a small warning from GoldWave that the header's length differed from reality, but this was fixed by File|Save As with a new filename.

Miracle of miracles. I thought the show was ruined. This technique was lucky because apparently only the header was missing and I had a header available with the same format. I hope this helps someone with the same problem.



imageThe work on the ASP.NET MVC Framework continues.

Phil's been playing with RhinoMocks writing tests for his MVC Samples, and Chris Tavares has his samples using Castle Windsor running as his Inversion of Control Container.

Eilon Lipton, the primary developer on the MVC project, and I presented at DevConnections yesterday. In fact, he and I did three presentations together in one day, which may have been a mistake. ;)

Anyway, I think Eilon and I worked pretty well as a team on stage. We wanted to get the point across. What's the point? This is not Web Forms 4.0.

I used the example of a Car vs. a Motorcycle. Both are two ways to get from Point A to Point B with their own advantages and drawbacks. The inclusion of this framework within System.Web is about offering alternatives. It will be a fully supported, fundamental part of the System.Web and isn't going anywhere.

It's also very extensible. We showed demos with Castle Windsor, RhinoMocks, as well as crazier samples like the DLR under MVC and running XML-RPC over MVC to try out an idea that Phil and I could get Windows Live Writer talking to MVC ala REST.

One important point I kept stressing in the talk was that this is designed to be compatible with the ASP.NET subsystems you already use. That means Session, Cache, Personalization, Roles, Membership, etc, still work and are there to be used and abused. This framework, in the namespace System.Web.Mvc, is an alternate architecture, but not "an entirely new parallel ASP.NET," no more than any of the other home-grown or open source MVC/MVP frameworks that are out there.

Here's a link to Eilon and my slides from DevConnections. If you don't have Office 2007, grab the Compatibility Pack for Office XP, 2000 or 2003 and you'll be able to open them. I'll record a screencast of the talk perhaps next week. There should be some public bits to play with in December sometime.

I'm going to give a very similar presentation at the PNP Summit today at 8:30am. ScottGu has had to cancel his keynote at the PNP Summit, so my MVC Framework talk will replace that. I'll also be presenting on Friday at 8:30am (the "ending" keynote) on "Community: my first 8 weeks inside the Big Blue Monster" so more on that talk soon.

Also, as a reminder, don't forget to come by the Nerd Dinner tonight at 6:30pm! Here's some links to help you remember and add this to your calendar:

Enjoy!



My eighty-seventh podcast is up. I'm all alone this week, talking about planning the house me and my wife built. We used Google Earth to visualize the lot, placing a lot and neighborhood plan in 3D space. Then, working with our agent, we modeled the architectural plans in Google SketchUp and placed the model in Google Earth.

Subscribe: Subscribe to Hanselminutes Subscribe to my Podcast in iTunes

If you have trouble downloading, or your download is slow, do try the torrent with µtorrent or another BitTorrent Downloader.

Do also remember the complete archives are always up and they have PDF Transcripts, a little known feature that show up a few weeks after each show.

Telerik is our sponsor for this show.

Check out their UI Suite of controls for ASP.NET. It's very hardcore stuff. One of the things I appreciate about Telerik is their commitment to completeness. For example, they have a page about their Right-to-Left support while some vendors have zero support, or don't bother testing. They also are committed to XHTML compliance and publish their roadmap. It's nice when your controls vendor is very transparent.

As I've said before this show comes to you with the audio expertise and stewardship of Carl Franklin. The name comes from Travis Illig, but the goal of the show is simple. Avoid wasting the listener's time. (and make the commute less boring)

Enjoy. Who knows what'll happen in the next show?



A while back I posted on How To: Use Google Earth or Virtual Earth to Visualize a New House Lot - Part 1. We took a PDF that the builder gave us of a house lot, made it transparent, sized it and overlaid it on the empty lot we found on Google Earth and then even better Helicopter Flyover imagery we found on Virtual Earth.

(Disclosure: This is an example location. It's not where we moved.)

The next step, of course, was to work with the builder and design the house. Ordinarily one works with an architect, and we had one, but we also took the basic 2D PDF plans and used them as an overlay in Google SketchIt Up and "traced them" in 3D.

I taught our Real Estate Agent how to use SketchItUp in a few sessions and he went nuts - in the very best way. Turns out he has a knack for these things and we work well together.

First, he modeled the house, floor by floor as seen below, including the roof.

190-1

Then he assembled the house by snapping the floors together. Here's cut-out view with the house cut in half diorama style next to the house in X-ray style.

hanselman animations 190

Next, I textured the house with our paint colors, cedar shake and exterior choices, etc.

190-2   

Fast forward and now the house is finished. It finished this week actually and we're moving in slowly over the next month.

Just to prove that this was a useful exercise, here's the virtual house exported and placed in Google Earth on the actual lot, next to a picture of the real house in the same orientation, Notice the big hill behind us in both the Google Earth and in Reality. The circular shape on the ground in the Google Earth shot became our cul-de-sac.

reality model

This wasn't very hard to do, and just required in total about two days of amateur 3D modeling by the agent (who was having a blast) along with two hours of modeling by me and two hours of texture mapping and placement by me. This helped Mo and I visualize what our big empty lot would look like, what our paints, floors and carpets would look like. I'm sure if we knew what we were doing as far as 3D is concerned it'd be even better. We didn't even scratch the surface with the potential textures, furniture, etc that we could have done.

Tools used:

Enjoy!