After reading James’ story just now, I’m so glad that a Windows Home Server is a new addition to my home.  It’s funny…about 4 years ago I think I had 6 active machines in my house.  Now we’re down to my work laptop, my MacBook, my wife’s laptop and a new desktop for my wife’s photography and graphics stuff.  Okay, I guess that’s not down much, but they all aren’t “active” that much anymore.

Back then I had no backup strategy.  In fact, I’ve still got a laptop drive that clicks that I’m destined to get the data off of!  I’ve heard so much about Home Server though and James’ story isn’t the first.  Over the past 4 months I think I’ve heard about 10 similar stories.  Hardware went bad and within a few hours it was as if nothing happened.  I almost pulled the trigger on a Home Server last month, but was hinted to wait.  I read all the reviews about previous HP models and how people thought they were great but the first thing they did was upgrade drive and memory.

HP EX487 imageThis month HP release the EX487 Home Server.  This is a 64-bit machine with 1.5TB of storage and 2GB RAM.  It basically sits idle with subtle blue lights until tragedy may strike.  And even if it doesn’t strike, it’s now serving an extremely important role!  My experience this first week has been great.  The setup was amazingly simple sans one issue.  I use OpenDNS at home and had to use manual host file modifications to find my server on some of my machines…not a big issue.  Other than that it was literally plug it in, connect to the LAN and configure (which was basically to give it a name). 

On each machine I wanted connected I installed the agent software and it immediately started backing up.  Oh, and my MacBook?  Yeah, that too!  Home Server can serve as a Time Machine drive for your Mac…it’s awesome.  Now all my machines are just automatically backed up without thinking of it!  I also moved all my media (MP3, Video, Pictures) to that server for safety and the EX487 can stream music and your iTunes library if desired (yes even DRM music they claim).  The one other feature I liked about it was automatic integration with Amazon S3 storage.  I know JungleDisk has a plugin for Home Server as well, but the new models come with this feature installed.  So I have reliable local backup and can push my critical data to Amazon S3 for “offsite” storage in the event of catastrophe (did I mention my neighbors house burned down 2 weeks ago?).

Machines backup list

The initial backups took a lot longer than expected (especially the MacBook), but I don’t have gigabit ethernet at home and I did one over wireless.  After they completed though, now everyday it just gathers anything new and puts it in the vault.  I love it…no thinking for me.  You can even configure wake-on-LAN to start a backup if your machine supports it.  So far I can’t find anything I don’t like about it at all.  And all the stories I’ve heard make me want to try to break something just so I can restore it.  Actually, one thing it can be used for is disk imaging – create your “paved” machine and save that backup off permanently…I’m going to be doing that soon with Windows 7.

There are two new models and from my shopping I felt Amazon had the best deal (both as price/shipping and as a reputable retailer).  The HP EX485 sells for less but is also less space (750GB).  That’s about the only difference.  I figured the incremental cost for double the space was worth it.  In hindsight it may not have been considering you can get a 1TB drive for about $100 now (I added one of those as well for a total of 2.5TB storage).  Either way the HP EX485 or the HP EX487 would be a great choice.  Plug it in, configure it, forget about it.  So far I concur with others that this will be a worthwhile investment for the home!

If you’re like me then you probably are more geekier than you are artistic.  I don’t think of myself AT ALL as a designer, but rather one who appreciates both good design and good user centric design.  You may look at this site here and say it doesn’t, and that is okay…I’m trying my best :-).

Smashing Magazine logoBut often I find that I need some tweaks, icons, templates, application design inspiration for a Silverlight application, whatever and just want to do it myself.  I’ve found the one place now where I start to look and be inspired: SmashingMagazine.com.  If you’ve never been there, go and subscribe now if you are interested in design.  Over the past year I’ve found it to be one of the most amazing sites for inspiration and design resources that I’ve added to my toolbox.  Of all the feeds I subscribe to, I can count on the syndicated content coming from them to be 99.999% inspiring and helpful.  I find myself adding almost everything they send to my delicious bookmark list!

Here are some of my favorites and examples (most recent):

And there is so much more.  I look at their Inspiration and Freebies links a lot for aggregation of some of the best stuff.  The great thing is also to pay attention to the end of each article.  The writers are doing an excellent job appending highly relevant information to the topic.  They don’t just show you their top 50 favorite photo blogs, but the related information shows you links on how they were created and where to get more information.

Smashing Magazine has been a daily resource for me for useful tools, resources and inspiration…I highly suggest you add it to your feed list or bookmarks…I am sure it will be a great resource for you as well!

Yesterday a minor update to the Silverlight 2 runtime was released.  You may see terms of “GDR 1” floating around.  That’s pretty much an internal term at Microsoft referred to as “general distribution release” – yeah, I know we have a lot of random terms.  Think of it just as an incremental update.  If you are curious for Silverlight’s entire release history, you can view that here.

So what’s in it?  Well, nothing earth shattering if you were expecting feature updates.  There were some needed fixes based on customer feedback that we included in this update (which is version 2.0.40115.0).  Basically I would bucket it into a simple list for you:

  • Various accessibility fixes relating to UIAutomation
  • Fixes for certain anti-virus vendors scanning algorithms
  • Much needed fix for OSX platform when users modify their font locations (i.e., people with font management tools usually)
  • Bug in IsolatedStorage quota increasing when the user’s display language is set to one that Silverlight has not been localized to

