Developer Notebook Bloghttp://daveweaver.net/(none)en-usTue, 15 Apr 2008 15:31:50 GMTConnectServer Sites 1.8.5223.2david.weaver@missionresearch.comdavid.weaver@missionresearch.comhttp://daveweaver.net/notebook,trackback,MoreProgrammingCheatSheetshttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,MoreProgrammingCheatSheetshttp://daveweaver.net/notebook,commentview,MoreProgrammingCheatSheetshttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=fb672d57-92f4-4162-afbd-17f7c77bdd42

image I've linked to a couple cheat sheets in the past (Powershell and CSS), but I've run across a post that lists a bunch for different languages and frameworks. Most of them are available as PDFs. See webtecker.com.

 

The image is from a VisiBone advertisement. That company sells some great cheat sheets and cheat books.

More Programming Cheat Sheetshttp://daveweaver.net/notebook,permalink,MoreProgrammingCheatSheetshttp://daveweaver.net/notebook,permalink,MoreProgrammingCheatSheetsTue, 15 Apr 2008 15:31:50 GMT<p><a href="http://daveweaver.net/media/blog/WindowsLiveWriter/MoreProgrammingCheatSheets_A211/image_2.png"><img style="border-right: 0px; border-top: 0px; margin: 0px 20px 20px 0px; border-left: 0px; border-bottom: 0px" height="209" alt="image" src="http://daveweaver.net/media/blog/WindowsLiveWriter/MoreProgrammingCheatSheets_A211/image_thumb.png" width="166" align="left" border="0" /></a> I've linked to a couple cheat sheets in the past (<a href="http://daveweaver.net/notebook,permalink,PowerShellCheatSheet" target="_blank">Powershell</a> and <a href="http://daveweaver.net/notebook,permalink,CSSCheatSheets" target="_blank">CSS</a>), but I've run across a post that lists a bunch for different languages and frameworks. Most of them are available as PDFs. See <a href="http://webtecker.com/2008/04/14/programing-cheat-sheets/" target="_blank">webtecker.com</a>. </p> <p>&#160; </p> <p>The image is from a <a href="http://www.visibone.com/" target="_blank">VisiBone</a> advertisement. That company sells some great cheat sheets and cheat books. </p>http://daveweaver.net/notebook,commentview,MoreProgrammingCheatSheetsprogramming;tools;web
http://daveweaver.net/notebook,trackback,ExplanationsInPlainEnglishhttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,ExplanationsInPlainEnglishhttp://daveweaver.net/notebook,commentview,ExplanationsInPlainEnglishhttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=13a73293-3472-4313-916d-a4e9a44faec1

Here's a unique take on video tutorials used to explain some tougher topics. This video in particular explains Wikis. Produced by CommonCraft. Can't get any simpler than this and to me it does a great job explaining the subject.

 

Explanations In Plain Englishhttp://daveweaver.net/notebook,permalink,ExplanationsInPlainEnglishhttp://daveweaver.net/notebook,permalink,ExplanationsInPlainEnglishTue, 18 Sep 2007 22:46:02 GMT<p>Here's a unique take on video tutorials used to explain some tougher topics. This video in particular explains Wikis. Produced by <a title="CommonCraft" href="http://www.youtube.com/user/leelefever" target="_blank">CommonCraft</a>. Can't get any simpler than this and to me it does a great job explaining the subject. </p> <p><embed src="http://www.youtube.com/v/-dnL00TdmLY" width="425" height="350" type="application/x-shockwave-flash" wmode="transparent"> </p> <p>&nbsp; </p>>http://daveweaver.net/notebook,commentview,ExplanationsInPlainEnglishmisc;web
http://daveweaver.net/notebook,trackback,HighScalabilityByAmazonhttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,HighScalabilityByAmazonhttp://daveweaver.net/notebook,commentview,HighScalabilityByAmazonhttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=c086f635-22bc-4a96-8435-2c092917ae13

imageHere's an interesting write-up that summarizes several sources of information about Amazon and high scalability systems. I thought some of the bullet points were pretty insightful...

  • Between 100-150 services are accessed to build a page.
  • Take it for granted stuff fails, that's reality, embrace it. For example, go more with a fast reboot and fast recover approach.
  • Work from the customer backward. Focus on value you want to deliver
    for the customer. Start with a press release of what features the user will see and work backwards to check that you are building something valuable.
  • Use measurement and objective debate to separate the good from the bad. Referred to as getting rid of the influence of the HiPPO's, the highest paid people in the room. This is done with techniques like A/B testing and Web Analytics. If you have a question about what you should do, code it up, let people use it, and see which alternative gives you the results you want.
High Scalability By Amazonhttp://daveweaver.net/notebook,permalink,HighScalabilityByAmazonhttp://daveweaver.net/notebook,permalink,HighScalabilityByAmazonTue, 18 Sep 2007 22:38:56 GMT<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 0px 20px 20px; border-right-width: 0px" height="43" alt="image" src="http://daveweaver.net/media/blog/WindowsLiveWriter/HighScalabilityByAmazon_10657/image_1.png" width="185" align="right" border="0"> <a title="Amazon Architecture" href="http://highscalability.com/amazon-architecture" target="_blank">Here's an interesting write-up</a> that summarizes several sources of information about Amazon and high scalability systems. I thought some of the bullet points were pretty insightful... </p> <ul> <li>Between 100-150 services are accessed to build a page. <li>Take it for granted stuff fails, that's reality, embrace it. For example, go more with a fast reboot and fast recover approach. <li>Work from the customer backward. Focus on value you want to deliver<br>for the customer. Start with a press release of what features the user will see and work backwards to check that you are building something valuable. <li>Use measurement and objective debate to separate the good from the bad. Referred to as getting rid of the influence of the HiPPO's, the highest paid people in the room. This is done with techniques like A/B testing and <acronym>Web Analytics</acronym>. If you have a question about what you should do, code it up, let people use it, and see which alternative gives you the results you want.</li> </ul>http://daveweaver.net/notebook,commentview,HighScalabilityByAmazonprogramming;web
http://daveweaver.net/notebook,trackback,MicrosoftSurfaceAndSilverlighthttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,MicrosoftSurfaceAndSilverlighthttp://daveweaver.net/notebook,commentview,MicrosoftSurfaceAndSilverlighthttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=d48b8bf5-030d-4c5c-9e76-f6089d5fe8b1

3-4-View.jpgIf you haven't seen all the video clips for Microsoft Surface yet you'll have to check them out. Surface should be really cool and should enable some giant steps forward with user interfaces. Your typical windowed application will be a thing of the past and that should also carry over into desktop computers. I'd expect some multi-touch flat panels for your PC too.

From what I've read, all the apps shown on Surface were written using WPF on the .Net Framework. Silverlight is another technology from Microsoft that brings WPF and .Net to the web browser (cross-platform even). Silverlight is the re-branded WPF/E code and is the next big thing from MS as far as the visual web goes. We used Silverlight (then WPF/E) for a SalesWorks demo back in February. Think of Silverlight as Microsoft's version of Flash.

image To see something really neat, check out this demo of a Surface-style app using Silverlight in your web browser. You'll need to install the Silverlight Alpha to see it (just click thru the steps to install it). Yeah, that's a video file running in there. It's really amazing. You just want to put your fingers to the screen and start dragging the pictures around. 

Microsoft Surface And Silverlighthttp://daveweaver.net/notebook,permalink,MicrosoftSurfaceAndSilverlighthttp://daveweaver.net/notebook,permalink,MicrosoftSurfaceAndSilverlightFri, 24 Aug 2007 00:54:19 GMT<p><img style="margin: 0px 0px 20px 20px" height="189" alt="3-4-View.jpg" src="http://blog.scifi.com/tech/Pics/3-4-View.jpg" width="240" align="right">If you haven't seen all the video clips for Microsoft Surface yet you'll have to <a title="Microsoft Surface" href="http://www.microsoft.com/surface/" target="_blank">check them out</a>. Surface&nbsp;should be&nbsp;really cool and should enable some giant steps forward with user interfaces. Your typical windowed application will be a thing of the past and&nbsp;that should also&nbsp;carry over into desktop computers. I'd expect some multi-touch flat panels for your PC too. </p> <p>From <a href="http://weblogs.asp.net/scottgu/archive/2007/05/30/microsoft-surface-and-wpf.aspx" target="_blank">what I've read</a>, all the apps shown on Surface were written&nbsp;using WPF on the .Net Framework. Silverlight is another technology from Microsoft that brings WPF and .Net to the web browser (cross-platform even). Silverlight is&nbsp;the re-branded WPF/E code and is the next big thing from MS as far as the visual web goes. We used Silverlight (then WPF/E) for a <a title="Using WPF/E In A Product Demo" href="http://daveweaver.net/notebook,permalink,UsingWPFEInAProductDemo" target="_blank">SalesWorks demo</a> back in February. Think of Silverlight as Microsoft's version of Flash. </p> <p><a href="http://daveweaver.net/media/blog/WindowsLiveWriter/MicrosoftSurfaceAndSilverlight_125C5/image.png" atomicselection="true"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 20px 20px 0px; border-right-width: 0px" height="151" alt="image" src="http://daveweaver.net/media/blog/WindowsLiveWriter/MicrosoftSurfaceAndSilverlight_125C5/image_thumb.png" width="181" align="left" border="0"></a> To see something really neat, <a title="Silverlight &quot;Surface&quot; Demo" href="http://silverlight.schwarz-interactive.de/ex04/default.html" target="_blank">check out this demo</a> of a Surface-style app using Silverlight in your web browser. You'll need to install the Silverlight Alpha to see it (just click thru the steps to install it). Yeah, that's a video file running in there. It's really amazing. You just want to put your fingers to the screen and start dragging the pictures around.&nbsp; </p> <p> <div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:7807a026-e575-491d-967b-1f2e51dbd842" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px;display: none;">Technorati tags: <a href="http://technorati.com/tags/Microsoft" rel="tag">Microsoft</a>, <a href="http://technorati.com/tags/Surface" rel="tag">Surface</a>, <a href="http://technorati.com/tags/Silverlight" rel="tag">Silverlight</a>, <a href="http://technorati.com/tags/WPF" rel="tag">WPF</a>, <a href="http://technorati.com/tags/SalesWorks" rel="tag">SalesWorks</a> </div>>http://daveweaver.net/notebook,commentview,MicrosoftSurfaceAndSilverlightdesktop;programming;web
http://daveweaver.net/notebook,trackback,TextEffectsUsingPhotoshophttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,TextEffectsUsingPhotoshophttp://daveweaver.net/notebook,commentview,TextEffectsUsingPhotoshophttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=081abb57-3d69-4332-aba9-ddcf5ba3160e

