sábado, 22 de agosto de 2009

Imágenes del recuerdo Parte I (2002-2003)

Desués de varios años en el mundo de GNU/Linux, es grato recordar como era que teníamos nuestra PC años atrás, aunque no tengo capturas de pantalla de 2001 si las tengo apartrir del 2002 y 2003, que son con las que voy a empezar.

Así se veía mi Instalación de Mandrake 8.2 y 9.0, estaban mezcladas que realmente no supe cual era cual.






Haciendo trabajos y probando OpenOffice, scilab, maxima, oregano, VisSim (con Wine), etc., etc.





La caché de Google

Segun leo en http://www.google.com/intl/es/help/features.html

Vínculos en caché

Google toma una instantánea de cada página examinada mientras explora la web y la guarda en caché como copia de seguridad en caso de que la página original no esté disponible. Si hace clic en el vínculo "Caché", verá la página web como se veía cuando fue indexada. El contenido caché es el contenido que Google usó para juzgar si la página es una buena coincidencia para su búsqueda.

La página almacenada en caché se mostrará con un encabezado que recuerda que se trata de una versión caché de la página y no la propia página. Los términos que coinciden con su consulta están resaltados en la versión caché para que le sea más fácil saber por qué su página es importante.

El vínculo "Caché" no estará presente en los sitios que no han sido indexados, ni tampoco en aquellos sitios cuyos dueños nos han pedido que quitemos el contenido almacenado en caché.

Lectura actual

Caché de Google



La imagen tanto en la cache y mi página es la misma, por lo tanto la imágen que muestra google en su caché no es la que le corresponde al día en que fue indexada, sino a la actual, como dirían, no es una copia fiel, jejeje.

15 minutos después.




Tendré que tirar el servidor para ver que imágen pone la caché de google, pero en este momento no me dan ganas de probar.

domingo, 16 de agosto de 2009

Octave 3.0 en Karmic Koala Alpha 4 amd64

Al intentar instalar el octave 3.0 en el Karmic Koala Alpha 4 versión para amd64, fallaba la depedencia del octave3.0-common

sudo apt-get install octave3.0
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
No se pudieron instalar algunos paquetes. Esto puede significar que
usted pidió una situación imposible o, si está usando la distribución
inestable, que algunos paquetes necesarios no han sido creados o han
sido movidos fuera de Incoming.
La siguiente información puede ayudar a resolver la situación:

Los siguientes paquetes tienen dependencias incumplidas:
octave3.0: Depende: octave3.0-common (= 1:3.0.5-6ubuntu2) pero 1:3.0.5-6ubuntu1 va a ser instalado
E: Paquetes rotos


Viendo en la página del Ubuntu me encuentro que:


octave3.0-common (= 1:3.0.5-6ubuntu1) [i386]
architecture-independent files for octave3.0
dep: octave3.0-common (= 1:3.0.5-6ubuntu2) [amd64]


Pero la segunda no esta, sólo la 3.0.5-6ubuntu1, de ahí el problema.

Como engañarlo para poder instalar octave

Primero instalamos el octave3.0-common

sudo apt-get install octave3.0-common


Ya que esta instalado, abrimos el archivo (/var/lib/dpkg/status) y buscamos dentro del el paquete octave3.0-common

Veremos algo como lo que sigue
Package: octave3.0-common
Status: install ok installed
Priority: extra
Section: devel
Installed-Size: 5020
Maintainer: Ubuntu MOTU Developers
Architecture: all
Source: octave3.0
Version: 1:3.0.5-6ubuntu1
Description: architecture-independent files for octave3.0

Modificamos la línea de la versión (Version: 1:3.0.5-6ubuntu1) para que diga Version: 1:3.0.5-6ubuntu2, que es la que necesitamos.

Package: octave3.0-common
Status: install ok installed
Priority: extra
Section: devel
Installed-Size: 5020
Maintainer: Ubuntu MOTU Developers
Architecture: all
Source: octave3.0
Version: 1:3.0.5-6ubuntu2
Description: architecture-independent files for octave3.0


Guardamos y ahora si podremos instalar el octave3.0, sea desde synaptic o con:

sudo apt-get install octave3.0
Y listo, ya podemos usar el octave

miércoles, 1 de julio de 2009

