Scott Hanselman

Hanselminutes Podcast 65 - Martin Fowler and David Heinemeier Hansson

May 24, '07 Comments [35] Posted in Podcast | Programming | Ruby
Sponsored By

My sixty-fifth podcast is up, recorded on the floor RailsConf2007 here in Portland, Oregon. In this episode I sit down with Martin Fowler of Thoughtworks and David Heinemeier Hansson of 37signals and talk about beauty, making developers happy, the death (or life) of HTML, the future of Microsoft, and I ask if we should care about Rich Internet Applications. DHH is the creator of the Ruby on Rails framework, and Martin Fowler is the Chief Scientist at ThoughtWorks, well-known systems architect and Extreme Programming expert.

This episode is chock full of goodness and good guests, so it's double the ordinary length, clocking in at over 40 minutes, so forgive me, as all three of us tried not to waste the listener's time.

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

Links from the Show

Martin Fowler's Bliki (p5p)
RailsConf 2007 • May 17, 2007 - May 20, 2007 • Portland, Oregon (p5r)
Ruby on Rails (p5t)
Loud Thinking by David Heinemeier Hansson (p5q)
Jesse James Garrett's Information architecture resources (p5s)
Tree Surgeon for .NET (p5u)

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?

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

The TechEd Party to Attend - Party with Palermo

May 24, '07 Comments [17] Posted in TechEd
Sponsored By

If you are headed to TechEd 2007 in Orlando, make sure you make the time to go to Party with Palermo. Jeff throws an unmatched geek party and you don't want to miss it.

It's free, and I can attest, it's great. You'll meet lots of cool folks, many bloggers, wonks and other geeks. I went to the last one in Seattle and had a blast.

Sadly this year, a very large combination of events, both business and personal, meant that I have had to bow out of TechEd, so I won't be there to join you. It's only the second time ever I've canceled a speaking gig, and I'm bummed, but it was the right thing to do at this point.

But for you who are going, go over to the Party with Palermo Website and RSVP by leaving a comment right now!

It's June 3rd, 2007 @ 7PM - 11PM at Glo Lounge:  http://www.gloloungeorlando.com/
8967 International Dr, Orlando, FL
(407) 351-0361

Enjoy. My giant head may appear via Skype Video Conferencing at some point during the evening. ;)

Jeff's also been kind enough to add Team Hanselman and our Diabetes Walk 2007 as honorary community sponsors of the event, so drink lots of beer and click for a Tax-Deductible Donation.

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

Reading Documents on your Screen Effectively

May 24, '07 Comments [15] Posted in Musings
Sponsored By

