Mostrando entradas con la etiqueta ocio. Mostrar todas las entradas
Mostrando entradas con la etiqueta ocio. Mostrar todas las entradas

martes, 5 de septiembre de 2017

Al final no escribir en este blog.

Sé muy bien que hago un articulo anual, o cada dos, o que bien, ha pasado a mas, el caso es que desde principios de diciembre del 2016, empece a escribir manuales de las cosas que hacia en el trabajo, y por manuales me refiero a notas sin sentido sobre cualquier cosa, en especifico, sobre mis servidores y algunas cosas como mejoras en el código de x o de y proyecto. El problema es que el primero de agosto, tuve que tomar unas vacaciones forzadas gracias a un conductor con la inteligencia de una bacteria, y pasaron 29 días antes de que pudiera ver mi brazo y no una copia barata de la momia. Y de ahí, tratar de mover el brazo con decoro, que tampoco ha sido mucho avance.

En este ínter, hice dos pruebas, que no se han molestado en revisar las personas que lo pidieron, y tampoco es como que sea para tanto que no lo hagan, igual ya esta en mi repositorio personal y eso me basta y espero, me sobre. Pero entonces, decidí empezar a escribir, pero dado a que soy un desastre con los formatos, lo hice en markdown, por que me es mas fácil y por que soy un flojo para usar otra cosa que no sea vim. Y por que vim, se estarán preguntando, si hay otros editores mas chulos como atom o sublime text (No, sublime no existe y jamas existirá!). La culpa principal es de mi amigo Hector (chinos), que escribe código en vim y a un viejo amigo que usaba emacs, pero yo soy lo suficientemente marica para no usar emacs. Y ya esta.

Pero he estado hablando mucho y no les he dicho nada. Esta serie de manuales se me ha ocurrido la idea de hacerlos en markdown, y al no tener algo a la mano como redmine para vaciarlos y no tener que trascribirlos y darles el formato que merecen y no se darles aquí, decidí subirlos a mi repositorio de github.

No sé si sea mas frecuente que escriba ahí o aquí, y aquí esta visto que el próximo articulo vendrá en dos años, en uno si bien me va.

Pero por ahora los dejo.

Con amor Uetiko.

domingo, 22 de noviembre de 2015

PHP 7 o lo que es lo mismo: renuevate o jodete.

PHP 7 esta  la vuelta de la esquina y esta vez no ha sufrido el terrible destino que su versión pasada, si, nos referimos a php 6 que al igual que perl 6, vio su muerte debido a discusiones internas y falta de claridad con las cadenas Unicode, o eso es lo que salieron a decir en su momento. Y es que php 7 desde su anuncio vino acompañado de promesas muy llamativas en cuanto a rendimiento y mejoras en su sintaxis que si bien ya habíamos visto de la mano de Hip Hop y Hack de Facebook, el grupo de php (A.K.A. los amigos de php) por fin abrieron los ojos para darse cuenta de las necesidades reales que muchos programadores ya pedían a gritos.

Internet nació en los primeros años de los 70's conocida en esos entonces como ARPANET y para 1990 ve la luz world wide web. En esa época en la que la naciente web estaba aun en pañales y el contenido era mayoritaria mente estático los únicos rasgos de dinamismo llegaban un par de años mas tarde de la mano de los applets de java y de Netscape subiéndose al tren del mame con javascript, nombrado así por la popularidad de java y que dio paso a al estándar ECMAScript que salio dos años después, en enero de 1997.

PHP fue creado originalmente por Rasmus Lerdorf en el año de 1994, programador por aquellos días de perl, y que cansado de la forma en que dicho lenguaje trataba los datos, baso su trabajo en unos CGI's escritos en C y un año mas tarde anuncio Personal Home Pages Tools (PHP Tools). Años mas tarde, Andi Gutmans y Zeev Suraski del Instituto tecnológico de Israel reescribieron el analizador sintáctico y el de Personal Home Page Tools cambio de nombre al acrónimo recursivo PHP Hypertext Pre-processor. Así es como en Junio de 1998 salio a la luz PHP3, para que un año mas tarde, estos dos reescribieran el código para crear en actual interprete llamado Zend Engine y de paso, formar la compañía Zend Technologies en Israel.

