Friday, July 06, 2007

Object Handles now availbe from Google Code

I've moved the download location of Object Handles to take advantage of the download functionality of Google Code. This should let me manage versions much easier.

http://code.google.com/p/flex-object-handles/downloads/list

The neat thing is, I used an ant script to automatically post files there!

Labels: , ,

Sunday, June 10, 2007

Log Viewer & XRay

I've made a bunch of changes to LogViewer, you can get the latest package over at:

http://www.rogue-development.com/logViewer.xml

But much more interestingly, I made the changes in direct response for my desire to improve the logging facilities in XRay.

In case you've never heard of it before, XRay is the best tool for debugging Flash applications out there. It's written by a guy named John Grden that I've had the opportunity to work with for the past year or so. Last week I told him about LogViewer and he added it in to XRay. But it just didn't feel right. It looked clunky and there was some functionality that should be there but was missing. So for the past couple days I've been hacking apart LogViewer, adding in a few features, and making it look a little prettier. Here are the results...



As you can see, the search functionality remains, but with a find-previous option listed.

Two new features include the ability to filter based on a text string, and the ability to highlight lines that contain a text string. Both very useful when you have an application spewing large amounts of logging information at you.

With any Luck, we can get these changes wrapped up over the next week to a release-quality state and post it for all to use.

Labels: , , ,

Thursday, June 07, 2007

ObjectHandle component updated

ObjectHandles, the easy way to add user resizing & movement of objects to your flex application, has been updated.

Changes include:

- Initial rotation support added (still needs some tweaks). Thanks
goes to Alexander Kludt for contribution of most of this feature.
- Metadata for events added. (Thanks Thomas Jakobi!)
- Bug fix for making ObjectHandles dynamically through actionscript
instead of in an MXML document.
- Ability to turn mouse cursor support off (since they are ugly right
now).

A new demo is up and downloads can be found at:
http://www.rogue-development.com/objectHandles.xml
(Clear your browser cache before viewing the demo again, I've seen it
not refresh sometimes, even on a shift-reload on my browser)

Enjoy!

Labels: , ,

Open source licenses

I read an article on the GPL over at slashdot today and there were a few pretty insightful comments. One by a guy named MillionthMonkey struck me as particularly insightful.


People focus on the legal issues, but not the simple logistical and psychological issues that arise from the fact that while open source and commercial code may be the work of separate legal entities, in practice both types of code are written and used by the same people, either at home or at work, since hobbyist coders usually have a day job.

At every job I've had, if we're considering incorporating an open source library, the license is the first thing to check. If the project page says GPL we immediately drop the library as a consideration. If it's a commercial license then we can use it but we have to do paperwork for accounting. And if we see BSD, then we right click, download the library, and start looking into it from there. The predictable results of this process: my head fills up with information on the libraries I use, and I forget about the ones I rejected long ago.

Then I get home to my hobby project. Legally, completely different rules apply to me at home. I can release under the GPL (a choice I can't simply make for my employer), use GPL code, etc etc. My own license restrictions as a hobbyist coder are supposedly orthogonal to those at my day job. But guess what? I have to use the same brain at work and at home, it only has so many brain cells to fill up with library APIs, there are only 24 hours in a day, and I barely have time to get drunk as it is. Even though I'm at home I'll probably just build things with stuff I'm familiar with. Especially if I view the library as not being an interesting part of my application.

If my employer used the GPL for projects then I guess I'd be predisposed to use GPL code at home. I've just never worked at a place that incorporated GPL code into its projects, so I'm not familiar with it, and probably won't adopt it.

The GPL is similar to any other proprietary license, from a proprietor it creates that hires anybody, pays nobody, and is legally bound to charge nothing. But it still shares (with the actual authors) proprietary rights to all derivative works because Richard Stallman wanted to confer upon it a competitive advantage enjoyed by other, commercial proprietors. It's a very reasonable proprietary license but in the end that's what it is, and some things should not be proprietary. We still need some public infrastructure in the software industry. Users (including most of you guys) want standard software conventions that always work in a predictable way. They want to leverage their knowledge of GPL software against non-GPL software (or MS software vs. non-MS software) in ways that are totally reasonable- or they say things like "well that's not the way Microsoft does it", "that's not how GNU works", etc. They especially want uninteresting things- like command line parsing, logging, etc. to work in a predictable way. This isn't really served by forcing everyone to implement common infrastructure separately because then users have to learn implementation differences between modules that play common uninteresting roles. These rarely get addressed unless they spoil a sale. Usually they don't; they just annoy users.


While in college and before working in the real world, I was a big supporter of GPL software. Anything I did I released under that license, and I spurned other less "open" licenses.

Lately, I've done nearly no work with GPL software. I might use it as a user, but I no longer use it as a developer. Any open source stuff I write now is MIT licensed. Any open source stuff I hope to use is either BSD or MIT.

When writing a piece of open source software you need to decide what's more important to you.
If you want as many people using it, contributing to it, etc. Choose BSD, MIT, etc.
If you want to make sure nobody ever profits off of your work and any derivative of your work is forever free, choose GPL.

For me, I get more value by having more people using and contributing to my projects. I don't care if the occasional person goes off and makes money off of work I've done.

Labels: