Scott Hanselman

Hanselminutes Podcast 212 - The Podcast about Podcasts with Joel Spolsky

April 24, 2010 Comment on this post [1] Posted in Podcast
Sponsored By

imageMy two-hundred-and-twelfth podcast is up. The worst show ever? Perhaps, but it's Meta! It's Joel Spolsky this week, the other half of the StackOverflow Podcast, chatting with Scott this week about podcasting. How does Joel record shows? How does Scott? Is this the end of the StackOverflow show? How does Leo Laporte manage? Should we visit his house? All this, plus sour grapes

(Ya, I know, I'm late to post this.)

Subscribe: Subscribe to Hanselminutes Subscribe to my Podcast in iTunes

Download: MP3 Full Show

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.

I want to add a big thanks to Telerik. Without their support, there wouldn't be a Hanselminutes. I hope they, and you, know that. Someone's gotta pay the bandwidth. Thanks also to Carl Franklin for all his support over these last 4 years!

Telerik is our sponsor for this show.

Building quality software is never easy. It requires skills and imagination. We cannot promise to improve your skills, but when it comes to User Interface and developer tools, we can provide the building blocks to take your application a step closer to your imagination. Explore the leading UI suites for ASP.NET AJAX,MVC,Silverlight,Windows Formsand WPF. Enjoy developer tools like .NET reporting, ORM,Automated Testing Tools, TFS, and Content Management Solution. And now you can increase your productivity with JustCode, Telerik’s new productivity tool for code analysis and refactoring. Visit www.telerik.com.

As I've said before this show comes to you with the audio expertise and stewardship of Carl Franklin. The name comes fromTravis 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 bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

A Diabetic Product Review for Non-Diabetics - The Medtronic MiniMed Paradigm "Revel" Insulin Pump and CGM

April 23, 2010 Comment on this post [21] Posted in Diabetes
Sponsored By

http://hanselman.com/fightdiabetes/donateThis is a review for Diabetics. If you're not a diabetic, consider this and it might help you enjoy this review. This is a product that will never affect your life. You've probably not thought about how an insulin pump works or its features. Here's a nice analogy I use to explain how diabetes works. It's called Diabetes: The Airplane Analogy.

I've just received an upgrade to my insulin pump and I'm thrilled. Products like this are as important to us (diabetics) as your phone, your fancy remote control, your new DVD Player. I touch this device as often as my phone. It's attached to me 24 hours a day, it's an "external organ" to me. I've worn an insulin pump every day, all day (except showers) for the last decade.

If you find this interesting, please consider helping fight diabetes: http://hanselman.com/fightdiabetes or tweeting the link http://hnsl.mn/fightdiabetes  

I've had Medtronic pumps since 2000. I upgraded to a Paradigm with a CGM "Continuous Glucose Meter" in 2006. Last week I upgraded to a new Paradigm "Revel" Insulin Pump with a number of new features. Insulin Pumps have come a long way since they were backpacks.

If you're not familiar, here's some diabetic equipment basics.

Diabetes Basics

blood_glucose_385x261I'm a Type 1 Diabetic. That means my body produces no insulin of its own and I need to get insulin from outside sources. When I eat food, the sugar in my blood goes up and isn't delivered to my cells and my body starves while marinating it its own sugar. When I take insulin, my cells unlock, sugar (fuel) is delivered to the cells, and my blood sugar values go down. Eat, go up, take insulin, go down.

What's a Blood Sugar Meter do?

It does just that, it measures the level of sugar in my blood. I prick my finger, usually 10 times a day or so, and I put the drop of blood on a small gauze strip that goes into a machine and gives me a number. If it goes high too long, I'll die slowly. If it goes low too long, I'll die quickly. So, we need to keep that number as close to number as possible.

What's an Insulin Pump do?

Blood Sugar Meter I took manual shots for 5 years. Some diabetics take just a few shots, 3 or 4, using a mix of short-acting (take a few hours) and long-acting (spreads over 12 or 24 hours) insulin. Others use a MDI (Multiple Daily Injections) technique, as I did, taking as many as 6-10 small shots of insulin a day. This is not uncommon and is often referred to as the 'poor man's pump.'

As a diabetic, once you've started taking that many shots, you get tired of taking shots. Enter the insulin pump. Once every 3 to 6 days, you poke a longish needle into your fat, then pull it out leaving a soft plastic canula embedded in you and held with tape. The insulin is sitting inside the pump and is pushed by a motor in the pump, slowly, through a long tubing and into you.

Now you can make tiny manual adjustments all day without shots. It's like the difference between making large, coarse movements of the steering wheel while driving and making those tiny back and forth adjustments you make just to say in your own lane on the road. Insulin pumps allow you 10-20x more precision over shots.

Everything inside an Insulin Pump is manual. It does nothing automatically other than a small background amount of insulin. My insulin pump gives me more control and means I get poked less often. But, it's not automatic. It doesn't cure or solve Diabetes.

So, to review. I did shots for 5 years, then a fairly standard insulin pump for 5 years. Then I got a CGM.

What's a CGM (Continuous Glucose Meter) do?

Paradigm Insulin Pump with CGM Pricking your finger and check your blood sugar tells you your sugar level now, but not 5 minutes ago, nor does it show the trend. Hey, my sugar is 80! Was it 200 a half hour ago? Or was it 50 a half hour ago. A single sugar value is about as useful as a single speed value or a single altitude value.

A CGM, or Continues Glucose Meter, is a transmitter that sits inside you body, usually inserted with a needle and a sensor then uses tiny micro-currents against your body's interstitial fluids to estimate (extrapolate) your blood sugar. It doesn't test blood and they are not typically very accurate. In fact, they have a little disclaimer that effectively says "don't make decisions using these values."

CGMs do not replace finger sticks. They are not as accurate, but they provide valuable slope data that diabetics need. Accurate single value readings via finger sticks, combined with not-as-accurate slope information, combined with the ability to easily give myself small or large amounts of insulin without shots (I change the pump every 3 to 6 days, that does involve a needle) means I've got the information I need to maintain good control.

Fingersticks Alone - Chart CGM Chart

The Paradigm series of pumps are an Insulin Pump, but also a CGM receiver. They talk wirelessly to the CGM transmitter (see the picture above that is not my stomach) as well as wirelessly to a finger stick blood sugar meter. It's all one integrated thing.

Now, what's new in this new pump?

Medtronic MiniMed Paradigm "Revel" Insulin Pump

To review, insulin pumps are not automatic. They don't deliver without me saying so. While the pump talks wirelessly to meters and CGMs and stores values in memory, it doesn't act on them. There is no "closed loop" system. The delays involved are too great. However, the new "Revel" pump does add a number of cool new features that are making my life easier already. I think it's a great upgrade and if you have a MiniMed pump you should try to upgrade with their "Pathway Program." It's worth it.

New Features

Better charts. Previously the charts were either 3 hours or 24 hours. Far to zoomed in, or so far out as to be useless. Now you can zoom 3, 6, 12, 24. Here's some screenshots:

Paradigm Pump Paradigm Pump

Paradigm Pump Paradigm Pump

It was amazing how this apparently small upgrade changes the experience with the pump. The 6 hour view is a dream.

Predictive Alerts

This is the killer feature that has already helped me at least twice a day in the last week. The new Revel has a "rate of change" detection algorithm that is totally user-settable. If the pump decides that you will hit a high blood sugar if your current rate of change goes unchecked, it'll let you know via an alarm. This is the one feature I always needed and it works just as you'd wish it did.

Paradigm Pump  Paradigm Pump 

Paradigm Pump  Paradigm Pump

This feature did initially cause me to stack insulin a bit and caused a few lows as I was acting extra aggressively to squash highs, but I am finding I'm getting used to it. I wish it hadn't taken 5 years to get it. That's the tragedy of medical devices. You're thrilled with your multi-touch color screen portable device and I'm happy if I get one firmware update every 5 years. The difference is, my phone crashed twice today. This pump has never crashed in 10 years. We sacrifice innovation for stability.

Subtle but Important Improvements

One of the most important numbers for a pumper is the amount of insulin that's "pending" or "active." Most insulin takes about 3-4 hours to get out of my system, so if I take 5 units now, and 5 more units in an hour, that's stacking doses. If I remembered or was told that I had ~5 units active, I might not have taken that second dose and could avoid a nasty low. The Revel automatically calculates the active insulin and shows you it in three new places. First, on the status screen, second in the manual bolus (dose) screen, and again on the Bolus Wizard. It was buried in the UI before, now it's front and center.

The motor is more precise now, letting you do basal rates as low as 0.025 units per hour, crucial for young people.

Conclusion

This upgrade, the Revel, makes a great pump better. It was totally worth the $399 Pathway upgrade. If you're on a Minimed pump, get the upgrade. If you're not on a pump, consider getting one, it'll change your life.

If you found this interesting, please consider helping fight diabetes: http://hanselman.com/fightdiabetes or tweeting the link http://hnsl.mn/fightdiabetes

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 bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Back to (Parallel) Basics: Do you really want to do that? or Why doesn't the new Parallel.For support BigInteger?

April 22, 2010 Comment on this post [17] Posted in Back to Basics | Programming | VS2010
Sponsored By

why doesn't the new parallel.for support BigInteger?Got an interesting question on Twitter, and got a fabulous answer in email from Stephen Toub, who happens to be my most favorite multi-threaded person. Here's the question. "why doesn't the new parallel.for support BigInteger?"

It's an interesting question for a few reasons. First, it's interesting because it's a question about the new parallel stuff in .NET 4 and Visual Studio 2010 that lets the developer take parallel problems that would be very hard and makes them extremely easy. For example, you can basically take a straight for loop and often make it run in parallel on multiple-cores. This is huge.

Second, speaking of huge things, BigInteger is huge. Extremely. How big? Unbounded. Like, arbitrarily large. I'd have preferred BigAssInteger, but that's offensive, so stop asking for it. ;)