PHP es un lenguaje de scripting débilmente tipeado que se ejecuta del lado del servidor y que se ha denominado como la herramienta mas rápida y sencilla para crear paginas web dinámicas, y no era para menos, si fue creado con este propósito. Para mediados del 2004, salio Zend Engine II con un montón de mejoras, como un soporte para el modelado de objetos que hasta ese momento era extremadamente rudimentario y que lenguajes como java y javascript ya tenían; de igual forma se incluyo soporte nativo para Mysql, XML, SOAP, un mejor manejo de excepciones y mejoras en el rendimiento que le hizo mucho bien, por que ya era mucho dolor de cabeza tener que abrir una pagina y darnos el tiempo de ver un capitulo completo de dragon ball y prepararnos un café antes de poder leer algo en la web (Bueno, no era así, pero casi). Y así es como php4 pasaba a su reluciente versión 5.

Pero la cosa no paro ahí, por que se planeo la version 6, con mejoras aun mayores con el sueño de llegar a tener lo que hasta el momento tenia perl y que también planeaba su salto de 5 a 6, pero que después de unos años mejor decidieron cancelar. Algunas de estas mejoras del borrador salieron en php 5.3 y 5.4. Entre ellas fueron los namespaces, Closures, goto (Por dios, alguien aun quiere usar eso, ni c lo quiere), Garbaje Collector algunas librerías y mi favorito, los Traits, que aun algunas personas nos lo quieren vender como multi-herencia y no como lo que es en realidad, un modulo de extensión. Ruby ha llevado mejor esta definición con sus módulos que es básicamente lo mismo y hay una extensa explicación de ellos en su pagina oficial.

A finales de la decada de los 2000's algunos se preguntaban como diablos Facebook lograba mantener su servicio en linea con la cantidad de llamadas que servian, y es que ni ls pruebas mas osadas sobre Zend Engine lograban tal nivel de eficacia en el rendimiento, fue así como los chicos de Facebook a principios de año del 2010, levantaron la mano diciendo que habian reescrito el stack de ejecución de php y que de paso, ahora compilaban PHP, si, ya se que a mas de uno nos dio risa y aseguramos que escribieron el blog en estado etílico o creían que era el día de los santos inocentes. Aun así, Haiping Zhao, Arquitecto de servidores de Facebook, nos dijo que le llevo dos años junto a un pequeño grupo de ingenieros optimizar php y aunque esperábamos que esto diera como resultado un nuevo interprete, la realidad es que esos dos años dieron salida a una maquina virtual la cual liberaron como código abierto. Esta belleza transformaba en sus inicios el código en php y lo pasaba a c++, con lo cual ahora nos hacia sentido que ellos mismos declararan que compilaban php.

Pero la cosa no paro ahí para los chicos de Facebook, ya que para enero del 2014 volvieron a levantar la mano con el anuncio de Hack, un lenguaje de programación basado en php al que ellos llamaron php de modo estricto y que corría bajo su maquina virtual. Este nuevo lenguaje trajo bastantes novedades como el uso de tipeado dinámico (ya conocido en php) como el tipeado estático, hacer que las funciones regresaran ahora un valor especificado dejando de lado los famosos mixin return, nuevas clases para colecciones muy al estilo de java, mejoras a los Closure, lambdas y clases genéricas, que si bien no es algo nuevo en el mercado ya que java y C# ya los tenían, si es algo que muchos programadores de scripting aun desconocen por completo.

Aun así eso parecía no impactar al Engine actual de php hasta que algunos osados vieron pasar de este interprete de php a hiphop o recomendarlo, como en el caso de laravel que te ofrece una maquina virtual ya lista para que la corras y disfrutes de programar en php, pero que corre bajo HHVM (Hip Hop) y no Zend Engine. Ese mismo año, Wikipedia anuncio pruebas para cambiar a HHVM y en febrero del 2015, en el blog de Hack lang se anunciaba que wikipedia había migrado por completo a HHVM y que era compatible con php 5.x teniendo una capa de compatibilidad con Zend, diciendonos además que si pensábamos migrar a HHVM, pero que si dependíamos de algunas extenciones nativas, podíamos usar la librería Lua para el manejo de estos errores.

