60) Diseño de probable teléfono de Mozilla

Posted by Leek | Posted on 5:11 p. m.

Justamente hoy se acaba de anunciar un diseño de un teléfono "Open Web" que sería desarrollado por Mozilla. Esto a raíz de que varios usuarios de telefonía móvil. El autor del, diseño el Billy May, y se dice que ya traía la idea del diseño de un "Open Web Concept Phone". El proyecto es llamado "Seabird".

Este teléfono sólo es el concepto del diseñador Billy May que tiene de un teléfono que concuerda con la imagen y concepto de la empresa Mozilla. Por su parte, la compañía declaró que no tiene intenciones de concretar este proyecto. Sin embargo, es probable que ésta no sea su última palabra, pues es bien sabido que algunas compañias que no tienen nada que ver con la telefonía móvil, incursionan en el mercado.
. Ejemplo de ello es Microsoft con su fallido dispositivo Kim o Google con su por igual poco aceptado Nexus One.


Algunas características del teléfono serían: Cámara de 8 megapixéles, entrada para auticulares de 3.5 milímetros, puerto mini-USB, dos proyectores y se podría poner en un atríl para realizar proyecciones en una pared. Pero para ya no hablar tanto, aquí les muestro un video del diseño. Veanlo... ¡Es hermoso!¡Fabuloso!¡Fantástico!


59) "Pila" en Python [2/2]

Posted by Leek | Posted on 3:05 p. m.

Hola a todos, esta es la segunda y última parte de la serie "'Pila' en Python". En esta parte se colocará el código de la simulación de la "pila" en Python y se explicará el mismo. Así que primero lo primero, si quieren tener el código puedes descargarlo:

[Descargar "Pila.py"]

Bueno, ahora expliquemos el código. Les recomiendo que descargen el código y lo abran con un editor de textos que pueda mostrar los número de linea. Actualmente, todos los editores de texto para programadores, pueden hacer eso; en este caso usé "gedit", pues es un editor de texto multiplataforma, así que si estan usando Windows, pueden descargarlo sin problemas.

También quiero que sepan que el código puede ser ejecutado en cualquier sistema operativo sin realizarle ninguna modificación; eso si, el sistema que esten usando debe tener instalado Python, y en el caso de Windows y MacOS, que no lo tiene instalado predeterminadamente como Linux, pueden descargarlo desde la página oficial de Python.:

http://www.python.org/.

La primera linea le dice al interprete de Python que se usara la codificación utf-8, que es la que recomiendo usar yo para todos los códigos en Python, aunque una desventaja, es que no se pueden poner otros tipos de caracteres como por ejemplo los acentos o las "eñes"; vean el código y verán que no tiene ningún acento, pues si colocaramos un acento, nos mostraria un error diciendo que la codificación UTF-8 no conoce este tipo de caracteres.

El texto que sigue, el que se encuentra entre tres comillas arriba y tres comillas al final, es solo un comentario. Python hace caso omiso de eso, pues solo se usa para que los programadores que no hayan creado el programa, puedan enterder más facil el código, en este caso solo el pongo el nombre de archivo, la version de Python que se uso, y el autor, o sea yo, xD.

Despues, pueden ver que se crea una lista llamada "stack", que en este caso está vacía, y la llamé "stack" porque "stack" significa pila informática en inglés.

Despues se crea una función "main" para que realize todo el proceso.

Dentro de la funcion main, primero se muestran al usuario todas las opciones que tiene el programa que son: Apilar elemento, Desapilar elemento, Mostar la pila, Mostrar último elemento aplilado y Salir; en caso de que el usuario eliga una opcion que no existe, se le mostrara un mensaje de "opcion incorrecta".

Pueden ver en la linean número 19 del código, podrán ver que se usa la función "append" para insertar un elemento a la lista "stack".

En la línea número 29 pueden ver que se usa la función "pop" con la lista "stack" para borrar el último elemento de la lista; en caso de que la pila o lista este vacía, se mostrará un mensaje diciendolo al usuario. Para saber si la lista está vacía, pueden ver que en la línea 24 se usa la función "len()".

En la línea número 42, pueden ver que para mostar el último elemento de la lista se coloca el elemento -1, que sería el último elemento. Si la pila está vacía, también se usa la función "len()".

También pueden ver que en la última linea, se llama a la función "main()" que creamos, pues si no se llama a la función, el programa no correra y solo se crearan la lista "stack" y la funcion "main()" de manera inútil.

Como habrán visto, no expliqué el código línea por línea, pues sería muy tardado, y además no lo considero relevante, pues quien conoce un poco de programación, puede comprender fácilmente las líneas de código que no expliqué.

Para descargar el código, pueden ir [aqui]. Hasta pronto.

58) "Pila" en Python [1/2]

Posted by Leek | Posted on 6:13 p. m.

Hola a todos, hace ya como cuatro o cinco posts que no pongo algo realmente interesante en este blog, así que decidí poner algo de código en Python, el cual subí a LWP (La Web del Programador).

El código simula a una pila mediante una lista, pero primero veamos las definiciones:



"Pila": Una pila es eso, una pila donde se meten datos, en este caso, la pila simulada alberga números en sistema decimal, aunque se le puede meter cualquier otro caracter, o se le pueden meter cadenas. Las pilas son un tipo de estructuras de datos.
Para ver como funciona una pila vean esto, supongamos que se acaba de apilar el número 3 en la pila:
-----
| 3 |
-----