Here's Stephen's emailed answer with my added commentary.

"I know of no real scenarios that require such a large, dense iteration space and that could stay running for long enough on a single box.  Parallel.For does provide built-in support for Int64, which affords up to 2^64 iterations.  If you were able to run such a loop where each iteration of the loop took a nanosecond to process (i.e. a billion iterations per second), it would take something like 500 years to complete on a single core.  Even with a hundred cores in a single box this would take five years to complete."

He is extremely kind. Notice how he says "why the hell would you want to do that" without making me feel bad? The man's a teacher. Not only that, he offers an alternative that would run for a half-millennium without any judgment that my problem space might be wrong. He should be a college professor.

Second, if you really do need this support, it’s achievable with Parallel.ForEach and either iterators or a custom Partitioner<T>.  For example, with iterators, you can write a handy method:

static IEnumerable<BigInteger> Range(BigInteger fromInclusive, BigInteger toExclusive)
{

for(BigIntegeri=fromInclusive; i<toExclusive; i++) yield return i;
}
What? After telling me it's not desirable and I don't really want to do it, he actually DOES it. That's hot.

and then consume it in a method like:

public static void ParallelFor(BigInteger fromInclusive, BigInteger toExclusive, Action<BigInteger> body)
{
Parallel.ForEach(Range(fromInclusive,toExclusive), body);
}

