Ridícul
M'arriba per mail una oferta de feina d'una consultora (com no) per un perfil d'enginyeria del software.
Requisitos mínimos:
- al menos 5 años con C++ en proyectos grandes o complejos
(Bjarne Stroustrup, Microsoft VS/VC++ y GNU GCC)
- Entornos Multithread
- API Win32
- TCP/IP
- Estructuras de datos y algoritmos (Donald Knuth)
- 2 años con gestores de versiones (SCCS/CVS/SVN/git)
És el primer cop que veig demanar a una oferta de feina... bibliografía. Em sembla que els de recursos humans haurien de tirar menys de Wikipedia quan no saben què estan demanant.
Per acabar-ho d'arrodonir, veig una altra oferta similar de la mateixa empresa.
Estudios mínimos: Diplomado
Segurament volen algú que s'hagi format en farmàcia, perque a les enginyeries no hi ha "diplomatura".
Less is more than most
Fins al monyo de que tot quisqui digui "instal·lat most" per veure el 'man' en colors. Moltes gràcies, no vull canviar de "pager"; per tenir sol·lucions com aquesta no cal programari lliure.
Sort que sempre hi ha algú a qui li pica el mateix que a tu, i és més hàbil rascant-se. Exporta això al teu 'env' i disfruta la teva condició de no-daltònic.
export LESS='-R'
export LESS_TERMCAP_mb=$'\E[01;31m'
export LESS_TERMCAP_md=$'\E[01;31m'
export LESS_TERMCAP_me=$'\E[0m'
export LESS_TERMCAP_se=$'\E[0m'
export LESS_TERMCAP_so=$'\E[01;44;33m'
export LESS_TERMCAP_ue=$'\E[0m'
export LESS_TERMCAP_us=$'\E[01;32m'
Frustrant
Vols un preprocessador pel less que et parsegi els fitxers en perl, python i shell; sino, sempre acabes obrint-los amb el vi només per veure'ls en colors.
Et lies la manta al cap, li fas una ullada a enscript, determines el tipus d'script amb file, aprens a fer un hash en bash i quan gairebé ho tens... descobreixes com fer-ho amb una línia de codi.
#!/bin/sh
# .lessfilter
#
#
# Jordi Funollet <jordi.f@ati.es> Wed, 06 Feb 2008 22:05:11 +0100
( highlight -A "$1" && exit ) || exit 1
# Consider adding this to your etc/highlight/filetypes.conf
#
# $shebang(sh)=^#!.*(bash|t?csh|[akz]?sh)$
# $shebang(pl)=^#!.*perl$
# $shebang(py)=^#!.*python$
#
# So it will match scripts with a '#!/usr/bin/env ...'
Que frustrant és adonar-te de que algú ja ha resolt tots els problemes fàcils.
Actualització: al moment d'escriure això, la versió de 'highlight' a la Debian Stable (Etch) té un bug com una casa de pagès. El workaround més directe és instal·lar el paquet de Lenny.
Esborrant de Request Tracker
Al curro fem servir Request Tracker per reduir (no gaire) el caos de peticions associat a aquest ofici. De tant en tant cal esborrar-ne algun ticket, sigui per que algú hi ha inclòs un password o perque, generosament, hi ha atatxat un arxiu "grosset".
Pots posar el ticket en el molt explicatiu status: Deleted i seguirà estant al Request Tracker. Si el que vols és esborrar-lo hauràs de fer una visita a Can CPAN i instal·lar el mòdul RTx-Shredder.
Esborrar un ticket concret és fàcil:
$ rtx-shredder --plugin 'Objects=Ticket,741'
Esborrar sols l'attachment m'està costant més. S'accepten pistes.
Ressetejar Delicious
Estic tornant a avaluar Delicious (em fa "tilín" però no ho acabo de veure clar). I quan estàs potinejant i fent proves voldries ressetejar el compte i deixar-lo com quan va venir al món, però mira les FAQ de Can Delicious:
How do I delete all my bookmarks?
The easiest way to do this right now is to delete your account
(this is in your settings) and then re-register it -- you'll
be able to register the same username immediately after deleting it.
Si, home, ara hi corro. Sort que amb una mica de Python i el mòdul pydelicious es pot fer sense suar.
import pydelicious
api = pydelicious.apiNew('user', 'password')
posts_data = api.posts_all()
posts_list = posts_data['posts']
for post in posts_list:
response = api.posts_delete (post['href'])
Accidents afortunats
Es veu que des de fa uns dies la CIA em té fitxat com desevolupador accidental de Clam.
Vaig estar reconfigurant el Subversion de Clam (això és feina, no vici) per passar l'accés de Ssh a WebDav. I com a part de les proves vaig fer un commit, innocent de mi.
El resultat? El meu commit amb un comentari de negligible changes es re-envia automàticament al canal IRC de Clam. A més, els desenvolupadors de Clam fan servir la CIA (xula, l'eina) per fer seguiment dels commits (via irc, feed...). Per tant, ara la CIA em té etiquetat com si fos un dels desenvolupadors.
No estic segur de merèixer aquest honor, vista la meva contribució: dos retorns de carro.
Demà, cap a Girona
Aquest any les VI Jornades de Programari Lliure les acull la Universitat de Girona. Demà de bon matí marxem cap allà i, amb l'excusa, disfrutarem la ciutat fins dissabte vinent.
Bé, la ciutat i un munt de conferències, tutorials, tallers... En el fons, una bona excusa per xerrar, veure què s'està fent a casa nostra (i a fora) i carregar les piles.
Taller de Google Maps al Caixaforum
Diuen els de Pimpampum:
Taller de Google Maps
De 19.00 h a 22.00 h.
La sessió es centrarà en la creació d'elements gràfics sobre els mapes del món,
amb una intenció artística. Entre d'altres es faran servir eines com la creació
de línies (polylines) o la superposició d'elements gràfics (bitmaps) creats per
l'ocasió aprofitant el fet de poder associar-los a qualsevol lloc del món.
I més coses.
Ens hi veiem.
BasKet
Ahir vaig jubilar el KNotes. Des que em vaig passar a KDE el feia servir. Té un parell d'avantatges sobre els post-its: no mates arbres, no se't queden amagats sota el teclat i els pots replicar des de l'escriptori de la feina al de casa. Tot i així, no m'hi acabo de trobar còmode, diria que des del punt de vista d'usabilitat és millorable.
Però ahir vaig descobrir BasKet. La interfície gràfica és la típica de les aplicacions KDE, un gustàs. Però fa coses sorprenents: a les llistes hi pots arrossegar texts, arxius, imatges, o... qualsevol objecte que el KDE sàpiga manegar. I les llistes poden ser una llista vulgaris, una checklist, una pila... i un parell de virgueries més. I això que tinc la versió 0.5; la 1.0 afegeix unes quantes features que em fan caure la baba.
De tant en tant et trobes de morros amb una aplicació que fa molt més del que esperaves i no tens ni idea de per a que l'estaràs fent servir la setmana que vé. Ara mateix tinc aquesta sensació. :-)
Fas servir BasKet? Li has trobat alguna utilitat especial? Explica, explica...
Instal·lar Matlab en Scientific Linux 4.4
Sempre és recomanable fer instal·lacions "mínimes" per als servidors. Això redueix la probabilitat de que una actualització trenqui res, perquè tenim menys coses per trencar. Simple, oi?
Però tot té un preu, i una de les ocasions en què el pagues és quan tens un programa que no està empaquetat, i que per tant no fa una gestió "decent" de les dependències, i aquest programa assumeix que hauràs instal·lat el sistema operatiu amb "full equipment".
Un exemple: l'instal·lador de Matlab. Concretament, l'instal·lem en una maquineta de 64 bits que duu la distro "Scientific Linux" (recompilació dels paquets de RedHat).
Reinagurant
Estem d'estrena. :-) I no sols estrenem vestit, també estrenem esquelet.
Fins ara l'esquelet d'aquesta web era Textpattern. Tot i que té moltes coses que m'agraden, té dues característiques extremadament molestes. Una és Textile, que a aquestes alçades (2.0) segueix fallant en coses bàsiques. L'altre problema és el PHP. ;-) Expliqueu-me el que volgueu, però no m'agrada. Programant en PHP no em diverteixo, ni de bon tros, tan com amb Python.
Flash: tancat i, a sobre, petardo
Després de l'upgrade a (K)Ubuntu Edgy el Firefox s'havia tornat "temperamental". De tant en tant petava com una escopeta de perdigons. Serà la 2.0 aquesta, vaig pensar.
Al cap d'uns dies m'adono de que peta sempre que hi ha Flash pel mig. Desinstal·lo el plugin de Flash i el navegador torna a ser estable.
Un cop se t'encén la bombeta els de Can Google aviat et diuen perquè: sembla que ara les X venen amb el "Composite" activat per defecte. I el plugin de Flash, que deu estar compilat als anys 70, es fa la tita un lio amb el nou visual de les X. Corrupció de memòria, crash del plugin de Flash i, per tant, crash del Firefox que està executant un mal plugin. (Interessant: el Konqueror no arriba a petar; no es veu el Flash, i llestos).
Sol·lució ràpida: els de X tenen una variable d'entorn per a que una aplicació concreta no "vegi" les diferències del Composite. Posem-ho a l'arrencada del Firefox.
#/etc/firefox/firefoxrc
#workaround; avoids Flash crashing with X Composite enabled.
export XLIB_SKIP_ARGB_VISUALS=1
Ara que ja sé què buscava :-) veig que està documentat a Can KDE i que fins i tot ho havia explicat en Francesc Rosàs al seu article sobre Composite.
Ignorància i Subversion
Hi ha unes quantes "habilitats" del Subversion que estàn força amagades a la documentació. Per exemple, ignorar automàticament certs fitxers i directoris en les operacions que fem.
Podem indicar a Subversion que ignori certs patrons allí on els trobi, evitant-nos veure'ls marcats amb interrogants cada vegada que fem un svn status.
Per exemple, treurem del mig els backups i els byte-compiled de Python afegint aquesta línia a ~/.subversion/config:
global-ignores = *.bck *.pyc
També ens permet ignorar fitxers concrets; en aquest cas, la base de dades i un directori "calaix de sastre".
svn propset svn:ignore 'all-in-one-file.sqlite spool' .
Potser si la llista de fitxers és llarga resultarà més còmode picar-la amb un editor. Recorda, un fitxer per línia.
$ svn propedit svn:ignore .
Restes de l'upgrade a Dapper
Després de l'upgrade de Ubuntu Breezy a Ubuntu Dapper quedaven un parell de coses que es resistien a funcionar. L'escpritori és KDE, però instal·lat a base de 'aptitude install kubuntu-desktop' en lloc d'instal·lar directament una Kubuntu.
L'Apache que es saltava els semàfors
Vols arrencar l'Apache i a sobre de passar de tu et deixa això al error.log.
[notice] mod_python: Creating 20 session mutexes based on 20 max
processes and 0 max threads.
[error] (28)No space left on device: mod_python: Failed to create
global mutex 0 of 20 (/tmp/mpmtx305410).
Segurament tens així la directiva AcceptMutex d'Apache::
AcceptMutex sysvsem
Pseudoxml: Textile no, gràcies
"Pseudoxml" és una forma distesa de referir-se a aquelles sintaxis que converteixen el text pla a HTML, tags inclosos (a.k.a. "plaintext markup syntax"). Posats a generar contingut per la web, són exponencialment més agradables que picar HTML pelat i molt més robustos i portables que els editors WYSIWYG que trobem habitualment.
Aquest text està generat (originalment) patint Textile. És adequat per composicions molt senzilles, però té uns quants "problemets" d'aquells que provoquen enrabiades suficients per disminuir-te l'expectativa de vida.
Des del punt de vista dels tipus d'usuari, li demanaríem a l'eina que fos:
- Muggle-friendly: usable per un internauta comú sense que s'espanti. Gaire.
- Geek-scalable: ha de poder créixer per dalt fins satisfer les necessitats dels geeks.
Traductors mandrosos
Quan surt una nova versió d'un programa seria un rotllo tornar a traduir tooots els strings que no han canviat des de la versió anterior. Quina mandra.
El gtranslator permet que "l'entrenem" amb la traducció antiga, i després tradueix màgicament el que ja coneix.
$ gtranslator -l old.po
En Benjamí i la "tribu" de traductors del Wordpress al català m'han fet adonar que tenim una memòria de traducció enorme al projecte Gnome. Clar que baixar-se 110 fitxers a mà deu fer mandra, oi?
Doncs siguem mandrosos.
$ wget -r -l1 -np -A.ca.po \
http://l10n-status.gnome.org/gnome-2.14/PO/
$ find . -name '*.ca.po' | xargs -n1 gtranslator -l
Rentar-li la cara al Python
El més innovador que va fer Ubuntu dins l'univers del Programari Lliure va ser: contractar un dissenyador. Quan va sortir la primera release, tu deixaves sobre la taula un estoig de Ubuntu amb aquells paios fent-se abraçadetes. Llavors entrava algú, s'ho mirava i deia: "Això és un Linux? Que maco..."
Aquest comentari dels usuaris sí que és una novetat. I sembla que els de la Python Software Foundation també es posen les piles i li rentaran la cara a la web de Python. Que ja tocava.
Instal·lar SPE a Ubuntu
La gran diferència de Ubuntu respecte a una Debian és que fan una release cada... bé, menys de 3 anys. Tota la resta (virgueries de configuració de xarxa, instal·ladors "monus") ho podem tenir d'altres maneres.
Però tenir cada sis mesos versions dels paquets estables (o suficientment estables per l'escriptori) és alguna cosa més que "interessant": és crític per ser una opció viable a l'escriptori. Vull dir a l'escriptori d'un ens públic o una empresa, no a l'ordinador d'aquells per qui Linux també és un hobby.
I fins i tot en aquests casos ens dona alguna alegria.
Huracans i models de negoci
En el moment que escric això, encara tot-hom recorda el Katrina. Potser recordes un bloc que es va seguir publicant durant l'huracà, des de l'huracà.
El que resulta una mica sorprenent és que el bloc era una activitat secundària. Aquests paios es van quedar per cuidar els seus servidors mentre la ciutat es convertia en piscifactoria. Que ja són nassos. I mentre bombejaven aigua i combustible i feien guàrdia amb les AK-47, encara els sobrava temps per escriure el bloc.
Reinstal·lar el pis i mudar-se a Ubuntu
L'ens físic que genera el que llegeixes ha canviat la ubicació de les seves infraestructures vitals. Vaja, que m'he mudat de pis. Com que sembla que l'alta d'ADSL tardarà una mica i que tinc un parell de veïns generosos amb wireless obertes, he invertit en una tarja wireless PCI per l'ordinador de sobre-taula^M^M sota-taula.
Un cop vist que el chipset és un ACX111 m'he passat uns quants vespres invocant firmwares i fent exorcismes als mòduls de la meva Debian, amb l'emoció afegida de no tenir connexió a la Xarxa per instal·lar paquets que faltaven i resoldre n+1 dubtes. M'he sentit com si no tingués aigua corrent. Em queden molt lluny els temps en què treballava sense Google.
Bonding sense dolor
Suposem que fa dies vam instal·lar una màquina. El trasto té dues intefícies de xarxa, però per "guanyar temps" :-) vam deixar la configuració del bonding per més endavant. I ara tenim una màquina amb el seu firewall, els seus serveis arrencats i la gestionem remotament. I seria bonic configurar-li el bonding sense parar-ho tot i sense perdre gestió, oi?
L'Alba, el Sound Juicer i l'MP3
[Aquest post és per la meva veïna. Però si no ets la meva veïna també pots seguir llegint.]
Te'n recordes de que em vas preguntar "i com passo els CDs a MP3?". El Sound Juicer té una interfície molt clara, però [...]
Trastejant amb feedparser
He estat trastejant amb feedparser, el mòdul de python que és l'ànima del Planet. No està debianitzat però gràcies al distutils el pots instal·lar "sense mans".
# unzip feedparser-3.3.zip
# cd feedparser
# python setup.py install
running install
error: invalid Python installation: unable to open
/usr/lib/python2.3/config/Makefile (No such file or directory)
Aix, si: que també cal pyton2.3-dev.
Els amics de 23 em cuiden tan bé que tenen un RSS amb les meves darreres fotos. Amb aquest feed, i 3 línies de python...
import feedparser
feedDixit = feedparser.parse('http://www.23hq.com/rss/allioli')
print feedDixit.entries[0].summary_detail.value
...ja puc ensenyar la darrera foto que he pujat (la que veus a la dreta).
<img src="http://www.23hq.com/allioli/photo/230736/mblog"
width="180" height="135" class="23-mblog" />
Facilíssim. Així no té mèrit.
Algu fuma coses i programari lliure
Avui he anat a parar a un mail de'n Bob Young, que fa uns anys es va fer famós per muntar una casa de barrets vermells. Aquest fragment m'ha semblat impagable:
Even now, when we consider the relative size of our marketing budget
to Microsoft's I think the folks at Wired, Infoworld, and PC Week, who
are implying that Linux vendors are filling this role, must be smoking
something.
Consti que és un mail del 98. Avui ens podem seguir fent la mateixa pregunta: estem ocupant el lloc de l'oncle Gates? Jo diria que no... peró seguim guanyant terreny. Conclusió: no deixem de fumar, sembla que funciona.
Debian i pinning
El pinning és el mètode de l'APT de Debian per instal·lar paquets de diferents releases. Molts tenim instal·lada una testing i sovint volem provar paquets que sols es troben a la unstable. Aquesta recepta ho permet.
Ni Gallery, ni Flickr: 23
No fa gaire xerràvem d'empreses de Photosharing amb l'Eduard. Fa temps que els veig uns quants avantatges per davant del meu vell Gallery, especialment els "feeds" de fotos i crear comunitats a base de "tags".
He acabat de fer una repassada a les opcions que tenia mig vistes...
