Apr 30

I just posted the text below at http://www.nextbbs.com/do_topic_title_nextBBS-direction–please-give-your-input_id_1288

I know that a lot of open-source projects have gone through the same dilemma:

  • Now that we know what we know,
  • Now that “these” components are available,
  • Now that development on our old framework is slowing down because…it’s old

Well, what do we do now? Rip apart our existing software and restart with more up-to-date technologies, or keep building on the old workhorse, hoping that nothing will go wrong?
Continue reading »

Sphere: Related Content

Apr 27

Lego Soap OperaWhen things start smelling “funny” in the open-source community, they tend to go to the dogs with the haste of a drunk marching band.

Today’s drama is brought to you by your friendly ExtJS community. For those of you not familiar with ExtJS, it is a professionally made Javascript library that allows web application developers to create very elaborate desktop-like applications. Jack Slocum originally started this project as a YUI extension. That extension being open-source. He’s then regularly improved it by adding support for different building stones such as JQuery and finally a full-ExtJS solution, reaching ExtJS 2.0. For those of you who have managed not to fall asleep while reading my ramblings, you already know that I’ve used ExtJS myself, for instance when I created the ExtPHP wrapper.

Where this gets complicated is that Jack decided to license the assets under a different license, allowing him to retain all rights. I would like to make very clear that it’s his work and he can do whatever he wants with it. I am just narrating, here. He also added a clause that supposedly completely voids the LGPL license if someone attempted to use his work to create a derivative framework.

After a lot of moaning in the community - to the drum of “that’s a GNU license, man, the whole idea is that you cannot add restrictions!”, he decided to change the LGPL license to a pure GPL one, while retaining a pure commercial license on the side. I’ll bet he thought, at that point, “At least now things are clear.”

Well, that was only the beginning of a real sh*tstorm that threatens to cause a lot of damage to everyone involved, culminating -fleetingly, to be sure- with Sanjiv Jivan’s scathing blog post. Sanjiv, if I am correct, wrote a Ext “compiler” for the GWT library, called GWT-Ext - note that there is another project, apparently endorsed by Jack, that connects ExtJS and GWT. Sanjiv decided that he would fork the last LGPL release of ExtJS and start a new project. You may remember that Jack tried to prevent this by adding a provision in his license agreement.

The crux of Sanjiv’s beef with Jack Slocum is this: Jack created a great product, led people to believe that it was truly open-source when it wasn’t, and doesn’t understand open-source licenses. Jack is greedy. Now, the crux of Jack’s beef with Sanjiv is this: Sanjiv created a nice tool based on hits product, doesn’t understand open-source licenses and, oh, is greedy.

So, our protagonists are not talking to each other. This love story was consumed a long time ago. And potential “corporate” customers, like me, are revisiting the possibility of building their product on top of pure JQuery extensions and living happily ever after.
Now, in a move that would shame any seasoned soap opera writer, a new character enters left stage. And her name is OpenEXT. Contrary to what Dion Almar wrote, it is not a fork: the idea is to create patches that can be dropped on top of ExtJS. Now, I am curious: was Dion right when he posted his own piece on the topic? After all, things seem to change at a meteoric pace around here.

Anyway, stay tuned for even more implausible developments!

Sphere: Related Content

Mar 23

Report BugsOh, no. Again, someone had something to say about open-source and again it seems that they only had a giant brush for the job.
OK, let’s go. Point by point. Note that I choose to also discuss frameworks despite Myle’s disclaimer, since their redeeming value seems to be that they comes as black boxes, therefore “you can still control your code.” Allow me to mention that you can do more than this. I would like, however, to apologize in advance for not coming up with more examples but I have to work on ClicDev…

“Unless your developers has[sic] spent A LOT of time working with the application, they aren’t going to know the code”

Well, true. There is always a learning curve involved. But this does not apply to open-source alone. Buy a commercial library and you will have to learn its ins and outs as well.

“Making core changes to a system is just asking for trouble”

Ok, so not about open-source either. Here is what I do not understand: if you pick a package for the task and end up modifying its core, are you sure that you picked wisely?

“Skinning pre-built applications sucks. Trying to modify some else’s CSS is worse than someone else PHP”

Obviously, I am not familiar with Myle’s past project experience, but this is where good practices usually save the day. Do not pick a package if their code is, indeed, “spaghetti”-style. Professionals - keep - their - stylesheets - clean.
Same goes for PHP, of course. Yes, the language is simple enough that it is very easy to make a mess of it. Just be picky when selecting a framework or an application. Price cannot be the only factor.

“Open source developers are very narrow minded […] you end up with a application that has everything that opens and shuts, but that doesn’t really open or shut very well.”

