Author: Oriol Rius

HUB USB

Reading time: < 1 minute

Aquesta setmana m’he comprat un HUB USB 2.0 de 4 Ports i com podeu veure a la foto fan més grossos els transformadors que els HUBS per no parlar del pes que ja és exeradament més pesat el transformador. Per si a algú li interessa, uns 20€ a Cablematic.

hub-usb.jpg

Linux shell: la comanda find

Reading time: 2 – 2 minutes

Inspirat per un article de BlackShell sobre la comanda find, m’he decidit a resumir les quatre coses que es comenten en l’article, ja que a més d’un li poden anar molt bé.

Segur que molts coneixeu la comanda, però degut a la seva gran quantitat de paràmetres i a la mandra que sovint ens fa mirar el man, molta gent no sap ni per on començar a usar-la. Un ús que sovint se li dona és aquest:

find . -name "*.jpg"

Això ens busca tots els fitxers acabats en “.jpg” a partir del directori actual i recursivament per tots els directoris que pengen. Una altre comanda que jo uso molt és aquesta:

chmod 755 `find . -type d`

És molt senzill, busco tots els directoris a partir del directori actual i els asigno permisos rwxr-xr-x (755). En l’article al que faig referència ens parlen del següent exemple:

find * -name "*~" -exec rm {} \;

Aquest ús del find el trobo més elegant que el que he fet jo anteriorment, bàsicament es tracta d’aprofitar la capacitat que té el find per executar comandes quan troba el que busquem. Així doncs, en el cas de l’exemple que ens ocupa el que fariem és buscar els arxius acabats en ~ (arxius de backup de molts editors) i els elimina. Com veieu el que fa és usar el paràmetre -exec i acompanyar-lo de la comanda rm (borrar), el més important és fixar-se que {} es refereix al nom del fitxer trobat i que \; s’usa per definir el final de l’ordre.

Una classe ràpida sobre find, si realment us ha agradat i ho heu trobat útil ja teniu un bon motiu per mirar-vos el man i aprofitar tota la seva potència.

Glosari de Bittorrent

Reading time: 6 – 9 minutes

Hi ha molta gent que malgrat té instal·lats programes de P2P i els usa sovint, no acaba d’entendre que carai volen dir moltes de les paraules que s’usen en aquests softwares: peers, seeds, etc. La veritat és que no he vist mai cap programa d’aquests en castellà o català. No em vull ni imaginar quines traduccions es deuen haver fet d’aquests termes. Així que jo com sempre, amb el meu afany per pràcticar anglès, uso sempre software en aquesta llengua. Però això no vol dir que per usar aquest software en aquest idioma entenguem que volen dir aquests termes. Per això he escrit aquest glosari de termes relacionats amb el BT (Bittorrent). He intentat traduïr/interpretar una mica les definicions si alguna no queda clara aviseu i intentarem millorar-les entre tots. La traducció ve d’aquest article: BitTorrent, What The Heck is a BitTorrent? (Dark Tips), però el servidor origen sembla que no respon.

torrent

És un petit fitxer amb metainformació que normalment descarreguem d’un servidor web (fitxers acabats amb .torrent). Metainformació significa que el fitxer conté informació sobre la informació que tu vols descarregar (el fitxer que tu realment vols). És usual descarregar aquest fitxer i treballar amb ell de forma local, sobre tot perquè si talles la connexió i després vols seguir amb la descarrega de la informació en si és usual tenir-lo guardat. Així doncs per poder descarregar la informació que volem és indispensable disposar d’aquest fitxer en primera instància.

peer

Un peer és un altre ordinador connectat a Internet que es pot connectar amb tu i que és capaç de transferir informació. Generalment un peer no conté el fitxer que busquem sencer, també s’acostuma a anomenar a aquest fet un feed. També hi ha gent que quan parla de peer ho fa referint-se a la paraula leeches, per diferenciar-los de la gent que conté els fitxers d’informació sencers i que continuen compartint la informació per la resta de la gent.

seed

