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!