image The PhotoshopRoadmap.com website has put together a collection of techniques that can be applied to text in Photoshop. Some nice ones and then some that will make you gag, but it's a good display of effects that can be accomplished in the program.

Link to article

Text Effects Using Photoshophttp://daveweaver.net/notebook,permalink,TextEffectsUsingPhotoshophttp://daveweaver.net/notebook,permalink,TextEffectsUsingPhotoshopThu, 09 Aug 2007 13:10:35 GMT<p><a href="http://daveweaver.net/media/blog/WindowsLiveWriter/TextEffectsUsingPhotoshop_8109/image.png" atomicselection="true"><img style="border-right: 0px; border-top: 0px; margin: 0px 20px 20px 0px; border-left: 0px; border-bottom: 0px" height="160" alt="image" src="http://daveweaver.net/media/blog/WindowsLiveWriter/TextEffectsUsingPhotoshop_8109/image_thumb.png" width="240" align="left" border="0"></a> The <a title="Photoshop Roadmap" href="http://www.photoshoproadmap.com" target="_blank">PhotoshopRoadmap.com</a> website has put together a collection of techniques that can be applied to text in Photoshop. Some nice ones and then some that will make you gag, but it's a good display of effects that can be accomplished in the program. </p> <p><a title="photoshop text effects" href="http://www.photoshoproadmap.com/Photoshop-blog/2007/07/22/the-best-80-photoshop-text-effects-on-the-web/" target="_blank">Link to article</a> </p>http://daveweaver.net/notebook,commentview,TextEffectsUsingPhotoshopdesign;web
http://daveweaver.net/notebook,trackback,50UsefulWebsitesForGettingThingsDonehttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,50UsefulWebsitesForGettingThingsDonehttp://daveweaver.net/notebook,commentview,50UsefulWebsitesForGettingThingsDonehttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=9ee73070-ae58-41e6-bde5-5d36329aa9ae

image I ran across a blog post this morning that has a list of some useful websites. From sites that help you manage your calendar and tasks to sites that help you be a more organized parent to sites that help you organize your company. Maybe just check them out because they represent a nice cross-section of the web apps that are being built today. One of my favorites for web design was http://hitask.com.

50+ Useful Websites For Getting Things Donehttp://daveweaver.net/notebook,permalink,50UsefulWebsitesForGettingThingsDonehttp://daveweaver.net/notebook,permalink,50UsefulWebsitesForGettingThingsDoneThu, 02 Aug 2007 15:57:15 GMT<p><img style="border-right: 0px; border-top: 0px; margin: 0px 20px 20px 0px; border-left: 0px; border-bottom: 0px" alt="image" src="http://daveweaver.net/media/blog/WindowsLiveWriter/50UsefulWebsitesForGettingThingsDone_A819/image_1.png" align="left" border="0"> I ran across a <a title="Mashable.Com" href="http://mashable.com/2007/07/27/gtd-ninja/" target="_blank">blog post</a> this morning that has a list of some useful websites. From sites that help you manage your calendar and tasks to sites that help you be a more organized parent to sites that help you organize your company. Maybe just check them out because they represent a nice cross-section of the web apps that are being built today. One of my favorites for web design was <a title="http://hitask.com" href="http://hitask.com">http://hitask.com</a>. </p>http://daveweaver.net/notebook,commentview,50UsefulWebsitesForGettingThingsDoneweb
http://daveweaver.net/notebook,trackback,CreateAScaledThumbnailImageInASPNEThttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,CreateAScaledThumbnailImageInASPNEThttp://daveweaver.net/notebook,commentview,CreateAScaledThumbnailImageInASPNEThttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=7eb589a0-fd07-4a10-8dd4-9ce22825e05a

I occasionally get questions on how I do my thumbnail images for my photo gallery. This site runs on ASP.NET and the photo section automatically creates thumbnails of JPEG images on the fly. In the real world, a web site like flckr.com wouldn't work if thumbnails were always created on the fly, but for my small amount of pictures it works just fine. Below is the code that creates a scaled thumbnail from a JPEG path and writes it back to the browser. This code is used within an HTTP handler that just serves thumbnails.

A couple points of interest. The code encodes the thumbnail at 75% quality. If the original image is smaller than the requested width and height, it won't scale it but will send it to the browser.

 

   1:  PublicSub ScaledImage(ByVal Path AsString, ByVal Width AsInteger, ByVal Height AsInteger)
   2:  Dim originalWidth AsInteger
   3:  Dim originalHeight AsInteger
   4:  Dim image As bitmap = bitmap.FromFile(Path)
   5:   
   6:      originalHeight = image.Height
   7:      originalWidth = image.Width
   8:   
   9:  Dim heightRatio AsDouble = CDbl(originalHeight / originalWidth)
  10:  Dim widthRatio AsDouble = CDbl(originalWidth / originalHeight)
  11:   
  12:  Dim desiredHeight AsInteger = Height
  13:  Dim desiredWidth AsInteger = Width
  14:   
  15:      Height = desiredHeight
  16:      Width = Convert.ToInt32(Height * widthRatio)
  17:  If Width > desiredWidth Then
  18:          Width = desiredWidth
  19:          Height = Convert.ToInt32(Width * heightRatio)
  20:  EndIf
  21:   
  22:  If Height > originalHeight Or Width > originalWidth Then
  23:          Height = originalHeight
  24:          Width = originalWidth
  25:   
  26:          image.Save(Response.OutputStream, ImageFormat.Jpeg)
  27:  Else
  28:  Dim thumb As Graphics
  29:  Dim bitmap As bitmap = New bitmap(Width, Height)
  30:          thumb = Graphics.FromImage(bitmap)
  31:          thumb.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic
  32:          thumb.DrawImage(image, 0, 0, Width, Height)
  33:   
  34:  Dim codec As ImageCodecInfo = GetEncoderInfo("image/jpeg")
  35:   
  36:  Dim eps As EncoderParameters = New EncoderParameters(1)
  37:          eps = New EncoderParameters
  38:          eps.Param(0) = New EncoderParameter(Encoder.Quality, CLng(75))
  39:   
  40:          bitmap.Save(Response.OutputStream, codec, eps)
  41:   
  42:          thumb.Dispose()
  43:          bitmap.Dispose()
  44:          eps.Dispose()
  45:  EndIf
  46:      image.Dispose()
  47:   
  48:      Response.ContentType = "image/pjpeg"
  49:      Response.End()
  50:  EndSub
  51:   
  52:  PublicFunction GetEncoderInfo(ByVal MimeType AsString) As ImageCodecInfo
  53:  Dim myEncoders() As ImageCodecInfo = ImageCodecInfo.GetImageEncoders()
  54:  Dim myEncoder As ImageCodecInfo
  55:  ForEach myEncoder In myEncoders
  56:  If myEncoder.MimeType = MimeType Then
  57:  Return myEncoder
  58:  EndIf
  59:  Next
  60:  ReturnNothing
  61:  EndFunction

