diumenge, 25 de novembre del 2007

Implementacions recursives

Aquest cap de setmana he aprofitat per estudiar un poc de TP intentant programar en Java de manera recursiva i m'ha vingut al cap com podria implementar ....


private sperm bumBum(long remenada) {//Per segons qui el long pot ser un int

if
( sHaTretEsBrou(remenada) ) { return esprintada; }

bumBum(remenada++);
}



Ah! pensau a passar el garbage collector que a vegades queden restos...

diumenge, 18 de novembre del 2007

Mira un cometa!

Què passa quan et demanen:
- Que fas?

Doncs que contestes "Estic fent tal" o "Estic fent qual",així doncs la resposta por ser:
- Estic estudiant.

En aquest moment hi ha la possibilitat que et demanin:
- I que estàs estudiant?

I tu respons:
- Mètodes Numèrics, estic mirant a veure si la iteració de punt fix de Halley és més eficient que la de Newton per a la resolució d'equacions no lineals.
En aquest moment la persona que t'anava demanat coses sol posar cares rares, i tu penses "Ups ara se dou pensar que sóc un bixo raro, molt molt raro, val més que ho intenti arreglar si hi vull poder tornar a xerrar amb normalitat" i dius:
- No, si es molt més fàcil de lo que pareix.
En aquest moment si que l'has ben cagat, ara si que sembles un bixo raro, a més de fer coses rares les trobes fàcils... buff, però encare pot passar una cosa pitjor, que per demostrar que la cosa és realment "fàcil" li-ho intentis explicar...
Aquí si que hi ha merder, per tant en aquest cas el millor és dir:
- Res, que és pavo que va veure es cometa Halley va inventar unes coses rares de mates i jo he de mirar amem si aquestes coses rares van millor que ses coses rares que va dir en Newton.

Així l'altre interlocutor te la sensasió d'entendre el que estàs dient ja que li proporciones una capa de abstracció bastant gran i pots arribar a semblar una persona normal :P

Nota: Aquesta historia NO esta basada en fets reals.

Kaboom!

Fa un moment mentre estava intentant escriure un post sobre la duresa de la vida dels estudiants d'informàtica (juas juas juas) se m'ha apagat l'ordinador (sobretaula) i he quedat tot tallat, sobretot per que no s'ha apagat el llum ni l'estufa, la cosa pintava malament. Tot d'una que he obert la finestra (allà on ahir vos vaig dir que tenia el PC) he olorat que passava, he notat una explosió d'olors a les meves narius entrant en un túnel psicotròpic, i quan més atracava el nas a la font d'alimentació més colorins, espirals i música dels 70 podia sentir, vaja que he cremat la font d'alimentació... o sigui que amb el desengramponador a la mà he llevat la font i he pensat:
Permi sense font de alimentació no aniré enlloc.

Després d'aquesta espectacular observació he anat a l'ordinador del meu germà a robar li la font i el meu ulta_mega_hiper_computador ja torna a estar en marxa sense gaires danys col·laterals per molt que el meu germà digui el contrari :P

Quin fred!

Ara he arribat a casa i he vist que l'ordinador estava apagat... és veu que amb aquest temps tan loco hi ha talls de corrent contínuament, tal vegada seria convenient posar un SAI. La cosa és que fa un fred que pela i així ho demostren els sensors de temperatura.

Les temperatures normals serien de 50ºC per la NVIDIA, 72 per l'nForce (que te un dissipador diminut) i uns 40~50 per la CPU i els nuclis, a plena càrrega.

Cal remarcar que tinc l'ordinador a la finestra entre la persiana i el vidre, per tal de no sentir-lo, així el puc emprar de servidor i fer uptimes considerables.

A fora la temperatura era de 3ºC i baixant.

divendres, 9 de novembre del 2007

Briiiiicked! [/veu de porcell BWs]

Wolas, a casa fins fa poc tenia dos aparells que em subministraven internet, un SpeedSteam 5660 que feia de router ADSL, i un WRT54Gv5 (del que ja vos he parlat) que feia de router i AP wifi. La qüestió és que el SpeedSteam el tinc des de 2001 ja m'està demanat la jubilació a base de desconnexions, per això vaig decidir comprar un router nou.
Ja que hi el vaig buscar que portés wifi i modem ADSL per no haver de tenir la combinació dels dos bixets i posats a fer que funcionàs amb OpenWRT. Així doncs vaig triar el D-Link G624T (que porta un firmware GPL) comprat a pixmania i que ahir me va arribar.
El tema és que la interface web estava en francés de tal manera que vaig anar a la pàgina de DLink per baixar l'ultim firmware. Dit i fet, firmware baixat, descomprimit i carregat a router i .... Boooom! El router és reinicia, bé això de reiniciar és un dir per que no és va tornar a iniciar... O sigui que aquí em teniu, connectat amb el SpeedSteam+WRT54 i un trepijapapers de 75€. Ara he enviat un mail al servei tècnic de Dlink per saber a veure si me'l poden canviar...