which you can then use like:

ParallelFor(new BigInteger(from), new BigInteger(to), i=>
{
// ... loop body here ...
});

Finally, I’d love to understand if lack of BigInteger support is actually causing this customer issues, or if they’re just curious. And if it’s actually problematic, what’s the scenario?

Then, after all this he asks if there's a scenario for this that he might not have thought of. You can't know everything, so he wants to double check to make sure the library he worked on does everything the customer wants.

My man-crush on this dude couldn't be any bigger. Now if Stephen would just return my calls. The bromance continues. ;)

Hope you enjoyed this sample, and big thanks to @amarciniec for the great question.

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 bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Towards a Smaller .NET 4 - Details on the Client Profile and Downloading .NET

April 21, 2010 Comment on this post [35] Posted in VS2010
Sponsored By

NOTE: All this info is for programmers/developers. If you just If you want .NET just to run stuff, just go get the 800k Web Installer for .NET 4 and you're all set. It'll do the rest. Now, that said...

Almost two years ago I blogged about how Microsoft was trying to make the size of the .NET Framework smaller and smaller. That day I made a site called http://www.smallestdotnet.com to help folks find the smallest download possible for their system.

I just noticed a post on the WPF Perf and .NET Client Profile blog that goes into a LOT of detail on how the .NET 4 Client Profile makes things smaller.

Before, the .NET 3.5 SP1 Client Profile was a good idea, but it wasn't really a first class citizen. It wonly worked on x86 and machines that didn't have .NET on them already. Some amount of time you'd end up having to get the full .NET install anyway. They say the focus on .NET 4 is on getting Client Applications to run as fast as possible with as few bits as possible.

Check this out from Jossef Goldberg's blog: "Unlike the NET 3.5 SP1 Client Profile, NET4 Client Profile is:"

  • Supported on all OS that Full is
  • Supported for x86 & x64
  • Client Profile is *the* framework that will be available on Windows Update for desktops
  • Supported in all aspect of VS (e.g. targeting, deployment project, etc)
  • Is the default target in almost all VS10 Client Project Templates (Winforms, WPF, VSTO, etc)

