Scott Hanselman

Am I really a developer or just a good googler?

August 23, '13 Comments [98] Posted in Musings
Sponsored By
Photo by Hugh Ryan McDonald used with CC Attribution

I got a very earnest and well-phrased email from a young person overseas recently.

Some time in my mind sounds come that Is that I am really a developer or just a good googler. I don't know what is the answer I am googler or I am developer. Scott Please clear on my mind on this please.

This is a really profound question that deserved an answer. Since I only have so many keystrokes left in my life, I am blogging my thoughts and emailing a link.

I've felt the same way sometimes when playing a video game. It'll get hard as I progress through the levels, but not crushingly hard. Each level I squeak by I'll find myself asking, "did I deserve to pass that level? I'm not sure I could do it again."

You get that feeling like you're in over your head, but just a bit. Just enough that you can feel the water getting into your nose but you're not drowning yet.

First, remember you are not alone. I think that we grow when we are outside our comfort zone. If it's not breaking you down, it's not building you up.

Second, anything that you want to be good at is worth practicing. Do Code Katas. Do a Project Euler problem every few weeks, if not weekly.

Third, try programming for a day without Googling. Then two days, maybe a week. See how it feels. Remember that there was a time we programmed without copying our work.

Fourth, think about the problem, deeply. Read about algorithms, read Programming Pearls, read about Design Patterns. Rather than copying code from Stack Overflow, copy patterns from the greats.

Fifth, get involved. Go to User Groups, Nerd Dinners, meet with others who feel the same way you do about technology. Stretch.

What do you think?


Sponsor: A big thanks and a warm welcome to Aspose for sponsoring the feed this week! Check out their Aspose.Total for .NET has all the APIs you need to create, manipulate and convert Microsoft Office documents and a host of other file formats in your applications. Curious? Start a free trial today.

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

Google Chromecast Review - The race is on to wirelessly throw video to your TV

August 23, '13 Comments [29] Posted in Reviews
Sponsored By

Google ChromecastThe Google Chromecast is simple and brilliant. It's one of those perfect little "duh! Why didn't someone do that before?" ideas.

I didn't realize I needed one until I realized that I've been chasing the idea for years. In fact, I put together a poor man's "AirPlay Raspberry Pi" Chromecast last year. By plugging my Raspberry Pi running RaspBMC into my Receiver and using it just for Airplay, I was effectively using it as a Chromecast.

You can agree or disagree in the comments, but here's their idea - most of us don't need set-top boxes. The world's big technology companies clearly want to control the largest screen in the house. So far, that's the TV (if you own one.) If TVs go away, it'll be the largest monitor in the house. What's the best way to control this screen?

  • You can get a PS3 or an Xbox. (I have both.)
  • You can get a TiVo. (check.)
  • You can get an Apple TV. (I did the XBMC Airplay thing instead.)

But each of these devices is a darn-near full computer with an OS, and storage, and a life and ecosystem of its own. What we really want is to use our TVs as wireless displays and use the power of our phones, tablets, and computers. Until one of the world's wireless display formats is finally declared the winner, they'll keep making set-top boxes portable computers to connect to our TVs.

We could wait for $1000 receivers to include Wireless Display functionality, or build it into HDTVs. No! Let's make a $35 dongle that capitalizes on the fact that HDMI has finally won. It'll plug into any monitor and we suddenly that HDMI connection is available over wireless. It's open, in fact, to anyone who is on the network.

You just plug the Chromecast into any free HDMI port and get power via micro-USB. Many TVs have a USB port that can provide this power. I used the always-on USB port from my TiVo as it was open.

The Chromecast contains the Marvell 88DE3005 system on a chip. This integrated circuit includes hardware decoding of VP8 and H.264 codecs. Radio communication is handled by AzureWave NH–387 Wi-Fi which supports 802.11b/g/n (2.4 GHz). The device has 512 MB of Micron DDR3L RAM and 2 GB of flash storage. - Wikipedia