La PC que se niega morir




CPU: Celeron 366 Mhz
RAM: 256 Mb
SO: Ubuntu 9.04
Resolución de Pantalla: 1152x864
Escritorio. Gnome

Hace mucho que no manejaba esta PC con una interfaz gráfica, de hecho la tenía sin monitor, pero ahora que se lo puse, he recordado los viejos tiempos, lo que pasé con ella aprendiendo, y por lo que veo todavía me va a dar más satisfacciones.

Aquí es donde me pregunto ¿Porqué ahora las cosas las hacen para que no te duren? No estamos comprando chocolates para que las empresas nos pretendan hacer creer que necesitamos PCs de última generación.

Esta PC va para los 10 años de edad y sigue inquebrantable, en pie, día y noche, día y noche. Sólo ve su ciclo interrumpido cuando tengo que salir por más de 1 día, y así lleva ya más de 2 años, cuando decidí darle nueva vida como servidor de páginas web.

Después postearé capturas de pantalla del recuerdo (las que en su momento saque)

lunes, 15 de junio de 2009

Segundo intento sdcc (12f675)

Mi segunda prueba, me demostró que aunque el sdcc me evite usar el ensamblador me siento más comodo programando en ensamblador, la costumbre es más fuerte.

En este caso estoy utilizando el conversor de ADC del PIC 12F675 para enviar la lectura de una foto resistencia (LDR) a la PC por medio de RS232

/* ----------------------------------------------------------------------- */
/* Template source file generated by piklab */
#include

/* ----------------------------------------------------------------------- */
/* Bits de configuración: adapte los parámetros a su necesidad */
typedef unsigned int word;
word at 0x2007 CONFIG = _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _BODEN_OFF & _CP_OFF & _CPD_OFF;

unsigned char Count,Temp,SerBuf;

#define Tx 1
#define Rx 2

void baud(unsigned char baudrate)
{
_asm
baud:
movlw D'16'
movwf _Count
baud1: decfsz _Count,F
goto baud1

half_baud:
movlw D'16'
movwf _Count
hbaud1: decfsz _Count,F
goto hbaud1
_endasm;
}

void recv_suart()
{
_asm
inch_n: btfsc GPIO,Rx
goto inch_n
movlw 8
movwf _Temp
clrf _SerBuf
call half_baud
;btfsc GPIO,Rx
;goto inch_n
inch_n1:
call baud
bcf STATUS,0
rrf _SerBuf,F
btfsc GPIO,Rx
bsf _SerBuf,7
decfsz _Temp,F
goto inch_n1
call baud
_endasm;
}

void send_suart()
{
_asm
outch_n:
;movwf _SerBuf
movlw 8
movwf _Temp
bcf GPIO,Tx
call baud
outch_n1:
rrf _SerBuf,F
btfss STATUS,0
bcf GPIO,Tx
btfsc STATUS,0
bsf GPIO,Tx
call baud
decfsz _Temp,F
goto outch_n1

rrf _SerBuf,F
bsf GPIO,Tx
call baud
call baud
_endasm;

}
void on_adc() {
_asm
movlw 0x01
movwf ADCON0
_endasm;
}

void off_adc() {
_asm
clrf ADCON0
_endasm;
}

void read_adc() {
_asm
bsf ADCON0,1
waitfc: btfsc ADCON0,1
goto waitfc
_endasm;
}
void initPIC()
{
/*Poner a Ceros el Puerto*/
_asm
BANKSEL GPIO
movlw 0x02
movwf GPIO
movlw 0x07
movwf CMCON
BANKSEL ANSEL
movlw 0x11
movwf ANSEL
movlw 0x0d
movwf TRISIO
BANKSEL GPIO
_endasm;
}

/*Rutina de Retardo*/
void delay(int ret) {
int r;
for(r=0;r<=ret;r++) { } } void main() { initPIC(); SerBuf=0x70; send_suart(); SerBuf=0x69; send_suart(); SerBuf=0x63; send_suart(); SerBuf=0x31; send_suart(); SerBuf=0x32; send_suart(); SerBuf=0x66; send_suart(); SerBuf=0x36; send_suart(); SerBuf=0x37; send_suart(); SerBuf=0x35; send_suart(); SerBuf=0x0D; send_suart(); recv_suart(); send_suart(); while(1){ on_adc(); read_adc(); off_adc(); SerBuf=ADRESH; send_suart(); GP5=1; delay(20000000); GP5=0; delay(20000000); } }
Que es lo que hago:

1.- Envió a la PC pic12f675
2.- Espero a recibir cualquier caracter para iniciar las conversiones
3.- Después de hacer una lectura y enviar el resultado a la PC prendo y apago un led

Necesito más práctica para abandonar el uso del ensamblador cuando use el sdcc.

lunes, 1 de junio de 2009

Mi intento de aprender sdcc para PICs

Con el Piklab en Linux me decidí a aprender a usar el sdcc, de lo cual resultó esta pequeña obra de arte (si como no)


/* ----------------------------------------------------------------------- */
/* Template source file generated by piklab */
#include

/* ----------------------------------------------------------------------- */
/* Bits de configuración: adapte los parámetros a su necesidad */
typedef unsigned int word;
word at 0x2007 CONFIG = _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _BODEN_OFF & _CP_OFF & _CPD_OFF;


void initPIC()
{
/*Poner a Ceros el Puerto*/
_asm
BANKSEL GPIO
clrf GPIO
movlw 0x07
movwf CMCON
BANKSEL ANSEL
CLRF ANSEL
movlw 0x0c
movwf TRISIO
BANKSEL GPIO
_endasm;
}

/*Rutina de Retardo*/
void delay(int ret) {
int r;
for(r=0;r<=ret;r++) { } }

void main() {
initPIC();
while(1){
GP5=1;
delay(10000);
GP5=0;
delay(10000);
}
}


Lo que quería aprender hacerlo en C, pero le terminé metiendo ensamblador para la configuración de los puertos, no puedo negar mis origenes.

jueves, 28 de mayo de 2009

Aceleración ATI Xpress Radeon 200M Jaunty

A partir de Jaunty la versión propietaria de los drivers de ATI dejaron de soportar algunas tarjetas, para los que necesiten tener mejor rendimiento que los controladores que vienen por default en Jaunty lo que se debe de hacer es recompilar mesa con el parche para radeon tal y como se muestra acontinuación:


1.- Instalamos todas las dependecias para poder compilar mesa.

sudo apt-get install autoconf
sudo apt-get build-dep mesa
sudo apt-get install libxmu-dev libdrm-dev x11proto-dri2-dev libxi-dev

2.- Descargamos las fuentes de mesa con el radeo-rewrite:

git clone git://anongit.freedesktop.org/git/mesa/mesa
cd mesa
git branch radeon-rewrite origin/radeon-rewrite
git checkout radeon-rewrite

3.- Procedemos a ejecutar el siguiente comando:

./autogen.sh --prefix=/usr --with-dri-drivers=radeon,r200,r300

4.- Si no hubo ningún error, de dependencias, podemos hacer el conocido:

make
sudo make install

Y tendremos el rendimiento de los drivers propietarios en Ubuntu 9.04
semael@anaconda2:~/tmp/mesa$ glxinfo | grep render
direct rendering: Yes
OpenGL renderer string: Mesa DRI R300 20090101 NO-TCL
semael@anaconda2:~/tmp/mesa$ glx
glxdemo glxgears glxheads glxinfo
semael@anaconda2:~/tmp/mesa$ glxgears
5097 frames in 5.0 seconds = 1019.280 FPS
5789 frames in 5.0 seconds = 1157.639 FPS
5767 frames in 5.0 seconds = 1153.326 FPS
5794 frames in 5.0 seconds = 1158.684 FPS
5799 frames in 5.0 seconds = 1159.756 FPS
5750 frames in 5.0 seconds = 1149.966 FPS
XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
after 107180 requests (65066 known processed) with 0 events remaining.
semael@anaconda2:~/tmp/mesa$

El rendimiento que me estaba dando antes de efectua este proceso:

semael@anaconda2:~/tmp/mesa$ glxgears
1057 frames in 5.0 seconds = 211.367 FPS
1084 frames in 5.0 seconds = 216.691 FPS
XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
after 8927 requests (41 known processed) with 0 events remaining.
semael@anaconda2:~/tmp/mesa$

Visto en: http://www.phoronix.com/forums/showthread.php?t=16554