Scott Hanselman

Summary of the Annoying PowerPoint Survey

February 10, '04 Comments [2] Posted in Musings | Tools
Sponsored By

I've just come upon Dave Paradi's results of his PowerPoint Survey.  You may know that I have some strong opinions about PowerPoint.  Other more interesting and influencial people have even stronger opinions.

Dave's survey clinches it in case you've been living in a cave or have yet to be lectured by me personally:

  • Do not read the slides to the audience.  Chances are (about 100%) that the audience can read the slides faster than you can read them aloud to the audience.  Know this, accept this, and stop  reading slides.  Slide are there as an outline.  YOU are there to fill in the outline.  If you have to look at your slides to keep on track, then you don't know your material.  Remember the wisdom of Harry Pierson - 'Ruthless Competence'
  • Not everyone has 20/10 vision.  8 point is NEVER appropriate for a slide.  Think 14.  Then think again and try 18.  Get to know Lucida Console for code, it's yummy.  I run it all the time now. And yes, I run it at 14 point all the time too! (Ask my friends, it's true!) :)  And don't just get a magnifier, get good at using it.  The audience will thank you again and again.  On the real.
  • Get the Queer Eye guys to help you with Color Schemes.  You're a programmer, not an artist.  Lose the black background (and the white one) and talk to a designer.
  • PowerPoint is not Word, nor is it Visio.  You should no more be using PowerPoint to write prose and full paragraphs than you should be using it as a UI prototyping tool.
  • Know your Tool and know where your Slides Are.  Hunting for hotkeys, toolbar buttons or a slide looks bad.  Know how to use PowerPoint.  I've seen people create funky hyperlinks and buttons to create PowerPoints that thought they were HyperCard.   They jump forward, navigate back all with some arcane and sick sense of logic.  Just number your slides.  You can always type 12-ENTER to go to Slide 12.  No need to confuse us (or more likely yourself) with  tricks.

Whew!  That felt good!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

ASP.NET ViewState = Appendix?

February 9, '04 Comments [3] Posted in ASP.NET | ViewState
Sponsored By

Last time I checked, ASP.NET ViewState wasn't an Appendix to be cut out.  The Flesk.ViewStateOptimizer makes this claim:

Reduces downloading time of your website or web application, by not sending back the page's Viewstate hidden field.

Oy! ViewState is one of the most useful and most maligned inventions of the .NET era.  Get to know it.  Turn it off selectively and when you know what you're doing. 

I'm going to go 'optimize' some nose hair now.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

FUD (Fear, Uncertainty and Doubt) debunked...

February 9, '04 Comments [6] Posted in Web Services | ASP.NET | XML
Sponsored By

Was it Kierkegaard or Dick Van Patten who said "He who is most likely to make declarative statements is most likely to be called a fool in retrospect?"

Sorry, I don't mean to be controversal here, and no disrespect intended, but this article entitled Nine Reasons Not To Use [XML] Serialization is just 9 kinds of FUD.  Sincerely, it's crap.  To impune an entire technology because you don't see a use for it is the purest form of FUD.  It's antiserializationism and it's plagued my people for 4000, er, 4 years.

I've never been one to get into the whole 100 reasons of this and 54 reasons of that.  I wisely stayed out of the whole .NET vs. Java Top 100 List thing a few months back.  But, I have to debunk these singly, but first, in whole - If the shoe pinches, don't wear it.  Seriously.  There are no catch-all-works-for-everyone technologies and XmlSerialization clearly isn't the technology for this gentleman.  That being said:

1. It forces you to design your classes a certain way - Yes? And?  It does force you to use Public Properties, as serializing Privates would require giving some very specific hints to the serializer.  In Whidbey privates can be serialized.  Of course, that doesn't help anyone now.  So, use publics.

2. It is not future-proof for small changes - And it never claimed to be.  Certainly versioning is a bigger problem in the XML/XSD world, and it's being worked out.  If you think your data will change and your application will not (you're not going to recompile) and your investment is in your classes (and not your schema) then XmlSerialization isn't for you.  You can certainly protect against small changes with the XmlAnyElement and XmlAnyAttribute attributes, as we do.

3. It is not future-proof for large changes - See above.

4. It is not future-proof for massive changes - For crying out loud...

5. It is not secure - Secure is a big word.  Your front door isn't secure.  He mentions that temporary files are created (I assume he's referring to the temporary per-type serialization assembles, and that 'files on disk pose a security risk.').  Your data never touches the disk unless you explicitly serialize it to disk.  There's nothing inherently secure or insecure about XmlSerialization.  It's simply serialization. Except, wait for it, it's serialized as XML.

6. It is inefficient - 'XML is verbose,' true, and it's not for everyone.  The claim is made that when Type information is stored along with the data it makes serialization expensive in terms of disk space.  Well, at $1 a gig, I think a few extra angle brackets won't break the back, but yes, it's not binary serialization.  Just as folks thought that TCP/IP had too many layers, folks thing XML does.  Noone seems to sweat the endian-switching (on Wintel boxes) that happens a few layers down with every packet now, do they? 

7. It is a black box - Anyone who has programmed in .NET for a while realizes that there ARE no black boxes.  If you are concerned that XmlSerialization is a black box (and somehow blacker than usual) then open it up.  It's pretty straightfoward when you see the generated code.  It's not particularly amazing or life altering, but it will help you realize how much simpler your task is since you didn't have to write the code - it was autogenerated for you!

8. It is slow - Well, that's just specious. 

9. It is weird - Ya, new things usually are.

I am a fan of XmlSerialization, and I'm a fan of anything that makes my job easier.  We're using the hell out of XmlSerialization on a project I'm on.  I've presented some of our techniques at some INETA talks. 

Why am I not worried about #'s 2 through 4?  Because my investment is in XSDs and because I autogenerate (with CodeSmith and pixie dust) C# code, test cases, test instance data, custom templates for Voyager (our eFinance Server) as well as all our strongly typed collections and some very cool property voodoo. XmlSerialization is a detail.  With any technology, insulate yourself.  When we move to Whidbey and [DataContracts] we'll change one code generation template and move on.

That makes the experience of writing a Banking UI on top of Voyager and ASP.NET a strongly-typed joy

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Gryoscopes and Remapping a Windows Button for the IBM ThinkPad

February 9, '04 Comments [9] Posted in Programming
Sponsored By

This Thinkpad that I am now using for my main work computer (I'm using the TabletPC for my personal computer) is the best Laptop I've ever used.  Had a few problems with their silly Utilities, but for the most part it's butter. 

The Good and Amazing:

  • It ALSO (the Toshiba m200 Tablet also has one) has a freakin' gyroscope in it.  Except, while the Toshiba uses the Gyro for scrolling (USELESS!) this IBM uses it to pause and park the hard drive (USEFUL!)  To the right is a picture of the Real-Time Status screen.  In the picture I've tipped the laptop to the right about 45 degress and it's parked the hard drive for safety.  This has already come in useful when a horrendously fat guy in the middle seat of a Delta flight that when I was saving a file was a perfect time for him to go to the can.  But I'm not bitter.

The Bad

  • It's got no freakin' Windows Key, which is slowing me down by at least 10 minutes a day. :) Thank the good lord for Windows Key Remapping.  Here's a registry key that will remap the RIGHT-ALT to the Windows Key (save it as a .REG file):

    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
    "Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,5B,E0,38,E0,00,00,00,00

 

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.