Y despues apilamos el numero cinco:
-----
| 5 |
-----
| 3 |
-----

Bueno, ahora que tenemos nuestra pila con dos elementos, hagamos algo con uno de ellos.

Ahora imaginen que cada elemento es un dado, no se puede quitar el dado con el número 3 pues el dado con el número cinco caería, bueno, pues eso mismo pasa con las pilas en informática, solo se puede usar el último elemento, en este caso el número 5, y solo ese, podemos mostrarlo o desapilarlo, pero no podemos hacer nada con el número 3.
Y eso es, básicamente, una pila.



"Lista": La lista es pues eso, una lista, y también es otro tipo de estructura de datos, pero nos permite más flexibilidad con el manejos de los datos albergados.

Bueno, las listas en Python se colocan con los corchetes es decir, los símbolos [ y ].

Ahora, creemos una lista 'x' vacía, que sería:

x = []

Ahora, para meter un elemento en la lista se usa la funcion 'append()', por ejemplo, si queremos meter el número 3 en la lista sería:

x.append(3)

Y ya está en la lista; para ver la lista usamos la funcion 'print()', que sería

print(x)

Eso imprime la lista, y si realizamos estos pasos en la linea de comandos de Python, y ejecutamos 'print()', nos saldría:

[3]

Eso solo si tenemos el elemento '3' en la lista, pero si la lista está vacía, solo nos mostrará:

[]

Ahora, tenemos el elemento '3' en la lista y queremos meter el elemento '5', asi que tecleamos 'x.append(5)'. Ahora mostramos la lista con la función 'print()', o sea que tecleamos 'print(x)', y nos saldría:

[3,5]

Bueno, la numeración de elementos en una lista en Python va desde el cero, es decir, si tenemos que la lista es:

[3,5]

el elemento 3'', sería el elemento número 0 de la lista, y el '5' sería el elemento número 1.

Para mostrarles eso, supongamos que ahora creamos otra lista 'y' con los elementos 6 y 7, que sería:

y = [6,7]

Si tecleamos print(y), nos mostraría:

[6,7]

Bueno, ahora, queremos multiplicar 6 por 3 de las dos diferentes listas. Para invocar a un elemento de una lista, tecleamos 'x[número_de_elemento]'.

Es decir, si tecleamos x[0], nos mostrará '3', que es el elemento número 0 de la lista 'x'.

Ahora, la multiplicacion, como dijimos que se multiplicaría 3 por 6, entonces se multiplica el elemento 0 de la lista 'x' y el elemento 0 de la lista 'y', así que se teclea:

x[0]*y[0]

y nos devolverá el resultado de la multiplicación:

18

Suponiendo que queremos saber cuantos elementos hay en una lista, pero sin tener que contarlos, pues el usuario no puede verlos en la mayor parte de las ocasiones, podemos invocar a la funcion 'len()' para que nos devuelva el número de elementos que hay en una lista, por ejemplo, si tecleamos:

len(x)

nos mostrará el número de elementos que hay en la lista 'x', que en este caso son dos, así que nos mostrará el número '2'.

Ahora, podemos ver el último elemento de una lista colocando realizando lo siguiente. Primero creamos una lista 'z', con cuatro elementos:

z = [6,7,8,9]

Después tecleamos:

print(z[-1])

y nos mostrará el elemento '-1' de la lista, que en este caso es el número 9.

Bueno, ahora lo último; quitar un elemento de la lista. Para eso, usamos la función 'pop()'. Por ejemplo, si queremos quitar el último elemento de la lista 'z', en este caso el '9', ponemos:

z.pop()

Y ya nos quita el elemento, pero si quisieramos quitar el elemento 2, es decir, el número '8', ponemos:

z.pop(2)

y nos quitara el numero '8'.

Bueno, esa es la primera parte de este... no se como llamarlo. Esperen la segunda y última parte, la parte interesante, donde colocaré el código fuente de la simulación de la pila en Python.

Hasta pronto.

57) Nexuiz aparece en la revista oficial de Xbox

Posted by Leek | Posted in | Posted on 5:21 p. m.

Así es, ya apreció en la revista de Xbox, y al parecer no les gusto el nombre. Pero, que saben ellos del nombre; un nombre no se pone nada mas porque sí, el nombre tiene una razón de ser. Lo único en lo que se fijan estas personas son en los gráficos, ni si quiera saben el funcionamiento interno del juego (bien se dice que lo peor de ser programador son los ignorantes usuarios).

Al parecer será un juego descargable con Microsoft Points, por lo que solo estará disponible para personas que tengan Xbox Live. Es una lástima que no aparezca la verdadera historia, pues la idea original del juego no es de Illfonic, fue en su mejor tiempo, software libre, y ahora lo manchan publicándolo en esta revista.

En fin, esta revista se encarga de las críticas del juego a nivel superficial, nunca aparecen cosas del motor, ni nada del desarrollo.

Hasta pronto.

56) Mensajería Instantánea; porque Messenger no lo es todo

Posted by Leek | Posted on 3:54 p. m.

Como dice el título, el messenger no es lo único que existe para disfrutar de la mensajería instantánea. En realidad existen más de 15 protocolos de mesajería instantánea, así que Windows Live Messenger no es nada original. Aquí les presentaré algunos de ellos:

Jabber: Es usada por más de 600 millones de usuarios, y esta basada en el lenguaje XML. Es el proyecto de software libre más aceptado para sustituir a Windows Live Messenger, y está creciendo cada día más debido a que Google Talk usa este protocolo.