Un ordinador que té una còpia completa de la informació que volem, la informació de la que parla el .torrent això és el que se’n diu un seed. Per exemple, si nosaltres estem descarregant un fitxer mentre descarraguem també estem compartint indirectament per això fem de feeds; quan acabem la descarrega i no tanquem el client de BT continuem compartint el fitxer però ja no descarreguem llavors estem fent de seeds. Estem sent persones generoses que comparteixen el que tenen amb els altres sense demanar res a canvi.

reseed

Quan no hi ha cap seeds per descarregar un torrent i tampoc hi ha suficients peers que tinguin copies amb informació complementaria del torrent, llavors és impossible que fem la descarrega sencera del contingut que volem. Quan algú amb el contingut sencer del fitxer (seed) es connecta al ‘swarm’ i envia els trossos que ningú tenia, d’això se’n diu reseeding.

swarm

Són el grup de màquines que estan connectades entre elles passant-se informació sobre un fitxer. Per exemple, si iniciem un client de BT i aquest et diu que estàs connectat a 10peers i a 3seeds, llavors el ‘swarm’ esta format per tu i aquestes 13 persones.

tracker

És un servidor d’internet que actua com a coordinador d’accions entre clients de BT. Quan tu obres un torrent, la teva màquina contacta amb un tracker i demana la llista de ppers per contactar. Durant la transmissió el client de BT va fent connexions periódiques al tracker. Això ho fa per anar informant dels avanços que anem fent en les nostres descarregues; els enviaments que estem fent i per demanar si hi ha alguna modificació en les llistes de peers que comparteixen el torrent. A més també es comunica el següent al tracker: starting, finished download, stopping. Si un tracker no esta online i nosaltres obrim un torrent, no podrem connectar fer mai la descarrega. Però si aquest cau durant una descarrega podrem continuar fent la descarrega amb la llista de peers que tenim, el que no podrem fer és ampliar la llista.

downloading

Descarregant informació DES D’UN altre ordinador.

uploading

Enviament informació A UN altre ordinador.

share rating

Molts clients de P2P mostren aquesta dada. És simplement el rati de tot el que has pujat (uploaded) a la xarxa dividit entre tot el que has baixat (downloaded). Només acumulen la informació per la sessió actual no és acumulatiu. Per cortesia amb els altres es considera que s’ha de tenir aquest rati el més alt possible.

distributed copies

Hi ha alguns clients, que mostren un text que diu algo semblnat a: “Connected to X seeds; also seeing X.XXX distributed copies.” Un seed és una màquina amb una còpia complerta del fitxer, com ja hem dit. Així doncs del que ens estan informant és de que hi ha suficients trossos distribuits a la xarxa com per obtenir X.XXX còpies complertes del fitxer que volem. La qual cosa equivaldria a tenir tots aquests seeds servint el fitxer, cosa que realment no és certa, és només una aproximació important per saber si aconseguirem baixar el fitxer que vole o no.

choked

Aquest terma s’usa en la descripció del protocol de BT, es refereix a l’estat d’un ‘uploader’. Per exemple, el fil que envia dades a un altre peer. Es diu que una connexió esta en ‘choked’, quan el que transmet no vol enviar la informació a aquest enllaç (link). Les senyals d’un client de BT que estan ‘choked’ a un altre client poden tenir diferents motius, però el més comú és que el client només pugui mantenir una serie d’uploads simultanis (max_uploads), la resta d’uploads seran marcats com a ‘choked’. Cal fixar-se que una connexió pot estar en aquest estat ‘choked’ per dos motius, un per cada possible transmissió (com a sistema bidereccional que és).

interested

Aquesta és una altre marca del protocol de BT, bàsicament significa que un ‘downloader’ pot marcar-se com a interessant (interested) si aquest té alguna part del fitxer que a nosaltres ens pot interessar. Sinó es marcara com a no interessant (not interested). És com tenir complicitat amb la gent que té trossos de fitxers que ens poden interessar i els donem preferencia sobre la informació que nosaltres pugem a la xarxa (upload).

snubbed

Si el teu client de BT no rep res durant un cert perioda de temps, es marcarà la connexió com a ‘snubbed’, en aquest cas el peer a l’altre extrem escollirà no enviar-nos informació mentre aquest estat es mantingui. El motiu de fer això és el de millorar les velocitats de pujada. Ocasionalment el client pot trobar-se en un estat on a través de la connexió amb molts peers, que aquest sigui marcat com a ‘choked’ per tots ells. El client usa aquest estat, snubbed, per evitar aquesta situació.