So that's good to know. They are committed to this and this will be the .NET 4 that gets distributed via Windows Update later this year. The general idea is that they avoid installing things you don't need a client machine. That means they won't install ASP.NET on your Mom's computer just because she wants a game. Also, the .NET 4 Client profile is a proper subset of the .NET 4 "Full" Framework.

Here's the numbers:

 

3.5 SP1

4.0 RTM

32 bit Client Profile

Online: 28 MB
Offline: 255MB
28.8 MB
32 + 64 bit Client Profile N/A 41 MB
32 bit Full N/A 35.3 MB
32 + 64 bit Full N/A 48.1 MB
32 + ia64 bit Full N/A 51.7 MB
32 + 64 + ia64 bit Full 231 MB N/A

And the chart. Seems like a return to simplicity. I'm glad they're listening. I remember harping on this, as I'm sure you did, Dear Reader, over the last few years.

image_2

On to the where...

Downloads - Where can I get the NET4 Client Profile?

One more time, know that this info is for developers. If you want .NET just to run stuff, just go get the 800k Web Installer and you're all set. It'll do the rest.

These downloads are for folks who might want to redistribute the .NET 4 Framework with their software, perhaps offline.

  • Both x86 and x64:
    • Client: dotNetFx40_Client_x86_x64.exe (41 MB): This is the Client Profile SKU that you must install on any supported 64-bit OS. This will also install on any supported 32-bit OS. Your app could run in WOW64 if it was compiled w/ "32-bit" flag or as 64-bit if you compile with "AnyCPU" or "64-bit" flags.
      If you are redistributing the Client Profile with your application you most likely want to redist this package as it can install on both 32 and 64 bit OS’s.
    • Full: dotNetFx40_Full_x86_x64.exe (48.1 MB): This is the Full Framework SKU that you must install on any supported 64-bit OS. This will also install on any supported 32-bit OS.
      If you are redistributing the Full Framework with your application you most likely want to redist this package as it can install on both 32 and 64 bit OS’s.
  • Just x86:
    • Client: dotNetFx40_Client_x86.exe (28.8 MB): This is the Client Profile SKU that you could use to install on any supported 32-bit OS.  Choose this only if all your users are running 32 bit OS. (in most times this will not be your case…)
    • Full: dotNetFx40_Full_x86.exe (35.3 MB): This is the Full Framework SKU that you could use to install on any supported 32-bit OS. Choose this only if all your users are running 32 bit OS (in most times this will not be your case…)
  • Full Web Bootstrapper for Online Scenarios:
    • NET 4 RTM Web Bootstrapper: This is what you want to install if you need NET4 Full and you are online. This will detect your OS and processor architecture and will install the appropriate Framework.
  • Client Web Bootstrapper for Online Scenarios:
    • NET 4 Client Profile RTM Web Bootstrapper: This is what you want to install if you need NET4 Client Profile and you are online. This will detect your OS and processor architecture and will install the appropriate Client Profile.

Enjoy.

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 bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Team Hanselman and Diabetes Walk 2010

April 20, 2010 Comment on this post [46] Posted in Diabetes
Sponsored By

Donate to Team Hanselman and help Fight DiabetesI'm here to ask you a personal favor, Dear Reader.

Please donate to Team Hanselman and help us reach our Goal of raising $50,000 to Fight Diabetes...

...during this year's Step Out to Fight Diabetes by the American Diabetes Association.

SHORT LINK: Please tweet and spread this link! http://hnsl.mn/fightdiabetes

DONATE HERE: http://hanselman.com/fightdiabetes/donate

This is a technical blog, but I'm not just a technical person only full of source code and pomposity. I've been a Type 1 Diabetic using Insulin every day to survive for 15 years. I've worn an Insulin Pump for 10 years. Here's a stat for you, unless I'm hit by a truck, Diabetics die of Diabetes, not old age.

This is my story. I will be posting videos and information about the diabetic experience about once a month over the summer.

If you aren't familiar with Diabetes, perhaps my explanation on how Diabetes works using an analogy of an Airplane and the above statistics will help you understand how personally painful this disease is.

Paradigm Revel Insulin Pump Two months before my 21st birthday I started peeing a lot. A LOT. Like I was drinking four 2-liter bottles of Sprite a day and was still thirsty beyond belief. We'd just had a family photo taken and I was 130lbs on a 5'11" frame (for those of you outside the US, that's thin.) I was wasting away and looked like death. My father, a Portland Firefighter and Paramedic for thirty years smelled the sugar on my breath and sent me right away to the hospital where my blood glucose level was higher than the meter could read...and it's supposed to be under 100mg/dl.

