Tuesday, February 12, 2008

Vision Link, We're On Our Way

Vision Link, a product I was initially a part of development for, has finally reached a stage where we can test more vigorously. Vision Link (vznlink) is an API to the industry leading point-of-sale product, Vision, created by Innovative Computer Solutions for retail liquor vendors. The API provides a secure, centralized method for interchange of data between the inventory management and ordering in Vision and a retailer's website/store.

I work for ICS and I work for retail liquor vendors, both, as a consultant. At ICS, I, along with another staff member, came up with and began implementing the idea. I was pushed out of the project, for the most part, in working on a completely new web application (that I won't speak of just yet).

Now that we're ready to test I can take on my role as developer for the vendors in creating the other half of the API, the websites that make use of it. I'm very excited to get back into this work.

Monday, February 11, 2008

Git, It's All the Rage

After reading a good number of posts regarding Git as an SCM I had the chance to experience it and use it myself. With the help and guidance of Rein Henrichs, an extremely helpful member of the DataMapper (among others, I'm sure) project.

In working to create new features for DataMapper we are collaborating on a new conditions parser. To do our work, Rein has created an account on GitHub and branched from the existing Git repository for DataMapper. GitHub is a fantastic web application similar to other such web front-ends for SCM tools (such as Warehouse for Subversion). GitHub is currently in closed beta but, I would recommend signing up to join.

Back to Git itself. Like most SCM tools, it is a repository for whatever purpose you may see fit. However, unlike most SCM tools, Git is decentralized, the users are encouraged to branch and merge (with proper workflow), and it is being used by the largest and many, many small software projects, alike. Aside from DataMapper, other small projects include Merb, Mephisto, and the people at Viget Labs.

Rein is currently working on a presentation of Git, and its usage. I'm hoping he will post it up on his blog so that I, and anyone else may share in his extensive knowledge.

Client-side SQL, Who's Idea was This?

As noted in this Mac Rumors post Apple (or the Webkit team) are following along with the HTML5 spec quite quickly. Great stuff, if you ask me.

My problem, as a developer is this: we already have to deal with the dangers, although minimal, of SQL injection. Combine SQL injection with a lack of trust for anything saved on a client machine (read: cookies, etc.) we have a nearly useless nightmare. On top of all this, there is a huge danger in storing sensitive information, which, some stupid developer is liable to do from day one, along with the certain potential for giving the wrong user's data out. The nightmares go on and on. This idea shares every known issue with using SQL databases along with every vulnerability in client-side data.

As for the usefulness of such a solution, I see it as being extremely useful. However, it won't be useful until at least Firefox has it down, if not IE8/9/∞. Even at that point, it may not be useful for most developers aside from the truly bleeding-edge (take Google as an example, which already has Google Gears). With all the risks and the likely lack of support from the browsers for a long time to come, this is one feature I won't bother taking my precious time to investigate or learn fully.

Bring on the rest of the HTML5 spec. though!

Friday, February 1, 2008

Merb + DataMapper, I'm Lovin' It

No, this isn't a post about McDonalds. This is a post about Merb (and DataMapper).

As the story goes, I was working on a project involving creating a new web application to match the features of a legacy java application, while maintaining the use of the same exact database. ActiveRecord was worthless in this endeavor. Even with excessive work I could not break it from its conventions.

Since Rails is utterly dependent upon AR I was forced to find an alternative. My saving grace was found with a reference to Merb (Mongrel+erb) by my cousin. Merb is agnostic in many ways. Most importantly with regard to the ORM (object-relational mapping) used. ActiveRecord is supported, as well as, DataMapper and Sequel. In making the switch, I also switched to using jQuery instead of prototype.

All in all, I'm loving it. The only downfall I have experienced is having to dump and restore my database whenever applying a change in my models to the database as the DM migrations are destructive.

Aside from this Merb (and DataMapper) are faster, lighter, and easier to contribute to (if I find a bug, or wish to add features).

As for the project that started this all: it is coming along far better than I could have hoped with Ruby on Rails.