AIM: America-On-Line Instant Messenger es el protocolo más usado, aun más que Windows Live Messenger, aunque no es tan popular el paises bajos en los que los monopolios dominan.

Gadu-Gadu: Fue creado en polonia y también tiene su propio cliente al igual que Messenger, sin embargo, clientes como Pidgin, Kopete y otros, soportan este protocólo.

Skype: Este protocolo, tambien tiene su propio cliente, aunque tambien es soportado por Pidgin. Es más bien para realizar llamadas de audio y video, y fue creado en 2003.

Bonjour: Fue creado por Apple, aunque no existe mucha informacion de su uso en internet. No veo la necesidad de haberlo creado existiendo otros protocolos.

Zephyr: Fue creado en la década de los ochenta en el Instituto Tecnológico de Massachusetts (MIT, por sus siglas en ingles). Se considera el primer protocolo de mensajería instantánea, aunque ya no es muy utilizado, solo se usa para fines académicos y empresariales, como el MIT y el CERN.

ICQ: Fue creado durante la década de los noventa, y fue el más popular cliente y protocolo de mensajería instantánea en su tiempo. Es lo mismo que Windows Live Messenger, por eso les digo que Windows Live Messenger no es muy original que digamos. La empresa fue adquirida en 1998 por AOL. Windows Live Messenger fue creado en 1999, por lo que se podría considerar a Microsoft un copión. Actualmente existe una aplicación para ponerse en el Facebook.

IRC: Fue creado en Agosto de 1988, y actualmente sigue siendo muy popular. Muchos desarrolladores lo utilizan como si fueran un foro de discusión, y es mejor, pues es instantáneo y no hay que esperar un día entero a que alguien responda como en un foro común. Se basa en canales y servidores. Por ejemplo, el servidor FreeNode es irc://irc.freenode.org/, y despues te conectas a un canal, por ejemplo al canal de Sourceforge.net, que sería irc://irc.freenode.org/#sourceforge. A diferencia de varios protocolos de mensajería instantánea, para conectarse al IRC no es necesario crearse un perfil, solo coge un nick y conectate. Puede que en el servidor al que te conectes exista alguna persona con su mismo nick, asi que tienes que cambiarlo. Si eres de las personas a las que les gusta conectarse a diario, puedes registrar tu nick para que nadie lo use aunque estés desconectado, pero eso ya es a modo de cada servidor. Este protocolo tiene muchos clientes; en lo personal he usado ChatZilla (que solo es un plug-in para Firefox), y otros que si tienen que instalarse en la PC, como Pidgin, o X-Chat. Este protocólo también es muy usado para hablar, hacer amigos, y reunir gente con los mismo gustos; también se pueden enviar archivos de cualquier tipo.

Ahora que ya lo saben, quiero decirles que no entiendo que porque cuando la gente dice "estoy chateando" luego luego piensan en Windows Messenger, si no es nada comparado con otros protocolos de mesajería instantánea. Hasta pronto.

55) ¿Quieren más comodidad para MinGW?

Posted by Leek | Posted in , , , , , | Posted on 12:20 p. m.

Bueno, si su respuesta fue "sí" a la pregunta que dá título a esta entrada, entonces tomen nota de los pasos que les voy a dar; esto aplica específicamente para Windows 7 y Windows Vista (el software libre invade hasta sistemas privativos, genial). Ya les había mencionado como instalar el MinGW, y hay un paso que es copiar el archivo "g++.exe" a la carpeta donde tuvieran el código fuente del programa que esten desarrollando; bien, pues existe una manera para evitar copiar el archivo y configurar el g++ como si fuera un comando de Windows.

Para configurar eso, van al menu de inicio y dan clic derecho sobre "Computer", y despues dan clic en "Propiedades", una vez que se abra una ventana de propiedades del sistema, dan clic en el menú izquierdo en una opcion que se llama "Advanced System Settings"; les va a salir (como siempre en Windows) otra ventana con varias pestañas. En la pestaña de "Advanced" dan clic en el último botón que dice "Environment Variables" y aparecerá otra ventana que tiene dos menús, y en el menú de abajo ("System Variables") buscan una variable que se llama "Path", despues dan clic en "Edit" y la editan, se van al inicio y teclean la direccion del MinGW seguido de un punto y coma que sería así:

C:/MinGW/bin;

Despues de eso pueden borrar el archivo "g++" de la carpeta de su programa pero no borren el que esta en la carpeta bin de MinGW, y ya pueden invocar al compilador sin necesidad de copiar el archivo "g++.exe".

Quien necesite ver los pasos realizados, realize un video que lo explica un poco mejor:


54) ¿Todo mundo puede programar?

Posted by Leek | Posted in , | Posted on 2:15 p. m.

Un dia un amigo me dijo esto, y me pareció demasiado clara la ignorancia que habitaba en su mente en cuanto a este tópico, le pregunte si el sabía programar a lo que respondió afirmativamente, y le creo, efectivamente todo mundo puede programar desde cierto aspecto; cualquier persona puede bajar algun compilador o interprete para programación, y hasta existen más de mil lenguajes de programación, algunos que son los más usados y otros que solo son utilizados por personas específicas, como las empresas o personas que crean sus lenguajes por puro pasatiempo, es más que sencillo bajar cualquier compilador, pero eso no sería sencillo si el software libre no existiera.