Esto no tardo en hacer ruido dentro de php, que este mismo año anunciaron el desarrollo de PHP7 prometiendo que ahora si quitarían las librerías que por años solo permanecían depreciadas y que como cualquier tía con buen rollo nos decían que era malo usarlo, pero que nos los dejaba ahí por si teníamos la necesidad de usarlos si no teníamos de otra... como algún código legado o nos daba mucha pereza aprender cosas nuevas. También nos trae mucha azúcar sintáctica, un uso de array en constantes que bien puede ser la emulación de los enum de Hack. Como ya se los había dicho, y eso es algo que debe de alegrarnos a todos, usemos el Engine o HHVM, y es que de seguir por este camino, pronto podrán volver a la reunion de amigos programadores y no sufran de bulling por decir que programan en php, a menos que solo usen wordpress y sepan mas de teoría del color que de patrones de diseño, ahí si, nadie podrá ayudarlos en realidad, ni sus novias o novios que tantos los aman.

No sé si es tarde o temprano, pero me alegra que por fin Zend y compañía se dieran cuenta que era necesario evolucionar y pelear en esta revolución donde los bandos están definidos y no importa cual sea el ganador, siempre y cuando nos dejen algo de calidad y si, que nos obliguen a hacer mejor las cosas, como programar o usar sistemas escalables, hablo de mejores estándares que no solo se queden en deberías usar, o buenas practicas como recomendaciones. Queremos sangre, queremos dolor, queremos tirar mejores lineas y que nos dejen de ver como un par de autistas a los que se les arrojen un pan duro para que juguemos con el y dejemos de molestar. Que por fin nos dejen de hacer bulling por usar este lenguaje, no queremos llevar a todas partes algo que no sirve o que medio haga las cosas, queremos simplemente llevar algo que no sea de utilidad a nosotros y a todos los demás, que para eso es código abierto, para que entre todos mejore, por que como bien lo ha dicho nuestro tirano favorito Torvalds: "Mientras mas ojos miren, mas rápido saldrán los errores"

Hay un largo camino y PHP7 aun esta en sus RC y si, hay que admitirlo ahora que nadie nos mire, Facebook es php lo que Google para python. y ustedes ¿Qué opinan?

Happy hacking!



viernes, 3 de julio de 2015

De editor a IDE, o lo que es lo mismo: VIM con esteroides.

Normalmente suelo usar un IDE como Eclipse, Netbeans o cualquier otro para tirar código por que son cómodos, estan enfocados al desarrollo y bla, bla, bla... Pero estos IDE's hechos en java, en ruby en lo que sea, algunos pueden ser muy pesados y otros no tantos, pero consumen más recursos de los editores como sublime, atom, note++ (Si, muchos lo siguen usando por... Por que no sé...) es que son editores con algunas ventajas muy cómodas a la hora de escribir código, sacrificando otras, pero que son EDITORES de código (Hacen y no hay punto de comparación con un IDE, así que ni lo intente pensar en sus cabesitas locas.)

Hace unos meses me enfrente a un problema en la oficina, y no es el café, si no los recursos de la maquina que tengo para poder hacer lo que debo. Así que hice lo que debía, pero tener la IDE, el cliente de base de datos (Si, ya sé que aman phmMyAdmin sobre todas las cosas... yo no) docenas de pestañas en el browser y alguna otra cosa en extra... hacían que la maquina fuera por lo suelos en rendimiento. Cambiamos algunas cosas, entorno gráfico, menos pestañas en el browser, ya no mas reproductor de audio en la maquina... usamos en pool data del IDE y dejamos ir al workbrench un rato, pero el IDE seguía consumiendo tantos recursos, hasta el punto de ser molesto.

Así negando a usar un editor de código popular, elegí entre todos los males, el peor, ¿por qué escoger la opción menos malvada? Tomamos vim como el equipo de GEx y lo pusimos bello para editar las necesidades del día al día.

Para lograr esto, usaremos plugins y para hacerlo de la manera mas rápida, usaremos Vundle, un gestor de paquetes para vim que nos permite manejar los paquetes desde el vimrc, lo cual para empezar, debemos clonar el proyecto en nuestra carpeta .vim/bundle/



$ git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
y crear (en caso de no tenerlo) nuestro .vimrc en el home de nuestro con el siguiente esqueleto, donde poco a poco iremos armando para poder incluir los paquetes (plugins) necesarios o que necesitemos según los gustos de cada quien. Y para ello, les recomiendo la pagina de vimawesome.com donde encontraremos todo lo que necesitemos para convertir a nuestro editor en una pequeña IDE.


