Category: Mussol

Comencem la setmana amb CV actualitzat i portàtil:off

Reading time: 2 – 3 minutes

Ahir em va donar per actualitzar el meu CV, potser feia més de 2 anys que no ho feia, per no dir més. Però mira ahir em va picar fer-ho. Així doncs, si algú té curiositat el podeu consultar on sempre: CV. En gran part ho vaig fer perquè hi ha la resposta a la pregunta que hem fa molta gent de: “i tu ara què estàs fent?” cosa gens simple de contestar i vaig pensar, el millor lloc per contestar això potser és al CV i així ho vaig fer.

La mala notícia és que tot fent això es va morir el portàtil, el que sense quasi ni adornar-me’n portava quasi 3 anys fent-me costat (des de l’1 d’agost del 2007). Ja feia unes setmanes que tot d’una la pantalla es posava a parpadejar com una boja i segons com això anava acompanyat d’una penjada de tot el sistema. Doncs ahir al reiniciar varen començar a sortir unes ralles verticals de color blanc i malgrat el disc dur sembla que té activitat a la pantalla externa que hi connecto no arriba a sortir res i no sembla que acabi d’arrencar el sistema operatiu. Per tant, avui toca començar la odisea dels SAT, a veure què diu la gent de Dell. Tenint en compte l’edat del portàtil no descarto la compra d’un nou portàtil això si intentaré arreglar el que tinc ni que sigui via eBay, si la gent de Dell no em dona cap bona solució.

Per cert, ara mateix el que he fet per seguir treballant és treure el disc dur de 500GB i 2’5″ i montar-lo en una placa intel 945GCLF2 que tinc per aquí. De fet, el més important funciona sense problemes, però la diferència de la potència de la gràfica, la CPU i la RAM es noten molt. Però tampoc ens posem exigents ja que per treballar almenys ho puc fer en condicions cosa que hem feia pànic no poder fer.

Turnkey Linux Virtual Appliances

Reading time: 2 – 3 minutes

Turnkey Linux logo
Turnkey Linux logo

Ahir comentava que el Carles hem va parlar de ClearOS, doncs bé, també em va comentar que hi havia un projecte opensource anomenat Turnkey Linux que bàsicament es dedica a fer software appliances amb els paquets de codi lliure més famosos, per exemple: LAMP, drupal, joombla, phpBB, dokuwiki, mediawiki, rails, tomcat, mysql, wordpress, etc. actualment diria que hi ha 56 paquets.

De fet, a part de per fer proves sobre certs paquets no trobo massa interessant aquestes software appliances. Però el que si que realment m’ha cridat l’atenció i he estat provant fa uns dies és el Turnkey Core, que en escència és la base del sistema que ells usen per montar les software appliances. Escencialment es tracta d’agafar una Ubuntu 8.04.3 LTS i donar-li suport de:

  • Target systems:
    • CD d’instal·lació optimitzat (instal·lació mínima) i ús com a liveCD
    • Màquines virtuals: VMDK HD i OVF (Xen, VMWare, Parallels, VirtualBox)
    • Amazon EC2 AMI
  • Configuration console (feta en python), permet configurar de forma senzilla funcions bàsiques:
    • xarxa
    • apagar
    • reiniciar
  • Ajax Web Shell (shellinabox): client SSH via web, realment va molt bé!
  • Web Management via Webmin
  • Regenera les claus dels certificats durant la instal·lació
    • SSL: webmin, apache2, lighttpd
    • SSH
  • Definir el password de root durant la instal·lació

Com podeu imaginar-vos la meva idea és agafar aquesta base de sistema per montar els meus propis servidors ja sigui a nivell privat o professional. De fet, estalvia prou feina i la instal·lació que fa Turnkey Core d’Ubuntu és prou petita com per fer una instal·lació a mida en cada cas. O sigui, que es poden intal·lar els paquets que volem sense haver de tenir coses innecessaries. Això si, pensant sempre en servidors.

Simple Invoices: factures i prou

Reading time: 1 – 2 minutes

simple invoices logoA través de twitter i més concretament gràices a un enllaç que va publicar l’Oriol he descobert una aplicació que té molt bona pinta, es tracta de SimpleInvoices. La seva finalitat poder fer i gestionar les factures, l’aplicació esta molt lluny d’un ERP o quelcom semblant simplement fa factures. Aquesta és la gràcia, hi ha molts autònoms que no volem grans eines complicades sinó simplement una forma senzilla i ajustable a les nostres necessitats.