La programación era considerada más que una ciencia, era considerada como una filosofía, algo así como cuando Aristóteles formula su teoría de la metafísica, pero con el tiempo la informática tomó mas sencillez, y sobre todo tomó su auge cuando surgió el software libre. Algunas personas dirán, ¿que tiene que ver eso?, a lo que yo les respondo: mucho. Al surgir el software libre, todo mundo podía ver como funcionaban las cosas por dentro, destripando cualquier programa que tuvieran a la mano y que fuera libre, pero po supuesto, nadie podía ni puede entender los miles de kilómetros de lineas de código que conforma un programa; no señor, se requiere de tiempo de estudio, un poco más o un poco menos, dependiendo de la complejidad del programa o el código; digo esto porque se puede hacer un mismo programa con diferentes códigos; es decir, a la vista del usuario, puede parecerle que un programa es idéntico, si no, es un clon de otro programa similar, pero si alguien con conocimientos de programación se pusiera a leer y analizar los códigos fuente de los dos programas, nos daríamos cuenta de que no es el mismo programa; podemos hacer un programa que realize una ecuación cuadrática mediante la fórmula general, pero eso si, existen más de ocho códigos que harían lo mismo, tomarían las variables que el usuario ingrese, y haría los cálculos, pero no se hace lo mismo realmente, a pesar de que el usuario lo piense así. Regresando a lo de la relación de este tópico con el software libre, gracias al software y con la ayuda de alguien con conocimientos de programación podemos aprender como se hacen las cosas y que es lo que hacen los programas.

En la página oficial para buscar ayuda del hackeo de Firefox, no s damos cuenta de que el código fuente de ese navegador tiene más utilidades que un multifincional y que una hoja de papel, o lo que sea; para que se den cuenta, el motor de navegación de Firefox (Gecko), es utilizado por más de cinco navegadores web sin contar Firefox, dos clientes de correo electrónico, dos suites de internet, un editor de páginas web, un reproductor de audio y video y una aplicación de agenda y esas cosas de gente muy ocupada;el código del motor es realmente una ganga, y además es libre, ¿que más se puede querer?. Bueno, a lo que quiero llegar es que, si bien cualquiera puede bajar el código fuente, no cualquiera puede modificarlo; una sola persona, necesita por lo menos un mes y medio para poder corregir un mini, pero realmente mini-bug; no cualquiera puede programar algo así; se necesitan horas y horas y horas y horas de estudio, lectura y análisis del código fuente.

Ahora, veamos la definición de la Wikipedia:

"Un programador es aquel que escribe, depura y mantiene el código fuente de un programa informático, es decir, el conjunto de instrucciones que ejecuta el hardware de una computadora para realizar una tarea determinada. La programación es una de las principales área dentro de la informática. En la mayoría de los países, programador es también una categoría profesional reconocida."

Ahora analizemos la definición. Todo nos queda claro hasta el primer punto, ya que asumo que todos los que lean esto saben lo que es un programa informático. La segunda frase nos dice la importancia de la programación dentro de la informática, ya que si la programación no existiera, ¿como funcionarían las cosas? La tercera frase... ajam... bueno, pienso que esto no ha llegado a ser endentido del todo, o tal vez no es que no sea entendido, más bien pienso que esto depende del grado de desarrollo científico y tecnológico que tenga algún país; por ejemplo en mi país (México), el desarrollo tecnológico aún es muy, muy, pero muy escaso, y no se conoce como se debería, la importancia tecnológica dentro del desarrollo económico y social de un país. Para dar un ejemplo de lo mencionado, recurro a lo que mi ex-profesor de Investigación de Campo de mi escuela hizo alusión; mi ex-profesor menciono que estaba realizando un proyecto de investigación en conjunto con investigadores del extranjero, los cuales pertenecen a una organización; en dicha organización, se dijo que México es el único país que no invierte lo que se debería en desarrollo científico y tecnológico; ahora, viendo la situación de mi nación, ¿como espero que a la profesión de un programador se le dé la importancia que tiene? Es deprimente.

Ahora, recurro de nuevo a la Wikipedia:

"Inicialmente, la profesión se formalizó desde el enfoque Tayloriano de la especialización de funciones en la empresa. Así, el proceso de producción de software se concibe como un conjunto de tareas altamente especializadas donde está claramente definido el papel de cada categoría profesional. [...] Hoy día se reconoce que este enfoque no es válido para organizar tareas de tipo intelectual, como es la producción de software. [...] Las dificultades de comunicación entre analistas y programadores(un mero documento no basta para describir lo que se quiere hacer) dio origen a una categoría profesional intermedia, denomidada analista-programador. La concepción original del programador ha desaparecido siendo sustituida por la de un profesional mucho más formado y con unas funciones menos "mecánicas". Como conclusión de lo anterior, cabe inferir que, hoy por hoy, un programador requiere profundos conocimientos que incluyen matemáticas computacionales, electrónica, algorítmia, ingeniería de software, teoría de la computación, interacción persona-ordenador, etc. Por tanto, se trata de una profesión de alta calificación. No obstante, la mayoría de las empresas del siglo XXI aún siguen el enfoque Tayloriano en su gestión, de manera que siguen considerando la profesión de programador como un trabajo de baja calificación. A este hecho se añade el instruismo profesional, ya que, bajo este enfoque Tayloriano, el simple conocimiento de un lenguaje de programación habilita para el ejercicio de la programación. Esto atraes fácilmente a profesionales de otros mercados laborales menos favorecidos. Ambos factores contribuyen a que la profesión cuente con bajos salarios, inestabilidad leboral y un alto estrés. Por ejemplo, en Estados Unidos se calcula que aproximadamente la mitad de los programadores abandonan la profesión."

