Nov 16

Postfix autenticació amb sasldb

Reading time: 2 – 2 minutes

Quatre notes que tinc pendents de classificar, com donar suport d’autenticació a postfix de forma ràpida i senzilla.

Paquets que cal tenir a més del postfix: cyrus-sasl, cyrus-sasl-md5.

Línies que cal tenir al /etc/postfix/main.cf:

smtpd_sasl_application_name = smtpd
smtpd_sasl_type = cyrus
smtpd_sasl_path = sasl2/smtpd.conf
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination

Fitxer de configuració del servei d’autenticació /etc/sasl2/smtpd.conf:

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM

Assegurar-se que el propietari del fitxer /etc/sasldb2 és postfix.

El fitxer /etc/sasldb2 és una base de dades Berkeley DB que guarda els usuaris i les seves paraules de pas en text pla. Així doncs, no és molt segur però una solució més que suficient per molts entorns SOHO.

Gestió d’usuaris:

# afegir usuari
saslpasswd2 -a smtpd -u domini_exemple.com nom_usuari

# borrar usuari
saslpasswd2 -d -u domini_exemple.com nom_usuari

# llistar usuaris
sasldblistusers2

La configuració que heu de posar al MUA pel que fa al servidor de correu ha de ser del tipus:

usuari: nom_usuari@domini_exemple.com
pass: el que hagiu definit
mecanisme d'autenticació suportats:  PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM

UPDATE 27/2/2012:

Perquè es pugui tenir accés al fitxer /etc/sasldb2 cal que el mòdul smtpd de postfix no es llenci com a chroot. Per evitar això cal modificar el fitxer /etc/postfix/master.cf concretament la línia del dimoni smtpd ha de quedar així:

smtp      inet  n       -       n       -       -       smtpd

Per tenir suport de SASL a Ubuntu Lucid cal instal·lar els paquets: sasl2-binlibsasl2-modules.

Oct 19

CTO vs CIO

Reading time: 1 – 2 minutes

CIO

  • integrar: objetivos negocio, tecnología y tratamiento de datos
  • alinear objetivos del negocio con la TIC
  • soporte tecnológico a las estrategias y actividades involucradas que buscan alcanzar la visión
  • clientes internos y procesos internos
  • conocimientos de negocio y tecnología
  • no es lider de ingeniería y/o programación
  • ejecutivo de negocio responsable de alinear las políticas y directivas de negocio a la tecnología
  • función en una palabra: estratégia

CTO

  • clientes externos e ingresos
  • tecnología necesaria para dar soporte a procesos externos, los que importan al cliente
  • colaborador del CIO
  • responsable de diseñar y recomendar las soluciones de tecnologías apropiadas para dar soporte a las políticas y directivas evaluadas por el CIO
  • más énfasis en el soporte de tecnología y no en Gestión de Negocio
  • función en una palabra: tecnología

Común

  • tener criterio sobre la tecnología que soporta las necesidades del negocio
  • deben ser pensadores estratégicos
  • capacidad de liderazgo

 

Jul 01

Amazon Kindle 3a generació

Reading time: 2 – 3 minutes

Aquest estiu m’he comprat un Amazon Kindle de 3a generació després de que fa uns mesos l’Oriol M. em va recomanar comprar-me un llibre electrònic i malgrat les meves reticències vaig parlar amb el Marc M. perquè em deixés el seu Kindle durant una setmana i després de l’experiència vaig llençar-me corrent a comprar-me’n un. Ho vaig fer via ebay i per uns 130€ el vaig tenir a casa en 2 dies. Mai m’hagués imaginat que m’acabaria convertint en un enamorat d’aquest aparell, realment he passat a un altre nivell i llegir llibres amb el eBook s’ha convertit en una experiència molt satisfactoria.

Amazon Kindle 3a generació

El que més aprecio és:

  • Puc portar moltíssimes llibres i articles a sobre per poc més de 100gr
  • La comoditat d’us és genial
  • Subrtallar i fer anotacions de forma còmode i senzilla
  • Les anotacions i subratllats els puc sincronitzar fàcilment amb el PC
  • Amazon em permet enviar emails a una compte i després això es sincronitza sol amb el Kindle
  • Tinc plug-ins/extensions pels navegadors per enviar pàgines webs amb un sol clic al Kindle
  • El dispositiu es reconeix com un USB Mass-storage (com un pendrive) al PC, genial per usar-lo amb linux
  • El repositori de llibres al PC el tinc amb Calibre i aquest s’enten perfectament amb el Kindle
  • La bateria no és un problema
  • El carregador de bateria, que no cal portar-lo mai a sobre, és minúscul

Carregador Amazon Kindle comparat amb una memòria SD

Nov 18

Seesmic – el meu portal cap a les aplicacions socials

Reading time: 2 – 2 minutes

Potser a alguns els semblarà rara la recomanació d’una aplicació per Windows i encara més si aquesta esta fet amb Silverlight. Però he de reconeixer que a mi m’esta resultat una eina força còmode.

Perquè l’utilitzo:

  • Des d’una sola eina i amb una sola línia de temps veig:
    • twitter
    • facebook
    • linked.in
    • google buzz
  • Obviament puc, fer tot tipus d’accions sobre cada una de les entrades vingui d’on vingui el contingut. O sigui, comentaris, retweets, preview d’imatges, informació dels usuarios, etc.
  • També puc escoltar last.fm des de la mateixa aplicació i compartir la informació de les cançons que escolto quan m’interessa.
  • S’actualitzen en temps real les línies de temps de les diferents eines, via streams.
  • També puc postejar sobre quasevol de les xarxes socials o fins hi tot sobre totes a la vegada.

Per acabar un parell d’screenshots perquè ús feu una idea del seu aspecte, el primer és la finestra de l’aplicació tal qual la faig correr jo:

el segon és l’aplicació a ‘full-screen’:

Pàgina web de l’aplicació: Seesmic, l’eina esta disponible també com a plug-in d’un munt de navegadors i de quasi tots els sistemes operatius mòbils moderns.

Oct 12

Prey – rastrejar el portàtil i el lladre

Reading time: 2 – 4 minutes

prey logoQuan ens roben el portàtil l’únic que ens queda fer és resar perquè siguem realistes, és molt poc provable que la policia el trobi. Així doncs, el que preten fer prey és enviar-nos tota la informació possible del portàtil després de que ens l’hagin robat.

El seu funcionament és força simple, però al mateix temps s’ha de dir que la idea sembla força eficient. En la versió per linux es tracta d’un script fet amb perl que es col·loca al crontab, de forma que cada x’s minuts es connecta a una URL del servidor de prey o del nostre propi servidor. Aquest URL sovint respon dient que tot va bé, és a dir, que el portàtil no ha estat marcat com a robat. En cas contrari, el servidor respon via HTTP dient que el dispositiu ha estat robat. En aquest moment és quan l’script es posa a treballar i es posa a recollir tot tipus d’informació per reportar-la a la pàgina web:

  • geolocalització per GPS o Wifi, si no disposem de GPS. He provat la localització per wifi i va força bé.
  • fa fotos amb la webcam del portàtil i captures de pantalla
  • reporta tota la informació que pot sobre processos que hi ha corrent al sistema, rutes, informació de les wifis veïnes, etc.
  • també podem fer sonar alarmes, borrar informació remotament, que ens enviï alguns arxius abans de ser borrats,etc.
  • a més els reports que es van reben queden arxivats en una interficie força amigable i molt senzilla d’usar
  • a més el software d’auto-actualitza

La compte gratuïta que ofereix la pàgina web permet tracejar fins a 3 dispositius, obviament si usem el nostre propi servidor HTTP podrem tracejar tots els dispositius que volem. Si volem usar més dispositius haurem d’adquirir una compte professional que tampoc sembla massa cara: per exemple, la més econòmica és la de 12€/mes que permet controlar fins a 10 dispositius amb un màxim de 25 informes per cada dispositiu.

Jo he provat la versió de Windows i la de Linux i ambdues m’han funcionat força bé a la primera, però pel que posa a la web també tenen la versió de Mac i la d’Android. Aquest última diria que és molt nova. Malgrat això en els meus dos Androids no uso prey sinó que uso WaveSecure. Pensat especialment per a dispostius mòbils, ja que tenen versions per: Blackberry, Symbian, Windows phone, Java i Android, és clar.

Sep 08

A tenir en compte en un projecte de digital signage

Reading time: 2 – 3 minutes

Tot ordenant .txt he trobat quatre notes que havia fet fa temps extretes de l’experiència i de documents de relacionats amb digital signage que havia anat llegint, per tal de no perdre-les les anoto a continuació:

Entorn:

  • Audiència: estàtica o en moviment?
  • Predisposició a aturar-se de l’audiència? (area de pas, passeig, etc)
  • Cal posar audio? o no dona cap valor afegit.

Audiència:

  • Qui mirarà el contingut?
  • És una necessitat comuna?
  • S’esta buscant algún tipus d’interactivitat, o simplement captació pel missatge emès?
  • Què trobarà interessant l’audiència o com a míninm digne de mirar?
  • Cuantes vegades un individu veurà el missatge?
  • Perquè l’audiència li hauria de donar un segon cop d’ull?

El missatge:

  • Venem producte, o un nou estil de vida?
  • Creem una atmosfera, o fem marca?
  • Cal enumerar els beneficis o podem deixar que les imatges parlin soles?
  • Estem informant, instruint, venent o que…?
  • És un missatge aïllat o part d’una campanya que usa altres tipus de media?
  • Podrien millorar l’experiència enllaços a altres sistemes?

Tips and tricks:

  • Intentar crear un sentit de propietat comuna del projecte entre tots els players del negoci
  • Audiència en moviment, missatge estàtic. Audiència estàtica, missatge en moviment.
  • Monitorització constant de les reaccions de l’audiència.
  • S’ha de considerar que l’audiència només donarà una ullada a la pantalla.
  • Buscar consistència en els estils i colors del missatge.
  • Les tipografies i mides de la lletra han de ser prou clares per llegir-se a certa distància.
  • No cal esperar que la publicitat millori de forma espectacular les ventes d’un producte. Només és un complement que ajuda a donar a coneixer el producte.
  • Cal assegurar-se que el contingut té una part d’entreteniment i una part d’informació.
  • Cal pensar que al montar una pantalla on la gent esta en moviment aquesta ha d’estar en un punt on es pugui seguir movent-se i llegint el missatge.
  • Compte amb l’audio, sovint no és una bona idea.
  • És important tenir el contingut ben actualitzat i no mostrar informacions obsoletes, això fa perdre credibilitat al medi.
  • És important saber l’experiència que té l’audiència sobre el medi.
Aug 23

Entenent els frames I, P i B

Reading time: 2 – 4 minutes

Al sentir parlar de formats de video, codecs, DivX, MPEG4, etc. sovint surten a la conversa termes com ara els I-frame, P-frame i B-frame. Cansat de que em soni a xinès he decidit fer-me un petit resum de què és tot plegat, sempre des del punt de vista d’algú que en sap ben poc d’aquests temes.

Podem dividir els ‘frames’ de video en 3 tipus:

  • I-Frame: també anomenat keyframe. No té cap frame de referència i pot ser decodificat per si mateix. Podem pensar que és algo semblant a un JPEG.
  • P-Frame: El contingut del mateix és dedueix d’un frame previ de tipus I o P, és impossible decodificar-lo sense mirar aquesta referència.
  • B-Frame: per decodificar-los cal mirar els frames anteriors i següents de tipus I i P.

Aquest últim tipus de frames són interessant per dues raons:

  • Són fàcils de predir
  • No impacten en la qualitat dels frames següents

Degut a que els B-frames depenen del passat i el futur, llavors el decodificador li calen frames I-P del passat i el futur per poder decodificar el frame B. Això ens porta als conceptes PTS/DTS.

  • PTS Presentation Time Stamp: també podem entendre’l com una forma de saber el número de frame, ordre en que es poden veure els frames decodificats.
  • DTS Decoder Time Stamp: ordre en que es processen els frames per ser decodificats.

Un exemple, per entendre-ho millor:

  • Suposem que això és un petit video: I-0 B-1 B-2 P-3
  • L’ordre DTS seria: I-0 P-3 B-1 B-2

Per tal de simplificar les coses el video s’enmagatzema en l’ordre DTS.

El problema

Arribat en aquest punt podeu imaginar-vos el problema que suposa mostrar un video en ordre, ja que el decodificador ha d’anar composant els frames per mostrar-los am és d’inserir frames on no n’hi han per mostrar el frame que toca.

DIVX (i Xvid)

Aquests famosos codecs per tal de d’atacar aquest problema fan servir un petit truc. La idea seria usar una variant dels frames PB i empaqueten diversos frames en un. Això fa que les aplicacions es pensin que només hi ha un frame i el codec oculta la resta.

Per exemple, si tenim un fitxer que te empaquetat el següent:

In (0 3 1 2) - - - ...

el codec haurà de treure això:

Out 0 1 2 3 ...

El codec posa frames de tipus ‘null’ en el lloc on hi haurien d’haver els frames que no té pel fet de tenir-los empaquetats en un frame. Els codecs ja saben que quan reben un frame null han de descartar-los.

Des del punt de vista del codificador, és important fixar-nos que no s’introdueix un delay corresponent als frames nulls. En un fitxer AVI no hi ha cap relació entre el PTS/DTS guardada enlloc per tal d’informar al decoder quan aquest ha de reproduir.

Jul 09

Formats gràfics CIF

Reading time: 2 – 3 minutes

CIF (Common Intermediate Format), també conegut com FCIF (Full Common Intermediate Format), és un format usat per estandaritzar les resolucions horitzontals i verticals en pixels de les senyals de video (seqüències YCbCr), aquest nomenclatura es va proposar a l’estàndard H.261.