I was at Fresh Thyme Soup earlier this week (fantastic place, seriously, go there, it's all made from scratch) and there was a guy surfing with their free wireless whose desktop looked basically like this (this is mine, for illustration.) He was actually running Ubuntu and running what looked like AbiWord, but that's not the point.

Why is a guy who's _______ (insert adjective here...perhaps "savvy?") enough to run Ubuntu reading a document with the window sized like this?

Seems like I'm forever doing this series of keystrokes in Word: Alt-V, then Z, then T, then Enter, to return Word to the Text Width Zoom level. Then I use Alt-V, then U, for Full Screen mode, especially when I'm forced to present a Word document via projector.

Is this the fundamental issue with a Windowing interface that lets you size things willy-nilly.

I've been using a MacBook Pro for two weeks now and I'm still, even now, never sure what I'm going to get when I press the little Green dot that I think of as "Maximize." Sometimes a window gets really tall, other times really wide. With the Finder, it's a roll of the dice.

Same thing with Windows, and Ubuntu. I'm FOREVER forced to rearrange things. There's got to be a middle place between Full-Screen/Maximized and Minimized that "knows" what I need. The fact that the "middle place" is currently "size it however you like" is starting to wear on me.

I'm not sure if the infinite possibilities of window resizing is more sad than the fact that anyone who has a 15" or larger screen wouldn't take the time to maximize their window for readability.

If you've got an LCD, for goodness sake:

  • If you've got bad eyes, make the icons large and the fonts large. Really. Don't run your monitor at 1024x768 if it supports 1900x1600. You're doing yourself and your a disservice. Turn on ClearType.

If I had a nickel for every time I went into an Executives office and had this conversation, I'd like like 65 cents. At least.

    • "Hm, you're running your laptop at non-native resolution..."
    • "I am?"
    • "Yes..." click, click, right-click, enter, boom.
    • "Oh, wow, that is clearer. But the icons are small now"
    • "Ok. One sec" click, click, Large Icons, boom.
    • "Ah, that's nice. That text is kind of jagged."
    • "Ok. One sec" click, click, ClearType, boom.
    • "Wow, that's like getting new glasses."
    • "Yes. Yes, it is."

Make your pixels work for you, Dear Reader.

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

Four Life-Changing Gadgets - GPS, iPod (MP3) and Tivo (DVR)

May 23, '07 Comments [14] Posted in Musings
Sponsored By

USA Today just published their 25 years of 'eureka' moments...their list of the 25 gadgets that changed people's lives. To be clear, these are gadgets, so we're not touting the creation of the MRI here, or the LifeStraw.

There was an article in PCWorld a while back called "The 50 Greatest Gadgets of the Past 50 Years," after reading that article I realized that I might be an early adopter.

For me there's three four devices that have changed my day to day life experience. I could live without cell phones and blackberries, as addictive as they are, but these devices all did one thing and did it well. They ultimately gave me time - the one thing we're all running out of. They say Real Estate is a good investment because "they're not making any more land" (Unless you live in Dubai, where they are actually making more land) but anything that gives me more time, or makes the time I have more useful and enjoyable is a good thing.

In no particular order:

GPS - Handheld Global Positioning Systems

I love my Garmin Nuvi 350 GPS. Love it. We use it all the time and have mounts in both cars and switch it between them. Even though I've lived in this city for 34 years, I don't know every nook and cranny - certainly not in the suburbs. Now, I never get lost. The Nuvi included one free Map Update so I was able to get 2006 v8 Maps for free via a download and automatic update. It has a slot for Add-On Maps (like Europe, or the US if you're in Europe) via SD Card. It speaks the street names, it's a photo viewer, MP3 player and Audible book reader. It even knows when I'm walking, notices, and suggests better routes on foot. All this and it's the size of a deck of cards. My wife loves it as well. All these devices have a high WAF. Even better that good GPS's are in almost all decent cell phones, including the Blackberry Pearl.

MP3 Players (iPod)

Seriously, hasn't your MP3 Player changed your life? While audiophiles with vacuum tubes (and Carl Franklin) are lamenting the death of the Hi-Fi and berating us for buying lossy-compresses "damaged" music I'm enjoying America's Next Top Model on a Video iPod at 30,000 feet. Try that with your RCA Victor. My entire CD collection - every CD I've ever owned - is inside my 80gig iPod, lovingly ripped by RipDigital.com (What? You rip CDs yourself? ;) That's so 2005.). An MP3 player is worth the cost of entry just for the Audiobooks.

Digital Video Recorders (DVR, ReplayTV, Tivo)

When is House on TV? I seriously don't know. It's on whenever I like at my house because I've got the "House Channel." Same with Grey's Anatomy, The Office and Heroes (Heroes Spoiler: Why didn't Peter just fly away himself? It would have saved Nathan the trouble).

Aside: Did you know you can watch FULL Hi-Res episodes of Heroes online for free, as well as download them in even Higher-Res with the Viiv Universal Player? Even MORE amazing, they've got Full Video Cast Commentary in a secondary window for each episode. Brilliant.

I watch them on my time. Sometimes I skip commercials, sometimes not. Sometimes I turn on the captions and watch them in double- or quadruple-speed. We've got the whole season of Signing Time (DVD's just remastered and rereleased and Rachel has a blog also) so my son can do American Sign Language anytime. We always watch the news, even though dinner is at a different time each day. DVRs fundamentally change how we watch TV (if you can get over the "Psychic Weight" of a full DVR and a whole season of Dexter to catch up on.)

Insulin Pump and Continuous Glucose Meter

I got the results of my blood tests yesterday. Diabetics should have their blood checked for a 3-month indicator of their blood sugar. Pricking your finger tells you your blood sugar at an instant, but the hA1C blood test gives you an idea of how the last three-months have been. You can kind of think of it (simplistically) as a measurement of a percentage of blood cells that are coated in sugar. My value was 5.8% which is at non-diabetic levels. You, Dear Reader, as a likely non-diabetic have an hA1C between 4 and 6. My value is now "high-normal" but still normal. To be clear, I'm VERY diabetic, but I'm managing it so closely that my blood test indicates I'm more or less successfully emulating my damaged pancreas with the insulin pump and continuous meter. I'd be lost without these devices. They've made my life better and allowed me to more easily travel the world.

What's your top four list look like?

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

Programmer Intent or What you're not getting about Ruby and why it's the tits

May 23, '07 Comments [68] Posted in Ruby
Sponsored By

A user named yesthatmcgurk left a comment on DotNetKicks where he/she said:

I must be a complete loser, because I can't see where Ruby is such hot shit. I'd love to read a story, "What you're not getting about Ruby and why its the tits."

Such a great comment that I had to get involved. One of the other commenters pointed to a post over on "Softies on Rails" that's really worth reading.

Note: Forgive the use of "the tits" in this context. "Slang Definition: A description of something you show great liking to, or greatly appreciate..." Usually not a work-friendly phrase, but perhaps pub-appropriate.

There's a simple snippet of Ruby code:

def shutter_clicked
if @camera.off? || @camera.memory_card_full?
    return
end
  capture_image
end

Ruby folks have their own aesthetic and sense of beauty. They would say that the Programmer's Intent is better expressed like this:

def shutter_clicked
  capture_image if @camera.on? && @camera.memory_available?
end

These two functions identically express the Programmer's Intent and the second one expresses it better, many believe. This one simple example is subtle to some, beautiful to others. TunnelRat says:

What is this obssesion[sic] with "expressiveness"? Go write poertry [sic] if you want to be expressvive.[sic] 

Remember that ultimately our jobs are (usually) to solve some kind of business problem. We're aiming for a finish line, a goal. The programmer's job is translate the language of the business person to the language of the computer.

The whole point of compilers, interpreters, layers of abstraction and what-not are to shorten the semantic distance between our intent and the way the computer thinks of things.

Reginald "raganwald" Braithewaite links to the blog Agile Renaissance that absolutely nails it for me (emphasis mine):

If you survey the over 5000 different languages and dialects that humans speak, you find that there is no universal set of equivalent semantics between them. This fact implies that there can never be a computer language which will always have the shortest semantic distance between itself and any solution. Therefore there never will be a universally best programming language.

I'm just learning Ruby, personally. Like anyone making their way in a new language, be it a programming language or a spoken language, I can make myself understood, but not effectively. I'm certainly not writing poetry, nor am I able to "mince words" in Ruby.

You'll find lots of "smackdowns" on the .NET between different languages. This post isn't a smackdown post. Sure, if your language of choice doesn't have a particular function, it could likely be added.

There are some fun one-liner comparisons though and some folks think that paying a:

Java:

new Date(new Date().getTime() - 20 * 60 * 1000)

Ruby:

20.minutes.ago

In this example, the elegance is a combination of how Ruby works, and a Rails library called ActiveSupport that is a Domain Specific Language that extends Ruby. There's a special satisfaction when you read a well-written novel and you go over a turn of phrase and think, "wow, what a great way to express that. That was a perfect way to describe ____," and there's no ambiguity.

While programming, unless you have 100% code coverage via Tests, there's ambiguity. There's a lack of clarity in expressing what you intended vs. what you might get.

Cyclomatic complexity is just one of many software metrics that can help you understand what your code "says" it's going to do. Remember, your code always runs exactly as you wrote it.

Cyclomatic complexity may be considered a broad measure of soundness and confidence for a program. Introduced by Thomas McCabe in 1976, it measures the number of linearly-independent paths through a program module.[Carnegie Mellon SEI]

The most important word there, to me, is confidence. Can you be confident that your code is written to be express what you intended? If you have full coverage, there's a better chance you understand what it can and will do (although achieving full coverage guarantees nothing, but that's another post). If not, it often helps to have a language that makes expressing your intent very clear, concise, and above all, unambiguous. Unambiguous expression of intent gives you (and your customer) confidence that things will happen as expected. There are some things easier expressed in Zulu than in English. Folks who run Ubuntu should know that.

When programming (that is, expressing your intent to the computer) you should select a language that matches up with the program you're trying to solve. Every language is, in a way, a Domain Specific Language.

Regardless of what your language of choice is, you might be someone who says all languages eventually become, or try to become Lisp, or you might think Visual Basic is the best or that PHP is God's Language, you should learn a new language every year. I code, and have coded, for many years in C#, and before that C++, but it's important for me in my personal development to remember why I learned Haskell and Lisp (I suck at Lisp) and Smalltalk, and why I return to them occasionally for a visit.

This year, I'm learning Ruby. Does that mean my team is moving to Ruby?  Probably not, but it does mean I'm learning Ruby this year because I believe in sharpening the saw. You might be too busy sawing to sharpen, but I'd encourage you - no matter what brand or type of saw you use - to remember that there are other folks out there cutting wood successfully with a different kind of saw. Maybe they know something that you don't.

Either way, it's clear that the jury is still out on all these technologies. Hedge your bets and learn as much as you can. There's more than one way to express yourself. Give it a try.

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.