Blog Abandonado :(

Este blog ha sido abandonado …

¿Por qué?

Quizá el propietario de él decidio “estudiar en serio”?

Grbr dice: Naaaaah… lo que pasa es que tengo muchas cosas por hacer y todas están en una cola de prioridades, pero ya falta poco para que llegue el turno de mantener el blog…

Actualización 09/06/2010:

Hola amigos! gracias por sus comentarios, el blog volverá  a actualizarse, lo que pasa es que tuve unos problemillas con mis estudios y necesitaba ponerles mas prioridad, ahora vendré con muchas cosas nuevas como diferentes lenwajes de programación y y y cosas en slackware13 y otras distribuciones …

Por cierto dentro de 1 mes termina el semestre!

Star Wars Imperial March in HP 50G calc

Hola amigos!

Luego del post anterior (donde les contaba mi triste destino…) decidí compartir unas cuantas líneas de código, en esta oportunidad les escribo algo sobre la programación en calculdoras HP 50G, resulta que ésta es una de mis calculadoras favoritas (jaja en realidad es la única que tengo), a continuación detallo alguna de las características del hardware de ésta calculadora:

  • Procesador ARM @75Mhz (ARM920T)
  • Resolución de Pantalla: 131 x 80 píxeles
  • Memoria RAM: 512KB (300kb para el usuario)
  • Memoria FLASH: 2MB (800KB para el usuario)

Bueno el motivo de éste post es programar música en la calculadora HP 50 G

SI! Música, resulta que quien redacta este artículo es un músico frustrado y aprovechando que ésta calculadora posee un beeper piezoeléctrico y tiene capacidad de programación, entonces que mejor manera de aprender algo de programación en User_RPL haciendo algo de música!

Primero, unos cuantos conceptos sobre el lenguaje userRPL

  • UserRPL significa RPL del Usuario, es el lenguaje en el que programamos cosas sencillas sin manejar excepciones (a nivel hardware) que pueda tener la calculadora, es un lenguaje de alto nivel
  • RPL significa Reverse Polish Lisp, traduciendo a nuestra lengua madre significaría Lisp Polaco Inverso;
  • RPN significa Notación Polaca Inversa, es una notación matemática donde no hace falta usar paréntesis, en el caso de la calculadora se aplica al manejo de PILA (stack)

Entendiendo un poco la  Notación Polaca Inversa, la lógica es sencilla y fácil de entender, a continuación unos ejemplos

2 + 3 en RPN es 2 3 +
4/3 en RPN es 4 3 /
(4 + 8 ) / 3 en RPN es 4 8 + 3 /
4 * (7  / 1 ) – 3 en RPN es 4 7 1 / * 3 -
1 * (((((4+7)*5)/2)^2)+1) en RPN es 4 7 + 5 * 2 / 2 ^ 1 + 1 *

Como vimos en los ejemplos anteriores, el uso de paréntesis queda limitado, las operaciones se resuelven segun la pila (el orden) y cada operador en realidad es una funcion, por lo cual si tuvieramos la funcion FPOS, la notación se mantiene siempre de la siguiente manera:

fpos(4,3) + 4 en RPN es 4 3 fpos 4 +

¿Cómo programar en la HP50G?

No pretendo explicar detalladamente la programación de esta calculadora, solo me limitaré a dar pequeñas nociones, tenemos 2 formas (algebraico y RPN) y 4 lenguajes (HP-Basic, UserRPL, SystemRPL, ML ); en este post me limitaré a explicar la sintaxis de UserRPL y la notación RPN, prometo a futuro crear un sitio exclusivo donde explicaré de forma detallada la programación de ésta y otras calculadoras…

  1. Encender la calculadora
  2. Configurar tu calculadora para que funcione en RPN (Boton MODE > Operating Mode: ‘RPN’ > ENTER)

Si ya estamos en MODO RPN, entonces aqui viene la parte divertida, todos los programas en ésta calculadora comienzan y terminan con estos simbolos: « », por lo cual ahora crearemos una funcion:

f(x) = x ^2;

La cual en Notación Polaca Inversa, sería:

x 2 ^

Veamos como programar esta pequeña funcion en la calculadora, a continuación el código y luego ire detallando…

« → X « X 2 ^» » F STO

Explicación del código anterior:

  • « → X; con ello iniciamos un programa y depositamos cualquier dato que esté en la pila como la variable X
  • « x 2 ^»; iniciamos un subprograma con los simbolos « » el cual nos retornará el valor de X al cuadrado
  • Terminamos el programa principal con »
  • Creamos la variable F y como tenemos un “programa” (un objeto) en la Pila de Datos, entonces con el comando STO depositamos el valor del objeto (el programa) en la variable F
    Con ello conseguimos guardar todo el codigo en la variable F como si el código se tratase de un simple número (esto es lo fantástico)

Para poner en marcha el pequeño programa basta con escribir un numero y seguido de él la letra F, presionar Enter y ver los resultados

8 [espacio] F [enter] nos devuelve 64, o sino 8 [enter] F [enter] y tambien nos devuelve 64

Ahora veamos lo más interesante…

¿Música en la calculadora HP50g?

Si! Es posible, como dije anteriormente tenemos un BEEP en el aparatito en cuestión el cual haremos sonar metiendole frecuencias y duración de las mismas, con ello conseguimos música! SI quieres comprobar las capacidades sonoras de tu calculadora escribe el siguiente código:

1760 [espacio] .5 [espacio] BEEP [enter]

Tu calculadora deberá producir un BEEP de medio segundo de duración y 1760hz que equivale a una LA aguda (muy aguda), te parece si ahora hacemos un bucle?

« → A
« WHILE A 0 > REPEAT
1760  0.1 BEEP  A 1 – ‘A’ STO
END
»
» MM STO

Explicación del código anterior:

  • → A; Depositamos el número de la pila (stack) como la variable A
  • WHILE A 0 > REPEAT (mientras A sea mayor que Cero repetir)
  • 1760 0.1 BEEP A 1 – ‘A’ STO; Hacemos sonar un Beep de 1760Hz durante 0.1 Segundos y luego restamos el valor de A en 1 y lo depositamos como A
  • END (Fin)
  • Guardamos todo el codigo anterior como la variable MM

Para poner en marcha el código, escribe cualquier numero y luego ejecuta MM, ejemplo:

10 [espacio] MM [enter]

Debería dar 10 pitidos!

Star Wars Imperial March in HP 50G, How To

Bueno, luego de tanta explicación (para enteder la lógica de la calculadora), veremos a continuación el código de la Marcha Imperial!

«
.48 'N' STO

523 'D' STO
554 'DS' STO
587 'R' STO
622 'RS' STO
659 'M' STO
698 'F' STO
739 'FS' STO
783 'S' STO
830 'SS' STO
880 'L' STO
932 'LS' STO
987 'SI' STO

S N BEEP
S N BEEP
S N BEEP

RS N 4 / 3 * BEEP
LS N 4 / BEEP
S N BEEP

RS N 4 / 3 * BEEP
LS N 4 / BEEP
S N 2 * BEEP

R 2 * N BEEP
R 2 * N BEEP
R 2 * N BEEP
RS 2 * N 4 / 3 * BEEP
LS N 4 / BEEP
FS N BEEP

RS N 4 / 3 * BEEP
LS N 4 / BEEP
S N 2 * BEEP

S 2 * N BEEP
S N 4 / 3 * BEEP
S N 4 / BEEP
S 2 * N BEEP

FS 2 * N 4 / 3 * BEEP
F 2 * N 4 / BEEP
M 2 * N 4 / BEEP
RS 2 * N 4 / BEEP
M 2 * N BEEP

SS N 2 / BEEP
R 2 * N BEEP
D 2 * N 4 / 3 * BEEP
SI N 4 / BEEP
LS N 4 / BEEP
L N 4 / BEEP
LS N BEEP

RS N 2 / BEEP
FS N BEEP

RS N 4 / 3 * BEEP
FS N 4 / BEEP

LS N BEEP
S N 4 / 3 * BEEP
LS N 4 / BEEP
R 2 * N 2 * BEEP

S 2 * N BEEP
S N 4 / 3 * BEEP
S N 4 / BEEP
S 2 * N BEEP

FS 2 * N 4 / 3 * BEEP
F 2 * N 4 / BEEP
M 2 * N 4 / BEEP
RS 2 * N 4 / BEEP
M 2 * N BEEP

SS N 2 / BEEP
R 2 * N BEEP
D 2 * N 4 / 3 * BEEP
SI N 4 / BEEP
LS N 4 / BEEP
L N 4 / BEEP
LS N BEEP

RS N 2 / BEEP
FS N BEEP

RS N 4 / 3 * BEEP
LS N 4 / BEEP
S N BEEP

RS N 4 / 3 * BEEP
LS N 4 / BEEP
S N 2 * BEEP

R 2 / N 2 / BEEP
R N 4 / BEEP
R N 4 / BEEP
RS N 4 / BEEP
RS N 4 / BEEP
D N 4 / BEEP
D N 4 / BEEP

R 2 / N 2 / BEEP
LS N 4 / BEEP
LS N 4 / BEEP
L N 4 / BEEP
L N 4 / BEEP
FS N 4 / BEEP
FS N 4 / BEEP

R 2 / N 2 / BEEP
R 2 * N 4 / BEEP
R 2 * N 4 / BEEP
DS 2 * N 4 / BEEP
DS 2 * N 4 / BEEP
L N 4 / BEEP
L N 4 / BEEP
D 2 * N 4 / BEEP
D 2 * N 4 / BEEP
LS N 4 / BEEP
LS N 4 / BEEP
FS N 4 / BEEP
FS N 4 / BEEP
RS N 4 / BEEP
RS N 4 / BEEP

R 2 / N 2 / BEEP
R N 4 / BEEP
R N 4 / BEEP
RS N 4 / BEEP
RS N 4 / BEEP
D N 4 / BEEP
D N 4 / BEEP

R 2 / N 2 / BEEP
LS N 4 / BEEP
LS N 4 / BEEP
L N 4 / BEEP
L N 4 / BEEP
FS N 4 / BEEP
FS N 4 / BEEP

R 2 / N 2 / BEEP
S 2 * N 4 / BEEP
S 2 * N 4 / BEEP
RS 2 * N 4 / BEEP
RS 2 * N 4 / BEEP
LS N 4 / BEEP
LS N 4 / BEEP
SS N 4 / BEEP
SS N 4 / BEEP
RS N 4 / BEEP
RS N 4 / BEEP
SI 2 / N 4 / BEEP
SI 2 / N 4 / BEEP
SS 2 / N 4 / BEEP
SS 2 / N 4 / BEEP

S 2 / N 2 / BEEP
R N 4 / BEEP
R N 4 / BEEP
RS N 4 / BEEP
RS N 4 / BEEP
D N 4 / BEEP
D N 4 / BEEP

S 2 / N 2 / BEEP
LS N 4 / BEEP
LS N 4 / BEEP
L N 4 / BEEP
L N 4 / BEEP
FS N 4 / BEEP
FS N 4 / BEEP

S 2 / N 2 / BEEP
R 2 * N 4 / BEEP
R 2 * N 4 / BEEP
DS 2 * N 4 / BEEP
DS 2 * N 4 / BEEP
L N 4 / BEEP
L N 4 / BEEP
D 2 * N 4 / BEEP
D 2 * N 4 / BEEP
LS N 4 / BEEP
LS N 4 / BEEP
FS N 4 / BEEP
FS N 4 / BEEP
RS N 4 / BEEP
RS N 4 / BEEP

SS 2 / N 2 / BEEP
RS N 4 / BEEP
RS N 4 / BEEP
M N 4 / BEEP
M N 4 / BEEP
DS N 4 / BEEP
DS N 4 / BEEP

SS 2 / N 2 / BEEP
SI N 4 / BEEP
SI N 4 / BEEP
LS N 4 / BEEP
LS N 4 / BEEP
S N 4 / BEEP
S N 4 / BEEP

SS 2 / N 2 / BEEP
SS 2 * N 4 / BEEP
SS 2 * N 4 / BEEP
RS 2 * N 4 / BEEP
RS 2 * N 4 / BEEP
SI N 4 / BEEP
SI N 4 / BEEP
L N 4 / BEEP
L N 4 / BEEP
M N 4 / BEEP
M N 4 / BEEP
D N 4 / BEEP
D N 4 / BEEP
L 2 / N 4 / BEEP
L 2 / N 4 / BEEP

L 2 / N BEEP
L 2 / N BEEP
L 2 / N BEEP

F 2 / N 4 / 3 * BEEP
D N 4 / BEEP
L 2 / N BEEP

F 2 / N 4 / 3 * BEEP
D N 4 / BEEP
L 2 / N 2 * BEEP

M N BEEP
M N BEEP
M N BEEP

F N 4 / 3 * BEEP
D N 4 / BEEP
SS 2 / N BEEP

F 2 / N 4 / 3 * BEEP
D N 4 / BEEP
L 2 / N 2 * BEEP

L N BEEP
L 2 / N 4 / 3 * BEEP
L 2 / N 4 / BEEP
L N BEEP

SS N 4 / 3 * BEEP
S N 4 / BEEP

FS N 4 / BEEP
F N 4 / BEEP
FS N BEEP

LS 2 / N 2 / BEEP
M N BEEP
R N 4 / 3 * BEEP
DS N 4 / BEEP

D N 4 / BEEP
SI 2 / N 4 / BEEP
D N BEEP

F 2 / N 2 / BEEP
S 2 / N BEEP

F 2 / N 4 / 3 * BEEP
D N 4 / BEEP
L 2 / N BEEP

F 2 / N 4 / 3 * BEEP
D N 4 / BEEP
L 2 / N 2 * BEEP

"IMPERIAL MARCH
Ignoranto.Info" MSGBOX

'N' PURGE
'D' PURGE
'DS' PURGE
'R' PURGE
'RS' PURGE
'M' PURGE
'F' PURGE
'FS' PURGE
'S' PURGE
'SS' PURGE
'L' PURGE
'LS' PURGE
'SI' PURGE

»

Algo de explicación…

Primero Declaramos las Variables, en los ejemplos anteriores vimos que usabamos una flechita → para depositar variables, dicha flechita genera variables locales (las cuales se eliminan al finalizar el programa) en este caso usaremos variables globales pero luego de finalizar el script las eliminaremos:

.48 ‘N’ STO Declaramos la N como global (nótese las media comillas), es la duración de una NEGRA

523 ‘D’ STO Declaramos D, la frecuencia de la nota DO
554 ‘DS’ STO Declaramos DS, la frecuencia de la nota DO#
587 ‘R’ STO Declaramos R, la frecuencia de la nota RE
622 ‘RS’ STO Declaramos RS, la frecuencia de la nota RE#

… hasta terminar de declarar toda una Octava

Luego en la parte final del script

‘N’ PURGE Eliminamos la variable N
‘D’ PURGE Eliminamos la variable D
‘DS’ PURGE Eliminamos la variable DS

A partir de S N BEEP comienza la musiquita, ya que S tiene la frecuencia de la nota SOL y N es la duración de una Negra, BEEP el comando mágico que hace sonar el Buzzer!

Para reproducir la música en tu calculadora deberías escribir todo ese código en ella misma y luego guardar como un objeto (variable, archivo); pero existe una solución, la cual es descargar mi script: imperial march hp50g; o copiar y pegar el código anterior en el programa HPuserEdit y luego Archivo > Exportar a Objeto Binario, posteriormente copiar el Script en la tarjeta de memoria y leerlo en la calculadora!

Fin!

Comenta :D o sino escríbeme >> grbr@ignoranto.info

Mi mala suerte …

Hola amigos y amigas del blog (¿tengo lectores?), hoy estoy de mala suerte, en verdad estoy de mala suerte desde el pasado mes y creo que desde febrero …

Recordemos fechas…

  • 23 de febrero de 2010, mientras hacia un benchmark a unos discos duros mi placa murió de manera misteriosa
  • [24 - 28] de febrero de 2010; estuve sin PC y sin compiladores (todo un martirio), sobre todo no tenia INTERNET
  • 1 de Marzo de 2010; tengo computadora nueva … pero lamentablemente me vino una memoria mala (no sabia q estaba mala)
  • 8 de Marzo de 2010, comienzo clases en la U pero mi PC era inestable debido a la memoria q me vino mala
  • 9 de Marzo de 2010, pensaba que los cuelgues se debian a mi placa madre, actualicé el BIOS y fue mi primera vez (actualizando un BIOS)
  • [10 - 14] de marzo de 2010; peleando con pantallazos azules y kernel panic …
  • 15 de Marzo de 2010; aburrido de los cuelgues fui a la tienda y reclamé la garantia de la memoria, desde ese dia tengo 2GB
  • 16 de Marzo, me pierdo en una “combi” yendo a X sitio … y llego tarde a casa
  • 18 de Marzo, comienzo un proyecto (felizmente ya tenia 2GB de ram y PC estable)
  • [19 - 31] de marzo, realizando el proyecto y estudiando en la U
  • [1 - 3] de abril, mi PC funciona bien pero a ratos se ponia lenta e instable
  • 4 de abril, mi disco duro de 80GB ha muerto (felizmente tenia un respaldo casi completo en mi otro disco duro, desde el cual redacto este artículo)

Luego de todo ello hay pequeños detalles los cuales me ponen un poco preocupado con respecto a mi disco duro muerto…

  • El proyecto que habia desarrollado se encuentra en mi disco muerto (al cual no puedo acceder :( )
  • Documentos, tareas, trabajos y cosas más se encontraban en ese disco duro, ahora es información inaccesible
  • En la U usamos Visual Studio y Microsoft Windows, por ello tendré que virtualizar Windows para hacer mis tareas
  • En este disco duro (WD 320GB) solo tengo Slackware …

¿Mala suerte?

Ubuntu, Linux y la pseudo-comunidad

Hola, normalmente no toco mucho el tema de la comunidad de Linux (o Ge eNe U Linux como quieran llamarle esos “fanáticos”), sucede que ya existen muchos blogs/foros y pseudo-comunidades sobre eso temas…

Primero… antes de comenzar a criticar a la comunidad de GNU/Linux (excluyendo a los desarrolladores)…

¿Quien soy yo para criticar?

Mi nombre es Gerber, nací en 1988 y soy Linux User desde el 2002, no soy usuario de Ubuntu ni de otras distros para usuarios finales; soy usuario de Slackware y Gentoo; no trato de presumir, solo digo esto para evitar que piensen que soy newbie en esto de “linux” y sepan que tengo “conocimientos” sobre este tema y que escribiré cosas coherentes, las cuales he ido conociendo desde que uso GNU/Linux en el 2002, y he visto la transición de la Web, antes buscar info sobre “Linux” era encontrarse con tutoriales y HowTo’s sobre Red Hat, y ahora prácticamente Linux == Ubuntu;

¿Por que mi crítica a la comunidad GNU/Linux?

Por varios motivos, entre ellos están los constantes pleitos que existen como “¿que distribucion es mejor?” y aquellos conflictos que dicen que “Ubuntu es una mala distribución” y sobre todo por esos lammers que se creen hackers por haber instalado Ubuntu, los cuales dicen ayudar en los foros (que por cierto aquellos foros de Ubuntu están plagados de HOYGAN) y en fin jamás solucionan los problemas…
También por la no-comunidad, una comunidad debe ser una sola, pero aquellos conflictos hacen que el destino de la comunidad GNU sea turbio ya que no sabemos lo que queremos, no sabemos si realmente queremos migrar mentes o migrar sistemas operativos o si queremos despreciar a los usuarios de ubuntu o si queremos realzar nuestro ego diciendo que instalamos slackware, gentoo, debian; o si queremos presumir nuestros conocimientos despreciando en los foros ante preguntas simples y sencillas!… ¿Hacia donde vamos como comunidad?

Comencemos…

¿Qué distribución es mejor?

NINGUNA! Cada usuario tiene sus necesidades y por ello existen miles de distribuciones orientadas a cada necesidad (primer error, “miles de distribuciones”); la alternativa correcta en estos tiempos sería Ubuntu pero lamentablemente su extrema simplicidad genera dependencia en el usuario y “la mala costumbre”; ésta mala costumbre hace que su migración a otras distribuciones sea un caos (claro, esto en caso de que el usuario quiera migrar (en un futuro)).

El hecho de existir Miles de Distribuciones hace que al final uno mismo termine probando “varias distros” para luego decidir nuestra distro favorita (y que muchas veces es NINGUNA), todo esto produciendo una gran pérdida de tiempo.

Criticando a Canonical Ubuntu

Solia decir que Ubuntu es “Linux para secretarias” o “Linux para infrahumanos”, pero claro esto es algo despectivo, incluso para mi ya que redacto este artículo sobre Ubuntu 9.10, pero veamos sus ventajas y desventajas:

Ventajas y desventajas de usar Ubuntu desde el punto de vista del usuario Final (Windows user):

Ventajas:

  1. Nuestra PC estará libre de Virus
  2. Programas a simple click, no hace falta navegar por páginas warez para conseguir software nuevo
  3. No hace falta comprar Office Pirata para redactar documentos o hacer hojas de cálculo
  4. Mi PC no tiene fecha de caducidad

Desventajas:

  1. Las luces de mi teclado brillan parpadeando (kernel panic, quiza por algun error de hw), reinicio el sistema y voy a los foros a pedir ayuda; luego de conectarme a internet, me registro en un foro y escribo sobre mi problema, la mayoría no me dan la solución por que no tienen idea de lo que significan las luces (son usuarios principiantes que se creen hackers)!
  2. Quiero realizar una tarea y en los foros me dicen que escriba en el terminal unos comandos extraños PERO NO CONOZCO EL TERMINAL! y jamás me explican para que son los comandos extraños (ellos tampoco saben)!
  3. Tengo un problema X y me dan diferentes soluciones (jamas me dicen que hace cada solucion) luego de probar todas, alguna de ellas me ha funcionado pero No Se que es lo que hice!
  4. Quiero jugar unos juegos piratas que compré en la calle, pero Ubuntu no reconoce mis Juegos, en los foros me dicen que use WINE pero no me dicen como instalarlo ni como configurarlo, si pregunto me tachan de tonto y me hacen sentir mal!
  5. Quiero ver video HD, el asistente me baja los drivers y el codec, pero igual no reproduce :(
  6. Quiero realizar una X tarea que en Windows era bastante sencillo, en Ubuntu me toma bastante tiempo realizarla, tengo que leer mas de 10 páginas sobre Ubuntu donde la mayoria tiene el mismo contenido por que casi todos solo copiaron y pegaron el contenido de otras páginas.

Veamos algunas ventajas y desventajas de usar Ubuntu desde el punto de vista de un usuario Avanzado

Ventajas:

  1. Tengo Ubuntu y quiero instalar software, no me hace falta buscar en internet, tengo todo esto a unos cuantos clicks
  2. Que maravilla! tengo lo básico que necesito luego de la instalación y sin compilar!
  3. El inicio del sistema me parece fantástico, ya no tengo que esperar a que se carguen todos los módulos del kernel para mi hw

Desventajas:

  1. Quiero configurar mi HW a mi gusto pero la “extraña y rara” autodetección de HW de ubuntu hace que mi configuración sea imposible (hal, dbus, modprobe)
  2. Quiero Instalar IDE’s pero para ejecutarlas tengo que agregar scripts adicionales y ciertos parches, estas IDE’s en otras distros funcionaban sin parches
  3. Quiero modificar un archivo de configuración pero al parecer Ubuntu no ejecuta la modificación (quizá ignora la configuración) y si luego ejecuta la configuración lo hace con incompatibilidades
  4. Quiero editar alguna carpeta del Sistema y no encuentro documentación

En el caso de usuarios avanzados, sabemos que dichos usuarios no optarían por usar Ubuntu Linux, quizá algo mas decente como Debian, Slackware o Gentoo?

Criticando a otras distribuciones (distros derivadas de Gentoo, Slackware, Debian, RedHat)

Con respecto a estas distribuciones no tengo muchas críticas, debido a que la mayoría de usuarios que escogen usar estas distribuciones son usuarios que ya pasaron la etapa “ubuntu user” o que simplemente tuvieron contacto con el mundo GNU/Linux antes de que exista la pandemia Ubuntu. Resulta que la mayoría de estas distribuciones basadas surgieron a partir de un FORK o el capricho de algún desarrollador (entiéndase “capricho” como “ganas de tunearlo a mi gusto”), y como todo capricho llega a ser una idea en común y logra expandirse y convertirse en algo enorme, es así como estas distribuciones tuvieron o tienen éxito, por ello crecen y favorecen grandes comunidades;

¿Por qué el odio a Microsoft?

Personalmente no entiendo cada vez que leo mensajes cuyo contenido desprecia el software de Microsoft, pero es obvio que quienes redactan dichos comentarios no saben de programación (no creo que exista programador alguno que desprecie el trabajo de otro programador), cuando leo ese tipo de mensajes/comentarios/artículos/publicaciones/posts entro en crisis y me pongo tenso, pareciera que existe un grupo de gente cuya misión primordial es meter Linux a la fuerza en los ordenadores de aquellos usuarios inocentes (que no tienen ni idea de la existencia del software libre y que tampoco tienen por que importarles) para tratarlos de librar del “lado oscuro de la fuerza” (como si la Guerra de las Galaxias fuera real), no se trata de evitar usar el software de Darth Vader y tampoco de ser usuario de Software de Jedi, sino de que no todos los usuarios y las personas de éste planeta tienen interés por el Software Libre, deberían de conocer el concepto (que últimamente lo veo como fanatismo o como una religión) pero no es su prioridad (pensemos en los abogados, contadores, psicólogos y personas no aferradas a la informática). Personalmente admiro a Microsoft, no por su software; sino por lo grande que es y por la envidia que produce en aquellos que anhelan su poder.

Y tu, humano que escribes este blog (yop), que distro usas y que opinas de Ubuntu y el software libre, ah?

En primer lugar no soy un humano cualquiera, en algún momento (atrás) también fui fanático sin vida y amante del software libre; pero ahora ya he tomado conciencia y a veces considero ridículo ser un fanático de una ideologia, me parece genial el hecho de compartir el software y el codigo y todas esas cosas; pero, seamos sinceros! NO TODOS LOS HUMANOS PROGRAMAN!, recordemos que el Sr. Stallman es programador y piensa como programador; sucede que muchos de nosotros exageramos su filosofía, recordemos parte de la historia…

Richard Stallman escribió su manifiesto y un montón de humanos programadores (NO GENTE COMÚN), dijeron “venga tio, me parece genial” y se unieron a su proyecto e hicieron software (eran programadores) pero les faltaba un núcleo  (kernel) para correr todo ese software como Sistema Operativo…
Andrew Tanenbaum, escribió un Sistema Operativo (MINIX) y un Kernel Micronúcleo, alguna vez durante esos años se pensó tomar el kernel de Minix para que funcione con GNU, pero Tanenbaum se negó (por que Minix era netamente educativo y no queria que crezca)…
Linus Torvalds, aburrido en casa y sin saber que hacer, cogió MINIX y se basó en ese sistema para crear un kernel que posteriormente se llamaría LINUX, luego de unas cuantas horas publicó su trabajo en internet y un montón de gente se unió a su proyecto!

Años mas tarde, nació lo que se conoce como GNU/Linux, posteriormente GNU quizo desarrollar un nucleo propio llamado HURD (que por cierto, no se si seguirá vivo aquel proyecto)…

Personalmente me parece genial todo esto del software libre pero no me agrada que nos hayamos olvidado de Tanenbaum ya que gracias a él es que existe Linux y la mayoría desconoce ello, por cierto Linus Torvalds no es un suprahumano por haber escrito un kernel, cualquier programador curioso y paciente lo puede hacer (si cogemos a MINIX como base), pero claro hablamos de cosas sencillas (como por ejemplo bootear desde un USB, mostrar un “hola mundo” y luego reiniciar); tampoco me agrada mucho de que ahora la mayoría de personas relacionen el nombre de Ubuntu con Linux.

Sobre la distribución GNU/Linux que uso pues … ésto es según mis necesidades; si tengo visitas en casa, uso Ubuntu; si estoy programando, uso Slackware y si estoy experimentando, uso Gentoo;

exit();

Ignoranto Reloaded!

Hola amigos! en esta última semana me ha pasado diversas cosas

Entre ellas está el hecho de no tener computadora durante 6 dias… y ¿Qué paso?

El Problema: Resulta que era un martes 23 de febrero las 17 horas; luego de un “reinicio” programado normal de mi ordenador este jamás volvio a “iniciar” :( lo que sucedió fue que la MoBo (MOther BOard) de mi anterior PC había fallecido (o por lo menos había llegado al final de sus dias) y peor aun, mi anterior MOBO era del 2005, debido a ello era imposible encontrar una board que funcionase con las partes que aun conservaba de mi PC

La solución: Debido a que estoy misio (entiéndase “misio” como “corto de dinero”) y me urgía una computadora nueva entonces decidí adquirir nuevo hw (hardware), asi que ahora cuento con nueva PC (o por lo menos nueva Placa, Procesador y Memoria), las características de mi nuevo ordenador son:

  • Un modesto procesador AMD Athlon II X2 240 2.8Ghz Caché  L2 1024×2
  • Una modesta memoria genérica de 1GB DDR-2 800Mhz
  • Una bastante modesta Board MSI K9n6pgm2-v2

Lo importante es que ahora si tengo PC y podré hacer mis “tareas” de la U por que para mi muy mala suerte comienzo clases la próxima semana :D

Hello World! Ignoranto dot info now in english!

Sorry my bad english;

This is my first post in English, now write about my old hp50g source code , this source produces music in the hp50g calculator, I wrote this source code while bored and now share with everyone, see my video

This calculator produces different sounds depending the frequency & duration of the tone, each tone was programed in the source, the calculator play all tones and produces the music, each tone is a line of rpn source, the sintax is “frequency duration beep”, the RPN Language (Reverse Polish Notation) not use semicolon to finalize each instruction.

Click here hp music to download the source code of this musics on the video;

To install the little program in you hp calculator, copy the source code in you sd card and plug the card in the calculator, open the file manager, select the source and press “eval”, then listen the music :D

Alternativas a Internet Explorer

Hola!

Resulta que siempre encuentro a personas usando ese bugware llamado Internet Explorer, y la verdad es que a parte de ser super-archi-ultra-mega-hiper-vulnerable, es no-estandar y sobre todo aburre!

¿Por que aburre Internet Explorer?

Por que si, por eso; en este post quiero mostrar el odio que tienen ciertos webmasters hacia dicho navegador, por ejemplo aqui vemos un post donde un sujeto muestra su odio a IE; personalmente no es odio lo que siento, solo que me resulta trágico diseñar algunas webs (por que por naturaleza no me gusta el diseño, prefiero que el diseño me lo genere un software y programar el software para me genera el diseño :D ) y siendo IE el navegador por defecto de muchos cibernautas pues éste mismo requiere de hojas de estilo no-estándares para aplicarles ciertas características y hacer que el sitio web se vea un tanto bonito; a continuación te dejo una pequeña lista de navegadores alternativos (click en los logos para ir a la página de descarga):

Mozilla Firefox LogoMozilla Firefox; este navegador es lindo y extensible, tiene soporte html5 pero no soporta videos codificados con h.262, por lo cual no podrás ver videos en yutubi, ya que Youtube optó por este tipo de codecs para su versión en html5;

Opera Browser

Opera Browser; navegador bastante práctico y sencillo, dispones de un “no se que” donde puedes enlazar tus páginas favoritas y acceder a ellas tan solo abriendo una pestaña nueva y dando clic sobre su snapshot, al parecer no tiene soporte para html5;

Apple Safari

Apple Safari; estético y práctico (por ser un producto de apple), la sencillez de su interfaz se asemeja bastante a la interfaz de Google Chrome :D , tiene soporte oficial para html5 y viene con el Codec h.262 integrado para ver videos en yutubi! lo más interesante es que su motor de renderizado está basado en webkit; por lo que el diseño que hagas en CSS será genial y el soporte de javascript tmb será fantástico (todo esto si eres webmaster)

Google Chrome

Google Chrome; al igual que Safari también cuenta con el motor de renderizado webkit, asi que el diseño web y el soporte javascript de chrome es compartido con Safari!

¿Por que no usar Internet Explorer?

Por que navegar por la web debe ser un lujo y 100% estable, no debería ser una pesadilla; si quieres gozar de las actuales tecnologías web te recomiendo echar a la papelera de reciclaje tu viejo y horrible navegador Internet Explorer 6, o simplemente cambiar tu Internet Explorer 8 por uno de los navegadores mencionados! y verás como tu experiencia en la web será fantástica!; Personalmente recomiendo usar Firefox  o Safari,;me da miedo usar Chrome, ya que siendo software de Google a lo mejor tendría indexada mi vida y eso no me gustaría!

¿Usas GNU/Linux?

Pues Opera y Chrome estan disponibles para GNU/Linux, pero ¿realmente quieres uno de esos navegadores en tu distribución?, personalmente recomiendo Epiphany, Midori o Konqueror, ya que estos 3 navegadores tienen WEBKIT como motor de renderizado, ello te provee de un placer visual y funcional en aplicaciones web :D ; no te pongo link de descarga de esos navegadores por que :D los tienes en tus repositorios!

Anteriormente escribí un post sobre como instalar flash player en slackware; te puede resultar útil si es que necesitas ver videos en yutubi

Cómo hacer Diseño y Desarrollo Web en Linux?

Siempre tuve esa duda, de como hacer páginas web (o diré sistemas web) en GNU/Linux, ahora creo haber encontrado la respuesta… Resulta que cuando eres newbie y recien comienzas a pensar y crear cosas (ejm paginas en html) te es necesario usar esos softwares WySiWYG y lo único que hacen dichos programas es crear dependencia en ti, por que simplemente jamás tocas código y lo unico que haces es diseñar y mover bordes con el maus!

Bueno En GNU/Linux existen esos programas pero no de la magnitud como DreamWeaver que funciona en windows, algunos dirán “pero corre en wine” :D pero … es necesario?, en fin no nos centremos a programas WySiWYG sino al software donde podamos escribir etiquetas html y algo de código.

¿Cuál sería la solucion?

Dejemos a un lado el “diseño web” (cuyo significado varía en cada persona, hay quienes gustan de pelotitas saltando en flash) y veamolos del lado de desarrollo web y software, si eres programador y te gusta crear software o generar “algoritmos mágicos” que escriban html a partir de  trozos de PHP, entonces ¿Necesitas programas WYSiWYG?, la respuesta es no, hace mucho que personalmente me independice del software WYSIWYG y ahora solo uso IDE’s como Aptana y Eclipse… el simple hecho es que ahora solo programo scripts y éstos mismos me generan la página web! claro que todo es bonito hasta el momento de maquetar donde SI o SI tienes que tener conocimientos de Hojas de Estilos

¿Cómo hacer “diseño web” usando GNU/Linux?

La alternativa al diseño web son las hojas de estilos y bibliotecas como jQuery, MooTools, por que seamos sinceros a la gente le gusta ver sombritas, animaciones y cosas que se muevan en su pantalla, entonces como hariamos ello si no tenemos flash? la respuesta es con jQuery (javascript) y CSS, javascript maneja los eventos y CSS pone los colores; a continuación un problema y una solucion:

Tienes una página web pero no te gustan esos bordes cuadrados, te gustaria tener unos hermosos bordes redondeados y si es posible algo de sombra:

  1. Solucion a lo Windows (lo comun): agarras tu jotochop y haces bordes, dentro de tu html en el head y en style lo repites por todo el background de tu tabla (los diseñadores (muchos de ellos) usan tablas!!), y luego creas 2 capas, una encima y otra debajo de ella y dibujas el borde que creaste con tu jotochop.
  2. Solucion con GNU/Linux y algo de cerebro: cargas bibliotecas como jQuery.corner y jQuery, pones el contenido de tu web dentro de un DIV, y luego llamando a javascript generas los bordes, agarras tu hoja de estilo y le pones el color que necesitas, pero esta solucion no es muy buena si quieres una web para el viejo IE6

Veamos cual solución es la mejor, examinemos la solución “windows”:

  1. Es mas que seguro que nuestro diseñador windows ha usado Dreamweaver…
  2. Al crear tablas (la mayoria de diseñadores lo hace, claro me refiero a ellos que no tienen ni idea de los estándares) estas usando algo exclusivo para “tabular datos” para crear diseño, ESE ES EL ERROR
  3. Al repetir una imagen en todo el background pones mas pesado al navegador y peor aun, mas pesado si es una x386
  4. Al crear los bordes inferiores y superiores tmb consumes recursos y sobre todo la página web cargará lento (debido a las imgenes, que normalmente las guardan como PNG de 32 bits y que pesan mas de 50KB)

Examinemos la solución GNU/Linux sin wysiwyg

  1. Divides la estructura de la Web con DIVs, Correcto!
  2. Solo cargas poco más de 70KB de código 100% reutilizable (ajax, efectos, eventos, jsonp, etc)
  3. El navegador se encarga de generar los bordes, el consumo de recursos es menor

Software para Diseño y DESARROLLO web en GNU/Linux

  1. InkScape, para hacer tus logos, banners y demás cositas bonitas
  2. Eclipse PHP; para programar en PHP y generar código HTML, XML a partir de PHP
  3. Navegadores: Opera, Firefox, Konqueror, Chrome (webkit) y usarias tu wine para emular una creación blasfema llamada “internet explorer”
  4. Tu computadora con GNU/Linux que de por si no hace falta xampp por que tu misma PC la hace de servidor web (apache, mysql, postgresql, php, perl, python)
  5. NoIP o DynDNS para que tus visitantes accedan a TU PC