When you plug the Chromecast into your TV you'll connect to its initial ad-hoc wireless network and teach it about your wireless network. Then it'll reboot and jump sideways onto your network and most of your config work is done. The only way to change the Chromecast at this point is to hard reset it. The wireless setup process is very similar to other embedded wireless devices like the Nest Thermostat, FitBit Aria Scale, or Twine Wi-Fi device - connect to ad-hoc, setup locally, jump. It took all of 2 minutes.

Ready to cast

Here's my Chromecast plugged into my Onkyo TX-SR674 Receiver's front HDMI port.

The Chromecast in my Receiever

Make sure your phone's YouTube and Netflix apps are updated. They all got Chromecast support automatically last month.

From inside the Google Chrome browser you add the Google Cast extension that lets you play content from within Chrome to the Chromecast. You can cast a browser tab to the screen and show a friend what you're browsing, which is actually very cool and useful...when it works. More on that in a second.

The Good

When it works, it's fabulous. For example, at a recent party someone mentioned a funny YouTube video. Within 30 seconds I had it up on my iPhone, then threw it to the Chromecast. That's exactly how it should work, right?

YouTube Casting Netflix Chromecasting

I've thrown video to the Chromecast from all my iDevices in both the Netflix and YouTube apps. There is a hand-off and then, interestingly, the Chromecast takes over the stream. Rather than the phone or tablet pulling the content down then pushing it again laterally to the Chromecast, there's a little YouTube applet or NetFlix applet running on the Chromecast. The Chromecast inherits or hijacks the stream. All of this is transparent to the user, of course, but it's a clever implementation which allows you to close the app and do other things with your phone.

Each app looks a little different. The YouTube iPhone app shows Views, avatars, and the date when pushed to the Chromecast.

YouTube on a Chromecast

Being able to use your Tablet as a remote is great. Myself, I get this functionality in three totally different ways across my devices, but the result is the same - tablets are good remotes. I have the Tivo App on my iPad, I have the Xbox Smartglass app on my iPad and Surface, and I have the YouTube and Netflix apps on my iPad talking to the Chromecast.

HDMI-CEC is the ability for the Chromecast to automatically tell my receiver to switch to the right HDMI input when content starts playing. It would be amazing if my receiver supported it. If your system has HDMI-CEC the Chromecast will set your inputs for you and remove a step which has a high WAF (Wife Acceptance Factor or Non-Gender-Specific Spouse Acceptance Factor).

The Bad

My computers just can't see the Chromecast anymore. They could last week. This is extremely odd considering we are all on the same wireless network and that the phones and tablets work reliably. You'll find the forums filled with people fighting with this issue. They're having to disable firewalls on MacBooks and turn off IGMP Proxies on FIOs Routers. I've done all that and while on the first day my first laptop was able to cast its Chrome Tabs to the TV, a few days later either Chrome or the Chromecast auto-updated itself and now it's just dead.

No cast devices found

No matter, for $35 it's a great device. It works as advertised on both iPhone, iPad and Android, although the settings for casting from iPhones are a little inconsistent and hard to find in Netflix and YouTube. The Chromecast troubleshooting should be more polished (today it's just a link to a FAQ, with no diagnostics) but since Chrome and the Chromecast both appear to be updating quite often, we should see improvements soon. If I had paid $80 or more, I would be more frustrated with my inability to use the device from my desktop and laptops, but the tablets and phones have been rock solid.

I'd love to see the Chromecast become a more generic wireless receiver and be extended to support Apple's Airplay, as well as Miracast which is now built into Windows 8.1, and WiDi that Intel supports (although Wi-Di also supports Miracast as of WiDi 3.5). Unfortunately though, here we are again with FOUR companies each betting on a format to win while the consumer is left to pick a horse.

Which wireless display format will become Bluray and which will become HD-DVD? It's anyone's guess. I'd like to see an open format win. However, for now, and for only $35, I'm happy with the Chromecast.


Sponsor: A big thanks and a warm welcome to Aspose for sponsoring the feed this week! Check out their Aspose.Total for .NET has all the APIs you need to create, manipulate and convert Microsoft Office documents and a host of other file formats in your applications. Curious? Start a free trial today.

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

Recent JavaScript Jabber Podcast - Microsoft, not Microsoft, and the Web