I spent that spring learning how to give myself shots, four a day, along with a regiment of pills. Twelve years later I have no side effects, knock on wood. Not everyone is that lucky. I recently went to a funeral of a high-school friend who was the exact same age and succumbed to Type 1 Diabetes.

I currently take three shots a day of Symlin while also wearing an Insulin Pump 24-hours a day, even while I sleep. The pump saves me from an additional six shots a day, which I took for 8 years before the pump. I test my blood sugar by pricking my finger between 8 and 10 times a day - that's about 54,750 finger pricks so far, and miles to go before I sleep.

I consider myself lucky though. My 91-year old grandmother's neighbor friend in the 1920's, before Insulin was widely used (it was discovered in 1921) ate nothing but lettuce and eventually died in childhood. I have friends who have been diabetic for nearly 50 years and had to boil large-gauge needles on the stove before injecting themselves with Pork-derived insulin, basing their decisions on a once-a-day urine check to check their blood glucose level.

Diabetes is endemic. Here's some stats from the NIH:

  • Total: 20.8 million people—7 percent of the population—have diabetes.
    • Diagnosed: 14.6 million people
    • Un-diagnosed: 6.2 million people
  • 1.5 million new cases of diabetes were diagnosed in people aged 20 years or older in 2005.
    • Diabetes was the sixth leading cause of death listed on U.S. death certificates in 2002.
  • Diabetes is the leading cause of new cases of blindness among adults aged 20 to 74 years.
  • Diabetes is the leading cause of kidney failure, accounting for 44 percent of new cases in 2002.
  • About 60 to 70 percent of people with diabetes have mild to severe forms of nervous system damage.

I tell you this not to scare you, or ask for pity. I tell you this because it's the painful truth. It sucks, and it sucks big time. I am constantly and consistently afraid that my son will face this disease in his lifetime. God help the children who get Type 1 diabetes. I was hardly prepared at 21, I can just now begin to imagine what a parent of a 2 or 3 year old would go through after a diagnosis like that. I'm even afraid to say it out loud, it's that unspeakable.

The Goal

This year Team Hanselman, led by myself and my wife, Mo, who had this whole idea, will be walking to fight diabetes on Sept 12, 2010. We have set a goal of raising US$50,000. We can do twice that I say.

If only 5000 of you, that's 10% of you, dear readers, gave US$10 to this cause, we've met our Team Goal. If only 1000 give US$50, well, you get the idea. If you can't donate, that's OK. Post about this on your blog, spread the URL http://www.hanselman.com/fightdiabetes or http://hnsl.mn/fightdiabetes put some of our Diabetes "Flair" on your site!

Last year this time, there were over 5000 people subscribing to this blog (for the technical content, I assume) - this year there are over 14,000.

A Personal Favor to Me

My Insulin Pump Perhaps you've searched the web and found my blog useful in the past or you've seen me speak at a conference or local user's group. Or, you've hung out here for years (this blog started in April 2002!). Maybe you're a blogger yourself and useDasBlog. Perhaps you've visited my Blog Archives and found them useful, or you read the ASP.NET MVC book or ASP.NET 4 book. Perhaps you listen to my podcast.

If you've ever thought about giving a 'tip' to this blog, here's your chance to make that tip tax-deductible! (if you're in the US) You can also paypal your donation to the email address that is "scott (a t ) hanselman.com" and I will personally deliver 100% of your money myself.

And please, donate now. In the US, donations are Tax-Deductible and go directly to the ADA. If you like, you can PayPal me and I'll deliver the money myself and I'll match it.

Team Hanselman Diabetes "Blog Flair" and Badges

Please feel free to spread this flair or post them on your blog, and link them to this easy to remember link:http://www.hanselman.com/fightdiabetes. It'll bring folks right here to this site.

TeamHanselmanSmallBanner  teamhanselmanlargebanne

If you want to create a better flair, like the one that Jon Galloway created, send it to me, or put a link in the comments and I'll add it to this page for others to use!

LINKING NOTE: http://www.hanselman.com/fightdiabetes brings you here, and http://www.hanselman.com/fightdiabetes/donate takes you straight to the donation site.

SHORT LINK: Please tweet and spread this link! http://hnsl.mn/fightdiabetes

Thanks for your patient attention, we now return you to our regular blogging schedule.

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 bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

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