Software patents are dangerous

After a quite interesting month, in which I attended two very interesting lectures (Carlos Guerreiro and Richard Stallman lectures) and a very good fortnight in London I wasn’t sure what to talk about in this post. However, I liked so much an example that Richard Stallman told us talking about software patents that I needed to say some words.

I’ve been always against software patents, Igalia as company was in some campaings against them. But last week, I listened a very good example to clearly explain the reason in better way.

First, some context, software is an engineering area very different to other ones. For example, architecture or pharmacy need to deploy ideas in some physical medium, hence you have a real limit and you are not able to propose any combination of ideas for some specific purpose. However, in software, you can mix thousands of different ideas to develop a product. Maybe patents, in other areas, were created to avoid people dying with their secret.But software is different, and I think Richard Stallman is right trying to compare it with music.

Music is an abstract art where you can combine any idea to create a new one and music genius would never died with their secret. Do you imagine that in the first years of music height “music patents” existed? I do not think that would be fair for us that the first person who had the idea of mix some arpeggios could avoid other people from combining them, that is, without paying a good amount of money. Probably, we would not have Mozart or Beethoven works to enjoy because it would be impossible to reuse some previous ideas during their composition.
For me, software is similar, there are some obvious abstract ideas that should not be patented. Sooner or later people would need them to build better ideas, in the way musicians combine them. If software patents are approved, only big companies will be able to develop software programs. In Spain most of companies are “pymes”. They would be the only ones to fight against lawsuits because they have a lot of other patents to get a good agreement (if you do not hurt me I do not hurt you).

I think European government should be aware of this wolf in sheep’s clothing that patents may be for medium and little companies and they should avoid software patents to be approved.

London again and again :)

Last weekend Chema and me were working in London. Although it can sound strange, we were looking for a flat.

Why is Igalia looking for a flat? It is simple, one of our main goals is to be able to work in a complete English environment, developing, writing, listening and speaking in English. Last year we had an item in our budget for a subsidy to go abroad to learn English. However, this year, we have changed this item to take advantage of the amount of money we are going to spend.

This flat will be available for the members of the assembly to go to London to learn English or to work in a complete English environment during several weeks.

The first step of this experiment was to get the flat. At this moment we are in the process of renting it. You can see one of our bedrooms:
One double bedroom
Now we have to prepare it for living there, establish some rules for share the flat between us and then, we only need to enjoy it!.

Back from London

I’m back and working. I had several concerns about my trip but now I can talk about it without worry because everything was fine.
First of all, I want to talk about the accommodation and the English language school that I had to book from Galicia, only recommended by generic comments at different forums.

  • Accommodation: It was fine because the apartment was as I expected. Although the general cleaning seemed good I needed to roll the rug because of the dust. The apartments location is very good because they are near Hyde park and close to two tube stations (Bayswater and Queensway).

My apartment

  • King Street College: It isn’t a big school and the courses are thought for longer periods (3 months for example), so I couldn’t find a specific course for me. However, I’m happy about the results because I could meet people from different countries and cultures (Korea, Japan, Poland, Germany, The Czech Republic, Venezuela, Colombia, Turkey), therefore I could attend class in a completely English language environment with people who doesn’t have the same mistakes than I have. I was in different classes during the first week and the second week, you can see a photo taken during the my last class.

My classmates
After school I always tried to visit the most important tourist places. I went to the museums, The Tower of London, The Tower Bridge, etc. And then, during the evenings I wanted to do different things that are difficult to do in small towns :):

  • I went to a classical music concert. I listened the Royal Philharmonic Orchestra playing Rossini, Beethoven and Mendelsohn. I like the classical music so I enjoyed a lot the concert because I could attend this concert.
  • I went to the musical show “We will rock you!”: Incredible! I recommend it to everybody who likes Queen music.
  • I attended a Jazz concert at 606Club. Although it isn’t easy to arrive at and the entrance can frighten a bit, once inside, the club is lovely and I felt very well in the club. The dinner was the best I had in London and they are very interested on having the best Jazz players performing in the club.  The day I went, Paul Booth performed and I was very satisfied with the concert.

Finally, I need to comment the “pure chance” of my holidays… I was able to see the controversial Olympic torch before a girl were to walk along the Tower Bridge with the torch. I approached to the group of polices that surrounded the girl and I could take a photo :)… But I didn’t know the attempt of boycott and I didn’t realize that the police was alert and I could have been moved apart from them .. but finally nothing happened and they only said to me that I should keep away (you can see the police warning me…).

The controversial olympic torch
To sum up, I’m very happy with my trip and I think I’ll repeat when I can…

After a long time

Today I’ve published cas_auth and caslogin extensions on Typo3 extension repository. You can download them from:

Both extensions have been developed in order to allow integration between CAS and Typo3.

As I said on a previous post -see CAS and Typo3 (II)-, an administrator must create a cas server in order to integrate CAS and Typo3. This kind of record is defined by cas_auth. Once the record exists, system knows where CAS server is running and tells to CAS server the url where Typo3 will check the user validation. Furthermore, cas_auth register an auth service offered by Typo3, so Typo3 will check user as cas_auth does it.

However, with cas_auth, Typo3 only knows how to validate users. Typo3 needs, a least, a frontend link or something to allow users to access to CAS login page. “Caslogin” creates and shows that link.

