Failure is inevitable


liteGrid: coming soon to Google Code!

My employer has approved the open-sourcing of project “liteGrid”, so that means I’ll be migrating it to Google Code in the Real Near Future.  Before I do that though, I need to come up with a final name.  I have two candidates right now: liteGrid and Webcel (like Excel, but for the web!).  I’m leaning towards Webcel.  Anyone have any other suggestions or prefer one name over the other?  If so, leave your feedback in the comments.

Merging and minimizing JavaScript files with YUI Compressor and PowerShell

One of the tenants of liteGrid is that it’s modular, with the core doing as little as possible, and all the richness being layered on top by various pluggable modules.  These modules are currently spread across multiple files (one per module).  As liteGrid gets closer to “production,” it became time to merge things into a single file (no one wants to include 17 JS files).  I also wanted to minify/minimize the scripts to insure faster downloads.  The YUI Compressor is a good command-line tool for compressing JavaScript and CSS, and it turns out that it can actually be used t... [More]

Renaming SVN control directories

While migrating to a new machine, I ran into an unfun snag.  My old machine (3+ years since a format) was using the old ‘_svn’ folder hack that ASP.NET 1.1 required instead of the standard ‘.svn’ folder.  I didn’t want to use that on my new machine.  Instead of just copying my project files over, I could have just checked the projects out fresh, but several are in the gigabyte size, and that didn’t sound like a lot of fun.  Manually renaming 10,000 ‘_svn’ folders also didn’t sound like fun.  So, instead, I modified the script described here into the script below:@echo ... [More]

Things I hate

Internet Explorer 8 Browsers that have rendering bugs (aka Internet Explorer) Browsers that have terrible CSS support (aka Internet Explorer) Browsers that have terrible developer tools (aka Internet Explorer) Coincidentally, that’s also the list of reasons why there is no new blog post today.  In all seriousness, JavaScript and HTML have gotten a bad rap.  If you ignore IE, they’re a great to work with.  As soon as you start worrying about Internet Explorer though, you might as well go find a bus to lay down in front of, because that’s going to hurt less than getting... [More]

The pleasure of ActiveRecord-based data access code

At the beginning of the year, I described the horrible experience I had while removing *TWO* columns from the database of a legacy system here at the day job.  For those too lazy to go back and read, I basically spent nearly an entire day working on this “trivial” task and ended up with a 15,563 line SVN diff spread across 40 files. Yesterday I was tasked with making major changes to the object model we’re persisting.  The change consisted of *nine* new entities and one modified entity.  Compare this to the simple deletion of two columns/properties, and you might think that th... [More]

On the plus side…

I’ve been pretty down on Microsoft lately (and deservedly so since I’ve been developing JavaScript that has to work in the pile of trash they are passing off as a browser), but not all is doom-and-gloom from Redmond.  Yesterday, Microsoft RTM’d Windows 7, Windows Server 2008 R2, and Expression Studio 3.  I haven’t tried Expression Studio 3, but I can vouch for the high quality of the other two products.  I’m running Windows 7 RC (and beta before that) on a production machine, and I’ve had one, maybe two, hiccups the entire time.  It’s a great OS, and I have already pre-orde... [More]

Internet Explorer (including 8) sucks, and here is why

If you have seen the excellent* comparison of browsers, you may actually believe that Microsoft made improvements with Internet Explorer 8.  However, you would be mistaken.  For the past 48 hours, I have been in bug-squashing and clean-up mode on liteGrid.  During that time, I have repeatedly found cleaner, more elegant ways to do handle some of the rich functionality (such as column resizing).  Unfortunately, every single one of these has failed in IE8.  Rendering it in “quirks” mode fixed some of the issues, but created even more of its own problems.  Here’s my ... [More]

MLSharp Available

Last night, I finished moving ML# (mlsharp or ML-Sharp) to Google Code.  You can check it out here.  This project was originally just a library I used to run experiments for a grant I was working on.  Since then, it has matured a bit and is now (I feel) on the verge of becoming a useful tool for machine learning.  It is currently limited to only a few classifiers, and it depends on Weka for some of its core functionality, but I plan to address these deficiencies as time allows.  In future posts, I’ll be describing some of the features of ML# and how it all works.... [More]

Moving to Google Code – How to migrate your repository

This is kind of a rambling post since I’m writing this on-the-fly at 11:00 PM. In preparation for the release of ML# (ML-Sharp), I’ve begun moving things over to Google Code.  ML# has a very long Subversion history with over 300 commits in the last year.  I could have just nuked all that history, but I really wanted to preserve it just in-case I ever wanted to go back and look at something one day.  So, just copying the current revision into Google Code was out of the question.  Here’s what I did to migrate the project. Isolate the projects to be migrated The original S... [More]

liteGrid – Recent Changes

I’m very busy today, so I’ve decided to punt on the post for today and talk just briefly about some of the changes that I’ve made recently to liteGrid and why I made them.  I’m not going to talk about the layout manager module until Wednesday.  For background, be sure to read the first three parts: 1, 2, 3. Changes to core I did make a couple of minor changes to core. First, the aptly named “initializationComplete” event is now fired after all modules have been initialized.  I had actually planned on firing this event originally, but I decided to wait until I had a real ... [More]