August 20, '13 Comments [41] Posted in Javascript | Podcast
Sponsored By

loraxI was a guest recently on a podcast called JavaScript Jabber. I enjoy checking out other folks' podcasts and how they run things. I actually talked to the guys about sound quality for about 30 min before the actual recording started.

Their show is about JavaScript exclusively so we spent about an hour talking shop.

Here's a few quotes...yes, I'm quoting myself. On my blog.  We talked about Open Source:

I don’t care if it’s not Entity Framework. If you want to use NHibernate or RavenDB or CouchDB, dude, knock yourself out. But ultimately, the dirty little secret about Microsoft is they want you to run on Windows. Okay, well you don’t run Windows. You guys run Macs. Okay. But maybe you’ll discover that Azure is actually a pretty kickass cloud service and you’ll run your stuff on Azure, which is Windows.

We talked about using the client machine more effectively:

I hear a lot of people say, "Hey, we run a web farm and we’ve got about ten machines in the farm and it just can’t handle the load. We’re going to need to buy an 11th machine." Then you talk to them and they’ll say something like, "Well we’ve got 10,000 people hitting the site," and I’ll think to myself, "Okay, you’ve got 10 machines in the farm and you have 10,000 people hitting the sites. All those people have quad processors, even if they have a phone. Are those processors really working hard? You’ve got 40,000 unused processors just sitting there and they’re waiting for your 10 processors to give them angle brackets. What if you gave them curly braces and let them do the work?”

I think the podcast turned out fairly well, although there was a little tension as I felt I was being asked to make declarative statements and defend historical stuff I didn't work on. I think I made it very clear that my opinions about the industry are just that, opinions, and mine alone. That said, we talked about node, JavaScript in general, the way the industry is moving with respect to where work happens (client vs. server) and a bunch of other things.

They called this episode "JavaScript Strategies at Microsoft with Scott Hanselman." Other than the "with Scott Hanselman" part, this title is problematic.

The hosts are fine folks and I had a pleasant time. I think because of the title of the episode this particular episode has been getting a LOT of Tweets and appeared on Hacker News and Reddit for a short while. I wouldn't have chosen this title, myself.

  • It implies I have anything to do with JavaScript at Microsoft.
    • I don't. I do work in Azure and Web Tools and I often give my opinions on the JavaScript Editor, on what we do with Node, and how frameworks like Ember and Angular will be presented in VS, but I am not in charge of anything. I give feedback just like dozens (hundreds?) of other random folks inside the Big House.
  • It implies I'm some how strategic, strategically involved or know strategery within JavaScript at Microsoft.
    • Again, JavaScript on the client is the Chakra engine and the IE team. I don't work for them, no do I claim (and never have) to speak for them.
  • It implies I'm a spokesman for Microsoft.
    • I'm an enthusiast and a teacher, but not a marketer or spokesman. I speak, and yes, I do have this blog, but it's mine and its writings and opinions are mine. I often write about Microsoft stuff because I work there, but I worked elsewhere for 15 years and blogged that also. I blogged and podcast before I got to Microsoft and I will continue to blog and podcast after I leave. I am not my job.

I would encourage you to check out the podcast episode yourself and see what you think. It also includes a complete transcription, which is a nice touch and very important.


Sponsor: A big thanks, and a welcome to Aspose for sponsoring the feed this week! Check out their Aspose.Total for .NET has all the APIs you need to create, manipulate and convert Microsoft Office documents and a host of other file formats in your applications. Curious? Start a free trial today.

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

Leap Motion: Amazing, Revolutionary, Useless

August 14, '13 Comments [72] Posted in Reviews
Sponsored By
Tom Cruise looks so cool in Minority Report

I desperately want it to work, don't you? Just like Minority Report. You wave your hands and your computer interface moves effortlessly.

Frankly, let's forget all that. I'll lower my expectations WAY WAY WAY down. I'd just like to wave my hand left and right and the system move a window between one of my three monitors? Seems reasonable.

This is what I want to feel like with the Leap Motion.

Amazing Minority Report Interface 

Here's how I really feel using Leap Motion.

