LGPL: A Summary for the Wary

Open-source Doctor

I recently went through some involved discussions with a client who has traditionally not used open-source software when a library package licensed under the GNU Lesser General Public License (LGPL) seemed to be the best choice for our needs. I kept a number of notes during these conversations and felt it was probably something that should be shared since, no matter how comfortable you are working with open-source licensed software, you probably work with (or for) someone who doesn’t share that comfort. How do you talk to them about using open source software, particularly as part of some product that you are releasing?

While you are reading this, keep in mind some things:

1) The primary focus is on the GNU LGPL since that was the center of our discussions. Some of the topics talked about here may not be similar for other licenses.
2) There are tons of all-inclusive articles about open-source software that cover all of the details of nearly every type of license. This isn’t one of those.
3) I AM NOT A LAWYER! Everything here is based on my limited understanding of the legal dealings and nothing here should be taken as any type of legal advice.


Recording Audio & Video with HTML5 (co-starring Meteor)

Filming in ProgressA few weeks ago I got a germ of an idea in my head for a personal web-application that required recording and playing video, something with which I have had very little experience. I have seen how effortless is it to play video with HTML5 so I thought this would be simple. After searching countless sites looking for the HTML5 magic bullet for recording both audio & video, I had pretty much given up.

If you have stumbled upon this article also looking for a way to record audio & video together, you can stop searching now. I can say with fairly strong confidence that such a mechanism does not yet exist (as of the publish date of this article). However, I believe I have a workable solution for the time being.

The full source for the example application is on github.


Meteor: Working with Accounts

8074654233_61ee5c05de_nIn my last blog post I had just discovered the Meteor JavaScript-based web application platform. I have had a little more time to play with it and I am still having a lot of fun with it. On a personal project I was working on, I needed to add user accounts. The support for Accounts in the Meteor platform has left me incredibly impressed. Various accounts packages allow for the addition of account handling on the backend and on the user interface with minimal effort. Adding in support for popular authentication methods (such as Google, Facebook, Twitter, etc.) consists of adding a new accounts package.

To demonstrate, I’m going to take the simple chat application that I built in the Meteor Introduction post and extend it to use accounts instead of using a simple text input to specify the message user.


Meteor: Introduction and Example app

Image credits - Ed Sweeney (http://www.flickr.com/photos/edsweeney/)I’ve just discovered Meteor and I’m currently in the honeymoon phase of this relationship. I realize that it’s still early in development but it’s one of the first truly inspiring full-stack web development platforms I’ve seen in a long time. Built on node.js, it consists of a JavaScript server (in a node.js container) and JavaScript client. The dynamic interaction between the client and server allows for a very simple, seamless way to create surprisingly complex web applications. In short, any changes to the back-end data automatically update front-end templates that use that data.


jQuery Mobile Transitions: Static vs Dynamic Content. Part II

jQuery MobilejQuery Mobile is a web application framework designed primarily for making sites interact well on smartphones and tablets. However, many of the features are useful for interaction across all devices. This series is focusing on the page transition effects included with jQuery Mobile.

In Part I of this series, I introduced a basic two page site and then integrated jQuery Mobile to create a sliding transition between the two pages. The first step was to include all page elements in the transition. The next step, which is covered in this post, is to perform the transition with some static content; some specific elements not included in the transition effect.