Works for me.Create A Scaled Thumbnail Image In ASP.NEThttp://daveweaver.net/notebook,permalink,CreateAScaledThumbnailImageInASPNEThttp://daveweaver.net/notebook,permalink,CreateAScaledThumbnailImageInASPNETMon, 26 Feb 2007 21:54:44 GMT<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 0px 20px 20px; border-right-width: 0px" height="90" src="http://daveweaver.net/media/blog/WindowsLiveWriter/CreateAScaledThumbnailImageInASP.NET_ED4F/image%7B0%7D%5B6%5D.png" width="132" align="right" border="0"> I occasionally get questions on how I do my thumbnail images for my <a title="Photo Gallery" href="http://daveweaver.net/photos" target="_blank">photo gallery</a>. This site runs on ASP.NET and the photo section automatically creates thumbnails of JPEG images on the fly. In the real world, a&nbsp;web site like&nbsp;flckr.com&nbsp;wouldn't work if thumbnails were always created on the fly, but for my small amount of pictures it works just fine. Below is the code&nbsp;that creates a scaled thumbnail from a JPEG path and writes it back to&nbsp;the browser. This code is used within an HTTP handler that just serves thumbnails. </p> <p>A couple points of interest. The code encodes the thumbnail at 75% quality. If the original image is smaller than the requested width and height, it won't scale it but will send it to the browser. </p> <p>&nbsp; </p> <div class="csharpcode"><pre><span class="lnum"> 1: </span><span class="kwrd">Public</span> <span class="kwrd">Sub</span> ScaledImage(<span class="kwrd">ByVal</span> Path <span class="kwrd">As</span> <span class="kwrd">String</span>, <span class="kwrd">ByVal</span> Width <span class="kwrd">As</span> <span class="kwrd">Integer</span>, <span class="kwrd">ByVal</span> Height <span class="kwrd">As</span> <span class="kwrd">Integer</span>)</pre><pre><span class="lnum"> 2: </span> <span class="kwrd">Dim</span> originalWidth <span class="kwrd">As</span> <span class="kwrd">Integer</span></pre><pre><span class="lnum"> 3: </span> <span class="kwrd">Dim</span> originalHeight <span class="kwrd">As</span> <span class="kwrd">Integer</span></pre><pre><span class="lnum"> 4: </span> <span class="kwrd">Dim</span> image <span class="kwrd">As</span> bitmap = bitmap.FromFile(Path)</pre><pre><span class="lnum"> 5: </span>&nbsp;</pre><pre><span class="lnum"> 6: </span> originalHeight = image.Height</pre><pre><span class="lnum"> 7: </span> originalWidth = image.Width</pre><pre><span class="lnum"> 8: </span>&nbsp;</pre><pre><span class="lnum"> 9: </span> <span class="kwrd">Dim</span> heightRatio <span class="kwrd">As</span> <span class="kwrd">Double</span> = <span class="kwrd">CDbl</span>(originalHeight / originalWidth)</pre><pre><span class="lnum"> 10: </span> <span class="kwrd">Dim</span> widthRatio <span class="kwrd">As</span> <span class="kwrd">Double</span> = <span class="kwrd">CDbl</span>(originalWidth / originalHeight)</pre><pre><span class="lnum"> 11: </span>&nbsp;</pre><pre><span class="lnum"> 12: </span> <span class="kwrd">Dim</span> desiredHeight <span class="kwrd">As</span> <span class="kwrd">Integer</span> = Height</pre><pre><span class="lnum"> 13: </span> <span class="kwrd">Dim</span> desiredWidth <span class="kwrd">As</span> <span class="kwrd">Integer</span> = Width</pre><pre><span class="lnum"> 14: </span>&nbsp;</pre><pre><span class="lnum"> 15: </span> Height = desiredHeight</pre><pre><span class="lnum"> 16: </span> Width = Convert.ToInt32(Height * widthRatio)</pre><pre><span class="lnum"> 17: </span> <span class="kwrd">If</span> Width &gt; desiredWidth <span class="kwrd">Then</span></pre><pre><span class="lnum"> 18: </span> Width = desiredWidth</pre><pre><span class="lnum"> 19: </span> Height = Convert.ToInt32(Width * heightRatio)</pre><pre><span class="lnum"> 20: </span> <span class="kwrd">End</span> <span class="kwrd">If</span></pre><pre><span class="lnum"> 21: </span>&nbsp;</pre><pre><span class="lnum"> 22: </span> <span class="kwrd">If</span> Height &gt; originalHeight <span class="kwrd">Or</span> Width &gt; originalWidth <span class="kwrd">Then</span></pre><pre><span class="lnum"> 23: </span> Height = originalHeight</pre><pre><span class="lnum"> 24: </span> Width = originalWidth</pre><pre><span class="lnum"> 25: </span>&nbsp;</pre><pre><span class="lnum"> 26: </span> image.Save(Response.OutputStream, ImageFormat.Jpeg)</pre><pre><span class="lnum"> 27: </span> <span class="kwrd">Else</span></pre><pre><span class="lnum"> 28: </span> <span class="kwrd">Dim</span> thumb <span class="kwrd">As</span> Graphics</pre><pre><span class="lnum"> 29: </span> <span class="kwrd">Dim</span> bitmap <span class="kwrd">As</span> bitmap = <span class="kwrd">New</span> bitmap(Width, Height)</pre><pre><span class="lnum"> 30: </span> thumb = Graphics.FromImage(bitmap)</pre><pre><span class="lnum"> 31: </span> thumb.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic</pre><pre><span class="lnum"> 32: </span> thumb.DrawImage(image, 0, 0, Width, Height)</pre><pre><span class="lnum"> 33: </span>&nbsp;</pre><pre><span class="lnum"> 34: </span> <span class="kwrd">Dim</span> codec <span class="kwrd">As</span> ImageCodecInfo = GetEncoderInfo(<span class="str">"image/jpeg"</span>)</pre><pre><span class="lnum"> 35: </span>&nbsp;</pre><pre><span class="lnum"> 36: </span> <span class="kwrd">Dim</span> eps <span class="kwrd">As</span> EncoderParameters = <span class="kwrd">New</span> EncoderParameters(1)</pre><pre><span class="lnum"> 37: </span> eps = <span class="kwrd">New</span> EncoderParameters</pre><pre><span class="lnum"> 38: </span> eps.Param(0) = <span class="kwrd">New</span> EncoderParameter(Encoder.Quality, <span class="kwrd">CLng</span>(75))</pre><pre><span class="lnum"> 39: </span>&nbsp;</pre><pre><span class="lnum"> 40: </span> bitmap.Save(Response.OutputStream, codec, eps)</pre><pre><span class="lnum"> 41: </span>&nbsp;</pre><pre><span class="lnum"> 42: </span> thumb.Dispose()</pre><pre><span class="lnum"> 43: </span> bitmap.Dispose()</pre><pre><span class="lnum"> 44: </span> eps.Dispose()</pre><pre><span class="lnum"> 45: </span> <span class="kwrd">End</span> <span class="kwrd">If</span></pre><pre><span class="lnum"> 46: </span> image.Dispose()</pre><pre><span class="lnum"> 47: </span>&nbsp;</pre><pre><span class="lnum"> 48: </span> Response.ContentType = <span class="str">"image/pjpeg"</span></pre><pre><span class="lnum"> 49: </span> Response.<span class="kwrd">End</span>()</pre><pre><span class="lnum"> 50: </span><span class="kwrd">End</span> <span class="kwrd">Sub</span></pre><pre><span class="lnum"> 51: </span>&nbsp;</pre><pre><span class="lnum"> 52: </span><span class="kwrd">Public</span> <span class="kwrd">Function</span> GetEncoderInfo(<span class="kwrd">ByVal</span> MimeType <span class="kwrd">As</span> <span class="kwrd">String</span>) <span class="kwrd">As</span> ImageCodecInfo</pre><pre><span class="lnum"> 53: </span> <span class="kwrd">Dim</span> myEncoders() <span class="kwrd">As</span> ImageCodecInfo = ImageCodecInfo.GetImageEncoders()</pre><pre><span class="lnum"> 54: </span> <span class="kwrd">Dim</span> myEncoder <span class="kwrd">As</span> ImageCodecInfo</pre><pre><span class="lnum"> 55: </span> <span class="kwrd">For</span> <span class="kwrd">Each</span> myEncoder <span class="kwrd">In</span> myEncoders</pre><pre><span class="lnum"> 56: </span> <span class="kwrd">If</span> myEncoder.MimeType = MimeType <span class="kwrd">Then</span></pre><pre><span class="lnum"> 57: </span> <span class="kwrd">Return</span> myEncoder</pre><pre><span class="lnum"> 58: </span> <span class="kwrd">End</span> <span class="kwrd">If</span></pre><pre><span class="lnum"> 59: </span> <span class="kwrd">Next</span></pre><pre><span class="lnum"> 60: </span> <span class="kwrd">Return</span> <span class="kwrd">Nothing</span></pre><pre><span class="lnum"> 61: </span><span class="kwrd">End</span> <span class="kwrd">Function</span></pre> </div> <br>Works for me.http://daveweaver.net/notebook,commentview,CreateAScaledThumbnailImageInASPNETprogramming;web
http://daveweaver.net/notebook,trackback,DEMO07IsOverAndSalesWorksIsJustBeginninghttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,DEMO07IsOverAndSalesWorksIsJustBeginninghttp://daveweaver.net/notebook,commentview,DEMO07IsOverAndSalesWorksIsJustBeginninghttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=e5e981ce-4dc2-4165-885e-576cb2e10e42

Our team is headed back to good old Lancaster County today. Things will be back to normal on Monday with momentum building for the first SalesWorks release. Until then there are a couple things you can do to help us get SalesWorks out the door.

1. You can download Beta 1 from the Mission Research web site and send us any feedback you have.

2. Read and contribute to the SalesWorks Beta blog.

3. Stay tuned to my Mission Research CTO blog. My team is responsible for building SalesWorks and now that we have a beta launched I will be covering it and the impending release in that blog.

4. Read up on more SalesWorks stuff on Steve Fafel's blog. He is the dev team's head honcho and will most likely show some cool stuff that can be done to extend SalesWorks.

DEMO '07 Is Over and SalesWorks Is Just Beginninghttp://daveweaver.net/notebook,permalink,DEMO07IsOverAndSalesWorksIsJustBeginninghttp://daveweaver.net/notebook,permalink,DEMO07IsOverAndSalesWorksIsJustBeginningFri, 02 Feb 2007 14:40:32 GMT<p><a href="http://daveweaver.net/media/blog/WindowsLiveWriter/DEMO07IsOverandSalesWorksIsJustBeginning_878E/mission_ful%5B1%5D%5B2%5D.jpg" atomicselection="true"><img style="border-right: 0px; border-top: 0px; margin: 0px 20px 20px 0px; border-left: 0px; border-bottom: 0px" height="196" src="http://daveweaver.net/media/blog/WindowsLiveWriter/DEMO07IsOverandSalesWorksIsJustBeginning_878E/mission_ful%5B1%5D_thumb.jpg" width="240" align="left" border="0"></a> Our team is headed back to good old Lancaster County today. Things will be back to normal on Monday with momentum building for the first SalesWorks release. Until then there are a couple things you can do to help us get SalesWorks out the door. </p> <p>1. You can <a title="download Beta 1" href="http://www.missionresearch.com/salesworks/salesworks_free_trial_dl.html" target="_blank">download Beta 1</a> from the Mission Research web site and send us any feedback you have. </p> <p>2. Read and contribute to the <a title="SalesWorks Beta blog" href="http://devhero.com/blogs/salesworks_beta_blog/default.aspx" target="_blank">SalesWorks Beta blog</a>. </p> <p>3. Stay tuned to my <a title="Dave Weaver's Mission Research CTO Blog" href="http://daveweaver.net/mission">Mission Research CTO blog</a>. My team is responsible for building SalesWorks and now that we have a beta launched I will be covering it and the impending release&nbsp;in that blog. </p> <p>4. Read up on&nbsp;more SalesWorks stuff on <a title="Steve Fafel's blog" href="http://www.stevefafel.com/mission,permalink,SalesWorksMeetsANeed" target="_blank">Steve Fafel's blog</a>. He is the dev team's head honcho and will most likely show some cool stuff that can be done to extend SalesWorks. </p>http://daveweaver.net/notebook,commentview,DEMO07IsOverAndSalesWorksIsJustBeginningdesktop;tools;web
http://daveweaver.net/notebook,trackback,SalesWorksSolidCRMAndBusinessOptimizationToolhttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,SalesWorksSolidCRMAndBusinessOptimizationToolhttp://daveweaver.net/notebook,commentview,SalesWorksSolidCRMAndBusinessOptimizationToolhttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=3ce6e99d-0809-4feb-b9ea-63866a196247

I was forwarded a great writeup on SalesWorks. Jim Forbes writes about "Demo 2007's Tasty Treats" and about a quarter of the way through he talks about the software and the opportunity he sees for it in the small business marketplace.

"Salesworks is a great set of tools that fits tongue and groove with an emerging critical CRM tools for small business professionals"

SalesWorks: Solid CRM and Business Optimization Toolhttp://daveweaver.net/notebook,permalink,SalesWorksSolidCRMAndBusinessOptimizationToolhttp://daveweaver.net/notebook,permalink,SalesWorksSolidCRMAndBusinessOptimizationToolFri, 02 Feb 2007 14:18:52 GMT<p>I was forwarded a great writeup on SalesWorks. <a title="Jim Forbes writes about &quot;Demo 2007's Tasty Treats&quot;" href="http://forbesontech.typepad.com/my_weblog/" target="_blank">Jim Forbes writes about "Demo 2007's Tasty Treats"</a> and about a quarter of the way through he talks about the software and the opportunity he sees for it in the small business marketplace. </p> <blockquote> <p>"Salesworks is a great set of tools that fits tongue and groove with an emerging critical CRM tools for small business professionals" </p></blockquote>http://daveweaver.net/notebook,commentview,SalesWorksSolidCRMAndBusinessOptimizationTooldesktop;tools;web
http://daveweaver.net/notebook,trackback,SalesWorksDay1Wrapuphttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,SalesWorksDay1Wrapuphttp://daveweaver.net/notebook,commentview,SalesWorksDay1Wrapuphttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=db941177-a443-46c5-a3ef-0fdd0bed66ab