Poder fer factures, pressupostos, guardar-los, imprimir-los, exportar-los a PDF i enviar-los als clients i ben poca cosa més. Tot plegat accessible via web, basat en LAMP i Open Source com no podia ser de cap altre manera. Per si tot això no fos poc també suporta diversos idiomes a l’interficie i ens podem personalitzar les plantilles de les factures.

De fet, encara no he començat a usar l’eina ni he decidit del tot si ho faré o no, però ús puc assegurar que té força números que ho acabi fent amb aquesta eina.

Ja tornem a ser al peu del canó, adéu Punta Cana!

Reading time: 4 – 6 minutes

L’any passat l’Estefania i jo varem canviar l’any a la Riviera Maya i aquest any després de comprovar que fer el canvi d’any amb banyador és tot un plaer ho hem fet a Punta Cana (Republica Dominicana). Així doncs, del dia 29 de desembre fins el 5 de gener hem estat a l’hotel Catalonia Royal Bavaro on ens han tractat com uns senyors. Com sempre el principal atractiu de la zona ha estat la calor, el sol, la platja, la piscina i perquè no dir-ho el tot inclòs que hem disfrutat d’allò més. A continuació ús adjunto algunes fotografies que descriuen una mica el que ha estat aquest viatge.

Primer de tot unes vistes de pel·lícula per descriure la platja de l’hotel:

Punta Cana (Republica Dominicana 2010)

Una gran sort, els bons amics que varem fer al viatge: (per cert, l’hotel estava ple de catalans)

Punta Cana (Republica Dominicana 2010)

L’única escapada que varem fer de l’hotel va ser per anar al centre comercial Iberia (un tipus Carrefur) per fer les compres típiques i el sopar que varem fer a Higüey, concretament al bulevar. Per cert, erem els únics no domincans de la zona i es podia respirar l’ambient dominicà al 100%:

Punta Cana (Republica Dominicana 2010)

Una de les piscines de l’hotel a tocar de la platja:

Punta Cana (Republica Dominicana 2010)

I per tancar el recull una fotografia romantica amb un paissatge de somni:

Punta Cana (Republica Dominicana 2010)

Pels que tingueu curiositat a l’album de fotografies com sempre podeu trobar totes les fotografies del viatge.

Finalment he pujat a youtube un parell de videos, un de l’habitació de l’hotel tal com ja vaig fer l’any passat:

i un altre video, aquest de la discoteca Imagine de Punta Cana, on varem anar a celebrar la festa de cap d’any. Per cert, la discoteca esta dintre d’una cova i té tres sales de diferents estils de música malgrat per cap d’any només hi havia dues sales obertes:

Per fi agafo vacances, a Punta Cana falta gent

Reading time: < 1 minute Demà marxem uns quants dies a Punta Cana (Republica Dominicana), de fet, anem a desconnectar de tot i a disfrutar de la calor, la platja, la piscina i bon menjar. En poques paraules a fer una mica de vegetals. Que l'any que ve ens espera un altre viatge també a la zona caribenya però amb una dosis d'aventura més gran. Esta bé això de fer un viatge sabent quin serà el següent no ho havia fet mai 🙂 Hotel Catalonia Royal Bavaro

Bé doncs, espero que acabeu de passar unes bones festes i si algú ens busca que no ho faci fins el 8 de gener, com a mínim.

Introducció a RestMS

Reading time: 2 – 4 minutes

RestMS schemaXMPP és un protocol de missatgeria no només orientat a mantenir converses entre usuaris sinó també a ser usat com a sistema RPC entre diferents aplicacions. Malgrat això res és perfecte i AMQP més orientat a la segona funció que no pas a la primera es perfila com estàndard  corporatiu molt més potent i eficient que XMPP en diversos aspectes. Però AMQP peca per ser força inaccessible degut a que no és trivial d’entendre i usar.

En tot aquest món de la missatgeria entre aplicacions hi ha un altre protocol no tan conegut però que preten tenir el millor d’XMPP i d’AMQP: RestMS. De fet, RestMS és realment una simplifiació d’AMQP que usa com a sistema de transport REST.

