Wake up!!! Les dejo algo geek para alegrar el día!
jueves, 10 de diciembre de 2009
martes, 24 de noviembre de 2009
lunes, 23 de noviembre de 2009
De pasadita!

lunes, 19 de octubre de 2009
Notas sobre Java (Más teoría)

Java es un lenguaje Orientado a Objetos (POO), es decir que define a los programas en términos de 'clases de objetos' que son entidades que cambian de estado o es mejor decir, de datos. La programación orientada a objetos establece que un programa como un conjunto de estos objetos que se comunican entre ellos por medio de métodos. Esto métodos están pensados para hacer los módulos más fáciles de escribir, mantener y reutilizar.
La programación orientada a objetos establece ciertas características:
- Abstracción.
- Encapsulación.
- Polimorfismo.
- Herencia.
Abstracción: Cada objeto en el sistema sirve como un agente que puede realizar un trabajo, informar y cambiar su estado, y así mismo comunicarse con otros objetos sin revelar como se implementa.
Encapsulación: A esto también se le conoce como "ocultamiento de información", esto asegura que los objetos no pueden cambiar el estado interno de otros objetos.
Polimorfismo: La capacidad de una clase de comportarse como otra, asi de fácil, así de simple.
Herencia: Esta es la parte linda, es la que organiza y facilita el polimorfismo y la encapsulación, así permite la creación de objetos especializados que pueden compartir su comportamiento sin necesidad de reimplementarlo.
Estructura de una clase en Java
- package: Declaración del paquete.
- import: Uso de clases de un paquete externo.
- class: Definición de la clase.
package < 'ruta del paquete' >
< 'Modificador de acceso' > class < 'nombre' > {
< 'Delcaración de atributos' >
< 'Declaración de Construcctor' >
< 'Declaración de métodos' >
}
Modificador de acceso
- Friendly: Es el acceso por default. No tiene una palabra clave asociada, por lo que se le denomina como acceso amistoso y pueden ser accesadas por clases del mismo paquete.
- Public: Puede ser accesada por cualquier miembro del paquete o de otros paquetes.
- Private: No puede ser accesada por otra clase, únicamente por medio de métodos publicos.

Tipo de datos primitivos
Typo Valor
- bolean = false
- byte = 0
- char = '\u0000'
- short = 0
- int = 0
- long = 0L
- float = 0.0f
- double = 0.0d
Pero ya hablaremos de eso en otra ocasión, por ahora es momento de decir adios y nos veremos la próxima.
martes, 13 de octubre de 2009
Notas sobre Java (Teoría)
Historia.
En 1991 se creo un proyecto interno en Sun Microsystem denominado Green. El plan era desarrollar un lenguaje basado en C++ que en un inicio se llamo Oak, culpa de un roble que se podía ver desde la oficina de James Gosling, su creador. Pero ya existia un lenguaje con ese nombre, por lo que mas adelante se le llamo Java, cuando un grupo de generentes visitaron una cafetería local.
Java fue creado para el mercado de dispositivos electrónicos inteligentes. Por desgracia, la proyección de Sun fue errónea y este tipo de dispositivos no se desarrollaban tan rápido. Así que el proyecto corrió con la suerte de ser cancelado. En 1993 exploto la popularidad de Internet y los chicos de Sun se dieron cuenta de que Java podía agregarle Dinamismo a las estaticas paginas creadas en html vil y villano.
En 1995, Sun Microsystem dio a conocer Java dentro de una conferencia y su fuerte fue los actuales y extintos Apples dentro de las paginas de Internet y se gano el corazón del mundo de los negocios, así como aplicaciones para dispositivos móviles como los celulares y radiolocalizadores.
Java se divide en tres ediciones que son:
- Java Standar Edition (Java SE).
- Java Enterprise Edition (Java EE) Orientada a las aplicaciones de redes a gran escala y aplicaciones basadas en web.
- Java Micro Edition (Java ME) Orientada al desarrollo de aplicaciones para dispositivos moviles con memoria limitada.
La programación en Java pasa por 5 etapas:
- Edición
- Compilación
- Carga
- Verificación
- Ejecución
En esta primer etapa, es la parte donde escribiremos el programa ayudados por un editor. Posterior mente guardaremos el archivo bajo la extención '.java'.