CIF es va dissenyar per convertir de forma senzilla els estàndards PAL o NTSC. CIF defineix una seqüència de video amb una resolució de 352×288 com PAL, amb un framerate de 30000/1001 (uns 29.97fps) frames com NTSC, amb un codi de color YCbCr 4:2:0.

SQCIF 128 × 96 SubQuarterCIF (subQCIF)
QCIF 176×144 in PAL
176×120 in NTSC
Quarter CIF, la meitat de la resolució H i V,
o sigui, 1/4 de la imatge original
SIF(525) NTSC 352×288 PAL
352×240 NTSC
Source Input Format
CIF/SIF(625) 352×288 in PAL
352×240 in NTSC
D1/4SIF(525) 704×576 (TV PAL)
704×480 (TV NTSC)
720×576 (DVD-Video PAL)
720×480 (DVD-Video NTSC)
Full size, estàndard NTSC i PAL
2CIF 704×288 in PAL
704×240 in NTSC
2 Common Intermediate Format
DCIF 528×384 in PAL
528×320 in NTSC
Double CIF, té un aspect ratio molt proper al 4:3,
millor quailtat que 2CIF i CIF amb el mateix bitrate
4CIF/4SIF(625) 704×576 in PAL
704×480 in NTSC
16CIF 1408 × 1152

Les resolucions xCIF no són quadrades, tenen un ratio de ~1.222:1. O sigui, que una televisió analògica té un ratió de 1.2:1 segons defineix l’estàndard de sistemes de 525 linies (CCIR 601). En les pantalles d’ordinador o de televisió digital es treballa amb blocs de pixels quadrats, o sigui, que les trames xCIF ha de ser re-escalades horitzontalment un ~109% per aconseguir un ratio de 4:3, o sigui, el que equivaldria a 384×288 pixels quadrats.

Les mides d’imatges CIF han estat especialment escollides per ser multiples del que s’anomenen macroblocs (corresponent a 16x16pixels). Per exemple, una imatge CIF de mida 352×288 correspon a 22×18 macroblocs.

Informació extreta de la Wikipedia i de diversos forums dispersos per internet.

May 12

benchmarking: gearman, couchdb i redis

Reading time: 2 – 3 minutes

No es tracta d’unes proves de rendiment serioses i estríctes, però almenys en el meu cas m’han servit per tenir una idea del rendiment d’aquestes aplicacions i poder dissenyar diferents arquitectures amb una mica més de coneixement de causa.

Per si no coneixeu les eines:

  • gearman: servidor de tasques
  • couchdb: sistema de bases de dades no relacional
  • redis: sistema de caché similar a memcached, però molt millor sota el meu punt de vista

Sistema sobre el que s’han fet les proves:

  • HP ML110 G5 – Xeon 2GHz – 4GB RAM – HD via NFS
    • Rendiment del disc: Timing buffered disk reads:   26 MB in  3.00 seconds =   8.66 MB/sec
  • SO Hypervisor: VMWare ESXi 3.5
  • Servidor virtual: 1 CPU 2GHz i 512Mb RAM
  • SO Guest: Ubuntu 8.04 Hardy

Resultats de les proves:

  • client de gearman, fa 5.000 requests al servidor:
    • gearman backend: default, cua no persistent
      • cmd: gearmand -vvv -u root
      • temps: ~32s – rendiment: ~156req/s
    • gearman backend: sqlite3, cua persistent
      • cmd: gearmand -vvv -u root –libsqlite3-db=/tmp/gearman_sqlite3.cache -q libsqlite3
      • temps: ~11m10s – rendiment: ~0.8req/s
    • gearman backend: tokyo cabinet btree, cua persistent
      • cmd: gearmand -q libtokyocabinet –libtokyocabinet-file=/tmp/gearmand.tcb -vvv -u root
      • temps: ~2m3s – rendiment: ~40req/s
    • gearman backend: tokyo cabinet hash, cua persistent
      • cmd: gearmand -q libtokyocabinet –libtokyocabinet-file=/tmp/gearmand.tch -vvv -u root
      • temps: ~2m5s – rendiment: ~40req/s
    • gearman backend: tokyo cabinet RAM, cua no persistent
      • cmd: gearmand -q libtokyocabinet –libtokyocabinet-file=”*” -vvv -u root
      • temps: ~17s – rendiment: ~294req/s
  • insertem 5.000 documents a couchdb:
    • temps: ~14s – rendiment: ~357req/s
  • redis fem 10.000 operacions de tipus:
    • SET: temps: ~0.35s – rendiment: ~28.375req/s
    • GET: temps: ~0.59s – rendiment: ~16.920req/s
    • PING: temps: ~0.33s – rendiment: ~30.471req/s