set rtp+=~/.vim/bundle/Vundle.vim " alternatively, pass a path where Vundle should install plugins " "call vundle#begin('~/some/path/here') call vundle#begin() " " let Vundle manage Vundle, required Plugin 'gmarik/Vundle.vim' call vundle#end()            " required filetype plugin indent on    " required " " Brief help " " :PluginList       - lists configured plugins " " :PluginInstall    - installs plugins; append `!` to update or just " :PluginUpdate " " :PluginSearch foo - searches for foo; append `!` to refresh local cache " " :PluginClean      - confirms removal of unused plugins; append `!` to " auto-approve removal " " see :h vundle for more details or wiki for FAQ

Vim por si solo nos da muchas ayudas de forma nativa para poder editar código, como resaltado de sintaxis, autoidentado, tamaño del espacio en tabulador, etc, que si bien son una gran ayuda, no son los suficiente para ayudarnos al trabajo del día a día, para ello, les recomiendo Syntastic que nos ayudara a checar errores en la sintaxis y que soporta una gran cantidad de lenguajes.

Otra necesidad, es poder navegar por el proyecto sin tener que salir de vim, para lo cual tenemos la ayuda de NERDTree, un explorador de filesystem desplegado en un árbol, el cual nos permite ver carpetas y abrir los archivos necesarios sin salir del editor.

La necesidad de hoy en día, nos obliga a tener una manera de poder navegar en nuestro código teniendo a la mano las variables y funciones para poder navegar mejor entre tantas lineas de código y evitar la perdida de estar buscando de forma manual, por ello existe Tagbar que requiere que tengamos instalado ctag, el cual podemos compilarlo o descargarlo desde nuestro gestor de dependencias favorito.

Los IDE's modernos nos permiten el autocompletado de código, lo cual es una gran ayuda a la hora de escribir de una forma mas rápida y no cometer errores de sintaxis, en lo personal, uso YouCompleteMe, el cual requiere que clones el proyecto en tu carpeta de Bundles y compiles.

cd ~/.vim/bundle/YouCompleteMe
./install.sh --clang-completer


Para poder hacer de YouCompleteMe una experiencia totalmente agradable, usaremos SuperTab que nos ayudara a todos aquellos que estamos muy acostumbrados al autocomplete por medio del tabulador.

Otro paquete que no nos puede faltar para nuestro adorado vim, es el uso de snippets que lo encontramos en IDE's y editores como sublime o atom, y para ello, nada mejor que ultisnips, un paquete que nos ayudara a crearlos de una forma tan simple y que hará las delicias de chicos y grandes.


Y aunque existen muchas otras opciones para diferentes lenguajes como ruby, php, javascript, java o integrarlo con git creo que esto es lo básico para poder hacer de vim algo mas que un simple editor de textos.

Les dejo mi vimrc que esta adaptado para php, es lo que por el momento uso, no sin antes decirles que si gustan de tener estadísticas y datos de su forma de programar, se den una vuelta por wakatime, el cual tiene diferentes plugins para distintas IDE's, editores y si, también para nuestro adorado y amado vim.

Happy hacking.

martes, 2 de marzo de 2010

La vida tras el lente.

Una de las cosas que me gusta a parte de dormir o hacer otras cosas que no les dire, es la fotografía. La verdad es que no soy la punta de la lanza, pero a segun algunos, no soy tan... Bueno, ya saben la palabra.

La mayoría de fotos en mi Flickr están tomadas con una cámara de 2 Mp que viene en mi celular. Así que con el pobre, tome y tome y trate de aprender cosas básicas y a base de pedir consejos a Aldar para que esto no fuera una completa ofensa visual. Así que valientemente me arme de una memoria de 2 Gb para el cel e instale GIMP en la lap. 

Older

El resultado fue la foto de arriba (Y mi Flickr), con la cual termine por jubilar al pobre cel que al rededor de un año me acompaño fingiendo ser una gran cámara. Ahora salimos corriendo por una cámara Sony Alpha para poder seguir con este ocioso trabajo de seguir tomando fotos y más fotos a diestra y siniestra. La verdad es que me es muy divertido y bueno, espero poder comprarle un lente el próximo mes.  Pero eso será con mas tiempo y calma, por lo mientras les dejo una de las fotos que saque con la nueva integrante de la familia.

Subestación