The SalesWorks demo went well and is now online. Here are some links to the Demo bloggers...

Conferenzablog - Demo07: Opening Morning Session

InfoWorld - Demo update - the tech keeps getting better

InformationWeek - Demo '07 Conference Showcases

PCMag - SalesWorks Could Make Sales Less Work

Here is one quote I liked the best...

"SalesWorks looks like it could be the next-gen Salesforce.com application, bringing a new level of ease – and offline – use."

Right now these are blogs are just reporting on the demo itself. Soon we should have some feedback on the actual beta which can be downloaded now. This is an early beta and will change based on feedback we get. Please try it and let us know what you think.

SalesWorks Day 1 Wrapuphttp://daveweaver.net/notebook,permalink,SalesWorksDay1Wrapuphttp://daveweaver.net/notebook,permalink,SalesWorksDay1WrapupThu, 01 Feb 2007 14:41:08 GMT<p><a href="http://daveweaver.net/media/blog/WindowsLiveWriter/SalesWorksDay1Wrapup_882F/pipeline%5B2%5D.jpg" atomicselection="true"><img style="border-right: 0px; border-top: 0px; margin: 0px 0px 20px 20px; border-left: 0px; border-bottom: 0px" height="180" src="http://daveweaver.net/media/blog/WindowsLiveWriter/SalesWorksDay1Wrapup_882F/pipeline_thumb.jpg" width="240" align="right" border="0"></a> The SalesWorks demo went well and <a title="SalesWorks Demo Video" href="http://www.demo.com/demonstrators/demo2007/91321.php" target="_blank">is now online</a>. Here are some links to the Demo bloggers... </p> <p><a title="Demo07: Opening Morning Session" href="http://conferenzablog.typepad.com/conferenza/2007/01/demo07_opening_.html" target="_blank">Conferenzablog - Demo07: Opening Morning Session</a> </p> <p><a title="Demo update - the tech keeps getting better" href="http://weblog.infoworld.com/realitycheck/archives/2007/01/demo_update_the.html" target="_blank">InfoWorld - Demo update - the tech keeps getting better</a> </p> <p><a title="Demo '07 Conference Showcases" href="http://www.informationweek.com/hardware/showArticle.jhtml?articleID=197002257" target="_blank">InformationWeek - Demo '07 Conference Showcases</a> </p> <p><a title="SalesWorks Could Make Sales Less Work" href="http://www.pcmag.com/article2/0,1895,2088963,00.asp" target="_blank">PCMag - SalesWorks Could Make Sales Less Work</a> </p> <p>Here is&nbsp;one quote I liked the best... </p> <blockquote> <p>"SalesWorks looks like it could be the next-gen Salesforce.com application, bringing a new level of ease – and offline – use." </p></blockquote> <p>Right now these are blogs are just reporting on the demo itself. Soon we should have some feedback on the actual beta which can be <a title="Download SalesWorks Beta" href="http://www.missionresearch.com/salesworks/salesworks_free_trial_dl.html">downloaded now</a>. This is an early beta and will change based on feedback we get. Please try it and let us know what you think. </p>http://daveweaver.net/notebook,commentview,SalesWorksDay1Wrapupdesktop;tools;web
http://daveweaver.net/notebook,trackback,UsingWPFEInAProductDemohttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,UsingWPFEInAProductDemohttp://daveweaver.net/notebook,commentview,UsingWPFEInAProductDemohttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=51a0d0c5-0e30-47bb-a1f8-8437fc634643

I have been evaluating WPF/E for add-ins to my company's products. One screen we have been thinking about for a while is a lead pipeline that shows lead stages in a graphical way. Our products leverage IE for the presentation layer and it is tough to do a compelling pipeline with just DHTML.

 

WPF/E brings a lot to the table. First of all it is very easy to incorporate into our screens, I simply insert the control code and link in the aghost.js file. It also enables us to easily separate the markup from the script. The HTML file orchestrates the screen while the script and XAML reside in separate files. I also like the division of labor. As shown in these screenshots I've coded the pipeline screen as a segmented pipe along the top of the screen. As the developer I just created simple XAML objects that represented the different elements of the pipeline, nothing too fancy. I then hook up my script to control click-thrus and mouse-overs (the second screen shows how the mouse-over affects the pipeline). In production I would then had the XAML source over to a designer and they would take my rudimentary design and create something beautiful from it. They'd send me the updated XAML file and I just insert back into the development tree and everything should still work with changes. In this case I was the designer too, but you should start to see how this should make development easier.

 

Another thing that I experimented with was trying to use the same XAML objects and provide an entirely different look and feel for the screen. The final screen shot shows how that turned out. This pipeline demo is very simple, but it starts to paint a picture of how WPF and WPF/E can be used in software. I can imagine that things are not quite as simple when more complex functionality is needed. When trying to change the pipeline into a vertical funnel, I did have to adjust some of my code to make it work.

 

I did try to use Microsoft's new Expression Design application to create the XAML I used in this demo. I designed the circular pipeline segments and exported them as WPF/E XAML code. That sort of worked, but It generated everything as complex paths and was hard to modify by hand. By the time I had finished the demo, I ended up starting from scratch with the XAML objects. Still, the tools are great and they look very promising.  

Using WPF/E In A Product Demohttp://daveweaver.net/notebook,permalink,UsingWPFEInAProductDemohttp://daveweaver.net/notebook,permalink,UsingWPFEInAProductDemoWed, 31 Jan 2007 19:29:20 GMT<p><a href="http://daveweaver.net/media/blog/WindowsLiveWriter/UsingWPFEInAProductDemo_9DAD/image04.png" atomicselection="true"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 0px 20px 20px; border-right-width: 0px" height="180" src="http://daveweaver.net/media/blog/WindowsLiveWriter/UsingWPFEInAProductDemo_9DAD/image0_thumb2.png" width="240" align="right" border="0"></a>I have been evaluating WPF/E for add-ins to my company's products. One screen we have been thinking about for a while is a lead pipeline that shows lead stages in a graphical way. Our products leverage IE for the presentation layer and&nbsp;it is&nbsp;tough to do a compelling pipeline with just DHTML. </p> <p>&nbsp; </p> <p><a title="Getting Started with WPF/E" href="http://msdn2.microsoft.com/en-gb/library/bb190632.aspx" target="_blank">WPF/E brings a lot to the table</a>. First of all it is very easy to incorporate into our screens, I simply insert the control code and link in the aghost.js file. It also enables us to easily separate the markup from the script. The HTML file orchestrates the screen while the script and XAML reside in separate files. I also like the division of labor. As shown in these screenshots I've coded the pipeline screen as a segmented pipe along the top of the screen. <a href="http://daveweaver.net/media/blog/WindowsLiveWriter/UsingWPFEInAProductDemo_9DAD/image015.png" atomicselection="true"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 20px 0px 20px 20px; border-right-width: 0px" height="180" src="http://daveweaver.net/media/blog/WindowsLiveWriter/UsingWPFEInAProductDemo_9DAD/image0_thumb7.png" width="240" align="right" border="0"></a>As the developer I just created simple XAML objects that represented the different elements of the pipeline, nothing too fancy. I then hook up my script to control click-thrus and mouse-overs (the second screen shows how the mouse-over affects the pipeline). In production I would then had the XAML source over to a designer and they would take my rudimentary design and create something beautiful from it. They'd send me the updated XAML file and I just insert back into the development tree and everything should still work with changes. In this case I was the designer too, but you should start to see how this should make development easier. </p> <p>&nbsp; </p> <p>Another thing that I experimented with was trying to use the same XAML objects and provide an entirely different look and feel for the screen. The final screen shot shows how that turned out. This pipeline demo is very simple, but&nbsp;it starts to paint a picture of how WPF and WPF/E can be used in software. I can imagine that things are not quite as simple when more complex functionality is needed. When trying to change the pipeline into a vertical funnel, I did have to adjust some of my code to make it work.<a href="http://daveweaver.net/media/blog/WindowsLiveWriter/UsingWPFEInAProductDemo_9DAD/image018.png" atomicselection="true"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 20px 0px 20px 20px; border-right-width: 0px" height="180" src="http://daveweaver.net/media/blog/WindowsLiveWriter/UsingWPFEInAProductDemo_9DAD/image0_thumb8.png" width="240" align="right" border="0"></a> </p> <p>&nbsp; </p> <p>I did try to use <a title="Microsoft Expression Design" href="http://www.microsoft.com/products/expression/" target="_blank">Microsoft's new Expression Design application</a> to create the XAML I used in this demo. I designed the circular pipeline segments and <a title="Export WPF/E XAML from Expression Design" href="http://daveweaver.net/notebook,permalink,ExportWPFECompatibleXAMLUsingExpressionDesign">exported them as WPF/E XAML code</a>. That sort of worked, but It generated everything as complex paths and was hard to modify by hand.&nbsp;By the time I had finished the demo, I ended up starting from scratch with the XAML objects.&nbsp;Still, the tools are great and they look very promising. &nbsp; </p>http://daveweaver.net/notebook,commentview,UsingWPFEInAProductDemodesign;desktop;programming;tools;web
http://daveweaver.net/notebook,trackback,MomentsAwayFromSalesWorksDemohttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,MomentsAwayFromSalesWorksDemohttp://daveweaver.net/notebook,commentview,MomentsAwayFromSalesWorksDemohttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=94cfd704-c029-4491-b661-94f9570ad1f1

We're 30 minutes away from the big demo. Our Mission Research/SalesWorks video page has surfaced. They will post a video of the on-stage presentation to that web page when it's available. For us poor soles that were left back at the office, this is our only view of the excitement. I see our JIT marketing team has made some new SalesWorks logos available too.

Moments Away From SalesWorks Demohttp://daveweaver.net/notebook,permalink,MomentsAwayFromSalesWorksDemohttp://daveweaver.net/notebook,permalink,MomentsAwayFromSalesWorksDemoWed, 31 Jan 2007 17:31:31 GMT<p><img style="margin: 0px 0px 20px 20px" height="28" src="http://daveweaver.net/media/blog/WindowsLiveWriter/MomentsAwayFromSalesWorksDemo_B01F/image%7B0%7D%5B5%5D.png" width="116" align="right"> We're 30 minutes away from the big demo. Our Mission Research/SalesWorks video <a title="DEMO Video Archives" href="http://www.demo.com/demonstrators/demo2007/91321.php" target="_blank">page has surfaced</a>. They will post a video of the on-stage presentation to that web page when it's available. For us poor soles that were left back at the office, this is our only view of the excitement. I see our JIT marketing team has made some new SalesWorks logos available too. </p>http://daveweaver.net/notebook,commentview,MomentsAwayFromSalesWorksDemodesktop;tools;web
http://daveweaver.net/notebook,trackback,SalesWorksAtDemohttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,SalesWorksAtDemohttp://daveweaver.net/notebook,commentview,SalesWorksAtDemohttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=134c45d1-9e87-4083-ab31-695ba4b70b67

