Los que me conocen me escucharán hablar mal de Microsoft en varios aspectos y por publicar este artículo no significa que pierda mi postura de los mismos.
Simplemente me pareció un aporte importante para aquella comunidad que utiliza los productos de Microsoft, pero que quieren dejar de estar fuera de la ley y empezar utilizar herramientas gratuitas.
Microsoft DreamSpark es una propuesta de Microsoft, especialmente dedicada a estudiantes de nivel superior, que ofrece sus herramientas de desarrolllo y diseño a nivel profesional y sin costo alguno.
Se sabe que Ubuntu es popular, muy popular. Se sabe de todo el fanatismo que hay detrás de la distro y de las masas que mueve, se sabe también del merchandising que dispone, pero… un manga ¿no será demasiado?
Ubunchu, el manga de Ubuntu es producto de la iniciativa de dos miembros del Ubuntu Japanese Team y Doctormo. Siendo este último un blog que según palabras del propio autor la popularidad de su blog se vio incrementada de manera notable luego de la publicación del manga, recibiendo enlace de numerosos sitios de manga y algunos blogs de Linux.
En los sistemas GNU/Linux tenemos procesos para monitorear los procesos (valga la redundancia), como top o htop.
Unas operaciones aveces no tenidas en cuenta, pero que puede resultar quien más ralentiza un sistema, son las operaciones de Entrada/Salida. Para monitorear las operaciones E/S en Linux podemos utilizar iotop, una especie de top pero dedicado a monitorear las operaciones IO (Input/Output).
En alguna ocasión, puede resultar útil trappear señales en los shell scripts. Un ejemplo clásico de señal a trapear es el famoso Ctrl+C (^C).
Trappear una señal es fácil, simplemente debemos definir una acción (o función) que se ejecutará al momento de recibir la señal, y luego definir las señales a trappear con el comando trap.
Se dice que el viejazo, fenómeno ocurrido en personas del sexo masculino, también llamado segunda adolescencia se produce a las cuatro décadas. UNIX es pronto a cumplir esa edad, aproximadamente por el mes de agosto, sin embargo no creo que se trate de una segunda adolescencia, pues Unix nunca envejeció, al contrario, cada día está más joven.
La historia cuenta que allá por 1969, días después de la llegada del hombre a la luna (si es alguien cree en ese discutible suceso) un programador llamdo Ken Thomson de Bell Laboratories (subsidiaria de AT&T) aprovechando la susencia de su mujer e hijo por vacaciones (que casualidad ¿no?) escribió la primera versión de Unix en un lenguaje ensamblador.
En marzo del mismo año, los mismos laboratorios habían renunciado a seguir con un ambicioso proyecto de sistema de tiempo compartido llamado Multics (Multiplexed Information and Computer Service), del que Thomson aplicó algunos principios y como broma al proyecto anterior denominó Unics (reemplazando la primer paralabra por Thomson Uniplexed) a su proyecto.
Como AT&T Bell vió que el proyecto tenía futuro decidió apostar al proyecto e incorporar a varios programadores de los cuales se destaca Brian Kernighan. Por motivos desconocidos UNICS pasa llamarse UNIX y va tomando forma adquiriendo nuvas funcionalidades y aplicaciones como cat, chmod, chown, cp, ls, mv, who, wc, etc. Si bien el desarrollo era rápido, el principal cuello de botella estaba en Ensamblador, es así que aparece Dennis Ritchie quien con colaboración de Kernighan escribe un lenguaje de más alto nivel, añadiendo nuevas funcionalidades y más abstracción que lo que ofrecía el lenguaje B. El éxito fue rotundo y para 1973 todo UNIX ya estaba re-escrito en C.
Si has instalado Linux y decides formatear la partición del mismo y volver a utilizar Windows, aparte de que no sabes lo que te pierdes, te encontrarás con el problema de que formatear o eliminar una partición no implica eliminar también el gestor de booteo, que puede ser por ejemplo: grub.
Recuerdo hace más de 10 años cuando instalé una de las primeras versiones de Red Hat y siendo por entonces más inocente e ignorante, que ahora, quise volver a mi Windows 98. Luego de formatear la partición de Linux, LILO seguía allí (para los desprevenidos LILO es otro gestor de booteo). Gracias a dicha experiencia conocí el significado del Master Boot Record (esos primeros 512 bytes del disco que se utilizan como sector de arranque).
Hace un tiempo habíamos instalado en Ubuntu la última versión estable de MySQL, MySQL 5.1. La instalación había sido manual (no utilizamos ningún tipo de gestor de paquetes, solo descargamos los binarios en un tar.gz) y seguimos los pasos de instalación para cualquier sistema operativo UNIX compatible.
Hoy haremos el camino inverso, es decir, desinstalaremos la base de datos y como suele ocurrir, desarmar es mucho más fácil que armar, y como verán aquí, la desinstalación no escapa de la regla.
Por más entorno de debug que exista, los archivos de log son fundamentales para tracear el comportamiento de cualquier aplicación. Una aplicación web escrita en PHP no se escapa de este requerimiento tampoco.
Por tal motivo, navegando, encontré una sencilla clase para generar archivos de log. Y como siempre se necesita tener a mano código como tal, no viene mal su publicación.
Más de una vez tuve la necesidad de en una consulta enumerar las filas de la misma, por medio de una columna calculada auto incremental ¿se entiende cual era me requerimiento?
Explicándolo de nuevo, mi necesidad era de contar con una nueva columna que sea un número auto incremental y que represente el número de fila. Según el artículo original esto se puede hacer en Oracle a través de la variable rownum (no doy fe de ello pues no conozco).
Bien, en esta publicación disponemos de la solución.
No suele ser costumbre utilizar la instrucción declare en Bash, de echo, hasta algunos quizás no la conozcan. Lo cierto es que Bash, al no ser un lenguaje fuertemente tipado y no requerir la declaración explícita de variables, nos permite prescindir de su utilización.
No obstante esto, si declaramos las variables podemos lograr algunos beneficios para casos puntuales, hasta incluso evitar errores de ejecución.
A continuación veremos algunos ejemplos para saber de que estamos hablando con esto de declarar las variables en Bash.