Cerramos… por el momento

Como ya habrán notado, las actividades en el blog han sido pocas o han ido disminuyendo. Con esto, entiendo, la cantidad de visitas (Aunque eso es tema aparte).

Lo cierto es que en los tiempos que corren, parece que el concepto de transmitir ideas y conocimientos pasa por otro lado. Menos escrito, más hablado y visual. Así es que, asumiendo que lo anterior es cierto, me mudo al YouTube y re activo el canal. No prometo un gran volumen de actividad, pero por lo menos, más que por este lado.

Hace unos días, por ejemplo, subí un video (Que se transformará en serie) para ir aprendiendo diferentes lenguajes de programación. Un tutorial visual. Algo para que escuchen mi delicada voz🙂

Si quieres sumarte a esto, pásate por el canal, nos vemos allí: https://www.youtube.com/user/LaCosaGorda/


Breve intro a Scrum y ASANA

He optado por dejar de escribir posts y volver a los videos que hace varios años atrás venía creando. Más cortos y más puntuales.

En este caso, vamos con uno sobre Scrum.


Presentación del libro Basta, cien hombres contra la violencia de género

14079482_731643690307648_5962718393119845698_n

Los editores de Basta Argentina te invitan a la presentación del libro

¡Basta! Cien hombres contra la violencia de género

a realizarse el sábado 9 de septiembre del 2016, a las 19:30

en la Sociedad de Fomento Primera Junta

Congreso 1728, Haedo, Provincia de Buenos Aires

100 microficciones escritas por 100 escritores argentinos de todo el país.

Forma parte del proyecto inciado en Chile y hoy se extiende por toda Latinoamérica.

Habrá lectura a cargo de autores y antólogos, muestra de artistas plásticos y música.

Sociedad de Fomento Primera Junta, Congreso 1728, Haedo,

Provincia de Buenos Aires.

Editores:

Amor Hernández, Fabián Vique, Leandro Hidalgo,

Miriam Di Gerónimo y Sandra Bianchi

Los cien autores:

Alberto Femia, Alejandro Bentivoglio, Alejandro Miguel

Orellana, Alejandro Pedro Destuet, Armando Macchia

Camilo Sánchez, Carlos Aldazabal, Carlos Manuel Casali

Carlos Norberto Carbone, Claudio Sylwan, Cristian Jesús

González, Daniel Fermani, Daniel Frini, David Slodky

Diego A. Cutuli, Diego Alejandro Majluf, Diego Kochmann

Diego Martín Lanis, Diego Niemetz, Eduardo Vardé

Eduardo Gotthelf, Eduardo Mancilla, Emiliano Ángel

Griffone, Emiliano Pintos, Enrique del Acebo Ibáñez

Ernesto Parrilla Paredes, Esteban Rodolfo Mederake

Eugenio Mandrini, Ezequiel Wajncer, Fabián Castellani

Fabián Ostropolsky, Fabricio Pippi, Facundo López

Federico Batllori, Félix Ángel Córdoba, Fernando M. Blasco

Gastón Domínguez, Germán Estrella, Hugo Francisco

Rivella, Hugo A. Gonza, J. González, Javier Touza, Jorge

Gómez, Jorge Otegui, José Luis Saddi, José María Guerrero

Juan José Panno, Juan Manuel Montes, Juan Manuel Valitutti

Juan Marcelo Sosa, Juan Pablo Goñi Capurro

Juan Pablo Portugau, Juan Romagnoli, Julio Diaco

Julio Tala, Leo Cuello, Leo Mercado, Leonardo

Dolengiewich, Lucas Simó, Luciano Doti, Luciano

Rodríguez, Luis Darío Salamone, Luis Ferrarassi, Marcelo

Fernández, Marcos Andrés Ponce De León, Mariano

Ambrosino Roulier, Mario César Lamique, Mario Goloboff

Martín Gardella, Mateo Rinland, Matías Iacono, Miguel

Lisanti, Miroslav Scheuba, Omar Julio Zárate, Omar Ochi

Orlando Romano, Orlando Van Bredam, Pablo Altieri

Pablo Darío Colombi, Pablo Dema, Pablo Doti, Pablo

Lautaro, Pablo Melicchio, Ramiro Esteban Zó

Raúl Borchardt, Raúl Brasca, Ricardo Alberto Bugarín

Roberto Perinelli, Rodolfo Lobo Molas, Rodrigo Ariel

Iñíguez, Rogelio Ramos Signes, Rubén Faustino Cabrera

Salvador Biedma, Salvador Verzi, Sandro Centurión

Saurio, Sergio Cossa, Sergio Gaut Vel Hartman

Tomás Ignacio Rossi, Walter Sobel