You’ll you can integrate completely CAS and Typo3 with these two extensions.

CAS and Typo3 (II)

Hi,

after several months without publish comments, I’ll try to take up again this healthy habit :). I’ll try to explain several steps to get CAS integrated with Typo3 without going into details.

My partners and I have installed CAS and Typo3 and we’ve integrated them. In order to do this, you should have the following running:

  1. CAS installed and running on application server. We’ve installed CAS on Apache Tomcat 5.5.17 and integrated with LDAP. We have installed esup-cas-server-2.0.7 using LDAP and “uid” as user identifier.
  2. Typo3 installed and running on another server (or the same, but we don’t recommend it).

Having this environment running, we’ve had to follow the steps:

  1. Download the esup-PHPCas client from http://esup-phpcas.sourceforge.net/.
  2. Implement a new Typo3 extension “cas_auth“.
  1. esup-PHPcas was copied to cas_auth extension in order to be included from my class. CAS client provides this methods:
  • client(): Gets a client CAS instance.
  • forceAuthentication(): Checks if user is authenticated, if he isn’t redirects to CAS login form.
  • getUser(): Gets current authenticated user.
  1. This extension should extend tx_sv_authbase.
  2. We have implemented a method getUser(), called on “Logout” and “Login” operations. That method invokes CAS client methods which authenticate user, calling to forceAuthentication() method that redirects to login form if user hasn’t a valid session.
  3. cas_auth has the property BE_enableSSO, which, if it’s set, allows to authenticate on backend if user exists both on fe_users and be_users tables.
  4. We have added the new class as a service:
    t3lib_extMgm::addService($_EXTKEY,  'auth' /* sv type */,  'tx_casauth_sv1' /* sv key */,
    array(  'title' => 'CAS Auth',
    'description' => 'Authentication with CAS',
    'subtype' => $subTypes,
    'available' => TRUE,
    'priority' => 80,
    'quality' => 80,
    'os' => '',
    'exec' => '',
    'classFile' => t3lib_extMgm::extPath($_EXTKEY).'sv1/class.tx_casauth_sv1.php',
    'className' => 'tx_casauth_sv1', )
    );
    1. Implement a new Typo3 plugin.
      1. We’ve named this extension caslogin.
      2. That extension shows a link to CAS login form if user isn’t authenticated and a link to logout if user has a valid session.
      3. There is another option that allows to set up caslogin form with a IFRAME on your site.
      4. That plugin should be added to the page where you want to validate user (showing login form or showing welcome text :)).

    Backend configuration:

    • One “cas server” record should exist on site main sysfolder. Cas server is provided by “cas_auth“. Cas server defines:
      • Server name: Base url where Apache Tomcat serves our CAS instance.
      • Server port: Port where Apache Tomcat serves our CAS instance.
      • Log path: Complete path for cas client logging.
      • Cas servlet: Relative uri where Apache Tomcat serves our CAS instance.
      • URL to come back from CAS: Url used by CAS login form to come back to Typo3 site.
    • At least, one caslogin plugin added to one page (it could be good idea to add caslogin plugin as TypoScript Object Path over all pages).
    • ldap_server, ldap_lib and ldap_sync should be installed and configured on Typo3.

    When user accesses to site the sequence is:

    1. User goes to home page (which must have a caslogin plugin configured).
    2. Typo3 checks if user is authenticated on caslogin.
    3. CAS login form is shown on home page depending on configuration.
    4. User fills in his/her username and password.
    5. If username and password are correct, CAS login form redirects to Typo3 check login page, which can be any page that receives several “GET” variables, for example:
    “http://typo3_url/index.php?id=alias&submit=Login&logintype=login”

      Typo3 and CAS

      CAS is the Central Authentification Service. CAS is very useful for developing webs where companies wish to integrate several client services (services offered by independent tools) and offering that services avoiding that clients have to insert login and password several times (one for independent platform). In other words, CAS allows to deploy a Single Sign On among several tools.
      I have installed CAS (using the esup-cas-server) integrated with LDAP. Now, i’m trying to test integration between Typo3 CMS and CAS. By now, i have developed a service and a frontend plugin that allows to redirect to CAS login page and then, using the service, a user can access to Typo3 without authentication on Typo3.

      The following steps will be to improve the frontend plugin to show the CAS login page inside of Typo3, to avoid users to exit from Typo3 to CAS. With this improvement, the full scenario will be:

      1. A user will see public pages as anonymous user. The CMS will show an IFRAME with CAS login page.
      2. If the user wants to access to private contents, the user must introduce username and password on CAS login page.
      3. CAS login page redirects to CMS to log in the user and IFRAME will show the username and a button to log out.
      4. The user will be able to access to all private services and contents to which user has permissions.

      Reference:

      • CAS: http://www.ja-sig.org/products/cas/
      • Typo3: http://www.typo3.org

      Comenzamos!

      Hola, este es el comentario inicial del blog! Hoy es el primero de mis comentarios, espero que no sea el último :D.

      No soy un persona acostumbrada a escribir en blogs con lo que este primer comentario sirve para iniciar mi contacto con el mundo del blogger y ver si soy capaz de acostumbrarme a mantenerlo actualizado.

      Saludos.