tag:blogger.com,1999:blog-85172122024-03-05T16:20:50.386-05:00CoditatePondering the code...AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.comBlogger34125tag:blogger.com,1999:blog-8517212.post-18017734395801997122011-05-23T22:45:00.001-04:002011-05-27T13:08:41.784-04:00Simple Savant Renamed to Simol and v1.0 Released Simol 1.0 (formerly Simple Savant), my .NET persistence library for Amazon SimpleDB, is now available at CodePlex. Besides the name change and some general API cleanup this release includes the following new features: Support for new SimpleDB BatchDeleteAttributes operation. Select operations now allow null parameter values for selecting records with “null” attribute values in SimpleDB.AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com0tag:blogger.com,1999:blog-8517212.post-71039835872410332152010-10-04T23:22:00.001-04:002016-03-21T16:30:48.968-04:00Bad Experiences with StackOverflowIf you build software you're probably familiar with StackOverflow, the 2-year-old, collaboratively edited question-and-answer site for programmers. SO was not a new idea, but it was well-executed and quickly gained a a large number of users due to the popular blogs of its founders.I haven't been a particularly active SO user, and my "reputation" peaked at a little over 400 points after AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com22tag:blogger.com,1999:blog-8517212.post-6967610261191235402010-09-01T09:00:00.001-04:002010-09-01T09:06:19.815-04:00Simple Savant Passes 2000 Downloads Simple Savant, my .NET library for Amazon's SimpleDB service, passed 2000 downloads last week! That's not a huge number compared to the most popular open-source projects. But considering that SimpleDB is still in beta and something of a niche product and that .NET apps built on SimpleDB are a niche within the niche, it's not too bad! Also nice: So far Savant has been rated a 5-star project (AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com2tag:blogger.com,1999:blog-8517212.post-78677101309615301292010-05-28T11:43:00.001-04:002010-05-28T13:18:59.710-04:00Handling Login Redirects When Mixing ASP.NET MVC 2 and WebFormsI've been migrating parts of GridRoom over to the ASP.NET MVC 2 framework as a precursor to implementing more advanced Ajax support (sans WebForms and ASP.NET AJAX). One of the challenges to making WebForms and MVC coexist is handling redirects to the login page when making Ajax requests. This can happen when a user's session times out or if they log out in another browser window. When this AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com1tag:blogger.com,1999:blog-8517212.post-61699214706012112802010-05-11T18:05:00.001-04:002014-07-28T21:18:43.125-04:00Preventing Multiple Form Submits In ASP.NETLast year when I started working on the GridRoom Web site I spent some time researching the current best-practices for preventing multiple form submits in ASP.NET. (It was the first site I'd built from scratch using .NET, and I wasn't particularly fond of the architecture of existing .NET sites I had worked on.)There are many options for preventing multiple submits, some of them quite complex andAThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com2tag:blogger.com,1999:blog-8517212.post-3203909238721185982010-05-10T21:57:00.001-04:002010-05-10T21:57:07.195-04:00Restore Your Missing Blogger CommentsI moved this blog to a custom domain about two months ago. Blogger makes the process very simple if you already own your own domain. I was up and running at blog.coditate.com after just a few clicks in the Blogger dashboard, and adding a new CNAME record for this domain. A short time later I realized all the comments were missing from this blog. Apparently this has been quite a problem for AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com7tag:blogger.com,1999:blog-8517212.post-16968708046261759402010-04-30T19:02:00.001-04:002010-04-30T19:02:03.841-04:00Forcing Firefox to Cache Secure Silverlight Video ContentThe latest GridRoom release moves all video playback to the Web using a Silverlight-based video player. During my testing I had some problems getting Firefox caching to work properly with video content delivered via https. At first I tried to deliver all video content over http, not https. But since the secure areas of the GridRoom site are accessed via https I was forced by Silverlight securityAThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com0tag:blogger.com,1999:blog-8517212.post-87267529253650178842010-04-30T17:46:00.001-04:002010-05-05T21:28:16.511-04:00All About Model ReleasesSince I'm working on a product for managing sports video I occasionally need to use sports media for marketing, demos, tutorials, and other purposes. We have lots of photos and videos of our own kids--especially since my wife is quite the avid amateur photographer. But these sometimes include other folk's children as well as ours. Not wanting to follow in the footsteps of Virgin Mobile, whose AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com0tag:blogger.com,1999:blog-8517212.post-56474955826183705692010-04-23T11:26:00.001-04:002010-04-26T09:59:47.668-04:00When Competitors Are Using Your Code...Does That Mean You're Being Too Transparent?Openness and transparency are all the rage in startups these days. Don't hide the fact you're small. Be accessible to customers. Blog about your ideas and plans. Openly dissect your successes and failures. Share your work. About 2 years ago I posted a video scene detection algorithm written in C# on this blog, while I was still just tinkering with the ideas behind GridRoom (and before I had AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com0tag:blogger.com,1999:blog-8517212.post-78507097021815050842010-04-08T17:07:00.001-04:002010-04-08T23:44:28.671-04:00Simple Savant v0.5 ReleasedSimple Savant v0.5 is now available at CodePlex. This release includes the following features: Reliable cross-domain write support. Reliable-writes guarantee that you will never suffer partial data loss when writing associated data to multiple domains. System failure during a reliable-write will result in all or none of your data being stored in SimpleDB. This is accomplished using a 2-phasedAThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com2tag:blogger.com,1999:blog-8517212.post-2496289616993128642010-02-24T20:45:00.001-05:002010-03-01T11:04:42.976-05:00Simple Savant v0.4 ReleasedI've just released Simple Savant v0.4 at CodePlex. The new release includes the following features: Full-text searches of SimpleDB data using Lucene.NET 2.4 Attribute spanning and compression to allow the storage of large property values in SimpleDB (attribute values are normally limited to 1024 bytes) Item versioning, including support for SimpleDB's new conditional puts to prevent AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com0tag:blogger.com,1999:blog-8517212.post-1243267131458402622010-02-23T14:47:00.000-05:002010-03-17T11:15:49.720-04:00Amazon SimpleDB Book Now Available from Packt PublishingAs a result of my work on Simple Savant I was asked to serve as technical reviewer of a new SimpleDB book by YLastic CTO Prabhakar Chaganti. Amazon SimpleDB Developer Guide is now available from Packt Publishing. It's a great resource for folks getting started with SimpleDB and includes numerous code examples in Java, PHP, and Python.AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com0tag:blogger.com,1999:blog-8517212.post-3869640593735507982010-01-21T09:48:00.001-05:002010-01-21T15:06:59.152-05:00Anatomy of a Failed PR StuntIf you're an NFL fan you may already have seen the picture below. This is the story behind the Fire Snyder stadium sign--a self-indulgent PR stunt to promote GridRoom that was reported by dozens of blogs and newspapers but was ultimately a waste of time. For over a decade the Washington Redskins have been run by a comically dysfunctional owner: Daniel Snyder. This in itself is not remarkable.AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com0tag:blogger.com,1999:blog-8517212.post-76439890799120891562010-01-11T15:34:00.001-05:002010-01-11T19:03:42.438-05:00Simple Savant v0.3 ReleasedI've just released Simple Savant v0.3 at CodePlex. It's been a number of months since the last release so this one includes a number of bug fixes as well as a several significant new features: Typeless operations - All existing functionality has been exposed through methods not tied to .NET item types. Asynchronous operations - All existing operations may now be invoked asynchronously.AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com0tag:blogger.com,1999:blog-8517212.post-74167341390622364372009-09-06T23:11:00.000-04:002009-09-12T01:35:12.450-04:00Introducing GridRoomIn several previous posts I've alluded to working on a product that uses DirectShow.NET and various Amazon Web services. I've tinkered with bits and pieces of this product for quite a while in my spare time. Well, several months ago I decided to finally take the plunge and turn it into a business. Since then I've worked on it nearly full-time (still doing a bit of consulting for my old employer),AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com2tag:blogger.com,1999:blog-8517212.post-81892569335588168632009-07-29T13:39:00.001-04:002009-07-29T15:44:31.979-04:003 Things I Hate About My Clear WiMAX GatewayI recently signed up for Clearwire's WiMAX service. So far the service itself has been great. Performance is good at all times, and we haven't lost our connection once in the past two weeks. This is pretty important since I work from home and also run a couple of low-profile servers over this connection. Most of my problems with Clear stemmed from the fact that they advertised their Motorola AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com6tag:blogger.com,1999:blog-8517212.post-46417367120586813872009-07-15T00:53:00.003-04:002009-08-03T13:38:41.251-04:00Signing up for Clear WiMAX in AtlantaDuring our 9 years in Atlanta we've tried both DSL and cable broadband. We started with AT&T Broadband cable, and that was pretty horrible. We then tried DirectTV and SpeedFactory DSL. These were great companies, but DirectTV stopped providing DSL service, and SpeedFactory was killed off by BellSouth. We returned to cable with Comcast and they've been so-so: intermittent outages, poor AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com3tag:blogger.com,1999:blog-8517212.post-61258627928751214392009-07-01T11:36:00.002-04:002009-07-01T17:46:57.354-04:00Determining Html Element Visibility with WatiNI recently started using WatiN to write automated Web application tests for the first time. WatiN is a great and rapidly maturing tool with lots of developer support, and I highly recommend it based on my experiences so far. But after writing several tests of dynamic screen elements I realized the tests weren't verifying everything I thought they were verifying. When you use WatiN "Find&AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com5tag:blogger.com,1999:blog-8517212.post-64873230796106758772009-04-27T12:41:00.002-04:002009-07-01T17:52:14.310-04:00Confusing Errors Using WCF Transport Security With Client CertificatesWhile prototyping a WCF service last week I ran into a number of confusing security-related errors on both the client and server. My setup was as follows: Windows 2008 Server IIS 7 .NET 3.5 basicHttpBinding/transport security/client certificates Most of the errors that can result from this setup have been documented elsewhere. This detailed post by Imaya Kumar does a great job of walking AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com4tag:blogger.com,1999:blog-8517212.post-85431205858539036632009-04-16T08:45:00.002-04:002009-07-01T17:52:37.552-04:00New Simple Savant ReleaseI've just released Simple Savant v0.2 at CodePlex. This version brings the library up to date with the latest Amazon SimpleDB features and also completes the baseline feature set. (See this post for an introduction to Simple Savant.) The new release adds support for: Partial object operations Scalar selects including support for Amazon's new select count(*) operator Amazon's new AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com15tag:blogger.com,1999:blog-8517212.post-66704222327565731052009-03-18T01:12:00.002-04:002010-06-14T13:08:02.808-04:00Simple Savant: .NET Object-Persistance Framework for Amazon SimpleDBI'm building an application that stores all structured data using Amazon's SimpleDB service. When I started creating the overall architecture I searched for recommendations on designing applications specifically for SimpleDB or similar services. I didn't find many tips, but I did find lots of complaints about the disadvantages of SimpleDB when compared to mature RDBS products. I also discovered AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com11tag:blogger.com,1999:blog-8517212.post-62738162960536918962008-12-01T21:50:00.002-05:002009-07-01T17:55:53.595-04:00Version of System.Web.HttpUtility for .NET Client ProfileThe .NET Framework Client Profile released with .NET 3.5 SP1 defines a stripped-down version of the .NET Framework for distribution with rich-client applications. This is a valuable feature for developers who need to keep their software distributions small and convenient to install. (For more information, see my previous post comparing bootstrap install times for various .NET framework versions.)AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com3tag:blogger.com,1999:blog-8517212.post-45128664946534891912008-11-29T21:48:00.001-05:002009-07-01T17:56:18.329-04:00Impact of the .NET Framework on Software InstallationsThe size of the .NET Framework redistributable exploded with versions 3.0 and and 3.5. This creates some difficult choices for vendors of rich-client applications, as a lengthy or unwieldy installation experience can easily discourage non-technical users from using your product. The Paint.NET folks have recently put a huge amount of effort into streamlining their installation process for this AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com2tag:blogger.com,1999:blog-8517212.post-44762080267088041722008-08-26T00:25:00.002-04:002009-07-01T17:56:32.588-04:00Converting a Partitioned Table to a Nonpartitioned Table In Sql Server 2005Several months ago while working with Sql Server 2005 partitioned tables for the first time, I discovered an interesting bug/hidden feature that doesn't seem to be documented anywhere: Adding a clustered primary key constraint can quietly revert a partitioned table to a nonpartitioned one. At the time I found this behavior quite annoying, but it actually came in handy today when I needed to AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com4tag:blogger.com,1999:blog-8517212.post-86866199647321099042008-05-31T19:03:00.002-04:002009-07-01T17:56:56.914-04:00Video Scene Detection with DirectShow.NETFor some time I've been working on a video-related personal project. I'm using the fantastic DirectShow .NET library, which provides a nice C# interface to Microsoft's DirectShow C++ API. At one point some folks on the DS .NET forums asked about the scene detection algorithm I referenced in one of my forum posts. I promised to follow up with some sample code and explanations and--finally--here AThttp://www.blogger.com/profile/06347668287413314992noreply@blogger.com29