About the author

J Sawyer is a developer based in Houston, TX who absolutely loves to write code. After spending 9 years at Microsoft, he moved on to other things and is currently the Lead Developer for the RealTime Data Management team at Logica US. He spends his days building Really Cool Things around StreamInsight and having a blast doing it.

He has been involved with HDNUG, one of the oldest and largest .NET-focused user groups in the US, since its inception in 2001 and has watched it grow from 5-10 technologists meeting around a conference table to a thriving community of over 5000 with regular meeting attendance averaging 100 attendees. He currently serves as the Vice President. You can join him at HDNUG on the second Thursday of every month at the Houston Microsoft office.

He also loves to ride his Yamaha FZ1. And sometimes his Ninja 650. And also his Honday XR-400 dirt bike. But he doesn't code and ride at the same time. That would be bad.

My First CodePlex Project

October 30, 2007 2:06 PM
No, not the first one I've been involved with, but the first one that I started.  You can find it here: http://www.codeplex.com/BITSDownloadMgr
It's call BITS Download Manager.  It was a tool that I wrote some time ago to download large files over a VPN connection and have shared it inside of Microsoft for a couple of years as "JarJar BITS" (don't ask).  As the name implies, it uses BITS (Background Intelligent Transfer Service) to do the downloads.  This gives you network-friendly resumable file copies ... definitely better than Windows Explorer. 
Wrapping the BITS API in .NET was something of a challenge.  I didn't use TLBIMP because the RCW that it generated was somewhat "messy" (gets and sets instead of properties, whacked data types and marshalling, etc) ... it seems that the BITS API isn't very friendly with that tool.  So I used the hand-crafted RCW from the original App Updater block and made additional modifications to it for newer revs of BITS, added the event callback support and did a bit "cleaning up" some of the marshalling.  There are also disposable wrapper classes around the native COM objects to ensure that they get cleaned up.
Things on the list that I want to do:
  • Multi-threaded folder search for the folder copy job
  • Splitting large folder copies into multiple BITS jobs (BITS has a practical limitation of about 100 files per job)
  • New UI based on WPF
  • Additional job creator plug-ins.  Would like HTTP and SharePoint document library jobs.
  • Possibly look into an upload job as well. 

If you are interested in helping out, sign up and join the project. 

Tags:

Open Source

OSI Approves CodePlex Licenses

October 16, 2007 9:07 PM
Well, it's official ... the Open Source licenses that we've been promoting on CodePlex are now officially Open Source approved.  OSI just announced that they have approved 2 open source licenses ... the Microsoft Permissive License (Ms-PL) and is now called Microsoft Public License and the Microsoft Reciprocal License (Ms-RL) (this one had a different name before, but I've forgotten it). 
What's the difference between the licenses?  Well, you could, of course, read them yourself ... but I'll be nice and let you know what it is. 
Ms-PL: Basically, here it is.  You can use it for what you want, including derivative works.  If you distribute it, ya gotta keep the copyrights in place.  If you distribute it as source, ya gotta do it under a compliant license. 
Ms-RL: Similar to the Ms-PL, but includes that you have to include the source code (whether distributed as binary or not) when you distribute any file from the project.  Note that it's just the file that you included ... nothing else.  So ... any improvements or unique cool stuff you've done in a derivative work would appear to be yours. 
Both are "as-is" ... take it, use it ...  but don't blame us if it messes up. 
Now ... one last thing ... I'm not a lawyer.  I don't pretend to be.  So don't take this as legal advice, blah blah blah.  Talk to a lawyer for the final word, OK?  And don't ask me to pay for it either. 

Tags:

Open Source