Ahora el análisis. Todo queda claro hasta el primer punto, pero en la segunda frase se reconoce que no es así, ¿porqué? Bien, pues porque no es necesario ponerse a realizar una serie de pasos como es el caso de firmar un contrato, y cosas por el estilo que se enseñan en la escuela que la mayoría de las veces solo hacen perder el tiempo; y creo que todos entendemos lo que también se dice en la segunda frase sobre que la programación es una profesión de intelecto. Despúes se menciona a los analistas; los analistas en los tiempos en los que la programación apenas andaba en pañales, eran personas que se encargaban de ver a qué problema se enfrentaban los sistemas informáticos y como solucionarlos, y los programadores eran los que realizaban las instrucciones de los analistas para resolver el problema (que tedioso y que perdida de tiempo, ¿no? Por eso surgieron los programadores analistas). Hoy en día, la mayoría del software libre que es encontrado en sitios como Sourceforge.net es desarrollado por programadores analistas. La siguiente frase es bien entendida por personas que no son tercas e ignorantes, y que los programadores tienen bastos conocimientos de diversas áreas científicas y tecnológicas, tanto así que la mayoría de los hackers se hacen llamar programadores para evitar que las personas ignorantes los califiquen de delincuentes al oir la palabra hacker. Las últimas frases hacen referencia de nuevo a la ignorancia de la sociedad, ya que ésta califica a los programadores como profesionales de bajo intelecto, y piensan que con el simple hecho de saber un lenguaje de programación se puede ser programador, y ya ven lo que se provoca, los programadores son sometidos a altos grados de estrés ya que las personas no saben los bastos conocimientos que hace falta tener.

Ahora recurriré a un blog con un lenguaje mas coloquial, pero que es fácilmente entendible para los ignorantes:

"Programar no es como hacer chorizos ni poner ladrillos, programar es un trabajo puramente intelectual, quizás la tarea más intensiva intelectualmente que conozco. A mas horas, no hay más producción, a veces un programador puede ser más productivo en una mañana que en dos semanas y lo más fascinante, esto no es un problema a resolver, sino algo inherente a la tarea de programar y hay que aceptarlo. Si no te gusta te puedes dedicar al cultivo del champiñon o cualquier otro negocio donde el resultado sea más predecible. [...] Un programador trabaando solo o con un pequeño equipo en una start-up le toca quedarse hasta las tantas de la madrugada muchos días porque cuando estás a la mitad de solucionar un problema no funciona lo de son las 19:00, hora de irme, mañana más. Cuando estás a la mitad de concentración, motivado para acabarlo, dejarlo para mañana puede significar realmente mañana, un par de semanas o un mes. ¿Un progrmador ineficiente? No, es simplemente así, volver a concentrarse en esa tarea y acordarse de cada detalle conlleva una pre-tarea de varias horas y si hay otras tarea más importantes que se cruzan, se postergará. Tratar a un programador como un currito que hace sus horas y se va, es ignorar como funcionan las tareas intelectuales, la motivación humana, etc. Proponer a alguien programar un proyecto web viable solo a cambio de un salario o presupuesto cerrado casi roza el insulto. Emprender conlleva un esfuerzo extra buscando un premio, por definición es incompatible pagar un salario fijo y pedir un esfuerzo extra."

Creo que esta cita textual no necesita de ningún análisis, pues pienso que cualquier ignorante lo entiende.

Ahora, pasando a la ignorancia, existe cada persona que solo Dios sabe para que nacieron; un día estaba conversando con un amigo que se cree hacker, y menciono que podía cambiar sus calificaciones; yo asombrado por eso y con mi típica curiosidad tecnológica le pregunte como le fue posible hacer eso, y el muy [...] me dijo que podía hacerlo cambiando el código HTML de la página, dándo clic en Ver -> Código Fuente; seguramente algunos de ustedes que sean ignorantes ya se fueron a ver el código fuente de la página de su escula para ver si es cierto, pero les tengo malas noticias, eso solo es el código fuente y lo que modifiquen solo se guardará en la memoria caché, pero como supongo que algunos de ustedes no entenderan eso, pues mejor lo dejo así. En fin, seguí conversando con mi amigo de otros temas tras decirle que no se podía por la razón que les acabo de mencionar, pero el seguía y seguía diciendo que si se podía mientras yo trataba de cambiar de tema, ¿porqué? porque no hay que perder el tiempo con personas que ademas de ser ignorantes, son testarudas, se les perdonan que sean ignorantes o testarudas, pero no se puede perdonar la combinación de las dos.

En fin, al principio de esta entrada mencioné a un amigo que me dijo que cualquiera podía programar, pero espero que con esta entrada comprenda que eso no es cierto; ser programador es tener amor por la profesión; a pesar del estrés que se les ponga a los programador, les gusta su trabajo, y eso perdona los insultos y lo demás que se sufre.

Ya mencionado esto, quiero decirles que el amigo que mencione, trabaja como constructor, no pienso arquitecto, no, constructor, un trabajo que requiere mucho trabajo y esfuerxo físico, pero no realmente esfuerzo intelectual; no insulto con esto a todos los constructores, no, cualquier trabajo es de honra a pesar del estrés y el esfuerzo que se requiera; eso si, para que sea un trabajo horando a pesar del esfuerzo, se tiene que tener amor por la profesión, y no amor por que "hay que chido, ya me pagaron, me voy a comprar unos jueguitos", no; yo hablo del verdadero amor por la profesión, y si el quiere trabajar como constructor esta bien, pero no es así, dudo que le guste su trabajo, siempre habla de él como un trabajo en el que le entra la pesadez y la apatía de tan solo pensar en él, y quiero decirte a ti, mi amigo, que no le quites la horandez a tu trabajo con tu pezadez y tus ansias de tu dinero para irlo a gastar en juegos. Todos los demás hagan caso omiso de eso si les gusta su trabajo, si no es así, también aplica a ustedes.

En fin, respondiendo a la pregunta que dá título a esta entrada, ¿todo mundo puede programar? Bien, cualquiera puede bajar un compilador y escribir el típico Hola Mundo, si; pero no cualquiera puede decir que está generando un proyecto distribuido bajo licencia de software libre, y no cualquier puede decir lo siguiente con lo cual voy a cerrar esta entrada:

¡Soy programador y amo programar!

53) Trabajo sobre HTML

Posted by Leek | Posted in , , , | Posted on 12:21 p. m.

Tal vez algunos de ustedes dirán, que tontería, ¿para que poner un curso en HTML?, pero no se apuren, yo también pensé lo mismo, pero el trabajo no nada mas lo hize porque si, es algo muy tonto, fue un trabajo que me dejó mi profesor de computación en la escuela, y no se, el trabajo me gustó, y entregarlo al profesor solamente se me hace un desperdicio, así que pensé que estaría mejor que estuviera disponible para toda la comunidad, siguiendo la filosofía de la libertad en la informática.

El trabajo no tiene licencia ni nada de eso, pensé en distribuirlo bajo la Licencia de Documentación Libre de GNU (GDFL por sus siglas en inglés), pero no es un trabajo de tanto prestigio como para ponerle una licencia, y menos la licencia de GNU.

En fin, el trabajo está alojado en La Web del Programador, justamente aquí. Hasta pronto.

52) Rumor sobre licencia GPLv.4

Posted by Leek | Posted in , , , , | Posted on 11:09 a. m.

Hola a todos, últimamente he estado investigando la proxima versión de la licencia de software libre, la GPLv.4, y me he enterado de algo extraño.

Bueno, no se si sea extraño, pero en fin. Se rumora en la red que probablemente la licencia GPLv.4 tendrá las peticiones de que para desarrollar programas que se liberen o distribuyan bajo licencia GPL se tendrá que usar el editor de textos GNU Emacs; esto con el propósito de dar fin a la guerra de los editores que se da entre este editor y el editor Vim, que son los editores más utilizados entre los programadores.

No se ustedes pero esto sería un avance en el desarrollo de GNU Emacs, ya que los usuarios y programadores que lo usen o que se estén cambiando de Vim a Emacs desarrollarían nuevas propiedades del editor o bien, exigirían más facilidad de uso. Si que sería un gran avance en el desarrollo del editor.

Pero por otro lado, esto traería conflictos entre los usuarios; es solo cuestión de ponerse a pensar. Imagínense un conflicto entre los usuarios de los dos editores:

Usuarios de Emacs: Jajaja, nuestro editor de textos será el más usado, su estúpido editor bajará en niveles de descargas; jajaja.

Usuarios de Vim: No nos importa bola de %&)$#, nuestro editor segirá siendo el mejor a pesar de todas las adversidades.

Sería un gran conflicto, además la mayoría de las aplicaciones de software libre que no son parte de GNU, son desarrolladas con otro edotor de textos distinto de Emacs. Es muy raro encontrar programas que usen el estilo de indentación de GNU en su código fuente que no sean programas de GNU.

Pero en fin, por mi no habría problemas, uso este editor de textos lo más que puedo, ya me acostumbré a usarlo en mis códigos fuente.

¿Y para ti?¿Sería un problema cambiar a Emacs?

No te preocúpes, hacer el cambio de tu editor de textos a Emacs es más facil que cambiar de Windows a GNU/Linux, y eso que cambiar de Windows a GNU/Windows es demasiado, demasiado pero demasiado facil, en especial si cambias a Ubuntu.

En fin, hasta pronto.

Actualización: Por cierto, si esto llega a pasar, para instalar Emacs en Linux solo abre la linea de comandos y escribe:

apt-get install emacs

Si estas en Ubuntu solo escribe "sudo" antes del comando de arriba.

Para instalarlo en Windows se siguen un proceso más largo, pero no se preocupen, una de mis entradas esta dedicada a la instalacion de Emacs en Windows, es la entrada número 49. Ahora si, hasta pronto.

51) Video tutoriales de C++ (2)

Posted by Leek | Posted in , , | Posted on 1:09 p. m.

Hola a todos, en la entrada anterior les había dado los enlaces a unos video tutoriales de C++ que subí a YouTube, pero solo son los primeros tres, ahora les traigo los siguientes tres videos:

Video 4 (Control de flujo #1): http://www.youtube.com/watch?v=SMS6aPVHqvc&feature=channel
Video 5 (Control de flujo #2): http://www.youtube.com/watch?v=3CVitcyy9wA&feature=channel
Video 6 (Funciones): http://www.youtube.com/watch?v=6QkHzpeqkA8&feature=channel

Espero que les agraden y/o que les sean útiles; hasta pronto.

50) Video tutoriales de C++ (1)

Posted by Leek | Posted in , , | Posted on 6:04 p. m.

Hola a todos, hoy acabo de hacer una serie de tres tutoriales de C++, son basicos, para principiantes, si es que no saben C++, ni mucho menos han programado en su vida, estos videos son para ustedes:

Video 1 (Instalacion de Compilador):
http://www.youtube.com/watch?v=LbUCqbD6W1M&feature=channel
Video 2: (Primer programa):
http://www.youtube.com/watch?v=vijfkqwHmx0&feature=channel
Video 3: (Operadores):
http://www.youtube.com/watch?v=hu1wPh4XU9c&feature=channel

Espero que les gusten los video, y/o que les sean útiles; hasta pronto.

49) GNU/Emacs en Windows

Posted by Leek | Posted in , , , , , | Posted on 3:54 p. m.

Bueno, ya les habia hablado del Emacs, y por mi lo considero el mejor editor de textos para programadores y para no-programadores; pero, seguramente algunos de ustedes usan Windows y les gustaria tenerlo instalado, ya que no viene con programa de instalacion, pero no es asi; bueno, no del todo.

Para empezar nos descargamos el Emacs para Windows, podemos elegir la version que queramos, para descargarla solo ve hacia aqui, pero de preferencia bajense la carpeta comprimida en .zip

Después de haberla guardado, la descomprimimos y la colocamos donde queramos, aunque yo preferiria guardarla en C://Archivos de programa/.

Despues de haberla guardado abrimos la carpeta bin, y ejecutamos addpm.exe, lo cual hara que Emacs se establezca en el registro de Windows, y lo tendremos como un programa instalado, por lo que podemos hacer que Emacs sea nuestra aplicacion predeterminada para archivos C/C++ o para archivos de algun otro lenguage de programacion; eso lo podemos hacer de la siguiente manera:

Das clic izquierdo en tu archivo de C/C++, y seleccionas la opcion de "Abrir con..." y despues seleccionas la opcion de "Seleccionar programa predeterminado", y despues te saldra una ventana(tipico de Windows), en la que aparece un boton de "Examinar...", bueno, pues das clic hay y te vas a la carpeta 'bin' de tu carpeta de Emacs y seleccionas el archivo "runemacs.exe"; si das clic en "emacs.exe" normal no podras elegir emacs como programa predeterminado.

Y listo, ya tienes Emacs instalado y configurado como tu aplicacion predeterminada para archivos de C/C++.

Bueno, espero que usen Emacs para editar sus archivos de C++, algun dia les dare un tutorial de Emacs, pero sera despues, ahora me tengo que ir; hasta pronto...

48) SpeedyMarks, tu página de inicio personalizada

Posted by Leek | Posted in , , , | Posted on 4:30 p. m.


SpeedyMarks es una página de inicio bastante facil de utilizar, tiene servicio de búsqueda Google, y también permite cambiar el color de fondo, por lo que si el fondo negro no te gusta, puedes cambiarlo simplemente haciendo clic en 'Settings' y depues seleccionando el color de preferencia.

Si deseas tener a tu disposicion tus páginas favoritas, o las páginas a las que accedes muy seguido o diaramente, simplemete haz clic en 'Add' y llena el formato de informacion de la página, para quitar un enlace a cualquiera de las páginas que tengas agregadas, simplemente pasa el cursor encima y te aparecera una tache para cerrar, lo que hará que se quite el enlace.

Para utilizar SpeedyMarks no hace falta darse de alta o algo por el éstilo; para que se guarden tus preferencias es necesario que configures tu navegador para que no borre las cookies, o si las borra que solo borre las de los demas sitios, ya que la configuracion de SpeedyMarks se guarda en una cookie.

Pero si no quieres hacer esto, y dispones de una cuenta Google, ya la hisiste, ya que puedes acceder a tus configuraciones por medio de una cuenta Google, y puedes borrar el hsitorial completo de tu navegador, o si andas de un lugar para otro, puedes acceder a tu pagina de inicio desde cualquier computadora.

Para acceder a SpeedyMarks, solo ve a http://www.speedymarks.com/, y ya esta, ten tu propia pagina de inicio... hasta pronto.

47) Mozilla Thunderbird, el cliente de correo electrónico de Mozilla

Posted by Leek | Posted in , , , | Posted on 1:20 p. m.


Así es amigos, este programa no es nada nuevo, si ustedes apoyan el software libre y prefieren usar clientes de correo electrónico para checar sus correos, entonces seguramente usaran Mozilla Thunderbird. La última versión es la 3.0.1, lanzado el 20 de de enero del presente año(2010), un dia antes de que fuera lanzado el Mozilla Firefox 3.6.

El programa es matenido por la Mozilla Software Foundation y el equipo de Mozilla, Mozilla Messaging, que también fue formado por la fundación Mozilla.

Al igual que Mozilla Firefox, Thunderbird es software libre, solo que no es liberado bajo licencia GPL, sino mas bien por medio de la licencia MPL, que son las siglas de Mozilla Public Licence; esta licencia es similar a la GPL, solo que es menos estricta, ademas con la licencia MPL se puede usar el codigo fuente de una aplicacion libre en una aplicacion privativa, lo cual es una desgracia.

