Archive for the ‘Free Software’ Category

Innovation in Increments

I have the good fortune of working in a Research & Development group. That means I get to learn about new ideas, experiment with them and apply them appropriately. Unfortunately I can not discuss my current project, other than it involves automating the creation of mobile applications. While I can not say that I am building something that is so deeply innovative that it has no precedence. But then again what most people do not realize that innovation happens mostly in small increments. You take an interesting idea, see if it makes your life easier and better. If not you review your work and options, and you try again. If it works, you get innovation!

So while I can not comment on my own work… :( I can point some interesting work happening in the libre software community.

Canonical’s New Take on Scrollbars

Many of today’s computing innovations like tablets deal not with radical new technologies.  But rather making technology more usable for non-developers and non-engineers.  It might not sound like much, but Canonical is working on improving the usability of scrollbars in their Gnome desktop: http://www.markshuttleworth.com/archives/615

Take a look at the video in Mark Shuttleworth’s post.  I definitely think that abstracting the line indicator and the actual control is a great idea.  It also makes it more touch friendly and intuitive.

MeeGo and Qt Lives for KDE and the N900

While not so much an innovation per se, I am happy to hear that the development of Qt and MeeGo will continue.  The KDE crew came out and pointed out that Qt back when KDE started was a great framework and is even better now.  Back when I started using KDE, I was amazed at how well everything integrated together in look and feel terms.  This was all possible with KDE settling on one good UI framework, Qt.  Now that it is more cross-platform and rounded out, it still is a great compelling framework to learn and use.  There are some governance issues that need to get worked out, but it is nothing that won’t be resolved nicely soon.  I indeed intend on learning Qt, as soon as my own schedule clears up.

[Another analysis on the Nokia/Qt/MeeGo/KDE question.  Man isn't life in the libre software world messy at times.]

As for MeeGo, sounds like Nokia will be supporting the N900 as an official development device for MeeGo.  So maybe Mr. Elop changed direction, but at least there is a way forward for MeeGo handset developers.  Hopefully that’ll mean that we can get started hacking on MeeGo.  And once more devices come out, all developer efforts can get carried over.  Maybe, just maybe we’ll finally have a good libre software platform for new disruptive devices, that won’t be threatened by the domination of one massive vendor.  I’m looking at you Google, Microsoft and Apple.

 

Ontario GNU Linux Fest 2009

Tomorrow I’ll be going to Ontario GNU Linux Fest 2009.  It looks like this year it will be another year for this convention.  Not sure why the insistence of adding the “GNU” to the name…  Still I’ll be there, checking out as many of the presentations as humanly possible.  And doing a thorough raid of possible swag, even if it means opening up my wallet to cover “extra” costs. ;-)   Anyways if you are in the Toronto area and a Linux fan, you should definitely check this con out.  See you there.


Ontario GNU Linux Fest 2009. Register Now!

 

New Site for justCheckers

I’m setting up a new site for the justCheckers project.  The only real good reason for my working at all on this project, is simply to build a portfolio.  As a software developer, I want to show to others that I can code.  And that my code is clean, elegant and professional.  I also want to show that I can write my own web applications.  So I am writing the justCheckers website as a PHP, MySQL DB enabled application.  All using proper XHTML, CSS and a touch of AJAX.  The site is a work in progress.  I’m not planning to build an entire flexible CMS, rather I plan on building a custom site.

 

The Story of the GNU

Last Thursday I received a package from the Free Software Foundation (FSF).  Along with a nifty t-shirt, I ordered my stuffed gnu.  Now the penguin on my desk has a new friend. The reason for the penguin is obvious, I am big fan of the GNU/Linux operating system. The penguin is the de facto logo and mascot of Linux.  But what is up with the gnu?

Well before Linux got off the ground or even existed, Richard Stallman (RMS) started the GNU project.  GNU stands for GNU is Not UNIX. Yes, GNU is a recursive acronym, one of the many cute jokes circulating in the hacker community.  The goal of the GNU project was to build a working and totally free (as in freedom) operating system.  RMS settled upon porting UNIX, not because UNIX was the be-all-end-all of operating systems.  Rather older versions of UNIX came with source code, and so that the new OS could be based off studying the way the old System V UNIXes  worked.  The project progressed well with the development of an entire toolkit: source editor (EMACS), compiler (gcc), linker (ld), and all the other necessary tools to build an OS.  Then came the difficult part of writing a kernel.  Unfortunately the original kernel (GNU Hurd) never got off the ground.  In fact to this day, the Hurd kernel is more or less in delayed development.  Fortunately at the time a kid in Finland-Linus Torvalds-started hacking on a kernel based off the Andrew Tannebaum’s MINIX source code.  Torvalds decided that the GPL would be an excellent license for his kernel.  And thus the dream of a fully viable free operating system started.

We have come a long way since those humble beginnings.  GNU/Linux looks like it will be the dominant OS of this century.  Also the ideals of free software are now fully realizable.  We still have a long way to go to running free software conveniently and comfortably, but we are getting there.  We should thank RMS and all the GNU contributers for building such a great free software toolkit.  Also thank Linus and the other kernel hackers for creating such a robust and flexible kernel.  Finally give a big thank you to all the contributers of the free software and open source movements for making this dream of free computing a reality.

 

justCheckers on Hold – Again – Kinda

justCheckers logo

justCheckers logo

I’m putting my involvement with the justCheckers project on hold for a while.  Progress ground to a halt when I started to dig into the code.  In its current state most of the application’s core functionality needs reworking.  Meaning to go forward someone would need to reimplement slides and jumps that allows for multiple jumps and so-called “flying kings”.  And the GUI needs refactoring to run in a multithreaded manner and with a main game event loop.  I already devised the algorithms for the core game engine.  But I need to translate that into real code.  I plan on implement those eventually.  But the amount of effort to reward doesn’t add up at the moment for me.  So justCheckers will not be on my high priority list for the next little while.

Just to be clear, I am not abandoning the project.  I still want to work on it.  But there are higher priorities on my list.  If anyone wants to step up to the plate and massage the code, I’ll gladly help.  And when once I get my other higher priority tasks done, I will return to hacking on justCheckers.

 

RMS Does Toronto

Richard Stallman, President and Founder of the FSF

Richard Stallman, President and Founder of the FSF

Yesterday I got to finally meet Richard Stallman (RMS) in person.  And yes, he is a way cooler dude than many in the “open source” gang say he is.  The FSF announced a while back in a press release, that RMS would be speaking at UofT on the topic of copyrights in a networked world.

RMS lectured on the history, current politico-business problems with copyrights and some measures to fix them.  I personally found his points interesting, and I’m interested in trying out some of his ideas.  The brief period of exclusive commercialization and modification authorship rights versus long term exclusive publication rights for non-technical documentation is also pretty good.  Also he briefly touched upon the need for a micro-donation payment method.  Overall, a very interesting and engaging talk to a large student audience.

At the end of his presentation, he auctioned off a stuffed GNU and “Happy Hacking” t-shirt.  Eventually the proposed prices became too steep for even myself, so I this morning I went on down over to the GNU/FSF’s online store and bought both for myself.  Getting back to the evening, I also got RMS to autograph my copy of “Free Software, Free Society“.  I highly recommend reading that book.  Also RMS asked me personally to stop using the terms: open source and closed source.  Not only are those terms misleading but they totally ignore the important issue of user and developer freedoms.  So henceforth I’ll try to use the terms “libre software” or “free software” instead of “open source”.  And “proprietary” for “closed source”.  Also I got meet to Dave, one of the organizers of the event and DrProject developer.  And Aaron one of attendees.

A big thanks to RMS, the FSF and the students who organized this event.

 

Open Source Gamer Goes to Ontario Linux Fest 2008

Last, last weekend (October 25) I attended my first conference, Ontario Linux Fest 2008. And what an awesome event it was! The event turned out be a somewhat low key event. Not a huge number of exhibitor booths, but the Eclipse, Fedora, FOSSology, FSF, OpenStreetMap and Drupal people had setup shop there. The event featured 4 tracks, and a number of great speakers. Got to meet Jorge Castro from Canonical, Ross Turk and Daniel Hinojosa from SourceForge, Jon “maddog” Hall, Jeremy Allison from Samba, Ian Darwin and Bradley Kuhn from the Software Freedom Law Centre (SFLC). It is always an amazing thing to meet the people “in the flesh”, who make a difference in the FOSS community, and read from blogs. The seminars were fantastic and inspire me to further my own open source/free software involvement.

One of the organizers, Richard Weait tried to convince me to start up a Brampton LUG. I might try it out, once I have a little bit more time. Nothing fancy mind you, just one night a month at the Coffee Culture, a few ads and a mailing list. We will see how it will go.

Also I got to go out to dinner with Bradley, the Red Hat and FoSSology folks. And thanks to Google for providing yet another free service in life, in the form of free drinks at the reception/ after-party.

So thanks guys for the awesome time. Sorry for not blogging earlier. Life keeps me busy as always. And lets make the 2009 event even larger!
 

Symlink Mirror – A Useful Python Script

Just wanted to share a useful little python script I crafted. I creates symlinks from the top level directories in a specified source folder to a target folder. Its a neat little tool for linking between two distant directories under UNIX. Share and enjoy!

#! /usr/bin/env python
"""    Symlink Mirror -----------------------------------------------------------
       Author: Dorian Pula    Version: 0.1    Date: 2008 May 29
       --------------------------------------------------------------------------
       Creates symlinks in the current directory to the top level folders inside
       a specified directory.  Its a great utility for linking a user's home
       directory with a directory holding files shared between users on the same
       system.

       Usage: python symlink_mirror.py [source of links] [target for links]
      --------------------------------------------------------------------------
       This program is free software: you can redistribute it and/or modify
       it under the terms of the GNU General Public License as published by
       the Free Software Foundation, either version 3 of the License, or
       (at your option) any later version.

       This program is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
       GNU General Public License for more details.

      You should have received a copy of the GNU General Public License
      along with this program.  If not, see <http://www.gnu.org/licenses/>"""

import re, os, sys, stat

verbose = "True"

def main():
    """ The main function of the program. """

    'Check if there are enough arguments supplied.'
    if checkNumberOfArgs():
         'Make the path directories.'
         sourceDir = os.path.abspath(sys.argv[1])
         targetDir = os.path.abspath(sys.argv[2])

         'Get all the names of the directories.
         sourceEntries = os.listdir(sourceDir)

         for toLink in sourceEntries:
             source = os.path.join(sourceDir, toLink)
             target = os.path.join(targetDir, toLink)
             dirCheck = os.path.isdir(source)

             if((os.path.isdir(source)) and not (os.path.islink(source)) and not (os.path.exists(target))):
                  os.symlink(source, target)
                  if(verbose == "True"):
                        print "Linking " + source + " to " + target + "."

def checkNumberOfArgs():
    """
    Checks if there are enough arguments to work on.  There should be two
    arguments, the directory from which we generate the links from, and
    the directory in which the links appear. """

    argNum = len(sys.argv)
    if argNum < 1:
        print("I need a source directory to mirror.")

    elif argNum < 2:
        print("I need the directory to store the created symlinks.")

    if argNum < 2:
        print("\nUsage:")
        print("python symlink_mirror.py [source of links] [target for links]\n")
        return False

    else:
        return True

if __name__ == "__main__": main()
 

Spreading Linux as a Scientific Endeavour

I just read Vlad Dolezal’s blog entry about why Linux doesn’t spread. The debate about the reasons why people don’t adopt Linux and a free open source desktop, has gone on for years. Vlad just dredged up the old its free therefore not useful argument. An easy counterexample are what mobile providers: get a free cellphone, pay for the service. Most Linux/open source companies make money from Saas (software as a service) too. In fact most large scale enterprise deployed software firms, do SaaS or SOA (service-oriented architecture). So while I wish Vlad luck with selling copies of Linux, a far more interesting comment turned up.

One commenter on Vlad’s site mentions their luck with “selling” the idea of a free open source Linux desktop as a scientific endeavour. Linux and software libre started off as ventures of interest only to computer scientists. Look here is a neat little OS I wrote on top of Minix (Linus Torvalds). And look here is a way we can run a UNIX system without NDAs, and restrictions of proprietary vendors (Richard Stallman). It was only until Eric S. Raymond started working on convincing developers and business decision people, that free software named as open source, that Linux started into its present course of wider adoption. A good chunk of open source projects are initiated by academics in computer science and communication fields.

The term open source was invented to defeat the argument which Vlad reiterates. Read Eric Raymond’s book, The Cathedral and the Bazaar for more about the idea behind “open source”. Removing the word “free” helps to lift the semantic confusion around the term free software. And treating the open source eco-system as part scientific community, part computer hobbyist club, and part client-oriented commercial paradigm, will all help remove the negative aura that sometimes surrounds Linux and the open source desktop.

The idea of getting involved in a grand experiment in science, appeals to some individuals. But probably only to those affiliated with academia, or in love with the romantic vision of science. Neither this idea of Linux a child of “computer science love” or any one thing will increase Linux adoption overnight. There will not be any mass exodus from Windows to Linux. However we can lower the cost of entering into the world of Linux.

Far more difficult issues face Linux and the open source desktop other than what Vlad mentions. The open source desktop lacks in ease of use, marketing and third party support. Dealing with these issues, will lower the cost of entry to the open source desktop for more computer users. More about this in future articles.

 

A Free Society Needs a Free Market and Free Software

A few days ago I finished reading Richard Stallman’s “Free Software, Free Society”. The book consists of a number of interesting, well-written essays on the philosophy and history of the free software movement.

Most people heard of open source as a practical development paradigm and distribution method. Eric Raymond’s “The Cathedral and the Bazaar” describes that in more detail so I will not delve much into that topic. Besides I get the impression that many people understand the goals of open source. But not so many understand the reasoning behind free software, which made open source possible.

As Richard Stallman says, free software is “free as in speech not as free beer”. The goal of free software is to bring freedom to software. The freedom of letting users and developer do whatever they want with the software, within limits. The limits being not to take away the freedoms associated with a program and its source code. Richard Stallman explains the cultural heritage benefits and freedom benefits in his book very well.

Many critics of the free software movement voice their concerns over “ownership” of and “marketability” of free software. Some even go so far to call the entire movement “communist” utopia. Me thinks these critics don’t (or don’t want to) understand either how free software works or free markets for that matter.

I will not go into details why a free market is desirable. These ideas are well documented by theorists from Adam Smith to Ludwig von Mises to Milton Friedman. For sake of argument lets assume a free market is desirable. Free markets depend on people owning “capital”. These owners exchange their “capital” with a customer for greater material wealth, which becomes more “capital”.

Free software unlike proprietary closed source software, gives “ownership” to a user. You can only own a piece of software if you have its source code, be able to modify it for a task, and distribute it to whoever you please. The only restriction is that you must not take away those freedoms. The price of freedom is eternal vigilance, Abraham Lincoln once said. The free software with its “give back others freedom” clause, maintains the software’s freedom in perpetuity. Interestingly, this “give back” clause meets the most opposition.

In proprietary software, you get a license to run the program. Usually only one program on one computer by one person, and you are not allowed to give out copies of that program. And you can’t change the program because you don’t have the software. You don’t own the software.

Lets compare this to what happens in real life. You go to the store, and buy a drill. Now you own that drill. You can do whatever you want to with it. You can sell it. You can use it. You can disassemble it. You can use it to power your motorboat if you choose to. It might void your warranty. But you can be sure whatever you do with that drill, and you don’t break a law while using it; you will not have the police coming to your door.

If anything free software is far from being communistic. It gives you more ownership than the closed source software does. Free software encourages a free market, but also asks you to do so ethically. It asks for you to respect the freedoms of another person. Respecting the freedoms of another person is what a free society is about. Respecting the freedoms of a customer is what an ethical seller in a free market does. Furthermore free software with its “give back” clause promotes the idea of giving away “capital” in the form of ideas, work, code, documentation and the software itself; which gives the giver more capital. In fact it gives back more capital for everyone. Everyone wins, and everyone keeps their liberties.

Communism tramples on the freedoms of individual ownership. Free software promotes the freedoms of individual ownership.

Free software promotes ethical behaviour in programmers, cause your code is for all to see. Free software promotes ethical, sustainable entrepreneurs, who know they benefit if everyone benefits. Also often free software ability to be given away, increases a software’s exposure to potential client, better than any sale force can. Free software is also probably the only thing that lets the software market have any chance of become free of interference from corporations and governments. Only a few greedy monopolies and individuals will suffer from free software, but these people don’t care about hurting others to make a bit of cash.
A few days ago I finished reading Richard Stallman’s “Free Software, Free Society”. The book consists of a number of interesting, well-written essays on the philosophy and history of the free software movement.

Most people heard of open source as a practical development paradigm and distribution method. Eric Raymond’s “The Cathedral and the Bazaar” describes that in more detail so I will not delve much into that topic. Besides I get the impression that many people understand the goals of open source. But not so many understand the reasoning behind free software, which made open source possible.

As Richard Stallman says, free software is “free as in speech not as free beer”. The goal of free software is to bring freedom to software. The freedom of letting users and developer do whatever they want with the software, within limits. The limits being not to take away the freedoms associated with a program and its source code. Richard Stallman explains the cultural heritage benefits and freedom benefits in his book very well.

Many critics of the free software movement voice their concerns over “ownership” of and “marketability” of free software. Some even go so far to call the entire movement “communist” utopia. Me thinks these critics don’t (or don’t want to) understand either how free software works or free markets for that matter.

I will not go into details why a free market is desirable. These ideas are well documented by theorists from Adam Smith to Ludwig von Mises to Milton Friedman. For sake of argument lets assume a free market is desirable. Free markets depend on people owning “capital”. These owners exchange their “capital” with a customer for greater material wealth, which becomes more “capital”.

Free software unlike proprietary closed source software, gives “ownership” to a user. You can only own a piece of software if you have its source code, be able to modify it for a task, and distribute it to whoever you please. The only restriction is that you must not take away those freedoms. The price of freedom is eternal vigilance, Abraham Lincoln once said. The free software with its “give back others freedom” clause, maintains the software’s freedom in perpetuity. Interestingly, this “give back” clause meets the most opposition.

In proprietary software, you get a license to run the program. Usually only one program on one computer by one person, and you are not allowed to give out copies of that program. And you can’t change the program because you don’t have the software. You don’t own the software.

Lets compare this to what happens in real life. You go to the store, and buy a drill. Now you own that drill. You can do whatever you want to with it. You can sell it. You can use it. You can disassemble it. You can use it to power your motorboat if you choose to. It might void your warranty. But you can be sure whatever you do with that drill, and you don’t break a law while using it; you will not have the police coming to your door.

If anything free software is far from being communistic. It gives you more ownership than the closed source software does. Free software encourages a free market, but also asks you to do so ethically. It asks for you to respect the freedoms of another person. Respecting the freedoms of another person is what a free society is about. Respecting the freedoms of a customer is what an ethical seller in a free market does. Furthermore free software with its “give back” clause promotes the idea of giving away “capital” in the form of ideas, work, code, documentation and the software itself; which gives the giver more capital. In fact it gives back more capital for everyone. Everyone wins, and everyone keeps their liberties.

Communism tramples on the freedoms of individual ownership. Free software promotes the freedoms of individual ownership.

Free software promotes ethical behaviour in programmers, cause your code is for all to see. Free software promotes ethical, sustainable entrepreneurs, who know they benefit if everyone benefits. Also often free software ability to be given away, increases a software’s exposure to potential client, better than any sale force can. Free software is also probably the only thing that lets the software market have any chance of become free of interference from corporations and governments. Only a few greedy monopolies and individuals will suffer from free software, but these people don’t care about hurting others to make a bit of cash.

Free software is good for society. Its good for business. Its good for customers. Its good for developers and the future of software.

You can download a copy of Richard Stallman’s “Free Software, Free Society” here:
http://www.gnu.org/doc/book13.html