Es tracta d’un estàndard obert, amb una implementació Open Source força sòlida. Aquest estàndard ens aporta:

  • sistema d’enrutat de missatges
  • models de cues
  • fàcil d’extendre la seva semàntica
  • simple, perquè és precís i petit
  • segur, usa els sistemes de seguretat estàndards d’HTTP
  • escalable, perquè usa servidors, caches, proxies, etc. del món HTTP
  • resol la dicotomia ‘polling vs events’ usant long-polling, igual que BOSH
  • en principi no disposa de sistema de presència, tot i que es podria montar fàcilment
  • pot codificar durant el transportar les dades en XML o JSON
  • portable en diferents sistemes operatius
  • ofereix interoperatibilitat entre diferents llenguatges de programació

Per tot plegat RestMS es perfila com una alternativa interessant per alguns entorns, aportant una solució simple i potent en molts aspectes. Tot i que teoria en mà, el trobo força més lent que no pas AMQP. De fet, des de que vaig veure com s’usava un sistema AMQP per fer balanceix de càrrega en aplicacions de video usant GStreamer per fer una prova ‘fast and dirty’ em vaig quedar impresionat.

Tipus de pantalles tàctils

Reading time: 4 – 7 minutes

Després de treballar força anys en el món dels kioskos i del digital signage, mai se m’havia passat pel cap mirar-me quines eren les diferències reals entre els diferents tipus de pantalles tàctils que hi ha al mercat. Així doncs, finalment he decidit fer-ho i descriure-ho en aquest article.

Resistive Touch Screen

  • La tecnologia amb la millor relació qualitat preu de totes les tecnologies tàctils
  • Disponible per pantalles desde 5.7″ fins a 22″
  • Compost per diferents capes:
    • les més importants són dues capes fines: una metàlica i l’altre formada per capes conductores de l’ectricitat, aquestes capes són molt fines i estan separades entre elles molt poc espai
    • quan un objecte, per exemple un dit, prem la pantalla llavors les capes metàliques es toquen i passen l’electricitat
    • quan hi ha la connexió en aquest punt, el pantell actua com un divisor de voltatges en les sortides que tenen la connexió i registren l’event comunicant a la controladora que algú ha tocat la pantalla
  • la tecnologia és força confiable, durable i acostuma a tenir un temps de vida llarg
  • és la tecnologia més resisten en entorns ostils
  • és económica
  • és molt estable, és a dir no cal recalibrarla mai o quasi mai
  • compatible en diferents tipus de tocs: dit, stylus, llapís, etc.
  • ideal per aplicacions amb alta intensitat d’ús
  • pot arribar a suportar els estàndars NEMA 4/4x/12 i IP 65
  • si ens fixem bé en el tàctil a contrallum podem arribar a veure els minifilaments que el formen
  • susceptible a rallades o esquerdes a la superficie de toc

Surface Acoustic Wave (SAW)

  • la principal virtud és la seva transparència
  • mides de 6.4″ a 42″
  • usa ones ultra-sòniques que passen per sobre de la pantalla táctil
  • quan es toca el tàctil una part de les ones és absorvida
  • llavors es registre on han estat absorvides les ones i es comunica a la controladora el punt del toc
  • la superfie de toc pot estar danyada i continua funcionant (ralles o vidre trencat)
  • la brutícia sobre la superficie de toc pot interferir en el seu funcionament
  • els tàctils d’aquest tipus que estan fets en vidre funcionen millor que els altres
    • a més això fa que siguin més transparents
  • no cal calibrar-los més d’una vegada
  • poden ser usades de qualsevol manera: dit, guants, stylus, etc.

Capacitive

  • llarga duració
  • bona relació qualitat preu
  • inpermeable a la pluja i a la brutícia
  • mides de 5.7″ a 32″
  • sovint fabricats en vidre
  • funcionen a través d’uns sensors que actuen com a capacitors
  • les parets dels capacitors dels eixos horitzontals i els verticals es solapen
  • aprofitant que el cos humà és conductor de l’electricitat, al tocar amb el dit la superficie del sensor el camp elèctric canvia i es produeix un canvi en la capacitància
  • funcionen per proximitat, no cal arribar a tocar el tàctil
  • tecnologia amb força durabilitat i que s’usa a força sistemes POS, industrials, kioskos públics, etc.
  • és força més transparent que la tecnologia resistiva
  • només funciona amb el contacte amb el dit, o amb stylus que siguin conductors
  • suporten sistemes multi-touch
  • una capa dura en el vidre proporciona resistència al desgast
  • força resistent a la brutícia
  • funciona força bé quan hem d’arrossegar elements en la interficie
  • es considera que té un coeficient de transparència a la llum del ~91.5%

