 |
| Edit in Browser | /_layouts/images/icxddoc.gif | /personal/scott/Blog/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /personal/scott/Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /personal/scott/Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /personal/scott/Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /personal/scott/Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /personal/scott/Blog/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /personal/scott/Blog/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /personal/scott/Blog/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /personal/scott/Blog/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
| Edit in Browser | /_layouts/images/icxddoc.gif | /personal/scott/Blog/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /personal/scott/Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /personal/scott/Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /personal/scott/Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /personal/scott/Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /personal/scott/Blog/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /personal/scott/Blog/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /personal/scott/Blog/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /personal/scott/Blog/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
| Edit in Browser | /_layouts/images/icxddoc.gif | /personal/scott/Blog/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /personal/scott/Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /personal/scott/Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /personal/scott/Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /personal/scott/Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /personal/scott/Blog/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /personal/scott/Blog/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /personal/scott/Blog/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /personal/scott/Blog/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
|
 |
|
|
|
|
|
|
| Reluctant blog entries. |
3/12/2008We fit every new feature of C# 3.0 in one printed, compliable page of text.
Download
New Features
- Auto-Implemented Properties
- Extension Methods (EM)
- Object Initializers
- Collection Initializer and List Generic
- Implicitly Typed Local Variable (var)
- Lambda Expression (LE)
- LINQ (uses LE, and EM)
- Anonymous Type (AT)
1/15/2008
This morning was Steve Job’s MacWorld keynote here in San
Francisco. Here’s a summary of what took place.
Summary of MacWorld Keynote
Time Capsule
- $500 wireless hub with 1TB drive for Time Machine backups
of untethered laptops. Ships Feb.
Leopard
- 5M copies sold in first 3 months.
- 20% of all Mac users have upgraded
iPhone
- 20,000 sold each day. 4M sold in 200 days.
- New software: maps with triangulated location, SMS
multiple people, custom home screen
- Software available today
- SDK in Feb.
- 19.5% of US SmartPhone market (2nd behind RIM)
- Lyrics for songs!
iTunes
- 4B songs sold.
- 125M TV shows. 7M movies.
- 20M songs sold on Christmas day.
- Movie rentals. Every major studio.
Apple TV Take 2
- HD rentals for $5
- Previews, Flickr and .Mac Photos
- Free update to existing Apple TV ($229 price)
- Digital copies on all Fox DVDs!
MacBook Air - "World's Thinnest Notebook"
- 0.16" to 0.76".
- Fits in an envelope
- Multi-touch pad; Surface PC ships
- 80GB HD, 64GB SSD "they're pricy but fast"
- 1.8 GHz, Intel Core 2 Duo; 802.11N, 2GB, 5 hr battery
- 60% smaller, thick as a nickle, wide as a dime
- $1800 base price
- Fully recyclable aluminum case, first fully mercury and
lead free display,
circuit boards are BFR free, retail packaging are 56%
less volume than MacBook.
Summary of Apple in the first 2 weeks of 2008:
- New 8-core Mac Pro, new MacBook Air laptop, Time Capsule
802.11N + 1TB, iPhone and Apple TV software updates, iTune movie rentals
Guests on stage: CEO of Intel, CEO of Fox, Randy Newman
(groan)
12/10/2007
"Perspective, do you have any of that tonight?" – Antono Ego, Ratatouille.
Sure the MacBook Pro runs Vista faster than any other laptop (watch Misprint or read the PC World article). But after spending about 20 hours using it this weekend to work on a Visual Studio 2008 demo, allow me to share some perspective. For those of you barely containing your contempt for Apple, the gripes should satisfy your rage for another month.
But for others, like my friend John Alexander who are seriously contemplating a new laptop, there are serious choices to make (mostly between Apple, Dell and Lenovo). Of course, he's concerned about giving in to the dark side (dark, as in Job's black mock turtleneck) while still properly representin'. If you grew up programming in Windows and are agonizing over the same decision, here's some perspective from me.
First, let's start with a little quiz. Are you:
- Curious about how the other (better dressed) half lives?
- Using an iPod and couldn't care less about the Zune?
- Living within 30 minutes of an Apple Store?
- Spending a lot of leisure time lounging at the local Starbucks?
If you answered yes to these questions, the scales tip in favor of a MacBook.
Quiz 2, do you:
- Spend most 80% of your time in Visual Studio?
- Plan on blowing away the Leopard partition to maximize space for Vista?
- PWNWTFBBQ in video games?
Then yes, go with a Dell or Thinkpad T60 with a decent (i.e., non-integrated Intel) video card.
For me, my personal life (pictures, movies, music and casual browsing) centers on the MacBook running Lepoard OS X. Professional (CEO and general development) stuff is done on a Dell Precision desktop (quad-core) and the MacBook Pro in Vista. I also have a Thinkpad X60 for the Tablet functions and when I need a really tiny footprint.
But what good is a laptop if it's powered off?
Boot Time
The Mac wins on boot time alone. Given a choice between grabbing my Thinkpad X60 or the MacBook, Apple wins simply for the fact that the damn thing boots, sleeps and shuts down obediently and quickly.
Vista power-up to desktop takes 50 seconds to the login screen, then another 30 seconds to a usable desktop after logging in. That's 1:20 seconds versus just 50 seconds to the desktop in Leopard. Granted, I don't actually log in, but the ability to press the power button then come back less than a minute later and start working is sweet.
Power down is a different story. Just 12 seconds for Leopard versus 35 seconds for Vista.
But here's the thing: I rarely power-up or power-down OS X. I just shut the lid and sleep works. Always. Maybe Vista SP1 will fix this, but it doesn't work enough now for me to fully trust it. Then there's the scenario where you shut down Vista, close the screen, it goes to sleep instead. So when you reopen the lid, it faithfully resumes the shut down process. ARGH!
Now, I have purchased over a hundred IBM (Lenovo) Thinkpads for my company over the past 5 years. Our current de facto box is the Thinkpad T60, a very fine machine. I still pine for my Thinkpad T60, which I passed on to one of our developers.
Here's a short list of pros and cons for Windows developers contemplating running Vista through Boot Camp:
Cons
- The MacBook Pro can get quite hot in Vista. I should've measured it, but couldn't find my gauge. Only matters when employed in literal laptop-mode and easily remedied by a pillow or heat-shield. If you need to type for long periods of time, it will be uncomfortable. The power management works much much better in OS X; barely warmer than a kitten.
- The keyboard layout is just enough different from Windows to constantly irritate you. For instance, the lower-left keys on the keyboard are fn, ctrl, alt/option, apple/clover. Windows is typically ctrl, windows, alt. Now the apple/clover key doubles as your windows key (what the heck is that clover thing?), so that's cool. But notice the difference in order. And the extra fn hanging on like an appendix doesn't help. The "extra" features totally work (volume, screen brightness, keyboard backlighting, eject). But the lack of a dedicated page up/down, insert, delete will drive you nuts while programming.
- Touch pad is, well, touchy. You even glance at it while typing and your mouse cursor will scurry away. I'm constantly, accidently hitting it. Again, works great in OS X.
- The leading edge is barely beveled which irritates my wrists.
- Also, right-click is two fingers on pad plus a button click. Compare this to simply tapping the pad with two fingers in OS X.
Note: all of the above is remedied by an external (Windows) keyboard, mouse (Logitech G9) and monitor.
Pros
- It runs OS X.
- Fit and finish is unsurpassed.
- Possibly the only laptop with Firewire 800, handy for this 10GB 1080p videos you're trying to edit in Sony Vegas.
- Incredibly bright LED-backlit screen. Eye-searing.
- Parallels allows you to run your Boot Camp native Vista partition from within Mac OS X. Great for the blow-your-mind Silverlight demos (dev in Vista, then apple-tab back to OS X to test in Safari).
-
Front-loading DVD drives give me a slight thrill.
And finally,
- I'll never get tired of attaching the magnetic charger.
9/10/2007
The top fifteen random tips that help me in my public speaking:
1. Know your content better than anyone else in the audience. Or convince yourself that you do.
2. Toss slides that are essentially placeholder reminders to you. You’ll only say 50% of what you intended to anyway.
3. Pictures and diagrams speak mountains over bullet lists of text. Our brains process speech and images simultaneous. But speech and lots of words splayed on a screen is annoying.
4. Talk to your audience, not your slides. Try to hold eye contact longer than 3 seconds; it’s tough, but sincere. And you’ll win some allies.
5. Be honest.
6. Intent is more important than technique. If it’s your new to speaking, tell them. They’ll figure you out eventually. See bullet above.
7. Demos work great, if well rehearsed. Master the keyboard shortcuts; reaching for the mouse under pressure sucks.
8. Vista screen shots sing with the right capture program. Get Windows Clippings.
9. Open with a story (not a joke) about the impact of the particular technology to you personally, for better or worse. Making an emotional connection early invests them in the outcome.
10. Respect the fact these people chose to spend time with you over Halo 3, Entourage or time with their family.
11. Finish early; no one complains if they get out of school a little early.
12. Don’t use Arial or Times Roman, for the love of Pete. Most people won’t notice, but I will.
13. Before your talk to a group you don't know, chat with one or two folks up front. Get their names and involve them during the presentation. I've asked people to keep an eye on the time, kill the lights and make sure people don't trip on the power cord. This is your temporary posse; they'll cover for you.
14. If it’s a small audience, give them a page of notes with the good bits distilled down (links, screenshots, steps, stuff to install).Then make that one pager your one slide J.
15. Speel check your work.
Good link:
http://www.edwardtufte.com/tufte/powerpoint
About the Vista fonts:
http://www.poynter.org/column.asp?id=47&aid=78683
Kenny Kerr’s Window Clippings
http://www.windowclippings.com/ 5/14/2007
So I broke down and joined the hip world with a purchase of $2500 MacBook Pro last week.
I could justify all the iPods. And the 23” flat screen. But making the full jump into Mac OS X was hard. I felt like I was cheating.
But I am running Vista on it, but not in dual-boot mode: I run Vista in a virtual machine.