Today is the big day. At 9:55 PST Charlie and Mary Pat will be going on stage to introduce and demonstrate SalesWorks to an audience of over 700 attendees. We launched our GiftWorks product there a couple years ago and have had a lot of success with it. I think we'll see the same kind of success with SalesWorks.  I will try to summarize some of the press that we get over the next few days.

We've worked with Blodgett Communications for the launch of SalesWorks. Renee Blodgett, the founder of the PR company, has posted an article that illustrates the problem we are trying to solve with SalesWorks...

"Frustrated with the poor user interface and clumsiness of existing contact management solutions like GoldMine and ACT and the fact that I'm not really the right business model to go with a more expensive Salesforce.com online only solution, I'm left without a useful product. Meanwhile, my contacts sit in three apps (Outlook, Filemaker, and GroupMail), since individually, they do not give me the combined functionality I need. Sigh."

I think she's right on with that and it's exactly what we are hearing from the other small businesses we've been talking with.

SalesWorks At Demohttp://daveweaver.net/notebook,permalink,SalesWorksAtDemohttp://daveweaver.net/notebook,permalink,SalesWorksAtDemoWed, 31 Jan 2007 14:26:19 GMT<p><a href="http://daveweaver.net/media/blog/WindowsLiveWriter/SalesWorksAtDemo_84B3/image%7B0%7D%5B4%5D.png" atomicselection="true"><img style="border-right: 0px; border-top: 0px; margin: 0px 20px 20px 0px; border-left: 0px; border-bottom: 0px" height="103" src="http://daveweaver.net/media/blog/WindowsLiveWriter/SalesWorksAtDemo_84B3/image%7B0%7D_thumb%5B2%5D.png" width="100" align="left" border="0"></a> Today is the big day. At 9:55 PST Charlie and Mary Pat will be going on stage to introduce and demonstrate SalesWorks to an audience of over 700 attendees. We <a title="GiftWorks launch at Demo" href="http://www.demo.com/demonstrators/demo2005/54217.php" target="_blank">launched our GiftWorks product</a> there a couple years ago and have had a lot of success with it. I think we'll see the same kind of success with SalesWorks.&nbsp; I will try to summarize some of the press that we get over the next few days. </p> <p>We've worked with Blodgett Communications for the launch of SalesWorks. <a title="About Renee's Blog" href="http://encounters.typepad.com/about.html" target="_blank">Renee Blodgett</a>, the founder of the PR company, has <a title="SalesWorks Merges Web and Desktop" href="http://www.downtheavenue.com/2007/01/salesworks_merg.html" target="_blank">posted an article</a> that illustrates the problem we are trying to solve with SalesWorks... </p> <blockquote> <p>"Frustrated with the poor user interface and clumsiness of existing contact management solutions like GoldMine and ACT and the fact that I'm not really the right business model to go with a more expensive Salesforce.com online only solution, I'm left without a useful product. Meanwhile, my contacts sit in three apps (Outlook, Filemaker, and GroupMail), since individually, they do not give me the combined functionality I need. Sigh." </p></blockquote> <p>I think she's right on&nbsp;with that and it's exactly what we are hearing from the other small businesses we've been talking with. </p>http://daveweaver.net/notebook,commentview,SalesWorksAtDemodesktop;tools;web
http://daveweaver.net/notebook,trackback,SalesWorksTakesOnSalesforcecomWithHybridWebDesktopApphttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,SalesWorksTakesOnSalesforcecomWithHybridWebDesktopApphttp://daveweaver.net/notebook,commentview,SalesWorksTakesOnSalesforcecomWithHybridWebDesktopApphttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=f59be54c-8391-47ed-a370-dfb2798e5424

That's a pretty big statement, but that's what our first SalesWorks article was titled. We'll see how everything pans out with SalesWorks vs. Salesforce.com, but either way I think SalesWorks is going to be a big hit for those small businesses out there that want/need to manage their customer info with ease.

One of the key factors will be cost. From the article...

"The cost is either free or $100 upward, but it's not clear how the cost structure works yet. In any case SalesWorks may well find a niche for businesses who don't want to give up the relative stability and security of a desktop app for contact management, but also want to take advantage of the Web. While Salesforce is a purely browser-based service, SalesWorks is betting on its low cost and desktop app rich interface as ways to differentiate itself."

SalesWorks was launched this morning at Demo '07.

SalesWorks Takes On Salesforce.com With Hybrid Web/Desktop Apphttp://daveweaver.net/notebook,permalink,SalesWorksTakesOnSalesforcecomWithHybridWebDesktopApphttp://daveweaver.net/notebook,permalink,SalesWorksTakesOnSalesforcecomWithHybridWebDesktopAppTue, 30 Jan 2007 22:49:17 GMT<p><a href="http://daveweaver.net/media/blog/WindowsLiveWriter/SalesWorksTak.comWithHybridWebDesktopApp_FA98/salesworks_report12.jpg" atomicselection="true"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 0px 20px 20px; border-right-width: 0px" height="180" src="http://daveweaver.net/media/blog/WindowsLiveWriter/SalesWorksTak.comWithHybridWebDesktopApp_FA98/salesworks_report1_thumb.jpg" width="240" align="right" border="0"></a> That's a pretty big statement, but that's what <a title="SalesWorks Takes On Salesforce.com With Hybrid Web/Desktop App" href="http://www.readwriteweb.com/archives/salesworks_takes_on_salesforce.php" target="_blank">our first SalesWorks article</a> was titled. We'll see how everything pans out with SalesWorks vs. Salesforce.com, but either way I think SalesWorks is going to be a big hit for those small businesses out there that want/need to manage their customer info with ease. </p> <p>One of the key factors will be cost. From the article... </p> <blockquote> <p>"The cost is either free or $100 upward, but it's not clear how the cost structure works yet. In any case SalesWorks may well find a niche for businesses who don't want to give up the relative stability and security of a desktop app for contact management, but also want to take advantage of the Web. While Salesforce is a purely browser-based service, SalesWorks is betting on its low cost and desktop app rich interface as ways to differentiate itself." </p></blockquote> <p>SalesWorks was <a title="SalesWorks For Your Small Business" href="http://daveweaver.net/notebook,permalink,SalesWorksForYourSmallBusiness">launched this morning at Demo '07</a>. </p>http://daveweaver.net/notebook,commentview,SalesWorksTakesOnSalesforcecomWithHybridWebDesktopAppdesktop;tools;web
http://daveweaver.net/notebook,trackback,SalesWorksForYourSmallBusinesshttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,SalesWorksForYourSmallBusinesshttp://daveweaver.net/notebook,commentview,SalesWorksForYourSmallBusinesshttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=7d7104e4-faf2-441d-966f-4a2b481906fe

This week our company, Mission Research is launching a cool new product for the SOHO market called SalesWorks. The launch is at DEMO '07 and will be presented on stage. SalesWorks can be easily used to manage contacts and sales leads. It's based on the same platform as our current product GiftWorks which is selling like hotcakes to the small non-profits. More information will be available as the DEMO conference happens so stay tuned. Here's the press release from our web site.

SalesWorks For Your Small Businesshttp://daveweaver.net/notebook,permalink,SalesWorksForYourSmallBusinesshttp://daveweaver.net/notebook,permalink,SalesWorksForYourSmallBusinessTue, 30 Jan 2007 22:40:42 GMT<p><a href="http://daveweaver.net/media/blog/WindowsLiveWriter/SalesWorksForYourSmallBusiness_F896/image06.png" atomicselection="true"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 20px 20px 0px; border-right-width: 0px" height="53" src="http://daveweaver.net/media/blog/WindowsLiveWriter/SalesWorksForYourSmallBusiness_F896/image0_thumb2.png" width="240" align="left" border="0"></a> This week our company, <a title="Mission Research" href="http://www.missionresearch.com/" target="_blank">Mission Research</a> is launching a cool new product for the SOHO market called SalesWorks. The launch is at <a title="DEMO '07" href="http://www.demo.com/" target="_blank">DEMO '07</a> and will be presented on stage. SalesWorks can be easily used to manage contacts and sales leads. It's based on the same platform as our current product GiftWorks which is selling like hotcakes to the small non-profits. More information will be available as the DEMO conference happens so stay tuned. Here's the <a title="SalesWorks Merges the Web and Desktop 2.0 into Powerful Contact Management Solution; Design Revolutionizes Workflow for SOHO Market" href="http://www.missionresearch.com/company_newspress.html" target="_blank">press release from our web site</a>. </p>http://daveweaver.net/notebook,commentview,SalesWorksForYourSmallBusinessdesktop;tools;web
http://daveweaver.net/notebook,trackback,ElfYourselfViralMarketingFromWhohttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,ElfYourselfViralMarketingFromWhohttp://daveweaver.net/notebook,commentview,ElfYourselfViralMarketingFromWhohttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=1c42362e-7de6-49f3-94f3-6daea9f16387