Por ejemplo, suelo usar los editores vi o emacs para entornos Linux, pero para el campo de guerra necesitamos poder. Para ello existen los Entornos de desarrollo integrado (IDE's).

Entre los mas populares tenemos:
Etapa 2
Para compilar un archivo .java, es necesario hacerlo con el archivo javac, que es el compilador.
Por ejemplo, supongamos que trabajamos con vi para hacer un pequeño programa y es hora de saber si podemos seguir o nos detenemos a ver errores. Desde una shell podemos hacer lo siguiente:
[Sugizo@old ~]$javac HolaMundo.java
si no detecta ningun error, nos generara un archivo '.class' a la cual llamamos 'Byte Code' que será lo que la Maquina Virtual de Java (JVM) usara para hacer las tareas que hemos escrito.
Para ejecutar este programa es tan fácil como escribirn en nuestra terminal lo siguiente:
[Sugizo@old ~]$java HolaMundo
Y veremos en terminal o por Interface grafica de usuario (GUI) el resultado.
Etapa 3
Para poder ejecutar el programa, este debe cargarse primero a memoria, de lo que se encarga el cargador de clases. el cargador también carga cualquiera de los .class de las librerías que el programa use.
Etapa 4
A medida en que se cargan las clases, existe un componente interno conocido como el verificador de Byte Code que examina las clases para asegurar que sean correctos y no violen las restricciones de seguridad.
Etapa 5
En este punto, la JVM ejecuta los Byte Code. Antes esta parte era la mas pesada ya que la Maquina virtual interpretaba bytecode por bytecode, ahora es mas eficiente gracias a algo llamado Just in time (JIT), esto hace que se interpreten a medida de que busca puntos activos del programa. Es decir, partes del codigo que se ejecutan con frecuencia.
Ahora bien, instalar Java en Windows es tan fácil como dar doble click. Pero para hacerlo desde linux, basta seguir estas instrucciones.
Besitos.
sábado, 26 de septiembre de 2009
Adios pasado. hola futuro!
¿Qué les quito a mis trolls? Les quito twitter, que pese a que era privado, ahora lo elimino para depurar mi pasado y dejar esas niñerías que tanto daño han hecho por meses, aquellos de cuando era publico..
Que les dejo a mis trolls? el gusto de no verme más y de anunciarles que: Seguire con mi vida en el punto que deje recientemente. O sea, luchando en el mundo real.
martes, 1 de septiembre de 2009
domingo, 30 de agosto de 2009
Alexander (en memoria)
Para mi es el inicio del conteo anual de algo que me invade en el alma. Si bien es el primer aniversario, es algo que no me gustaría que hubiera pasado.
jueves, 20 de agosto de 2009
Programando pic's desde linux. (config.inc)
Básicamente diremos lo siguiente.
- Puerto A fue usado para el convertidor analógico digital RA0, RA1, RA2 (Valores de referencia), RA3 (Valores de referencia), RA4 y RA5.
- Puerto B para uso de teclado por su patita RB0/INT Que genera interrupción, y por que se puede programar las patitas RB4-RB7 como interrupción por cambio de estado.
- Puerto C, uso de Led's o cualquier otra cosa que le quieran colgar.
- Puerto D, bus de datos para la pantalla LCD.
- Puerto E, lineas de control para LCD.
;************************************************
;Libreria de configuración general del pic.
;***************************************************
;Configura la direccionalidad de los puertos del PIC
Init_Config
bcf STATUS,RP0
bcf STATUS,RP0
clrf PORTA
movlw b'11110000' ;Configiración del puerto B para el teclado
movwf PORTB
call Init_interrup
bsf STATUS,RP0
bcf STATUS,RP1
clrf TRISC
clrf TRISD
clrf TRISE
call Init_ADC
bcf STATUS,RP0
return
;******************************************
;Habilitando interrupciones
Init_interrup
movlw b'11111000'
movwf INTCON
return
;******************************************
;Rutina de configuración del ADC
Init_ADC
;bsf STATUS,RP0
;bcf STATUS,RP1
movlw b'10001100' ;configuramos las entradas del ADC para abrir 3 canales
movwf ADCON1 ;y tener dos valores de referencia.
bcf STATUS,RP0
movlw b'01000000'
movwf ADCON0
return
;******************************************
;Rutina de configuración del Timer1
TMR1_Config
clrf T1CON
bsf STATUS,RP0
bcf STATUS,RP1
bcf PIE1,TMR1IE ;Inhabilitando el desbodamiento del TMR1
bcf STATUS,RP0
clrf TMR1L
clrf TMR1H
bsf PIE1,TMR1IE
movlw 0x36
movwf T1CON
return
Lo basico e indispensable.
sábado, 8 de agosto de 2009
viernes, 7 de agosto de 2009
Me das la hora?

La verdad es que eso lo hice de rápido y pero la idea es mostrar un while en ensamblador de una forma básica. Espero les pueda servir y bueno, ya luego les pongo el método principal.
__CONFIG _LVP_OFF & _CP_OFF & _PWRTE_ON & _XT_OSC & _BODEN_OFF & _WDT_OFF
list p=pic16f877
include <p16f877.inc>
;Variables
Cont equ 0x20
Hrs equ 0x21
Min equ 0x22
Seg equ 0x23
ContadorC equ 0x24
Temp0 equ 0x25
Temp1 equ 0x26
ContadorB equ 0x27
ContadorA equ 0x28
org 0
goto Principal
org 4
retfie
org 5
Un_Min
movlw d'60'
movwf Temp0
decfsz Temp0,1 ;Este es mi while. Temp0 == 0?
goto retraso_1_seg ;No...
return ;Si!
retraso_1_seg
movlw D'6'
movwf ContadorC
retraso_1_seg_bucle
call sub_delay_1_seg
decfsz ContadorC,1 ; Aquí otro; ContadorC == 0?
goto retraso_1_seg_bucle ;No...
return ;Si!!1
sub_delay_1_seg
movlw D'217'
movwf ContadorB
movlw D'111'
movwf ContadorA
sub_delay_1_seg_bucle
decfsz ContadorA,1
goto sub_delay_1_seg_bucle
decfsz ContadorB,1
goto sub_delay_1_seg_bucle
return
lunes, 3 de agosto de 2009
miércoles, 29 de julio de 2009
Programando pic's desde linux. (ADC)
Así que hoy para variar, me he puesto a darle duro a esto para poder partir en mas fragmentos y mejor documentados, por lo que la configuración quedo dividida en los una rutina mas para la configuración del ADC y una para la configuración general del PIC.
org 0
call Init
call ADC_Config
goto Principal
org 4
retfie
Y con esto tenemos un mejor panorama de la configuración del modulo de ADC del PIC. Basta señalar que Init solo configura los puertos de entrada y salida. Pero ADC_Config se limita a configurar el modulo como esta a continuación.
ADC_Config
;Cambiando al banco 1 para configuracion del ADC
bsf STATUS,RP0
bcf STATUS,RP1
;Desactivando las interrupciones
clrf INTCON
clrf PIE1
;Configurando las patitas del puerto A
movlw 0x8F
movwf ADCON1
;Cambiando de banco. Y con esta linea arreglamos el problema que teniamos con el mal funcionamiento del pic.
bcf STATUS,RP0
;Seleccionando la frecuencia de reloj para la conversión. Fosc/8
;ADCS1=0
;ADCS0=1
;ADON=1
movlw 0x41
movwf ADCON0
;Configurando el bit de estado de la conversión.
;GO=1. Iniciandoce la conversión.
bsf ADCON0,GO
return
Y con esto resolvemos el problema de sobre escritura de ADCON1. y podremos seguir. Ya les ire poniendo mas cosas para que podamos seguir experimentando.
martes, 28 de julio de 2009
Programando pic's desde linux. (código)
Así que valientemente iremos a cazar leones con una varita.
Así que antes de que podamos hacer algo en cuanto al código, hay que saber que hace y por que lo hace.
Primero vamos a configurar el pic.
Código:
Init
bcf STATUS,RP0
bcf STATUS,RP1
clrf PORTA
clrf PORTB
clrf PORTC
clrf PORTE
clrf PORTD
bsf STATUS,RP0
;Desactivando las interrupciones
clrf INTCON
clrf PIE1
;Configurando las patitas del puerto A
movlw 0x8F
movwf ADCON1
;---------------------------
clrf TRISB
clrf TRISE
bsf STATUS,RP0
;Seleccionando la frecuencia de reloj para la conversión. Fosc/8
;ADCS1=0
;ADCS0=1
;ADON=1
movlw 0x41
movwf ADCON0
;Configurando el bit de estado de la conversión.
;GO=1. Iniciandoce la conversión.
bsf ADCON0,GO
bcf STATUS,RP0
return
Ahora veremos que hace la función de leer.
Leer_ADC
;Se concatena IRP con FSR para seleccionar el banco de RAM
;0=Banco 0 y 1 (00h-FFh)
bcf STATUS,IRP
movwf FSR
movf INDF,w
movwf LSB
movlw 0x1E
movwf FSR
movf INDF,w
movwf MSB
bsf ADCON0,GO
return
Noches de trabajo
Ese es el escritorio que uso cada noche y donde planeo las entradas que aquí publico.
Nada como el café, la música y el whisky para una noche fría.
miércoles, 22 de julio de 2009
Creando un sistema de verciones con CVS. (introducción)
Pero eso es verdaderamente tedioso, normalmente no lo hacemos y cuando nos acordamos, es demasiado tarde para que podamos dar vuelta atrás.
CVS (Concurrent Versións System) es una aplicación que permite la implementación de un sistema de verciones, manteniendo el registro de todo el trabajo y los cambios a un archivo. Permitiendo a demás, que distintos desarrolladores puedan tener acceso y trabajen de forma ordenada y sincronizada.
Creando el repositorio.
En modo de super usuario (De preferente estar en la cuenta y no por medio de sudo o el comando su) desde la linea de comandos teclea:
[root@Developer]#cvs -d /home/Sugizo/Public/cvsroot init
El directorio '/home/Sugizo/Public/cvsroot' es donde nuestro repositorio de fuentes se encontrará. Yo recomiendo que crees un grupo para acceder a este repositorio, algo así como cvs, develop, o cualquier cosa que se te ocurra. Y para crear un grupo desde la línea de comandos:
groupadd [-g group_id [-o]] [-r] [-f] nombre_del_grupo
Donde -g especifica el Id del grupo que debe ser un valor único y es mayor a 500. Si decides usar -o, el valor se acignara automaticamente y no será necesario poner -g.
-r, especifica al sistema que el id debe estar por debajo de 499. Cosa que yo no recomiendo, ya que todo por debajo de 499 sin id para el sistema.
-f le indica que cree el grupo a la fuerza y que oblige al sistema a no dar error en dado caso que pueda generar uno y no crearlo.
[root@Developer]#groupadd -g 503 developers_cvs
Cambiamos el repositorio de grupo root a developers_cvs con chown
[root@Developer]#chown -r root:developers_cvs /home/Sugizo/Public/cvsroot
Y agregamos el usuario al grupo con el comando usermod, donde el parametro -G, agrega grupos al usuario (usermod [-G grupo, grupo2, ...] usr)
[root@Developer]#usermod -G developers_cvs Sugizo
O puedes editar directamente '/etc/group' donde cada linea se compone de:
'nombre del grupo':'passwd del grupo':'id del grupo':'miembros del grupo'
El password no es obligatorio, por lo que puedes dejarlo en blanco.
Por último, cambia los permisos de '/home/Sugizo/Public/cvsroot' con el comando chmod
[root@Developer]#chmod -R 750 /home/Sugizo/Public/cvsroot
Con ello, todos los que esten el el grupo podrán escribir en el repositorio y leer de el.
Mas adelante hablaremos de como manejar cvs desde la linea de comandos, eclipse y Cervisia.
Programando pic's desde linux. (código)
Y siguiendo esa línea y en el mismo mood, se me ha dado la idea de hacer y poner todo un programa comentado para compartirlo con la comunidad estudiantil que lo necesite.
Espero que les pueda servir de algo.
; Programa de muestra hecho para el estudio de mi enanisima!!!
;Bits de configuración.
;LVD_OFF=Programa de voltaje bajo apagado.
;CP_OFF=Protección de código
;PWRTE_ON=habilita el reset mediante power up timer
;XT_OSC=Se utiliza un cristal de cuarzo
;BODEN_OFF=desabilita el reset por caida de tención.
;WDT_OFF= DESABILITA EL PERRO GUARDIAN.
__CONFIG _LVP_OFF & _CP_OFF & _PWRTE_ON & _XT_OSC & _BODEN_OFF & _WDT_OFF
;Generador de archivos list y llamada a librerias.
list p=pic16f877
;RADIX HEX
include<p16f877.inc>
;Declaración de variables
;b'00000111' Este valor pasa al registro OPTION_REG para configurar el divisor de frecuencia.
Prescaler equ d'256'
TMR_50ms equ d'56'
Cont equ 0x20
Cont1 equ 0x21
Temp equ 0x22
;indicadores del pic16f877
org 0x00
;Llamando a la rutina de configuración del pic.
call Init
;Llamando a la rutina principal del programa.
goto Principal
org 4
retfie
org 5
;rutinas
Init
;Cambiando al banco0.
bcf STATUS,RP0
bcf STATUS,RP1
;limpiando los puertos
clrf PORTA
clrf PORTB
clrf PORTC
clrf PORTE
;Cambiando al banco1
bsf STATUS,RP0
;Cambiando puertos de entrada a salida
;clrf TRISA
clrf TRISB
clrf TRISC
clrf TRISD
clrf TRISE
;Cambiando al banco0
bcf STATUS,RP0
return
confPrescaler
bcf STATUS,RP1
bcf STATUS,RP0
movlw b'00000001'
movwf OPTION_REG
;Algoritmo proporcionado por Labra Porthela Victor Manuel
;Lazo anidado.
delay10mS
movlw d'21'
call dmS
return
dmS
movwf Cont
ciclo
decfsz Cont,F
goto dmS1
return
dmS1
call d500uS
nop
goto ciclo
d500uS
movlw d'163'
call duS
return
duS
movwf Cont1
ciclo1
decfsz Cont1,F
goto ciclo1
return
;Programa principal.
Principal
;Usaremos el puerto A como entrada y el puesto B como salida.
movlw PORTA
movf PORTB
call delay10mS
goto Principal
end
viernes, 26 de junio de 2009
Programando pic's desde linux. (IDE)
El corazón de Pikdev y otros como Piklab, con las herramientas que proporciona GPutils que vimos el post pasado. Por ello veremos como ensamblar desde la línea de comandos.
Abrimos nuestra terminal y nos vamos hasta donde tengamos nuestro archivo '.asm' y tecleamos:
[Sugizo@old practicas]$ gpasm -L -o "/media/disk/escuela/Microcomputadoras/practicas/test01b.hex" -w 2 -I "/usr/share/gputils/header" -p p16f877 -a inhx8m -r hex "/media/disk/escuela/Microcomputadoras/practicas/test01b.asm"
Con ello generaremos el archivo .hex, .cod y .lts que usaremos para GPSim.

Pero si lo que queremos es evitar la terminal, siempre existe el entorno gráfico y sencillo de una IDE como Pikdev.
abrimos nuestro .asm seleccionamos el tipo de pic que deseamos usar y le damos F5 y nos hace lo anterior en un solo click.

y así tenemos los mismos archivos con menos esfuerzo. Hay que aclarar que una de las cosas que debemos cuidar es la sintaxis, ya que gpasm es muy estricto en cuanto a declaraciones. Un error es include, MPLab la reconoce tanto en mayusculas como en minusculas, mientras que gpasm sólo en minusculas.
Ejemplo:
__CONFIG _LVP_OFF & _CP_OFF & _PWRTE_ON & _XT_OSC & _BODEN_OFF & _WDT_OFF
list p=pic16f877
include <p16f877.inc>
Uno siempre se siente realizado cuando se ensambla sin ploblemas... Pero eso no indica que haga lo que debiera y seguramente nos dara dolores de cabeza al ver que pasa nada y lo mismo cuando lo grabamos en el chip. Pero para ello esta GPSim...
Para el programador, solo nos interesa el .hex. Por lo que tomamos como basura todo lo demás. Pero ¿Cómo depuramos?
Desde la terminal tecleamos
[Sugizo@old practicas]$ gpsim -s archivo.cod
Esto nos abre un entorno gráfico simple, aburrido y que parece poco eficiente. Pero su elegancia radica en su simpleza.

En el cual podemos tener todo lo necesario en ventanas independientes y que podemos acomodar en todo el escritorio para poder seguir cada paso de nuestro programa y ver en donde nuestra lógica falla.
Desde esta ventana podemos colocar nuestros breakpoints y seguir línea a línea lo que pasa en nuestro código y lo que tenemos en nuestras librerias auxiliares.

Y en esta esquina tenemos a la maravillosa ventana medidora!! El StopWatch que generosamente nos medirá la cantidad de ciclos y tiempo que tarda una instrucción en ejecutarse.



El programa de memoria.


Como dicen: He aquí, todo para el programador. Nos veremos en el siguiente post para seguir descubriendo los horrores de dedo y más código para poder hacer de un pic, una útil herramienta.
Programando pic's desde linux. (Intro)

Ya les había presentado código ensamblador para el 8051 de intel en el cual probaba con un emulador escrito en java y que ensamblaba con nams desde la línea de comandos. Pero ahora es diferente y aquel emulador y mi ensamblador no son suficientes para poder seguir en la recta final.
Ahora estamos probando a la familia de los Pic, el cual ya tenia el gusto de conocer al 16F84. Y para seguir en esa misma línea de trabajo nos topamos ahora con un integrante de la familia mas actual. (Nos referimos al pic16F877)
La compañía que se encarga de fabricar estas bellezas, también se encarga de proporcionar una IDE de forma gratuita para su programación, depuración y grabación en el pic por medio de diferentes programadores, tanto propios como de otras empresas. Pero el problema llega cuando no usas Windows... Ups, te dices y te pones a rezar para que emule vía Wine sin problemas.
Así que me dispuse de tiempo para buscar algún programa para hacer esta tarea de forma nativa en linux, busque y busque y los portales derribe. Encontré un proyecto frances llamado Pikdev que ofrece una IDE sencilla para esta titanica tarea. Pero faltaban las librerías de Microchip para poder hacer mas simple la tarea. Así que pude encontrarlas en el proyecto GPutils, el cual dispone de las herramientas necesarias para poder programar pic y que Pikdev usa.
Pero pronto descubrí un problema mayor y que es el dolor de cabeza de cualquier programador en entorno de producción... bugs... Desgraciadamente, Pikdev no cuenta con un debugger para esto... Cansado de buscar una IDE que me lo dirá, me resigne a emular MPLab de Microchip para poder disponer de la herramienta MPSim para el debuggeo del programa que estaba tronando en el circuito... Pero mis esperanzas murieron cuando active el debugger. Corrió, pero jamás depuro...
Buscando un simulador, di con la pagina de GNUpic que es mantenida por Scott Dattalo. En ella encontré a GPSim, un simulador de pic's y con ello complete el labor de programar y debuggear en un entorno Linux sin necesidad de emular.
lunes, 1 de junio de 2009
Todo para el artista: ArtistX

Una de mis pasiones en esta vida es el audio, todo el mundo de las frecuencias y armónicos. Es algo que me entretiene por horas y horas y que por lo general, salen cosas muy buenas de ellas.
Pero ahora que mi enanicima anda jugando con los gráficos en 3D, pensé en hacerle un regalo bastante lindo lleno de software para dicho trabajo y me puse a trabajar secretamente en ello. Buscando programas para 3D y demás, recordé que existe una distribución que se había creado para ello y me puse a buscarla. Para mi sorpresa, acaba de sacar su nueva versión 0.7.
Pasemos al tema
ArtistX es una distribución basada en Ubuntu 8.10 (intrepid) con el Kernel 2.6.27, Compiz Fusion, Genome 2.24, KDE 4.2 y una gran cantidad de aplicaciones para el mundo de los gráficos y multimedia, el cual es una gran alternativa para todo esos fanáticos como mi hermosa niña que se quieren pasar un buen rato creando cosas gráficamente hermosas.
Esta distribución en formato live-cd (Bueno, es un DVD... que genio!!!) puedes descargarla vía torrent y si te preguntas que puede traer ArtistX, aquí les dejamos una probadita de su contenido:
- Software para gráficos en 2D: Gimp, Inkscape, Nip2, Krita, Cinepaint, Synfig, Rawstudio, Skencil, Hugin.
- Softwares para gráficos en 3D: Blender, Wings3D, Kpovmodeler + Povray 3.6, K3D.
- Softwares para video: Cinelerra, Kino, Openmovieeditor, Kdenlive, Pitivi, Avidemux, Devede, y muchos más.
- Reproductores de mísica y video: Mplayer, Helix Player, Videolan, Xine, Kaffeine, Kmplayer, LastFM y muchos más.
- Sofware para edición de audio: PD and externals, Rosegarden, Ardour, TerminatorX, Cecilia/Csound, Gnusound, Mixxx y muchos más.
jueves, 14 de mayo de 2009
Extra!!! El causante de la pandemia
miércoles, 13 de mayo de 2009
De la música y sus recuerdos.
Ya varios lectores me han pedido que regrese la entrada de recuerdos y música. Hoy les he hecho caso ya que no veo el por que no deba subir mis memorias que son libres.
De la entrada original le he cambiado algunas cosas dejando la idea integra.
A lo largo de mi vida he tenido la fortuna de conocer a varias personas con las cuales he podido hablar de música y de otros temas más que son muy interesantes. Entre muchas platicas con estas personas, uno de estos artistas he llegado a ser Bjork, una cantante y compositora islandesa que desde hace ya varios años he seguido.
Cuando entre a trabajar a la Ford, que se encuentra en Santa Fe, frente a la universidad Ibero Americana.
Cada día me hacia un tour para poder entrar a las 8 de la mañana. Entre microbuseros y metro, lograba llegar al trafico de Vasco de Quiroga hasta el entronque de la autopista México-Toluca. Del cual hemos de decir que es de medio salvaje a muy intenso en las mañanas y tardes. No olvidemos los días de lluvia, por que nadie sale de Santa Fe con eso. Durante ese viaje de cada mañana siempre iba escuchando el iPod (o iPot o aipol) y me hice muy amigo de muchas melodías, algunas que me ponían nostálgico, otras que me llenaban de vigor y otras que solo me hacían pasar un buen rato.

La letra es tan incomprensible como cualquier acto amoroso que uno pueda generar de buenas a primeras. Justificas cualquier cosa durante casi toca la canción, cualquier idea y tratas de purificar y purificarte con ideas, sueños, recuerdos para eliminar cualquier mal sabor de boca. Y todo esto para terminar de golpe aceptando lo que ya sabes y lo que es la realidad. Amas y estas herido, te hieres por amor y solo quieres esperar algo que ni tu mismo sabes.

Y esto te hace terminar escuchando un track de 3 horas mientras dices: ¿Por qué te haces eso a ti mismo?
Seguiremos en la próxima recordando mas canciones y experiencias de vida.
viernes, 8 de mayo de 2009
Arreglando la vida. (Carpe diem)
Desde ayer, quizá desde un día antes algo del viejo pasado regresa para recordarme que el hombre teme el paso del tiempo y no han aprendido que es mejor encender una luz que maldecir la oscuridad que prevalece en sus vidas. Hoy me pongo a planear mi vida, a ver que quiero de ella y que no. A decirle adiós a los trolls amargados de las navidades pasadas y enfocarme a las personas que durante dos años han dado mas que tiempo a mi vida y me ha logrado sacar del hoyo donde me meti por 3 años.
"Lo pasado ha huido, lo que esperas está ausente, pero el presente es tuyo."
La historia se ha terminado.
viernes, 24 de abril de 2009
entre
retando al futuro que siempre me cambia
y que no quiero entender
Despierto desde temprano
simplemente para crear mi ejercicio favorito
Entre los tumultos del futuro
y término entendiendo que tengo miedo de entrar a la ducha
desde el comienzo hasta el inevitable final
Siempre mantengo mis manos lejos de mi
No es que me deje solo
simplemente nunca estuve ahí
De cualquier forma
Leo mi futuro
Ahora lo puedo hacer
domingo, 19 de abril de 2009
Cuentos cortos para sueños largos.
visto de velo, mascaras y sonrisas
cubro mi rostro con bellos tatuajes
hermosas telas cubren mi cuerpo
fina piel adornan mis pies.
Por mí? Por decir?
Donde estoy?
De noche desgarro mi piel
De día busco la redención en tus brazos
Te llamo... Pero sin aparente resultado
mi voz resumbá en el cielo con fuerza.
Miento, chantajeo, encubro las cosas
camino sin rumbo fijo entre los muertos
y en los campos dejo de entender al mundo
Todo ello para poder contar la verdad
Y las cosas que siento
tu jamás las sabrás.
jueves, 16 de abril de 2009
Dave Matthews Band de regreso

Después que estos señores no sacaran nada desde ya hace un rato, regresaron al estudio para traernos un nuevo disco llamado BIG WHISKEY AND THE GROOGRUX KING.
Pese a que el disco sale en 2 de junio de este año, ya esta en preorden y podrás tener un set de 3 dsicos gratis que son el live trax Vol 15, Alpine Valley Music Theatre y el One of the most fan requested show for live.
Ya era hora de tener mas de ese rock-jazz que Dave y compañia nos pueden brindar.
Números primos vía ensamblador
clr A;
clr C;
mov DPTR, #TablaPrimos ;
mov r3, #00h ;
mov r4, #02h ;
mov r5, #0FEh ;
mov r6, #02h ;
mov 20h, #0Fh ;
mov 30h, #05h ;
mov 31h, #09h ;
mov 32h, #03h ;
;; primos
mov DPTR, #TablaPrimos;
mov 20h, #00h ;
acall paresinc ;
mov 20h, #41h
acall paresdec ;
;; Rutina de retardo
tiempito:
mov 90h, A;
mov r0, #02;
in1: mov r1, #040h;
in2: mov r2, #090h;
wait: djnz r2, wait;
djnz r1, in2;
djnz r0, in1;
ret;
;; Rutinas para pares
paresinc:
inc 20h ;
mov A, 20h ;
mov B, r6 ;
;; Divición entre 2
div AB ;
mov A, B ;
cjne A, #00h, paresinc ;
mov A, 20h ;
mov B, 20h ;
;; Divición entre si mismo
div AB ;
mov A, B ;
cjne A, #00h, paresinc ;
mov A, 20h ;
movc A, @A+DPTR ;
mov P1, A ;
acall tiempito ;
mov A, 20h ;
cjne A, #41h, paresinc ;
ret
paresdec:
dec 20h ;
mov A, 20h ;
mov B, r6 ;
;; Divición entre 2
div AB ;
mov A, B ;
cjne A, #00h, paresdec ;
mov A, 20h ;
mov B, 20h ;
;; Divición entre si mismo
div AB ;
mov A, B ;
cjne A, #00h, paresdec ;
movc A, @A+DPTR ;
mov P1, A ;
acall tiempito ;
mov A, 20h ;
cjne A, #00h, paresdec ;
ret
TablaPrimos:
DB 11111111B;
DB 11111110B;
DB 11111101B;
DB 11111100B;
DB 11111011B;
DB 11111010B;
DB 11111001B;6
DB 11111000B;7
DB 11110111B;8
DB 11110110B;9
DB 11110101B;10
DB 11110100B;11
DB 11110011B;12
DB 11110010B;13
DB 11110001B;14
DB 11110000B;15
DB 11101111B;16
DB 11101110B;17
DB 11101101B;18
DB 11101100B;19
DB 11101011B;20
DB 11101010B;
DB 11101001B;
DB 11101000B;
DB 11100111B;
DB 11100110B;
DB 11100101B;
DB 11100100B;
DB 11100011B;
DB 11100010B;
DB 11100001B;30
DB 11100000B;31
DB 11011111B;32
DB 11011110B;33
DB 11011101B;34
DB 11011100B;35
DB 11011011B;36
DB 11011010B;
DB 11011001B;38
DB 11011000B;39
DB 11010111B;40
DB 11010110B;41
DB 11010101B;42
DB 11010100B;43
DB 11010011B;44
DB 11010010B;45
DB 11010001B;
DB 11010000B;
DB 11001111B;
DB 11001110B;
DB 11001101B;50
DB 11001100B;
DB 11001011B;
DB 11001010B;
DB 11001001B;
DB 11001000B;55
DB 11000111B;
DB 11000110B;
DB 11000101B;
DB 11000100B;
DB 11000011B;60
DB 11000010B;
DB 11000001B;
DB 11000000B;
DB 10111111B;
DB 10111110B;65
end