Infrared

  • Ideal per entorns ostils i aplicacions a l’exterior
  • Mides de 8.4″ a 17″
  • usa una xarxa d’emisors d’infra-rojos basats en LEDs que estan repartits pels eixos horitzontals i verticals de la pantalla, a més d’uns fotosensors col·locats en els costats inversos dels emisors
  • la idea és crear una xarxa de rajos infra-rojos i quan aquests es tallen ja tenim el toc
  • no s’usa per elements portables només per instal·lacions fixes
  • es pot usar amb el dit, guants, stylus, etc.
  • és estable, no cal calibrar-la
  • no té perquè treballar amb superficies fines, poden ser rugoses
  • poden combinar-se fàcilment amb sistemes antivandàlics
  • usades en estàndards Ingress Protection (IP) i NEMA
  • durant molt

3M MicroTouchTM DST Touch System

  • Superficies tàctils molt grans
  • mides de 32″, 40″, 42″ i 46″
  • vides tractats químicament
  • no cal stylus per usar-la, funciona amb qualsevol objecte o element que toqui la pantalla
  • resposta ràpida
  • no són massa susceptibles a la brutícia
  • 3M Dispersive Signal Technology (DST): bàsicament permet calcular les ondes de reflexió que es produeixen en el vidre tractat al haver-hi un toc
  • Ràpid, precís i molt confiable
  • Suporta esquerdes, rallades o fins hi tot objectes recolzats sobre la pantalla i continua funcionant amb precisió sobre les interaccions
  • Idea per aplicacions multi-usuari
  • Transparència excepcional

Cues del postfix i informacions relacionades

Reading time: 60 – 100 minutes

Per defecte les cues que té el postfix són:

  • hold: missatges que no s’intenten entregar mai
  • incoming: cua d’entrada de missatges
  • active: cua en la que es decideix amb quin delivery agent s’itenta entregar un missatge
  • defer/deferred: missatges que no s’han pogut entregar per un error temporal es posen en aquesta cua
  • bounce: on es generen els missatges d’error cap al remitent dels missatges que no s’han pogut entregar
  • corrupt: cua que conté missatges danyats amb els que no es pot fer res

Accions que podem fer amb els missatges d’una cua:

  • Listing messages
  • Deleting messages
  • Holding messages
  • Requeuing messages
  • Displaying messages
  • Flushing messages

Gestió de les cues:

mailq
  • Mostrar els 10 dominis amb més missatges pendents d’enviar, sovint va bé per controlar quan ens han usat per fer un email i hi ha molts correus enganxats per enviar.
qshape -s deferred|head -n 10
  • Borrar un missatge de les cues.
postsuper -d ID_MSG
  • Borrar tots els missatges de les cues.
postsuper -d ALL
  • Script per borrar missatges de les cues segons origen o destí:
#!/usr/bin/perl -w
#
# pfdel - deletes message containing specified address from
# Postfix queue. Matches either sender or recipient address.
#
# Usage: pfdel 
#                                                                                         

use strict;

# Change these paths if necessary.
my $LISTQ = "/usr/sbin/postqueue -p";
my $POSTSUPER = "/usr/sbin/postsuper";

my $email_addr = "";
my $qid = "";
my $euid =
 
gt;; if ( @ARGV != 1 ) { die "Usage: pfdel \n"; } else { $email_addr = $ARGV[0]; } if ( $euid != 0 ) { die "You must be root to delete queue files.\n"; } open(QUEUE, "$LISTQ |") || die "Can't get pipe to $LISTQ: $!\n"; my $entry = ; # skip single header line $/ = ""; # Rest of queue entries print on # multiple lines. while ( $entry = ) { if ( $entry =~ / $email_addr$/m ) { ($qid) = split(/\s+/, $entry, 2); $qid =~ s/[\*\!]//; next unless ($qid); # # Execute postsuper -d with the queue id. # postsuper provides feedback when it deletes # messages. Let its output go through. # if ( system($POSTSUPER, "-d", $qid) != 0 ) { # If postsuper has a problem, bail. die "Error executing $POSTSUPER: error " . "code " . ($?/256) . "\n"; } } } close(QUEUE); if (! $qid ) { die "No messages with the address <$email_addr> " . "found in queue.\n"; } exit 0;
  • Borrar missatges segons email origen o destí.