Aprendiendo Python

13716004_10154359822774314_7376618903244361115_nAyer participé de la Millennial Game Jam en Córdoba. Como en todas las Game Jams, el objetivo era crear algún juego en un lapso corto de tiempo. En esta oportunidad, menos de 6 horas (Muy corto lapso de tiempo).

Pero mi objetivo era ligeramente diferente al de la Jam. Si bien sí iba a crear un videojuego, lo principal era hacerlo en algún lenguaje de programación que no conociera y en algún framework que tampoco supiera nada de él.

Hacía un tiempo que quería aprender algo de Python pero no había encontrado la oportunidad ni la motivación para hacerlo. Así que esta Jam era esa oportunidad.

En menos de 6 horas, con el equipo que decidió sumarse a esta loca idea, hicimos un prototipo de juego usando Python 2.7 y Pygame.

Por supuesto, el código creado no fue de lo mejor, pero fue suficiente para justificar el tiempo.

Si quieres ver un poco el código: https://github.com/MatiasIac/millenialGJ


Ya en librerías

Programación de videojuegosFinalmente el libro de desarrollo de videojuegos con HTML5 y JavaScript ha salido a la luz.

En Argentina, puedes conseguirlo en librerías y kioskos, así cómo desde la página de la editorial.

http://www.redusers.com/noticias/publicaciones/programacion-de-videojuegos/


Agilidad, psicología y otras yerbas

Anoche di una charla sobre sesgos cognitivos y cómo estos influyen en nuestro comportamiento diario, en los proyectos en los que participamos, en los equipos, y un largo etc.

Si quieres ver la charla, puedes hacerlo desde YouTube: https://www.youtube.com/watch?v=Zv7awyGxmjI&feature=youtu.be


Patrón Singleton con JavaScript

Seguimos con esta idea de presentar diferentes patrones de diseño desde la mirada de JavaScript. En esta oportunidad les traigo el patrón singleton.

En muchos lenguajes de programación este patrón ya viene encapsulado en la propia sintaxis. Usar, por ejemplo, un tipo static en C# es básicamente lo mismo que un singleton, pero sin tener que escribir el código del patrón y al mismo tiempo con ventajas sobre el manejo de hilos y procesos.

En otros lenguajes, como en el caso de JavaScript, aún tenemos que hacerlo al viejo estilo (O por lo menos eso queremos para que este post tenga sentido).

Este patrón nos permite, para resumirlo de forma rápida, obtener una misma instancia de determinado objeto. Una ventaja de esto sería si necesitamos que un proceso particular no pueda ser manejado desde diferentes objetos por más que sean una copia del mismo código.

Un ejemplo simple de imaginar (Aunque no relacionado de forma directa a JavaScript) sería el de tener un formulario para una aplicación de escritorio, el cuál se abre al presionar un botón. Si para abrir este formulario necesitáramos crear un nuevo objeto del mismo, tendríamos copias de este formulario tras cada creación. Con un singleton, por el contrario, podríamos llamar al mismo formulario una y otra vez asegurándonos que siempre será el único y originalmente creado el que se muestre al usuario.

Pero vamos con el código para JavaScript:

(function (w) {
 var _instance = null;
 
 var singleton = function () {
  this.URL = "";
 };
 
 singleton.prototype.conectar = function () {
  console.log("Conectando a ", this.URL);
 };
 
 w.conector = {
  getInstance: function () {
   if (_instance === null) {
    _instance = new singleton();
   }
 
   return _instance;
  }
 };
}(window));

Analicemos un poco el código. Lo que usamos para generar todo el objeto es una función auto ejecutada (Tiene otros nombres, pero puede que ese nombre ayude a entender cómo funciona). Esta función se ejecuta automáticamente y debido a la forma en cómo JavaScript maneja las variables y su alcance (Closure) podremos mantener la variable _instance a la espera de una instancia de un nuevo objeto.

Luego crearemos en la variable singleton lo que sería una representación de nuestro objeto (Como si fuese una clase en otros lenguajes). Esta posee una variable URL y una función conectar.

Por último, inyectaremos al objeto window (Padre del árbol de objetos en el navegador) un objeto llamado conector y que tendrá una función getInstance. Es esta función la que nos permite crear y manejar el singleton. En ella, cada vez que alguien pide una instancia de nuestro singleton verificamos si la variable _instance tiene ya una referencia al objeto en cuestión. Si no la tuviere, creamos un nuevo objeto y retornamos ese valor, pero si por el contrario ya hubiera sido instanciado por otra llamada, entonces retornaremos el mismo objeto ya creado, haciendo que el consumidor de nuestro objeto siempre obtenga la misma referencia al objeto singleton.