I got a very funny email from a coworker's wife the other day. The email pointed me to the Elf Yourself website which allows you to insert someone's face into a dancing elf (in this case it was Steve's face). Very funny and I went on and forwarded it to several other people.  

A few days later I was talking with Steve about it and how very viral the idea was, however we were both referring to it as the Staple's website. It turns out that it's an Office Max marketing campaign. Nice.

Elf Yourself: Viral Marketing From Who?http://daveweaver.net/notebook,permalink,ElfYourselfViralMarketingFromWhohttp://daveweaver.net/notebook,permalink,ElfYourselfViralMarketingFromWhoThu, 04 Jan 2007 19:02:06 GMT<p><a href="http://daveweaver.net/media/blog/WindowsLiveWriter/ElfYourselfViralMarketingFromWho_C552/image02.png" atomicselection="true"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 0px 20px 20px; border-right-width: 0px" height="240" src="http://daveweaver.net/media/blog/WindowsLiveWriter/ElfYourselfViralMarketingFromWho_C552/image0_thumb.png" width="179" align="right" border="0"></a> I got a very funny email from&nbsp;a coworker's wife the other day.&nbsp;The email pointed me to&nbsp;the <a title="Elf Yourself: Steve Fafel" href="http://www.elfyourself.com/?userid=f9893ded27dfabd11cd213cG06122818" target="_blank">Elf Yourself website</a>&nbsp;which allows you to insert someone's face into a dancing elf (in this case it was <a title="Steve Fafel" href="http://www.stevefafel.com/personal" target="_blank">Steve's</a> face). Very funny and I went on and forwarded it to several other people. &nbsp; </p> <p>A few days later&nbsp;I was talking with Steve about it and how very viral the idea was, however we were both referring to it as the <strong>Staple's</strong> website. It turns out that it's an <strong>Office Max</strong> marketing campaign. Nice. </p>http://daveweaver.net/notebook,commentview,ElfYourselfViralMarketingFromWhomisc;web
http://daveweaver.net/notebook,trackback,CSSCheatSheetshttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,CSSCheatSheetshttp://daveweaver.net/notebook,commentview,CSSCheatSheetshttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=b55e22de-7721-4eca-bde5-5eebaa8c47e8

Here are a few links that you may find helpful if you're into web design using CSS. I'm always finding myself searching for the right values for different CSS properties.

http://www.ilovejackdaniels.com/cheat-sheets/css-cheat-sheet/ is the one of the two cheat sheets I keep handy. It has a good list of common CSS properties. The other one that I've recently started referring to is http://lesliefranke.com/files/reference/csscheatsheet.html. This one contains both properties and common values.

Visibone also makes a CSS Example Chart that I have yet to find useful, but you may. Visibone actually has a bunch of quick reference sheets for web developers. I have used their JavaScript Quick Reference and that proved to be helpful.

CSS Cheat Sheetshttp://daveweaver.net/notebook,permalink,CSSCheatSheetshttp://daveweaver.net/notebook,permalink,CSSCheatSheetsThu, 04 Jan 2007 16:11:53 GMT<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 20px 20px 0px; border-right-width: 0px" height="160" src="http://daveweaver.net/media/blog/WindowsLiveWriter/CSSCheatSheets_E513/csscheatsheet4.jpg" width="150" align="left" border="0"> Here are a few links that you may find helpful if you're into web design using CSS. I'm always finding myself searching for the right values for different&nbsp;CSS properties. </p> <p><a title="http://www.ilovejackdaniels.com/cheat-sheets/css-cheat-sheet/" href="http://www.ilovejackdaniels.com/cheat-sheets/css-cheat-sheet/">http://www.ilovejackdaniels.com/cheat-sheets/css-cheat-sheet/</a>&nbsp;is the one of the two cheat sheets I keep handy. It has a good list of common CSS properties.&nbsp;The other&nbsp;one that I've recently started referring to is <a title="http://lesliefranke.com/files/reference/csscheatsheet.html" href="http://lesliefranke.com/files/reference/csscheatsheet.html">http://lesliefranke.com/files/reference/csscheatsheet.html</a>. This one contains both properties and common values. </p> <p><a title="Visibone.com" href="http://www.visibone.com" target="_blank">Visibone</a> also makes a <a title="CSS Example Chart" href="http://www.visibone.com/html/hxcht_840.jpg" target="_blank">CSS Example Chart</a>&nbsp;that I have yet to find useful, but you may. Visibone actually has a bunch of quick reference sheets for web developers. I have used their <a title="JavaScript free online quick reference" href="http://javascript-reference.info/" target="_blank">JavaScript Quick Reference</a> and that proved to be helpful. </p>http://daveweaver.net/notebook,commentview,CSSCheatSheetscss;tools;web
http://daveweaver.net/notebook,trackback,ExportWPFECompatibleXAMLUsingExpressionDesignhttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,ExportWPFECompatibleXAMLUsingExpressionDesignhttp://daveweaver.net/notebook,commentview,ExportWPFECompatibleXAMLUsingExpressionDesignhttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=86b8382c-d0a2-412a-8ab2-211d3c0e198f

In my previous post I had only been using Expression Blend and wasn't able to figure out how to get it to generate content for WPF/E. It turns out that only Expression Design can export WPF/E compatible content (thanks ADO Guy).

If you download and install Expression Design, you can create vector-based elements to include in your WPF/E-based web pages. Expression Design is very similar to Adobe Illustrator. Once you've completed your design, click on File>Export>XAML. This will prompt you for a filename then it brings up a XAML Export window like the one on the right. If you select the Document Format dropdown you can select the WPF/E format. I've tried a couple simple tests that displayed correctly in WPF/E Pad.

This is a good step and may be all we need, however I was expecting this same type of functionality with all the Expression tools. Is that coming?

Export WPF/E Compatible XAML Using Expression Designhttp://daveweaver.net/notebook,permalink,ExportWPFECompatibleXAMLUsingExpressionDesignhttp://daveweaver.net/notebook,permalink,ExportWPFECompatibleXAMLUsingExpressionDesignTue, 02 Jan 2007 15:44:59 GMT<p>In my previous post I had only been using Expression Blend and wasn't able to figure out how to get it to generate content for WPF/E. It turns out that only <a title="Download: Microsoft Expression Design December 2006 CTP" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=112D7906-CA5C-43A4-A9FD-C4E2DCA6DD1C&amp;displaylang=en" target="_blank">Expression Design</a> can export WPF/E compatible content (<a title="ADO Guy: Codename &quot;WPF/E&quot; and Expression Toolset" href="http://adoguy.com/viewrant.aspx?id=2144" target="_blank">thanks ADO Guy</a>). </p> <p><a href="http://daveweaver.net/media/blog/WindowsLiveWriter/ExportWPFECompatibleXAMLUsingExpressionD_9728/image%7B0%7D%5B5%5D.png" atomicselection="true"><img style="border-right: 0px; border-top: 0px; margin: 0px 0px 20px 20px; border-left: 0px; border-bottom: 0px" height="240" src="http://daveweaver.net/media/blog/WindowsLiveWriter/ExportWPFECompatibleXAMLUsingExpressionD_9728/image%7B0%7D_thumb%5B1%5D.png" width="178" align="right" border="0"></a> If you download and install Expression Design, you can create vector-based elements to include in your WPF/E-based web pages. Expression Design is very similar to Adobe Illustrator. Once you've completed your design, click on File&gt;Export&gt;XAML. This will prompt you for a filename then it brings up a XAML Export window like the one on the right. If you select the Document Format dropdown you can select the WPF/E format. I've tried a couple simple tests that displayed correctly in WPF/E Pad. </p> <p>This is a good step and may be all we need, however I was expecting this same type of functionality with all the Expression tools. Is that coming? </p>http://daveweaver.net/notebook,commentview,ExportWPFECompatibleXAMLUsingExpressionDesigndesign;programming;web
http://daveweaver.net/notebook,trackback,GettingStartedWithWPFEhttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,GettingStartedWithWPFEhttp://daveweaver.net/notebook,commentview,GettingStartedWithWPFEhttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=945c7be7-3814-46ae-a427-8c564a7d4213

WPF/E Example AppI first crossed paths with Windows Presentation Foundation/Everywhere (WPF/E) on Mike Harsh's blog post about the Mix '06 event in March of 2006. I knew about XAML and where Microsoft was going with their presentation layer tools, but our company creates mass-market desktop software that doesn't utilize the .Net Framework yet. This meant any XAML or WPF was off limits for us. That is until MS announced WPF/E.

In Mike Harsh's words "(WPF/E) is a cross-platform, cross-browser web technology that supports a subset of WPF XAML.  WPF/E also has a friction-free install model and the download size we’re targeting is very small.  WPF/E supports programmability through JavaScript for tight browser integration.  The WPF/E package also contains a small, cross platform subset of the CLR and .NET Framework that can run C# or VB.NET code."

So XAML and WPF can now be hosted in Internet Explorer. Since my company's desktop applications host IE for the presentation layer, then our presentation layer can take advantage of XAML and WPF. Unfortunately there was not much to be heard of WPF/E since March, but this month MS released a CTP of WPF/E.

 

where to get started

Probably the best place to get started is the WPF/E Dev Center on MSDN. Download and install the SDK so you can start trying the examples. The Dev Center has a few that you can look at. Mike harsh has also built a cool little application that let's you test your XAML code, called WPF/E Pad. Once you have the SDK installed you can run the WPF/E Pad and try some of the built in examples. After you get a feel for what can be done try entering some of your own XAML. Try copying and pasting the source from below into the bottom panel of WPF/E Pad and clicking the Load button.

 

<Canvasxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"x:Name="_037_bugs_logo"Width="1056"Height="816"><EllipseHeight="200"Width="200"Canvas.Left="30"Canvas.Top="30"Stroke="Black"StrokeThickness="10"Fill="SlateBlue"/><RectangleHeight="100"Width="100"Canvas.Left="5"Canvas.Top="5"Stroke="Black"StrokeThickness="10"Fill="SlateBlue"/><LineX1="280"Y1="10"X2="10"Y2="280"Stroke="black"StrokeThickness="5"/></Canvas>

 

You should end up with something like the screenshot to the left. The XAML creates an ellipse, a rectange and a line. This is not a very compelling example (it was taken from the MS SDK download) but it gives you something to start with. What's nice about the technology is that it allows you to interact with the XAML code using JavaScript. So you can create a bunch of objects using the XAML markup and embed it in your web page, then use JavaScript to program those objects. For example you can attach events to the XAML objects (similar to DHTML) and handle those events in your JavaScript. WPF/E Pad doesn't support event handling at the moment, so you have to take the next step and create your own web page to test out event handling. Those steps are covered in detail within the WPF/E SDK.

 

what's next?

What makes all this really interesting is how Microsoft is backing up this technology with their development tools. They've recently released an entire suite of apps to generate, manage and debug XAML. Check out their Expression Suite. I think the development tools will be able to target WPF/E versus WPF at some point. Exciting stuff.

Getting Started With WPF/Ehttp://daveweaver.net/notebook,permalink,GettingStartedWithWPFEhttp://daveweaver.net/notebook,permalink,GettingStartedWithWPFEThu, 28 Dec 2006 15:23:35 GMT<p><img style="margin: 0px 0px 20px 20px" alt="WPF/E Example App" src="http://static.flickr.com/37/116850754_f9628b295d_m.jpg" align="right" border="0" minmax_bound="true">I first crossed paths with <a title="Windows Presentation Foundation/Everywhere" href="http://msdn2.microsoft.com/en-us/asp.net/bb187358.aspx" target="_blank">Windows Presentation Foundation/Everywhere</a> (WPF/E) on <a title="WPF/E at Mix '06" href="http://blogs.msdn.com/mharsh/archive/2006/03/23/559106.aspx" target="_blank">Mike Harsh's blog post</a> about the Mix '06 event in March of 2006. I knew about XAML and where Microsoft was going with their presentation layer tools, but our company creates mass-market desktop software that doesn't utilize the .Net Framework yet. This meant any <a title="XAML Overview from MSDN" href="http://msdn2.microsoft.com/en-us/library/ms752059.aspx" target="_blank">XAML</a> or <a title="Windows Presentation Foundation" href="http://wpf.netfx3.com/" target="_blank">WPF</a> was off limits for us. That is until MS announced WPF/E. </p> <blockquote> <p>In Mike Harsh's words "(WPF/E) is a cross-platform, cross-browser web technology that supports a subset of WPF XAML.&nbsp; WPF/E also has a friction-free install model and the download size we’re targeting is very small.&nbsp; WPF/E supports programmability through JavaScript for tight browser integration.&nbsp; The WPF/E package also contains a small, cross platform subset of the CLR and .NET Framework that can run C# or VB.NET code." </p></blockquote> <p>So&nbsp;XAML and WPF can now be hosted in Internet Explorer. Since&nbsp;my company's&nbsp;desktop applications host IE for the presentation layer, then our presentation layer can take advantage of XAML and WPF. Unfortunately there was not much to be heard of WPF/E since March, but this month <a title="Download WPF/E December CTP" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=2B01EC7E-C3B8-47CC-B12A-67C30191C3AA&amp;displaylang=en" target="_blank">MS released a CTP of WPF/E</a>. </p> <p>&nbsp; </p> <p><strong>where to get started</strong> </p> <p>Probably the best place to get started is the <a title="WPF/E Dev Center" href="http://msdn2.microsoft.com/en-us/asp.net/bb187358.aspx" target="_blank">WPF/E Dev Center</a> on MSDN. Download and install the SDK so you can start trying the examples. The Dev Center has a few that you can look at. Mike harsh has also built a cool little application that let's you test your XAML code, called <a title="WPF/E Pad" href="http://www.simplegeek.com/mharsh/wpfepad/" target="_blank">WPF/E Pad</a>. Once you have the SDK installed you can run the&nbsp;WPF/E Pad and try some of the built in examples. After you get a feel for what can be done try entering some of your own XAML. Try copying and pasting the source from below into the bottom panel of WPF/E Pad and clicking the Load button. </p> <p>&nbsp; </p><pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">Canvas</span> <span class="attr">xmlns</span><span class="kwrd">="http://schemas.microsoft.com/winfx/2006/xaml/presentation"</span> <span class="attr">xmlns:x</span><span class="kwrd">="http://schemas.microsoft.com/winfx/2006/xaml"</span> <span class="attr">x:Name</span><span class="kwrd">="_037_bugs_logo"</span> <span class="attr">Width</span><span class="kwrd">="1056"</span> <span class="attr">Height</span><span class="kwrd">="816"</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;</span><span class="html">Ellipse</span> <span class="attr">Height</span><span class="kwrd">="200"</span> <span class="attr">Width</span><span class="kwrd">="200"</span> <span class="attr">Canvas</span>.<span class="attr">Left</span><span class="kwrd">="30"</span> <span class="attr">Canvas</span>.<span class="attr">Top</span><span class="kwrd">="30"</span> <span class="attr">Stroke</span><span class="kwrd">="Black"</span> <span class="attr">StrokeThickness</span><span class="kwrd">="10"</span> <span class="attr">Fill</span><span class="kwrd">="SlateBlue"</span><span class="kwrd">/&gt;</span> <span class="kwrd">&lt;</span><span class="html">Rectangle</span> <span class="attr">Height</span><span class="kwrd">="100"</span> <span class="attr">Width</span><span class="kwrd">="100"</span> <span class="attr">Canvas</span>.<span class="attr">Left</span><span class="kwrd">="5"</span> <span class="attr">Canvas</span>.<span class="attr">Top</span><span class="kwrd">="5"</span> <span class="attr">Stroke</span><span class="kwrd">="Black"</span> <span class="attr">StrokeThickness</span><span class="kwrd">="10"</span> <span class="attr">Fill</span><span class="kwrd">="SlateBlue"</span><span class="kwrd">/&gt;</span> <span class="kwrd">&lt;</span><span class="html">Line</span> <span class="attr">X1</span><span class="kwrd">="280"</span> <span class="attr">Y1</span><span class="kwrd">="10"</span> <span class="attr">X2</span><span class="kwrd">="10"</span> <span class="attr">Y2</span><span class="kwrd">="280"</span> <span class="attr">Stroke</span><span class="kwrd">="black"</span> <span class="attr">StrokeThickness</span><span class="kwrd">="5"</span><span class="kwrd">/&gt;</span> <span class="kwrd">&lt;/</span><span class="html">Canvas</span><span class="kwrd">&gt;</span></pre> <p>&nbsp; </p> <p><a href="http://daveweaver.net/media/blog/WindowsLiveWriter/GettingStartedWithWPFE_8284/image%7B0%7D%5B2%5D.png" atomicselection="true"><img style="border-right: 0px; border-top: 0px; margin: 0px 20px 20px 0px; border-left: 0px; border-bottom: 0px" height="143" src="http://daveweaver.net/media/blog/WindowsLiveWriter/GettingStartedWithWPFE_8284/image%7B0%7D_thumb.png" width="240" align="left" border="0"></a>You should end up with something like the screenshot to the left. The XAML creates an ellipse, a rectange and a line. This is not a very compelling example (it was taken from the MS SDK download) but it gives you something to start with. What's nice about the technology is that it allows you to interact with the XAML code using JavaScript. So you can create a bunch of objects using the XAML markup and embed it in your web page, then use JavaScript to program those objects. For example you can attach events to the XAML objects (similar to DHTML) and handle those events in your JavaScript. WPF/E Pad doesn't support event handling at the moment, so you have to take the next step and create your own web page to test out event handling. Those steps are covered in detail within the WPF/E SDK. </p> <p>&nbsp; </p> <p><strong>what's next?</strong> </p> <p>What makes all this really interesting is how Microsoft is backing up this technology with their development tools. They've recently released an entire suite of apps to generate, manage and debug XAML. Check out their <a title="Microsoft Expression Suite" href="http://www.microsoft.com/products/expression/en/default.mspx" target="_blank">Expression Suite</a>. I think the development tools will be able to target WPF/E versus WPF at some point. Exciting stuff. </p>http://daveweaver.net/notebook,commentview,GettingStartedWithWPFEdesign;desktop;programming;web
http://daveweaver.net/notebook,trackback,MyAttemptsAtUsingAmazonS3ForBackupshttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,MyAttemptsAtUsingAmazonS3ForBackupshttp://daveweaver.net/notebook,commentview,MyAttemptsAtUsingAmazonS3ForBackupshttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=1ecef22d-c804-41af-9c4c-0e1227690ba93

Amazon Web Services what is amazon S3

Amazon has started to monetize their technology platform as part of their Amazon Web Services (AWS). I know very little about AWS in general, but I have spent some time looking into one of their initial services: Amazon Simple Storage Service (Amazon S3). This service provides a simple web service interface to store data for a small fee. The storage service is supposed to be highly scalable, reliable and fast. You pay for what you use. They charge $.15 per GB/per month for storage and they also charge you for data transfer at $.20 per GB/per month. The service is tailored towards developers and is not intended to be used as a consumer level backup product.

using S3 for personal backups

I started looking into the service to get familiar with Amazon's services. I wanted to get a feel for their level of quality, ease of use and how practical they would be to leverage from my companies own products. S3 is something that's directly interesting to me. Personally and professionally I manage a bit of data that I never want to lose. I have applications, source code, documentation, customer data and servers that need to be backed up at work. At home I have photos, videos and personal documents that need to be backed up. Ultimately I want to write code that hooks up with Amazon's services, but for this post I want to just talk about my experiences in trying to find already written code to backup my stuff.

my current backup situation

I have a mix of machines that I need to have data backed up on. The majority of the machines are Windows-based, with two that run Linux. In my basement I have one server with half a terabyte of mirrored drive space. That machine is only used as a file server and a backup server. At different intervals throughout the week, I have my other servers and desktops (from multiple locations) sending their backup data to this machine. To make that happen I install OpenSSH and a copy of rsync on each client machine. I then use a scheduled script to securely synchronize specific client folders with the server. This has been working fine for me. It's not the easiest thing to setup, but once it's done for a machine, managing it is fairly simple and restoring is as easy as plucking the files or folders of my backup server. Since SSH and rsync are cross-platform, I can use the same technique from my Linux machines.

how does S3 fit in

To prevent data loss, I depend on the fact that my data is always in two places at one time (except my photos which exist only on the file server) and that one of those places uses a RAID for storage. Ideally, I would also like to have my most sensitive data archived away where I can't accidentally screw it up. I've looked into some commercial offsite backup products but they are fairly expensive for the amount of data I want to secure (ideally close to 200GB). I would be fine with paying the higher prices if it was my only option. Fortunately Amazon S3 seems to be a low cost option. My short term goal is to keep my rsync backups going and just synchronizing my backup server with S3. Maybe at some point I will bypass my rsync step altogether and sync directly to S3.

what am i looking for

For my purposes, I would like to find software that can allow me to automatically synchronize my backup server with S3. Here are my current factors that I'm using to choose a solution:

  • The software has to be automate-able, thru scripts or some other method.
  • I won't need to access the data very often except to verify everything is working correctly, so the software does not have to have a UI or be very feature-ful.
  • I would like to have the data stored on the S3 service in a generic format so I'm not tied to my initial choice of software. If my software is no longer usable, I should be able to retrieve my data using other software.
  • The software only has to run on Windows.
  • Ideally the software would be open-source.
  • Ideally there would be no additional fees on top of what Amazon charges.

 

what i've found

Unfortunately there are limited sources of information on S3. One of the most helpful was a blog post by Jeremy Zawodny called A List of Amazon S3 Backup Tools. Check out the comments for a good view into what's available. Amazon S3 Tools on elastic8.com. Another resource was Amazon's Solution Catalog. I haven't had much luck in getting everything I want and didn't have much luck in evaluating the ones I've tried. Below are the apps I've tried with my initial findings. I will follow up this post in a couple weeks to after I've done some more research.

  • JungleDisk - This service looks very promising and is free. It basically adds S3 as a virtual drive on your computer. You can access it like any other drive (theoretically). It's not open-source and stores data in a proprietary format, but they do have open-source code available to browse and download your data if something ever happens to them. I've tried a couple times but I could not get JungleDisk to work on Windows Server 2003. I've gotten it to work on Windows XP though and that worked fine.
  • S3 Backup - A Windows client that allows you to access S3 like in a manner similar to Windows Explorer. The client has jobs built in that allow you to run backups automatically (no scheduling yet). The software is written by one person and has frequent updates. For some reasons the beta downloads have a built-in timeout which is unusual. The author is not sure what portion of the software will be open-sourced (if any) and plans to eventually charge for part of it. I was able to browse and upload some data, but got errors when trying to create backup jobs. I'm sure the job error will be worked out in future releases, but because of it's somewhat undefined future I will have to put this app on the back burner.
  • S3Drive - Another virtual drive app like JungleDisk but from an independent developer. The software depends on the .Net Framework 2.0. To optimize the browsing thru Windows Explorer the developer chose to split the files up into chunks when storing them and uses an index file to make his flat S3 file storage appear as a folder structure. It took a couple tries to get the virtual drive to work, but once it was setup it worked very well. I saw that some people were experiencing memory leaks and communication problems with larger files (>300MB) but I have had no problems using smaller files. I've also read somewhere that there is or plans to be source code available.
  • NS3 Manager - This is a free Windows client that enables you to manage data on the S3 service. It's limited in its features (upload, download and delete only) but does store data in a generic format. It can also be used to browse the proprietary formats of the other tools mentioned here. I have not been able to find a way to automate it yet and am not sure if there's any development going on. If not something I will use for my backups, it's still a valuable too just to see what's in your data store.
  • #Sh3ll - A command shell for S3. I like this app. It's not fancy and has no UI. It's not easy to use. Event the name is hard (pronounced Sharp-Shell). And as you may have guessed from the name, it depends on the 1.1 or 2.0 .Net Framework. It reads and writes to the S3 store in a generic format and can be automated. It's not as straightforward as I would have liked. Since it's actually a shell, you have to pipe commands into it to script it. I guess that is done because calls into the service require a bit of context between calls (for example, you would need to specify the bucket, username and password for each invocation). I've had no problems so far with it. The nice thing is that the source is available (actually comes in the download) and I can change it as I see fit.

 

conclusions

I have not gone as far as doing my actual backups to S3 since I'm still in the process of evaluating the tools and the service itself. My current thoughts are to use a combination of two tools I mentioned above. For automation I can use #Sh3ll which let's me put my files on S3 in generic form. To browse and download my files with a UI I can use NS3 Manager. It would be nice to get the source of NS3, but since there is no proprietary format I'm not locked into using it. I'll let you know as I discover more.

My Attempts At Using Amazon S3 For Backupshttp://daveweaver.net/notebook,permalink,MyAttemptsAtUsingAmazonS3ForBackupshttp://daveweaver.net/notebook,permalink,MyAttemptsAtUsingAmazonS3ForBackupsWed, 22 Nov 2006 09:23:58 GMT<p><strong><img style="margin: 0px 20px 20px 0px" height="69" alt="Amazon Web Services" src="http://daveweaver.net/media/blog/WindowsLiveWriter/MyAttemptsAtUsingAmazonS3ForBackups_9312/aws_logo_tm6.gif" width="170" align="left"> what is amazon S3</strong> </p> <p><a title="Amazon.Com" href="http://www.amazon.com/" target="_blank">Amazon</a> has started to monetize their technology platform as part of their <a title="Amazon Web Services (AWS)" href="http://www.amazon.com/AWS-home-page-Money/b/ref=sc_iw_l_0_3435361_2/102-5385992-8874528?ie=UTF8&amp;node=3435361&amp;no=3435361&amp;me=A36L942TSJ2AJA" target="_blank">Amazon Web Services</a> (AWS). I know very little about AWS in general, but I have spent some time looking into one of their initial services: <a title="Amazon Simple Storage Service (Amazon S3)" href="http://www.amazon.com/S3-AWS-home-page-Money/b/ref=sc_fe_l_2/102-5385992-8874528?ie=UTF8&amp;node=16427261&amp;no=3435361&amp;me=A36L942TSJ2AJA" target="_blank">Amazon Simple Storage Service</a> (Amazon S3). This service provides a simple web service interface to store data for a small fee. The storage service is supposed to be highly scalable, reliable and fast. You pay for what you use. They charge $.15 per GB/per month for storage and they also charge you for data transfer at $.20 per GB/per month. The service is tailored towards developers and is not intended to be used as a consumer level backup product. </p> <p><strong>using S3 for personal backups</strong> </p> <p>I started looking into the service to get familiar with Amazon's services. I wanted to get a feel&nbsp;for their level of quality, ease of use and how practical they would be to leverage from my <a title="Mission Research GiftWorks" href="http://www.missionresearch.com/giftworks_main.html" target="_blank">companies own products</a>. S3 is something that's directly interesting to me. Personally and professionally I manage a bit of data that I never want to lose. I have applications, source code, documentation, customer data&nbsp;and servers that need to be backed up at work. At home I have photos, videos and personal documents that need to be backed up. Ultimately I want to write code that hooks up with Amazon's services, but for this post I want to just talk about my experiences in trying to find already written code to backup my stuff. </p> <p><strong>my current backup situation</strong> </p> <p>I have a mix of machines that I need to have data backed up on. The majority of the machines are Windows-based, with two that run Linux. In my basement I have one server with half a terabyte of mirrored drive space. That machine is only used as a file server and a backup server. At different intervals throughout the week, I have my other servers and desktops (from multiple locations) sending their backup data to this machine. To make that happen I install OpenSSH and a copy of rsync on each client machine. I then use a scheduled script to securely synchronize specific client folders with the server. This has been working fine for me. It's not the easiest thing to setup, but once it's done for a machine, managing it is fairly simple and restoring is as easy as plucking the files or folders of my backup server. Since SSH and rsync are cross-platform, I can use the same technique from my Linux machines. </p> <p><strong>how does S3 fit in</strong> </p> <p>To prevent data loss, I depend on the fact that my data is always in two places at one time (except my photos which&nbsp;exist only on the&nbsp;file server) and that one of those places uses a RAID for storage. Ideally, I would also like to have my most sensitive data archived away where I can't accidentally screw it up. I've looked into some commercial offsite backup products but they are fairly expensive for the amount of data I want to secure (ideally close to 200GB). I would be fine with paying the higher prices if it was my only option. Fortunately Amazon S3 seems to be a low cost option. My short term goal is to keep my rsync backups going and just synchronizing my backup server with S3. Maybe at some point&nbsp;I will bypass my rsync step altogether and sync directly to S3. </p> <p><strong>what am i looking for</strong> </p> <p>For my purposes, I would like to find software that can allow me to automatically synchronize my backup server with S3. Here are my current factors that I'm using to choose a solution: </p> <ul> <li>The software has to be automate-able, thru scripts or some other method. <li>I won't need to access the data very often except to verify everything is working correctly, so the software does not have to have a UI or be very feature-ful. <li>I would like to have the data stored on the S3 service in a generic format so I'm not tied to my initial choice of software. If my software is no longer usable, I should be able to retrieve my data using other software. <li>The software only has to run on Windows. <li>Ideally the software would be open-source. <li>Ideally there would be no additional fees on top of what Amazon charges.</li> </ul> <p><strong></strong>&nbsp; </p> <p><strong>what i've found</strong> </p> <p>Unfortunately there are limited sources of information on S3. One of the most helpful was a blog post by Jeremy Zawodny called <a title="A List of Amazon S3 Backup Tools" href="http://jeremy.zawodny.com/blog/archives/007641.html" target="_blank">A List of Amazon S3 Backup Tools</a>. Check out the comments for a good view into what's available. <a title="Amazon S3 Tools on elastic8.com" href="http://www.elastic8.com/?q=blog/tools_for_accessing_using_to_backup_your_data_to_and_from_s3.html" target="_blank">Amazon S3 Tools</a> on elastic8.com. Another resource was <a title="Amazon's Solution Catalog" href="http://solutions.amazonwebservices.com/connect/kbcategory.jspa?categoryID=66" target="_blank">Amazon's Solution Catalog</a>. I haven't had much luck in getting everything I want and didn't have much luck in evaluating the ones I've tried. Below are the apps I've tried with my initial findings. I will follow up this post in a couple weeks to after I've done some more research. </p> <ul> <li><a title="Jungle Disk" href="http://jungledisk.com" target="_blank">JungleDisk</a> - This service looks very promising and is free. It basically adds S3 as a virtual drive on your computer. You can access it like any other drive (theoretically). It's not open-source and stores data in a proprietary format, but they do have open-source code available to browse and download your data if something ever happens to them. I've tried a couple times but I could not get JungleDisk to work on Windows Server 2003. I've gotten it to work on Windows XP though and that worked fine. <li><a title="S3 Backup" href="http://www.maluke.com/blog/beta-65" target="_blank">S3 Backup</a> - A Windows client that allows you to access S3 like in a manner similar to Windows Explorer. The client has jobs built in that allow you to run backups automatically (no scheduling yet). The software is written by one person and has frequent updates. For some reasons the beta downloads have a built-in timeout which is unusual. The author is not sure what portion of the software will be open-sourced (if any) and plans to eventually charge for part of it. I was able to browse and upload some data, but got errors when trying to create backup jobs. I'm sure the job error will be worked out in future releases, but because of it's somewhat undefined future I will have to put this app on the back burner. <li><a title="S3Drive from Suchwerk.net" href="http://www.suchwerk.net/sodcms_AMAZON_S3DRIVE.htm" target="_blank">S3Drive</a> - Another virtual drive app like JungleDisk but&nbsp;from an independent developer. The software depends on the .Net Framework 2.0. To optimize the browsing thru Windows Explorer the developer chose to split the files up into chunks when storing them and uses an index file to make&nbsp;his flat S3 file storage appear as a folder structure. It took a couple tries to get the virtual drive to work, but once it was setup it worked very well. I saw that&nbsp;some people&nbsp;were experiencing memory leaks and communication problems with larger files (&gt;300MB) but I have had no problems using smaller files. I've also read somewhere that&nbsp;there is or plans to be source code available. <li><a title="NS3 Manager" href="http://s3.amazonaws.com/ns3/home" target="_blank">NS3 Manager</a> - This is a free Windows client that enables you to manage data on the S3 service. It's limited in its features (upload, download and delete only) but does store data in a generic format. It can also be used to browse the proprietary formats of the other tools mentioned here. I have not been able to find a way to automate it yet and am not sure if there's any development going on. If not something I will use for my backups, it's still a valuable too just to see what's in your data store. <li><a title="#Sh3ll" href="http://jroller.com/page/silvasoftinc?entry=announce_sh3ll_3_3_released" target="_blank">#Sh3ll</a> - A command shell for S3. I like this app. It's not fancy and has no UI. It's not easy to use. Event the name is hard (pronounced Sharp-Shell). And as you may have guessed from the name, it depends on the 1.1 or 2.0 .Net Framework. It reads and writes to the S3 store in a generic format and can be automated. It's not as straightforward as I would have liked. Since it's actually a shell, you have to pipe commands into it to script it. I guess that is done because calls into the service require a bit of context between calls (for example, you would need to specify the bucket, username and password for each invocation). I've had no problems so far with it. The nice thing is that the source is available (actually comes in the download) and I can change it