That’s about it…no new controls, nothing suddenly going to make you amazed and shocked.  But it was a needed release to fix these issues. 

So what should you do?  Depends. 

If you are a consumer…

You really shouldn’t need to do anything unless you are specifically experiencing one of the issues above.  Web developers using Silverlight and needing their user’s to have this update will update their site and let you know.  There isn’t a huge need to rush out as an end-user and download the update.  Besides, if you have it configured to automatically update, then in due time you’ll get the update through that mechanism and won’t have to do anything.  If you absolutely want to be on top of things, then feel free to grab the latest updated runtime by visiting the download link.

If you are a developer…

If you are directly affected by the changes above then you should update your application.  There are really two things you need to do:

For the latter note this is a simple change.  Update your “MinRuntimeVersion” attribute in your hosting page/content to ensure that end users have the latest runtime version for your application.  Again, you should only really need/want to do this proactively if you (or your users) are directly affected by the updates in this release!  Here’s how you’d do it.

NOTE: Even though you update the developer runtime the Visual Studio project templates are not updated to set the default runtime version to the updated version so each new Silverlight project using those templates will still reference minRuntimeVersion=”2.0.31005.0” – if you want to change that you can modify the template.

UPDATE: How to modify the default value of the template

I’ve received some errors myself after changing this, so while it sounded like a good idea :-), I can’t recommend altering this reg value to the updated version – if I find out why, I’ll post here.

I got some questions about exactly how you would get the default web templates to change the generated test pages to emit the updated version number.  Since these are pages in a web project and not the Silverlight project, it isn’t easily found.  In fact, that value gets pulled from a registry setting.  The setting is at (removing the Wow6432Node if you are not on 64-bit Windows):

   1: [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Silverlight\v2.0\ReferenceAssemblies]
   2: "SLRuntimeInstallVersion"="2.0.40115.0"

and you need to change the value to match what you want that to be.  Again, this is not a required step at all.

As a reminder, messing with your registry can be dangerous if you have no idea what you are doing.  Backup your reg keys, don’t blame me if something goes wrong :-).

If you are using the ASP.NET Silverlight control you’d modify the MinimumVersion and AutoUpgrade attributes:

   1: <asp:Silverlight ID="Xaml1" AutoUpgrade="true" runat="server" 
   2:                 Source="~/ClientBin/SilverlightApplication3.xap" 
   3:                 MinimumVersion="2.0.40115.0" Width="100%" Height="100%" />

If you are using the <object> tag instantiation you’d modify the minRuntimeVersion and autoUpgrade attributes in the <object> tag for your Silverlight application:

   1: <param name="minRuntimeVersion" value="2.0.40115.0" />
   2: <param name="autoUpgrade" value="true" />

If you are using Silverlight.js to create the object you’d modify the version attribute when passing it in to the properties parameter of the createObject function (sample):

   1: Silverlight.createObject(
   2:             "ClientBin/SilverlightApplication1.xap",  // source
   3:             silverlightControlHost,  // parent element
   4:             "slPlugin",  // id for generated object element
   5:             {
   6:                 width: "100%", height: "100%", background: "white", 
   7:                 version:"2.0.40115.0"
   8:             },
   9:             { onError: onSLError, onLoad: onSLLoad },
  10:             "param1=value1,param2=value2", 
  11:             "context"    // context helper for onLoad handler.
  12:         );

That’s it!  Hope this helps.  The team is diligently working on Silverlight 3!

test

weird



ijustine Bio

The big news in the Silverlight developer world today is the release of Prism v2 (also called the Composite Application Guidance).  So what is this?

Prism guidance is a set of tools, samples, references and written guidance to help you more easily build modular applications.  Generally the “modular” application will feature several screens, flexible user interaction and role-based behavior.  Composite applications using these patterns are meant to be loosely coupled and contain independently evolving pieces that can work together.  So in the Prism 2 release you are provided:

  • Composite Application Library
  • Reference Implementation (Stock Trader application)
  • 9 Quick starts
  • 26 How-to’s
  • Documentation and written guidance on the UI patterns and client architectures you may face

There has been much talk about the Model-View-ViewModel (MVVM) pattern for Windows Presentation Foundation (WPF)and Silverlight development.  The Prism release adapts this model (refers to this as the presentation model to match what some other pattern documentation in the greater technology world uses) in the reference implementation of the Stock Trader application.

NOTE: The Stock Trader application is a reference implementation of the composite application guidance.  It isn’t meant to actually server real stock trading, but was inspired by those similar scenarios.

Prism 2 is an evolution from a July 2008 release that was primarily for WPF applications.  This new release brings updates and those concepts to Silverlight, including an implementation of commanding in Silverlight as well as demonstration of the use of input validation using these concepts.

For a walk through of some of the concepts and a brief discussion from the Patterns and Practices program management team, watch the latest Continuum show about Prism with Blaine Wastell.  This is a great development evolution for line-of-business application developers.  Check it out!