optimistic unchoking

Periodicament, els clients remena la llista d’uploads i prova d’enviar a diferents connexions que han estat previament ‘choked’. Això passa cada 10 o 20s, ho podem comprobar mirnat el panell “Advanced” de molts dels clients de BT.

dd_rescue: el dd de sempre amb funcions de recuperació d’informació

Reading time: 2 – 2 minutes

[ X.Caballé ] Una imatge anomenada dd_rescue és una eina per a copiar dades des d’un fitxer o un dispositiu de blocs (com pot ser un disc dur o un CD, per exemple) a un altre, amb la particularitat que tracta de recuperar les dades en cas de detectar un error de lectura. A diferència del dd original, no talla el fitxer de sortida, excepte si li indiquem que ho faci.

D’aquesta forma, cada vegada que l’executem contra un mateix fitxer de sortida tracta d’omplir els forats. L’algortime de dd_rescue llegeix la part que no està feta malbé. A continuació llegeix les parts danyades, dividint-les en unes de menor mida i tractar de recuperar la informació. Repeteix aquesta operació fins arribar a la mida del bloc de hardware, arribar al límit d’intents indicats o l’usuari interrompi l’operació.

Algoritme de funcionament

  • Read the non-damaged part of the disk, skipping the damaged areas.
  • o bé

  • Read a list of bad blocks (damaged areas) from a file.
  • Try to read the damaged areas, splitting them into smaller pieces and reading the non-damaged pieces, until the hardware block size is reached, or until interrupted by the user.
  • Try to read the damaged hardware blocks until the specified number of retries is reached, or until interrupted by the user.
  • Optionally write a list of bad blocks to a file.

Carpetes compartides IMAP amb Courier IMAP

Reading time: < 1 minute

[ Via Bulma ] A aquestes altures tothom sap què fa l’IMAP, doncs en aquest article de BULMA el que comenten és com treballar amb les shared folders (carpetes compartides) de l’IMAP les quals permeten fer coses molt interessants entre els usuaris, per exemple, enmagatzemar SPAM.(local)

Electrònica: Encent LEDs des del port paral·lel

Reading time: 5 – 8 minutes

Doncs avui m’he passat un munt d’hores fent electrònica, si nois si. Aquella assignatura que vaig repetir tants cops a la universitat. Resulta que havia de fer-li un feineta per un amic meu. Té una fàbrica de cartró i diverses màquines controlades per PCs amb Win9X, la qüestió és que a la feina li hem fet un aplicatiu de gestió per l’empresa i aquest aplicatiu és capaç de saber quins són els estats d’aquestes màquines. Així doncs aprofitant tot això el que es volia era encentre unes ‘balizas’ (llums de colors) sobre l’armari de controls de la màquina perquè a distància es pugui saber en quin estat es troba aquesta màquina.

Això que sembla tan complicat en realitat no ho és gens ni mica, simplement com dic jo té un problema: conflictes entre branques de coneixement. O sigui, electrònica, programació en Win9X, creació de .DLL i control de ports. En casos com aquests és quan entens perquè serveix la Telemàtica, ja que els informàtics em deien que ni idea de com fer el circuit, que com a molt controlar ports a alt nivell, res d’enviar bits a certs pins del port paral·lel i els electrònics em deien que de ports paral·lels ni idea que encendre i apagar ‘balizas’ tot el que vulgui: interruptors, temporitzadors, etc. però res de .dll’s i coses rares.

Així doncs, jo vaig pensar és impossible que a internet no ho trobi fet això. Només cal que recordi una mica el que sé d’electrònica, m’instal·li el Visual Studio i que compili 4 ratlles de codi que segur que trobo mig fetes i llestos. Aquí en teniu el resultat:

ledsparalel.jpg

L’esquema del circuit i els detalls de montatge els he tret d’aquesta web (local). Pel que fa al codi per construir la DLL que controla el port paral·lel l’he tret del mateix site, però una altre pàgina (local).