/root/bin/pfdel email
  • Hold a message / Retenir missatges, no intentar servir-los. Posar-los a una cua congelats.
postsuper -d ID_MSG
  • Hold all messages
postsuper -d ALL
  • Moure un missatge de la cua ‘hold’ a la cua ‘active’.
postsuper -H ID_MSG
  • Moure tots els missatges de la cua ‘hold’ a la cua ‘active’.
postsuper -H ALL
  • Re-encuar missatges, per exemple si el postfix tenia un erro de configuració després de corregir-los podem re-encuar els missatges perquè es corregeixin els possibles errors de classificació que hagin patit. Per exemple, canvi de ‘delivery agent’.
postsuper -r ID_MSG
o
postsuper -r ALL
  • Veure el contingut d’un missatge que esta a la cua:
postcat -q ID_MSG
  • Per forçar el re-enviament de missatges a la cua.
postqueue -s
o
postfix flush
  • Per forçar l’enviament de missatges a la cua per un domini.
postqueue -s domini.com

llibre d’XMPP – notes a peu de pàgina

Reading time: 1 – 2 minutes

Després de llegir-me el llibre:

He pres les següents notes al moleskine que guardo aquí per poder consultar en el futur:

  • pg.39: IQ or Message
  • RFC 3920: stanza errors list
  • SleekXMPP llibreria python interessant
    • Apendix F: llistat de llibreries XMPP
  • pg.50: Subscription
  • Presence priority: -127 +128
  • XEP 0191: bloquejar JID o dominis
    • Podria ser interessant per bloquejar clients que no paguen
  • XEP 0079: ideal delivery a pantalles, reliable delivery
    • oblidar-nos de problemes si les pantalles estan offline
    • expiration time dels missatges
    • control delivering
  • XEP 0009: JabberRPC
  • XEP 0072: SOAP over XMPP
  • XEP 0060: PubSub
  • XEP 0163: permet que JID sigui un ‘collection node’ que agrupi serveis PubSub això es pot publicar junt amb les capabilities
  • Pg. 132/150: ICE, molt bona explicació
  • Pg. 145/163: VNC over XMPP es pot fer usant socks5 com a proxy segons XEP
  • XEP 0050: remote commands
  • BOSH: 180/198
  • Pg. 189/207: Serverless Messaging
  • Pg. 267/285: DNS SRV

Nagios external commands

Reading time: 12 – 19 minutes

Tan de temps usant nagios i mai havia tingut la necessita de recorrer als Nagios External Commands. Escencialment es tracta d’una named-pipe que usa Nagios per rebre comandes via shell.

  • Sintaxis per injectar les comandes. Per suportar aquesta funcionalitat previament cal haver-la habilitat al fitxer de configuració de nagios, això també ho trobareu a l’anterior enllaç.
  • Comandes suportades, la llista és força gran i hi podem trobar coses com ara forçar un check per host o fins hi tot deshabilitar els checks sobre un servei o un host.

A continuació adjunto la comanda que podeu llençar desdel prompt per llençar una ordre al nagios al cap de deu segons. En aquest cas forcem que es verifiquin tots els serveis d’un host.

# des del directori on hi ha la 'named-pipe' sovint anomenada 'nagios.cmd'
now=$(date +%s); next=$(expr $now + 10); echo "[$now] SCHEDULE_FORCED_HOST_SVC_CHECKS;nom_host;$next" > nagios.cmd

Per veure el resultat de la comanda i si aquesta ha estat rebuda pel nagios només cal que mirem el fitxer nagios.log. La sortida del log serà algo així:

data host_server nagios: EXTERNAL COMMAND: SCHEDULE_FORCED_HOST_SVC_CHECKS;nom_host;unix_ts
Scroll to Top