Imagine this: last week I did a 2 hour WPF, Atlas and Silverlight presentation for the San Luis Obispo .NET Users Group. I ran Vista insidea Parallels virtual machine. At the end, I set a breakpoint in the Silverlight app, alt-tabbed back to Mac OS X and hit the page from Safari. People flipped out.
Impressions of the Mac universe so far:
1. Mac OS X takes 20 seconds to cold boot. And shutdown takes about 2 seconds. Recover from sleep is instantaneous.
2. Stuff just works. Like my Sprint cell modem and mouse drivers.
3. Installing (and uninstalling) software is really easy.
4. They have too many funky keys: fn, ctrl, alt/option, apple and clover key. Way too many.
5. Vertical scrolling with two fingers is fantastic.
6. The hardware is, well, beautiful. I can’t stop stroking the aluminum case.
7. The magnetic power catch is the first thing I show. Then PhotoBooth.
8. I hate not having the right mouse button.
9. The magnifying dock thing is cute for about half a day, then you turn it off.
10. Front-loading DVDs. Why do we still have stupid trays?
11. And why don’t we have Firewire 800 in the PC world? Good luck finding that support.
12. Plugging in an external video projector just works. Amazing.
13. I really dislike the Apple startup sound. I don’t think you can turn it off. Microsoft has the big edge here on Vista sounds. 5/11/2007
Not sure exactly where I came across these, but they’re
worth keeping:


The two great mapping sites are www.google.com/maps and http://local.live.com.
The first 5 seconds people interact with these sites focus
on the text boxes at the top of the page. While Microsoft needs two text
boxes to perform an address vs. business search, Google can do it in one.
They simply put the business logic on the server side rather than require the end user to think (Steve Krug’s
must-read book for developers):

Google: one box.

When local.live.com originally launched, I thought it was
broken. I kept putting my address in the first box. And I know (usually) what
I’m doing. I wasn’t the only one: several other talented engineers here did the
same thing.
Microsoft: two boxes.

When we learned it was our mistake, we felt stupid.
And web sites that make you feel stupid are not likely to be visited again.
I’d be interested in a little web usability shoot-out
between these two sites.
Lessons learned:
1.
Default (first box) should be address. My guess
is most people use a map to find something based on an address.
2.
People don’t read the web, they scan. And they
certainly don’t read textbox watermarks.
3.
Simple is better.
BTW, I know google “hides” the second text box with the
“find businesses” tab, but the first mode works with a business search anyway.
Props to Microsoft though: the bird’s eye view is amazing.
Far better than Satellite IMO.
4/11/2007There's probably more, but these just came up on a call:
1. Solution
2. Enterprise
3. Security
4. Leverage
5. Bug
5. Feature (tied)
And I have to quote my friend:
"We don't sell solutions, we create solutions".
- B. Kreha 4/3/2007Got tired of procrastining my back-log of blog work, so I'm putting it one big to-do list.
1. Family Explorer. Our WPF sample app will be baked and finished next week. I have emails from a few people who are helping us beta test; that'll go out later this week. You may have seen me demo this at at VSLive on 3/26 or at the Redmond WPF Bootcamp 3/28.
2. ASP.NET AJAX Code. From my 3/23 SDWest presentation. As soon as I figure out how to upload files to my Sharepoint 2007 Blog, it's coming you way. See, I can do hard stuff, but not the easy stuff.
3. Grand Tour of ASP.NET 2.0. Same deal. For now, you can find the video and code at www.asp.net. In the videos area, look for the #9 in the "How Do I" ASP.NET section. I did all of those, but #9 is the best overall tour of ASP.NET 2.0.
4. HD Video Workflow. I gotta put this up too. I'm into the Panasonic HVX-200 HD camera ( www.dvxuser.com). Simply put, it's changing film and video. All digital workflow with the nifty P2 cards. Film, pop out the PC Card from the camera, stick it in your Windows XP laptop (no Vista drivers yet), drag-and-drop the file into Sony Vegas 7 and you're set. You still need the Raylight ($199) plug-in since Sony will never support the Panasonic world, but it's painless. Also, the HDRack product from Serious Magic (just bought by Adobe) is nice, but not totally necessary.
5. How To Pack. Another on my long list of need-to-do blog posts. Summer of 2006 I spent a week figuring out how to pack for a 2 1/2 week trip to London, Bath and Paris in a 9kg bag. No checked luggage. My wife did the same. Buy the Air Boss from www.redoxx.com, wash your clothes in the sink and take just 1 pair of shoes. Turns out you can buy more shoes in Europe if you need to--who knew?
| Edit in Browser | /_layouts/images/icxddoc.gif | /personal/scott/Blog/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /personal/scott/Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /personal/scott/Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /personal/scott/Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /personal/scott/Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /personal/scott/Blog/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /personal/scott/Blog/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /personal/scott/Blog/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /personal/scott/Blog/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
|
|
|
|
|
|