Edit: He fet els tràmits per tornar el router a PIXmania, la mateixa web té un formulari per fer ho (es veu que els hi douen tornar bastantes coses). També he empaquetat el router i l'he portat a correus però per lo vist correus tanca a les 13:00 i jo que arribat a les 13:00:01, per tant m'he quedat amb cara de beneit davant la porta uns segons fins que he pensat que podia tornar dilluns, segur que no vendrà d'un dia...

dilluns, 5 de novembre del 2007

Ubuntu shipit

Wolas! Fa un moment he arribat a casa i he vist que han arribat els DVDs de Ubuntu, que vaig demanar fa unes setmanes. Si algú en vol que m'ho digui que mels treuen de les mans! Son Ubuntu (Gnome) Gutsy Gibbon 7.10, en tinc tant de 32 com 64 bits per a x86. De moment en tenc 8 de 32bits i 4 de 64.
Ah! També me queden Ubuntus 5.10 Brezy Badger de fa uns... 2 anys? com passa el temps... Bé si algú en vol per fer colecció en tinc 3 de 32 , una de 64 i una de PPC. I posats a fer... si algú en te de 6.10, 6.06 o 5.04 (Edgy, Dapper i Hoary) que li sobren que m'ho digui, són les que em falten a la col·lecció :P.

Record que no fa falta demanar els CDs/DVD per gaudir de la Ubuntu, els podeu baixar aquí, i aquí podeu trobar la llista de ports a altres sistemes com la PlayStation3, IA64, PowerPC(Macs dels antics), UltraSparc etc. que no s'envien i només estan disponibles per a descàrrega.
Per suposat també la podeu baixar amb KDE i XFCE4. Si voleu trescar per els sevidors de Ubuntu cercant isos rares podeu comensar mirant això. A vegades esta bé usar el protocol bittorrent per a baixar les isos i així no saturar tant els servidors.

dijous, 1 de novembre del 2007

Arquitectura AMD64 i dchroot

Avui en dia quasi totes els microprocessadors que surten al mercat son de 64 bits, i per aprofitar al màxim les seves prestacions el millor és instal·lar el programari apropiat per aquesta arquitectura. En les distribucions derivades de debian s'ha establert que el nom de la arquitectura és amd64. El fet que el nom contingui AMD no significa que no funcioni en Intel, simplement va passar que AMD fou el primer en produir microprocessadors de 64bits a nivell comercial de manera assequible i els de debian li varen posar aquest nom. Però avui en dia els Intel (Core 2 Duo/Quad) també empren aquesta arquitectura.
Per a gaudir dels vostres 64bits la única cosa que heu de fer és instal·lar la iso de 64bits en lloc de la de 32 de la vostre distribució preferia. Un cop fet això quan empreu eines com l'apt ell mateix ja baixarà els paquets corresponents a la vostre arquitectura. El problema és pot presentar quan el programari que voleu instal·lar no esta als repositoris o no esta empaquetat per 64bits, així doncs hi ha diferents solucions:
En primer lloc es recomanable instal·lar el paquet ia32-libs ja que en teoria en un sistema de 64bits s'ha de poder executar codi de 32, amb aquest paquet tindreu llibreries que ho permeten, però així i tot a vegades no basta. Aixó i tot si podeu aconseguir els paquets deb de i386 aquests no es voldran instalar dient que no son per a la vostre arquitectura, per instal·lar un paquet i386 podeu forçar al dpkg amb la opció --force-architecture (dpkg -i --force-architecture paquet_i386.deb) i no vos protestarà si li posau paquets i386, ara bé sovint el programa no funciona perquè li falten llibreries especifiques de 32bits no incloses al ia32-libs, així que a vegades és necessari cercar els debs de les llibreries en i386 i descomprimir los als llocs corresponents(/usr/lib, /usr/local/lib, carpeta del programa etc.).
També pot passar que no hi hagi binaris ni debs però trobem el codi font, així simplement fa falta que ho compilem :P.
Però que passa si no hi ha ni això? que només hi ha els binaris de 32bits i no funcionen les llibreries(per exemple el Zattoo)?
En aquest cas el millor que es pot fer és un chroot, instal·lar un sistema de 32bits amb totes les seves llibreries i anar posant tot el software de 32bits allà dins sense problemes.
A BULMA podeu trobar un tutorial de'n Jordi Llull (aka worm) que ho explica molt bé, però està un poc des actualitzat, aquí faig un copy-paste canviat algunes coses per que sigui més simple i actualitzat.

