Archive: January, 2007

Tira sobre la sortida de Windows Vista

Hola

Avui, via meneame he vist aquesta tira que m’ha fet molta gràcia (el final es pot aplicar també a Linux).

Una ocasió perfecte

Fa un temps, recordo que li estava explicant a un amic com funcionava el sources.list de Debian quan em va preguntar perque hi havia tantes alternatives de posar, per cada versió el nom (woody, sarge, etc) o el tipus (stable, testing o unstable), a la qual cosa li vaig repondre que per donar més possibilitats.

Doncs bé, aquesta es una d’elles.

A la feina tinc un petit pc amb una Sarge i em trobo que Sarge no té php5 i Etch si, per tant, si vull php5 i no vull anar a testing perque es un servidor de semi-producció puc modificar el sources.list amb

deb http://ftp.us.debian.org/debian etch main contrib non-free

enlloc de

deb http://ftp.us.debian.org/debian testing main contrib non-free

D’aquesta manera, com molts de vosaltres sabreu, puc fer tranquilament un dist-upgrade sempre que vulgui i no haig d’estar patint per si, quan Etch sigui la nova ’stable’ no se’m quedi aquí i em passi a Lenny (que es el nou ‘codename’ de testing després de Etch si no tinc mal entès).

De les coses que s’enrecorda un en determinades circunstàncies.

Joan, si llegeixes això recorda la nostra conversa :-) ~.

Claws Mail plugins

Hi All

At this moment I’m translating to catalan the Claws Mail’s plugins included in the tar.gz file sent by Paul to the translators’ list (I couldn’t finish them at time). I have finished three of them (acpi_notifier, attachwarner and gtkhtml2_viewer) and I’m going to translate rssyl and vcalendar.

As long as I have finished it, I will send it to Paul to insert them to the cvs repository and all catalan Claws Mail user will enjoy them.

Bye

Modules

Quan una persona ve de programar en llenguatges compilats està acostumat a programar amb interfices, classes abstractes i herència simple. De sobte comença a programar amb un llenguatge de programació interpretat anomentat Ruby on no existeixen ni interficies ni classes abstractes i un pensa “com cony s’ho fan doncs per definir classes abstractes?”.

La diferencia entre una classe abstracta i una interficie es que la primera pot tenir mètodes implementats i la segona no (només son les definicions/signatures dels mètodes/propietats).

Però un por arribar a pensar “perque diferencien entre interficies i classes abstractes si cap de les dues es pot instanciar?”. Suposo que el Matz (creador del Ruby) es debia fer la mateixa pregunta i va inventar els mòduls. Un mòdul es la definició d’un conjunt de mètodes i “propietats”, que poden ser “abstractes” o no, i que poden ser heredats (millor dit inclosos) dins de altres classes que poden incloure’n més d’un (amb la qual cosa es pot fer una mena de herència múltiple).

Un exemple podria ser :

module ModuleTest
include FirstModule

def firstMethod()
raise NotImplementedError(“#{self.class.name}.firstMethod() is not implemented.”)
end

def secondMethod()
raise NotImplementedError(“#{self.class.name}.secondMethod() is not implemented.”)
end

end

class Test
include ModuleTest

def initialize()
end

end

tm = Test.new()
puts(“It’s a ModuleTest child.”) if (tm.is_a?(ModuleTest))

Si gravem l’arxiu que conté aquesta prova com a is_a.rb i el fem executable produirà una sortida com:

miquel@napbuf:~/Practices/Ruby/hierarchy$ ./is_a.rb
It’s a ModuleTest child.
Això es una petita prova de com es poden fer servir els mòduls en Ruby. Al proper post posaré un exemple de com incloure dos mòduls a una única classe.

Salut