Coming Soon

A new Free PHP web application framework…

GPL and the Copyright Problem

First I chose GPL for Winpdb, then only 2 years later I actually discovered Free Software, what it stands for and the fascinating universe behind these two words, but now a year later I have stumbled on a problem.

GPL is a tool that uses copyright to enforce software freedom, but… in order to be able to enforce that there must be a copyright holder that can take action. The FSF is aware of this and is carefully requiring contributors and their employers (!) to sign legal papers of copyright transfer: http://www.fsf.org/licensing/licenses/why-assign.html

The problem is that most GPL projects can not afford to force potential contributors to get their employers to sign legal papers as it will reduce the number of contributions to 0 and therefore the copyright to their projects is either dispersed among the different contributors or even worse, is questionably held by a single person or entity (with emphasis on questionably).

What does that practically imply on GPL?

On my search for answers I stumbled upon an interesting article from the year 2000 in Advogato (A recommended site). It became even more interesting when I spied a comment by one Bram Cohen who at the time was little known in the Universe as he did not yet leave his job to write BitTorrent: http://www.advogato.org/article/183.html

I would appreciate your educated opinion or a reference to articles on this subject.

America, wake up!

Where I come from I have no TV as a life style choice. It is great! We turned the old analog TV into a monitor and we only use it to watch DVD movies. But now, that we have been moving like gypsies from house to house in Santa Cruz, California, I have noticed something so amazing that it is hardly believable. The quality of the digital TV signal in California is worse than that of a three-hours BitTorrent movie encoded into 600MB by a complete novice. I do not understand how they can take it. It is impossible to watch anything like that. A movie star nods his head at his arch rival and half his face moves while the other half stays and football matches look as lively as the Commodore 64 versions of the game.

The funny thing is that this technology is promoted as a big improvement over the good old analog signal. I can’t wait to see how bad HDTV looks like… so funny.

America, wake up… ;)

Life Outside of a Computer

Three months ago I temporarily moved with my spouse and daughter to Santa Cruz, California. Nature here is amazing. I see squirrels, raccoons and deer on every walk in the woods and when surfing the famous Santa Cruz spots I frequently swim within touching (yes touching) distance from curios otters and sea lions and gliding (wind surfing?) pelicans and other types of big birds.

Winpdb 1.4.0 Tychod Released

Winpdb 1.4.0 Tychod is available for download. It is now compatible with Python 2.6 and 3.0 beta 2 and the step-into-child-process functionality is working again. The full list of changes is available at the download page.

Did you know that on GNU/Linux Winpdb allows you to magically step into a spawned child process?

Form Validation with Formali

Formali, my first JavaScript script ever (well, the first that actually does anything useful) is here. It is a form validation script that works with the Prototype framework.

If you don’t know what Prototype is, head over to their website quick. It is a JavaScript framework that is so cleverly written that it can make a grownup cry. I, at least, have never before seen so many mind boggling anonymous functions crowded into a single file.

Formali came onto this world as I was not able to find a form validation script that did what I wanted, was simple enough to read and use and that was well maintained. It is also possible that I did not search long enough. But my best excuse is that I simply needed the exercise.

It is simple enough so that you may actually consider using (and improving) it instead of being a sinner like me and write your own.

You can find more information over here: http://winpdb.org/?page_id=52

A Mailing List is Born

As if the world needed another mailing list, a new Google Group mailing list has been created to which you can post anything related to Winpdb: http://groups.google.com/group/winpdb

Debugging Explained

Chris Lasher recently migrated his excellent tutorial on Winpdb and debugging in general to the Winpdb Wiki. Thanks Chris!

Winpdb for Python 3.0beta1

For those of you who like living on the bleeding (and buggy) edge of the software world I have uploaded a version of Winpdb compatible with Python 3.0beta1 and Python 2.6beta1 to the mercurial repository: http://winpdb.org/cgi-bin/hgweb.cgi. Instructions are available at http://winpdb.org/cgi-bin/moin.cgi/WinpdbSource

If you find anything that got broken with this update please let me know.

Keep in mind that you can’t actually run the Winpdb GUI in Python 3.0 since wxPython is not available for that version yet. What you should be able to do is to start the debugged script in Python 3.0 and attach to it from a Winpdb instance running under Python 2.5. On a Windows system you would do it with something of this sort:

c:\python30\python.exe rpdb2.py -d myscript.py
c:\python25\python.exe winpdb.py

For this to work you need to either install the debugger into both Python installations or not install it at all. Remember that you can use Winpdb without installing it. In any case you must not try to run a copy of Winpdb installed into one Python version with the interpreter of another Python version.

Heads up for the Python development team: If you run idle.py in either Python 3 or 2.6 under the control of a debugger (any debugger including pdb.py) an erroneous exception is raised in line 295 of multicall.py due to a bug in the interpreter. I will try to be a good citizen and file a report this week. If I didn’t do it it is probably because the dog ate my notebook.

Quiet

It has been rather quiet lately with Winpdb. I have been gradually getting less and less feedback, bug reports and requests either here or in the sourceforge pages. Since it is being downloaded as usual I can only assume it is a sign of maturity. Maybe it just works.

On the other hand I have been contemplating lately the social phenomena of user community indifference. A piece of software can have tens of thousands of users and still generate negligible collaboration activity. It is a mystery. I mean, given this behavior what makes the Wikipedia concept work? What makes one project a collaboration party and another a single person effort?

In any case, this silence on the Python desktop front coincides with my personal shift into the grazing grounds of web development. Finally. Probably one of the last in the herd of software developers, late to get out of bed as usual, I lifted my head from the desktop grass and started marching in search of some XHTML. The first pasture I found by recommendation was of Ruby and RoR. I found the grass over there totally indigestible. Every one says how wonderful and natural it is and that Ruby is actually a lost twin sister of Python. Sorry, but I could see no resemblance what so ever. Sure, Python is not a perfect language but the beautiful thing about it is that it magically disappears and quickly becomes second nature, an extension of your brain. Trying to program in Ruby felt like eating lunch full of sand. I therefore marched on and this time I decided to start from the basics with PHP, XHTML, CSS, SQL, JavaScript, AJAX etc… PHP is another curiosity. It is the most terrible language I ever stumbled upon. How it has become such a corner stone of web development is a mystery. But I decided to give it a serious try this time. After all, the other grazers on that pasture told me PHP programmers are in high demand.

To get PHP, SQL, and the rest into my system I am writing a small and simple MVC framework from scratch. It is called Bolepo and I will soon put it online. Probably in this website initially until it starts crying that it wants its own space. It already has a cute and useful ORM library. I swear.

Next Page »