Well, thanks :(
What’s that about not doing the job very well? Are you referring to Linux, Apache, Drupal, Darwin or any other clunky loser that “doesn’t really work?”

“As soon as you modify software, forget about updating it.”

Well, I see two possible scenario here:
1. You download some open-source piece of software. You modify it and submit your modifications back to the open-source community and your code is integrated. No problem, right?
2. Either your submission is rejected or you prefer to keep your code closed. In that case, surely you will have started by preserving all the original code using a source control tool such as SVN, Perforce, GIT, etc. Any modification you make to that code is now part of a changelist. When you upgrade to a new version of the original open-source program, you easily reconcile your code with it using branch integration, right?

“I am yet to see a decent module system for anything but the most basic feature.”

And I do not know where to begin with this one. Maybe with some complex Wordpress modules that require no code modification, since you mention it?
Or the somewhat similar drop-ins system used by nextBBS?

“The documentation will never be up to date.”

I guess you were not impressed by Code Igniter, Drupal or Struts? (I pick whatever code I think of arbitrarily here… )

“Open source apps are hacked not engineered.”

Well, I will not even bother adding new links here. Just revisit some of the links I already posted. Where on earth do you get that kind of idea?

“If the project doesn’t have a clear leader who has a vision and is ruthless in implementing it, you are going to end up with a mess.”

Hey! I kind of agree with you - as one can find out reading some of my older posts. I do not know about “ruthless” but clear direction is key. However, why, again, misrepresent OSS this way? Do you have any statistics on the number of projects that one would seriously consider using for in-house development? Can you tell me, of those, which ones are purely “designed by committee” and which ones have clear leadership? I would wager that the latter are predominant - again, read my old posts, I already commented on failed “design by committee” projects.

“Support. You don’t get any.”

Again: What?
No support, as in “no support when using ExtJS?” Or “no support when deploying Drupal?”

If anyone wants to add something in the comments, I will gladly incorporate it in this post.

Sphere: Related Content

Mar 04

ExtPHP LogoIt is something that I had to think about in my day job, because my team is migrating to PHP for web development and I believe that we simply do not have enough time for them to learn JavaScript’s intricacies, I needed to be the one person who would have to wrestle JavaScript when problems happened. I therefore needed a way to insulate them from the gory details, which is why I created ExtPHP.
As you may have guessed from subtle hints, such as this entry’s 12-feet tall header, ExtPHP creates a PHP wrapper for ExtJS.

ExtPHP In ActionI noticed, at dzone.com, that the last time someone created a wrapper for JavaScript, many readers complained about how intrusive his approach was. Well, be assured that ExtPHP does not foil ExtJS’ non-intrusive take. Of course, with ExtJS itself, it’s up to the developer to decide what kind of style they wish to adopt, and ExtPHP follows suit.

ExtPHP Doc ScreenshotI guess the introduction I wrote in ExtPHP’s documentation explains fairly clearly what the idea is: “ExtPHP is a wrapper for ExtJS. This is version 0.1, so I expect that a lot of things can be improved upon and your feedback is greatly appreciated. ExtPHP can be used to write both intrusive and non-intrusive Javascript, just like ExtJS itself. Use it responsibly. One of the many advantages of this design is that unknown/misspelled/misused methods are detected in your PHP editor rather than forcing you to debug your JavaScript code in your web browser. ”

Documentation? Indeed, I took some time to write a much-needed PDF document. Let me know how I can improve it, I am sure that you will find it lacking - because it is.

Anyway, I am releasing this as a “Technology Preview” and I will greatly appreciate your help beta-testing it.

Cheers.

Download

Sphere: Related Content

Dec 04

KodachiKodachi v0.5.1 is out! It’s good news for developers who want to write plug-ins or if you wish to change the look and feel of the application:

  1. A demo plug-in is now included. All it does is add a new direct word to Kodachi’s vocabulary: ‘Demo‘. Type it, select some action, and it will display a Growl-like notification confirming your action. A very easy starting place for budding plug-in developers.
    -
  2. Kodachi’s user interface is now skinnable. Actually this goes a bit beyond a simple skin as you can change its behaviour alltogether. Note that when launching Kodachi, you will now see the new demo skin, called ‘Bezel‘, that I created. If you are familiar with QuickSilver, this is certainly an interface you are already used to. If you wish to work with the old interface, simply disable the ‘BezelInterface’ plug-in.
    -
  3. The installer now checks which version of .Net is installed on your PC, if any, and offers to install the correct version if necessary.

Download Kodachi 0.5.1

Sphere: Related Content

Dec 02

KodachiYou can now anonymously sync. to the bleeding edge version of Kodachi’s source code at svn://nextbbs.com/kodachi

If you do not feel like installing svn/compiling Kodachi but are still curious about its source code, you can browse it at http://www.nextbbs.com/trac/kodachi/

Note: if you sync. to the first check-in, you will get the version of Kodachi that is currently downloadable. If you sync. to the next one, you will get a new version with a temporary default interface. Yes, I am working on adding customizable interfaces.

Sphere: Related Content

Sep 19

IE7Joel Webber posted about the supposed fix-all security update released by Microsoft for IE.
Of course, it doesn’t fix all, as demonstrated here. Shock!

This totally jibes with my recent misadventures with IE7, when I found out that one of Microsoft’s “clever” workarounds is to add an artificial limit to 32,767 Javascript statements in a given scope - yes, I managed to generate this many statements as the result of including Javascript generation in a template system.

Also, note that their arrays are limited to 32,767 elements. I’ll bet that there is more of this stuff in IE7.

In a nutshell: Microsoft fights memory leaks by breaking existing scripts and doing a bunch of hasty cleanup when unloading a page.

IE7 TaggedBut that’s not even what’s annoying me the most. No, it would be this: http://support.microsoft.com/kb/933873

In this knowledge base entry, Microsoft acknowledges the issue and informs us that a hotfix is available; all we need to do is call them and maybe they will even wave the support fee, should they “determine that a specific update will resolve your problem”.

So, what are we to do? Call our customers and instruct them to see if Microsoft is willing to send them a patch, for free or not?

***

We recently stumbled upon a couple bugs in Java 6. More specifically, in rt.jar. Sun wasn’t exactly in a hurry to fix them. So, we fixed them ourselves.

As developers, do we really need more reasons to embrace open-source? I do not think so.

Sphere: Related Content

Jul 24

FOSS AbstractI just realized that this post was still a draft, thus not really ‘posted’. I am reposting it from my personal blog. I wrote it in July 2005 and am not going to change a single word.

I lifted this from Markus’ website, even though it’s originally attributed to Caterina Fake, founder of Flickr:

You don’t do good software design by committee. You do it best by having a dictator. From the user’s point of view, you must have a coherent design philosophy, and I don’t see how that could come about from open source software. The person who’s done it best is Steve Jobs, and he’s well-known for being a tyrant.

– Don Norman

Well now that’s an interesting misconception: open source software = democracy. Of course we have to remember that this is just a quote; something in essence always taken out of context.

I have made this mistake though. My first open source software was democratically developed. Well, more accurately, my very impressively sized team spent several months discussing it but I ended up being the only one coding something while all my virtual chefs would tell me where to add ingredients.

I have never made that mistake again. Open source software, to be successful, needs a strong leader, just as closed source software does. I believe that to lead a project to success, you need personality. Not necessarily a good personality, just something that will make people feel that at least the project is going somewhere.

A famous example of open source software that is *not* democracy-based is Linux. Linus Torvalds will not let you add your code to the existing kernel code base without thorough review and he will sometimes decide to reject your code based on ‘political’ reasons. It makes for interesting debates and I can think of at least a few people who went from idolizing the idea they had of Linus to squarely resenting any interaction with him. But it’s only fair: open or closed source, software development needs direction and you have to pick your own priorities: who do you wish to satisfy first? Your users or your developers?

Sphere: Related Content

Jul 24

GentooFunny coincidence: mere days after I decide to re-post my views on open-source, Daniel Robbins, of Gentoo fame, decides to post a late-night rant trying to address the shortcomings of the Gentoo Foundation.

More interesting than his original post, though, I enjoyed reading most comments as well as his own answers to these comments. The phrase “Benevolent Dictator” emerges fairly early on, and obviously this is what it is about. My own experience was very similar, albeit less significant to the community at large since it was with a project that, in the end, was never really jump-started. But I, too, went through the typical phases seen by Daniel: group euphoria, with our extended team posting about 100 messages per day, making all sorts of suggestions, followed by the “Let’s do it” phase, when people started mysteriously disappearing -but still wishing the project well- and finally the disillusion phase, when it became obvious to me that I was left all alone to steer the boat.

Do not get me wrong: Gentoo-the Distro, following Daniel’s impulse, has evolved into a great product and, more importantly, a product with a great community. But Gentoo-the-Foundation is another story. If I remember correctly, Daniel left the Foundation shortly after starting it, thinking that 13 people could do the same work as one single leader. And, in my opinion, this is where he inadvertently - and ironically - created the whole problem that’s plaguing the Foundation today. An Open-Source body, without strong leadership, can only wither and die.
I believe that the current situation could have been avoided by Daniel staying with the Foundation long enough to train its officers to make informed decisions through delegation and coaching.

One of the comments I read stated that management is not what makes Gentoo great. Maybe not, but lack of management is what will make it fail in the end.

Unless..!

Sphere: Related Content