[ Descarrega la DLL i el Programa en VB6 ] Encara que al entrar a la pàgina us doni la sensació que és una pàgina que parla només de VB6 no es cert. Llegiu-ho bé i veureu que la DLL la programa en C++ de fet és molt bàsica, només és una mini-interficie que llegeix i escriu un byte a la direcció del port paral·lel que indiquem. Després el programa que hi ha en VB6 és només una GUI que ens permet control·lar de forma comode el nostre circuit quan fem proves. L’interessant d’això és que després puc entregar la DLL al equip de programadors de l’empresa i aquests només s’han de preocupar de saber quin digit han de passar segons les ‘balizas’ que volen activar.

Per exemple, si volen encendre la ‘baliza’ número 1 només han de passar el codi ASCII 128, en binari: 10000000. O sigui, encen la ‘baliza’ 1 i apaga la resta.

Pel que fa als electricistes de la fàbrica aquests només han de treure la resistència i el LED si volen una caiguda de 4-5V o agafar la senyal després del LED si volen una sortida de 2-3V. Llavors ells amb un transistor en cada sortida poden amplificar la caiguda de potència fins a 24V que és el que necessiten les ‘balizas’ que s’usen en aquests armaris de control per funcionar.

A continuació us comento algunes fotos que he fet durant el montatge per si us poden ajudar, de totes formes teniu totes les fotos que he fet al album de fotos.

Com que no tenia una font d’alimentació de 5V per alimentar el circuit he usat un pack de bateries que tinc d’un walkie talkie:

alimentacio.jpg

He estanyat les puntes del cable paral·lel per poder-les posar a la protoboard com a part del circuit:

cablepc.jpg

Connector DB25 que va directament al port paral·lel del PC, SOBRE TOT PAREU EL PC ABANS D’ENXUFAR-LO SI MAI PROVEU EL CIRCUIT!!!:

connectorpc.jpg

Foto general de tot el ‘tinglado’ connectat al PC:

tinglado.jpg

El meu primer portatil (necessitava un port paral·lel i no tenia res més), un Pentium a 133 amb el W98 instal·lat expressament per l’experiment controlant tot el tema amb l’aplicatiu de VB6 i la DLL corresponent:

controlpc.jpg

Captura de pantalla de l’aplicatiu fet en VB6 per controlar els LEDs:

controlpc.gif

L’esquema del circuit:

Pin-Up Toons: dibuixos de noies guapíssims

Reading time: < 1 minute

Pin-Up Toons: Tot navegant m’he topat amb una web on hi ha dibuixos de noies imaginaries. Les trobo guapíssimes, la veritat és que mai m’han agradat ni els còmics ni he estat fan d’aquest tipus d’art. Però aquesta web m’ha fascinat i no he pogut evitar mirar detingudament toes les galeries que té ja que m’han semblat guapíssimes. MOLT RECOMENABLE.

dibuix.jpg

L’artista en qüestió es diu Rion Vernons, i he capturat tot el treball publicat en la web per poder-lo veure millor si vosaltres ho voleu mirar podeu connectar a l’album de fotos.

Pista de Gel a BCN

Reading time: < 1 minute Avui he anat a una reunió a Vodafone a la Diagonal de BCN i just darrera de l'edifici d'aquesta empresa, hi havia una pista de gel patrocinada per Movistar:

Shell scripts: eliminar extensió del nom d’un fitxer (bash)

Reading time: 1 – 2 minutes

Quan fem shell scripts tenim la necessitat d’extreure l’extensió dels fitxers i ens acostumem, almenys en el meu cas, a fer experiments amb l’ordre cut i d’altres similars intentant treure alguna solució que ens permeti fer això. El més dur és descobrir que sabies com fer-ho d’una forma ràpida i neta. Això és el que em va passar revisant un article que jo mateix havia referenciat: Shell Scripts.

Doncs bé anant al que interessa per extreure una extensió, per exemple .jpg l’únic que em de fer és això:

${FITXER%.jpg}

Perquè us quedi clar, ho pdriem usar en aquest exemple útil:

#!/bin/sh
for FITXER in `ls *gif`
do
        F=`echo ${FITXER%.gif}`
        echo convert $F.gif $F.jpg
done

Com segur que heu descovert el que ens permet fer aquest petit script és convertir tots els fitxers *.gif a *.jpg

Scroll to Top