Fantasia Fighting the Air

Venture Beat says:

The $80 device is 200 times more accurate than Microsoft’s Kinect, sensing even 1/100th of a millimeter motions of all 10 fingers at 290 frames per second.

Really? I find them both equally bad. 1/100th of a millimeter? That's lovely but it makes for an extremely hyperbolic and twitchy experience. I have no doubt it's super accurate. I have no doubt that it can see the baby hairs on my pinky finger - I get it, it's sensitive. However, it's apparently so sensitive that the software and applications that have been written for it don't know how to tell what's a gesture and what's a normal twitch.

Hey, it's my fingers!

My gut says that this is a software and SDK maturity thing and that the Leap Motion folks know this. In the two weeks I've had this device it's updated the software AND device firmware at LEAST three times. This is a good thing.

Perhaps we need to wear gloves with dots on them like Tom Cruise here. When you hold your fingers together and thumb in, Leap Motion sees one giant finger. Digits appear and disappear so you are told to keep your fingers spread out if you can. This becomes a problem if your palm is turned perpendicular to the device. Since Leap Motion only sees up from its position on your desk, it can't exactly tell the difference between a palm down with fingers in and a hand on its side. It tries, but it's about 80% by my reckoning. That may sound great, except when it's 20% completely insane.

I also found that wearing my watch confused the device into thinking I had a third hand. I'm not sure if it's glints off the metal of the watch, but I had to take it off.

To be really clear, I totally respect the engineering here and I have no doubt these folks are smarter than all of us. Sure, it's super cool to wave your hand above a Leap Motion and go "whoa, that's my hand." But that's the most fun you'll have with a Leap Motion, today.

OK, you can see my hand.

There is an excellent diagnostics system that will even warn you of fingerprints. You'll be impressed too, the first time you get a "smudge detected" warning.

Smudge detected?

The software is impressive and organized, but on the down side, the Leap Motion Service takes up as much as 6-7% of my CPU when it seems something near it. That's a lot of overhead, in my opinion.

6% CPU?

The software that I WANT to work is called "Touchless for Windows." It's launched from the AirSpace store. This Leap Motion specific store collects all the apps that use the Leap Motion.

Having a store was a particularly inspired move on their part. Rather than having to hunt around the web for Leap Motion compatible apps, they are just all in the their "store."

The TouchLess app bisects the space above the Leap Motion such that if you're in front of the device you've moving the mouse and if you've moved through the invisible plane then you're touching the "screen." Pointing and clicking is a challenge to say the least.

Touchless for LeapMotion

Scrolling on the other hand is pretty cool and it's amazing when it works. You move your hand in a kind of forward to backward circle, paging up through web sites.

Scrolling is cool

It's not foolproof by any means. Sometimes the Leap Motion will go into what it calls "robust mode." I am not sure why the device wouldn't want to be "robust" all the time. It seems that this really means is "degraded mode." There are threads on the Leap Motion forums about Robust Mode. Lighting seems to play a large factor.

Here's me attempting to use the Leap Motion with Touchless to do anything to this folder. Open it, move it, select it, anything.

Touchless is REALLY hard to use.

Today, I look at the Leap Motion as an amazing $80 box of potential. Just like the Kinect, the initial outcropping of apps are mostly just technology demos. It remains to be seen if the Leap Motion will mature in the coming months. I still think it's an amazing gadget and if you have $80 to blow, go for it. Set your expectations low and you won't be disappointed.


Sponsor: Big thanks to Red Gate for sponsoring the feed this week. Be sure to pick up their Free eBook: 25 Secrets for Faster ASP.NET Applications - Red Gate has gathered some great tips from the ASP.NET community to help you get maximum performance from your applications. Download them free.

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

Over 400 Virtual Machine Images of open source software stacks in the VM Depot Azure Gallery

August 12, '13 Comments [16] Posted in Azure | Open Source
Sponsored By
Open Source VM Images in Azure

When you want to make a new Virtual Machine from the Azure Portal, from the menu you "Create New | Virtual Machine" and you'll see the default images alongside images you have uploaded or created yourself.

A list of a bunch of Windows images