Per a fer un chroot hem de instal·lar el paquet dchroot i debootstrap, el primer servirà per accedir al chroot sense haver de tenir privilegis de root, i el segon per a instal·lar el sistema dins de una carpeta baixant els paquets de un repositori:
sudo aptitude install dchroot debootstrap

Cream la carpeta on voleu posar el sistema, jo la sol posar a la home o a l'arrel, dement d'on tingueu mes espai lliure, ara la pos a la home.
mkdir ~/chroot32

Ara haureu de editar/crear el fitxer de configuració del dchroot (si no teniu el kate podeu emprar qualsevol altre editor, nano, vi, gedit...):
sudo kate /etc/dchroot.conf

I posam una línia on s'indiqui el nom del chroot i la carpeta on esta:
gutsy ~/chroot32

Ara fa falta instal·lar els sistema, ho farem amb el debootstrap (és només en una linia):
sudo debootstrap --arch i386 gutsy ~/chroot32/ http://archive.ubuntu.com/ubuntu
Aquest procés pot tardar bastant ja que ha de baixar paquets de internet.
Si he posat gutsy es perque actualment és la versió més recent de Ubuntu, es pot posar qualsevol altre versió, si voleu posar una debian podeu posar sid, lenny o etch i canviar el repositori.

Ara toca configurar l'apt del chroot, per això afegirem les fonts al ~/chroot32/etc/apt/sources.list , posau:
deb http://archive.ubuntu.com/ubuntu gutsy main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu gutsy-security main restricted universe multiverse
Ara copiarem carpetes del sistema dins del chroot per tal de tenir les mateixos usuaris etc:
sudo cp /etc/passwd ~/chroot/etc/
sudo cp /etc/shadow ~/chroot/etc/
sudo cp /etc/group ~/chroot/etc/
sudo cp /etc/sudoers ~/chroot/etc/
sudo cp /etc/hosts ~/chroot/etc/
I modificarem el fstab per que monti automàticament les carpetes dins el chroot:
sudo mkdir /chroot/media/cdrom0 #Per poder llegir el CD
sudo kate /etc/fstab

I afegim:
##CHOOT! DESMONTAR ABANS DE ELIMINAR EL CHROOT!!!!
/home ~/chroot/home none bind 0 0
/tmp ~/chroot/tmp none bind 0 0
/dev ~/chroot/dev none bind 0 0
/proc ~/chroot/proc proc defaults 0 0
/media/cdrom0 ~/chroot/media/cdrom0 none bind 0 0
/usr/share/fonts ~/chroot/usr/share/fonts none bind 0 0


ANAU MOLT ALETA! Si voleu eliminar el chroot per el que sigui heu de desmuntar totes aquestes carpetes o eliminareu fitxers del vostre sistema original! Per això es recomanable eliminar el que hem afegit al fstab i reiniciar (o remuntar l'fstab manualment) l'ordinador, després comprovar amb un mount que no apareix res d'això i llavors eliminar el chroot.

Ara ja teniu el chroot llest! Per entrar a ell heu de fer un dchroot -d i tot el que faceu a aquella terminal succeira dins del chroot de 32bits, per instal·lar algun programa ho podeu fer amb l'apt (que buscara i386) amb dpkg o executant els binaris mateix amb sh o ./ . Per executar els programes es fa dins d'aquesta mateixa terminal posant el seu nom i per soritir del chroot simplement escriviu exit, record amb amb control + C podeu cancel·lar l'execució de qualsevol programa que s'executi en una terminal.

Be vist que avui en dia les distribucions de 64bits permeten total compatibilitat, amb més o menys esforç vos recoman que les proveu, amb una distribució de 64bits s'aconsegueix aproximadament un 20% més de rendiment de la CPU.

NOTA: Des de que es va fer una extensió de firefox per carregar plugins de 32bits a la versió de 64bits ja no es necessari fer coses rares per posar el flash. Per a instal·lar aquesta extensió ho podeu fer mitjançant l'apt, és diu nspluginwrapper (sudo aptitude install nspluginwrapper). La solució primitiva era instal·lar el firefox dins del chroot i executar lo des de allà.