Mozilla Thunderbird esta disponible para GNU/Linux, MacOS, y para Windows; pueden descargarlo para cualquiera que sea su sistema operativo desde: http://www.mozillamessaging.com/.

Aqui les dejo un video del programa:

46) Cubo de LED's

Posted by Leek | Posted in | Posted on 5:04 p. m.

Andando por la red(especificamente en YouTube), me encontre este peculiar proyecto de electrónica. Es(obviamente), un cubo hecho de cientos de LED's; aparentemente, investigando en la red, me encontre con que este circuito fue programado con C++, usando Triac's programables y, supongo yo, cientos de capacitores. Bueno, aqui les dejo el video:



45) Editor de textos Emacs, y sus variaciones

Posted by Leek | Posted in , , , | Posted on 4:25 p. m.


Este magnifico editor de textos es la competencia directa de Vi/Vim, ya que estos dos comenzaron la guerra de los editores de texto. Emacs fue creado por Richard Stallman, y fue en un tiempo, el enfoque principal del proyecto GNU, el proyecto de software libre mas grande que exista. Fue liberado por primera vez durante la década de los 70's, y era conocido como TECO(Text Editor and COrrector); pero el nombre cambió despues de que Richard Stallman y Guy Steele se reunieron en una noche de hacking; y el resultado de las modificaciones a TECO, fue EMACS(Editing MACroS).

Años despues de las publicaciones de algunas versiones de Emacs, surgieron algunas modificaciones desarrolladas por otros programadores; tal es el caso de XEmacs, otro editor de textos identico al Emacs original. XEmacs esta basado en una version beta de los años 80 de Emacs; como Jamie Zawinski y un equipo de desarrolladores no pudieron mandar sus modificaciones y mejoras de la beta de Emacs 19, decidieron seguir con el desarrollo del codigo, y despues lo publicaron con el nombre de XEmacs.

Otras variaciones son:

MicroEmacs; desarrollado en un principio por Dave Conroy, y posteriormente por Daniel Lawrence, Linus Torvalds emplea este editor; yo tambien :).

MG; MicroGNUEmacs, actualmente viene instalado prederminadamente en el sistema operativo OpenBSD.

JOVE; Jonathan's Own Version of Emacs, creado por Jonathan Payne, especificado para sistemas UNIX-like, y no-programable.

Freemacs; creado para sistemas DOS, creo que actualmente el desarrollo ha sido abandonado.

Meadow; una version japonesa(que chafa) creada especificamente para correr en Microsoft Windows(mas chafa aún).

Es una lastima que no acepten todos los cambios que los solidarios hackers les mandan a los desarrolladores de Emacs; ya que no se aceptan cambios de fallos o contribuciones de codigo demasiado pequeñas; aunque la definicion de "contribuciones pequeñas" es ridicula; se especifica como mas o menos 11 lineas de codigo fuente.

Emacs ha sido criticado por tener caracteristicas "inútiles", tal como tener a la disposicion un tetris(que importa, un amigo es un master para el tetris), o tambien por causar molestias en las manos de los usuarios asíduos de Emacs, ya que se usa repetidamente la tecla Ctrl; pero esto no tiene porque asustarnos.

En lo personal, Emacs me ha dado mejores espectativas que Vim; pero apoyo la libertad, por lo que cada quien es libre de elegir el editor de textos que le convenga o que le agrade mas.

44) Jugando Nexuiz un rato

Posted by Leek | Posted in , , , , | Posted on 2:52 p. m.

Es mas que obvio que soy un fan de las aplicaciones libres, pero si se trata de juegos, ya sean privativos o libres, yo votaria por jugar Nexuiz, espero que pienses lo mismo del FPS. Bueno, decidí ponerme a grabar uno de mis juegos del Nexuiz y subirlo a internet; asi que el siguiente video muestra como juego Nexuiz en el nivel 11(Strength) de la versión 2.5.1:



43) Usando Vim como un IDE

Posted by Leek | Posted in , , | Posted on 9:49 a. m.


Vim fue creado justamente para eso, por eso es llamado un editor de textos de programadores para programadores, porque contiene muchas propiedades que hacen los IDE's comunes; como llamar a un compilador externo, indentación, coloreado de sintaxis, comparación de archivos de texto, y muchas otras propiedades mas; pero, una vez que descargamos e instalamos Vim, ¿sabemos como llamar a las propiedades básicas?. En ocasiones si, pero en otras ocasiones, no.

Para ejecutar los comandos, hay que presionar [ESC]+[Shift]+[:]+el comando.
Para guardar se presiona :w
Para guardar y cerrar es :x
Y aqui va mi favorito,
Para ejecutar un comando externo es :!nombre_del_comando
Y ejecutando una comando externo se puede llamar a un compilador, como lo es G++, mi compilador favorito en cuanto a C++ se refiere.

Sabiendo esos tres comandos, puedes manejar tu Vim como un IDE, pero ademas de todo, si quieres ver dos archivos sin abrir otra ventana de Vim, todo lo que tienes que hacer en gVim(implementación gráfica de Vim), es hacer clic en el menú "Ventana" y elegir la opción "Dividir Verticalmente".

Saber todas las propiedades de Vim requiere querer entender Vim y para entender Vim, hay que usarlo, recuerden que a veces, el conocimiento empírico es mejor que el conocimiento que se da en una escuela.

Recuerda que Vim es multiplataforma, por lo que si lo quieres en Windows, puedes descargar la versión actual desde la página oficial: http://www.vim.org/.