There's a pile of Windows stuff, and if you scroll down, some good Linux images like openSUSE, CentOS and Ubuntu.

Note: There's also a Visual Studio Ultimate 2013 Preview, so remember, you can sign up for a free Azure trial and remote into Visual Studio in the cloud and mess around if you like. If you have MSDN you have credits already, so associate your MSDN with Azure.

It's nice to have Linux on Azure, but this isn't the richest selection of images.

A list of a bunch of Linux images

There SHOULD be a new section here, in my opinion.

There should be a community section. There isn't. Yet.

Or here:

There should be an Open Source section. There isn't. Yet.

Ah, but if you go to the Virtual Machines area, then click Images, there is a link to Browse VM Depot. One of the great secrets of Azure. I'm working with them to get this more obvious, because it really is epic.

You can click Browse VM Depot at the bottom of the Images Pivot

And then…bam. Now we're talking.

Wow, a pile of existing images. More than 400, in fact.

There’s actually over 400 open source VM images in there, made by the community and companies like BitNami, and hosted by MS Open Tech. You can create VMs from this interface within the Azure Portal, but I think it's even easier to make VMs from the command line.

Get the Azure Command Line

This assumes you have the Azure Command Line Tools. You can get them one of two ways. If you have node and npm, just install azure-cli like this:

npm install azure-cli --g

Then get your account certificates and import it.

azure account download
azure account import "foo.publishsettings"

Then, select a subscription. This is all a one-time thing.

azure account set "some other account name"

At this point I can "azure vm create" this and that. I can manage most of the Azure Cloud from the command line. This tool works on Linux, Windows and Mac, is open source and written in JavaScript.

Creating a VM from an VM Depot Image

Let's say I want a Redis image. I can visit http://vmdepot.msopentech.com and find a Redis one. Here's a customized Ubuntu 12.04 image with Redis configured and hardened security.

If I select Deployment Script at the top, I will get a command line like this:

azure vm create YOUR_DNS_PREFIX -o vmdepot-147-6-1 -l "West US" YOUR_USER_NAME [PASSWORD] --ssh 

That vmdepot number there is the image identifier that tells Azure to copy that VM image over from the VM depot and make a new instance. Make sure you add --ssh or you won't be able to get in at all!

C:\>azure vm create hanselredis -o vmdepot-147-6-1 -l "West US" scott mypassword --ssh
info: Executing command vm create
+ Looking up community image
+ Retrieving storage accounts
+ Copying blob
+ Looking up image
+ Looking up cloud service
+ Creating cloud service
+ Creating VM
info: Deleting image
info: VM image deleted: vmdepot-147-6-1-8d169700
info: Blob deleted: http://hanselstorage.blob.core.windows.net/vm-images/comm
unity-520-3ed9b6e9-97c6-42f4-b2bd-349fca785b64-6.vhd
info: vm create command OK

At this point Azure has made the VM from this image. You can than open up endpoints and port forward to the outside world so you can access your service, or create virtual internal networks to keep this VM private.

VM Highlights

A lot of these images come from a startup called Bitnami that configures images with popular packages. Some highlights of this depot, IMHO, are Discourse, the new forum software from Jeff Atwood and friends:

Discourse

There's a recent Ruby Stack image:

The Ruby Stack

And a good Drupal one:

Drupal

As well as a nice Debian Wheezy image:

image

Remember, these are community driven so YOU can publish images of your open source stack if you want.

As with all galleries of community-grown stuff there will be some gems and some duds. I like the Bitnami stuff, for example, as they appear to know what they are doing. Regardless, use good sense and explore and evaluate before you bet your startup on an image. Still, these are a great way to get a VM running in minutes, not hours or days.

If you think that these images are useful, feel free to sound off in the comments and guilt inform the Powers That Be that you think this is useful. Or not. (I will make sure they see these)

Related Links:


Sponsor: Big thanks to Red Gate for sponsoring the feed this week. Be sure to pick up their Free eBook: 25 Secrets for Faster ASP.NET Applications - Red Gate has gathered some great tips from the ASP.NET community to help you get maximum performance from your applications. Download them free.

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.