programación y pataletas

Jul 23
Permalink
The difference between magic and science is at some level a difference between the universe responding to you in a personal way, and the universe being entirely impersonal.
Jul 13
Permalink
Humans spent thousands upon thousands of years developing/evolving the ability to learn through stories. Our brains are tuned for it. Our brains are not tuned for sitting in a classroom listening passively to a lecture of facts, or reading pages of text facts.
— Kathy Sierra
Jun 15
Permalink

Patria Rima con Sinatra

Además de “Mi Primera Vez”, la introducción a Ruby, estaré en Campus Party dando un taller sobre Sinatra el 1 de Julio (Jueves) a las 9PM.

El outline:

Sinatra es un “micro framework” para el desarrollo de aplicaciones y servicios web en Ruby. A la fecha es la forma más sencilla que conocemos de crear aplicaciones web:

require 'sinatra'

get '/hi' do
  Hola, mi nombre es Miss Erica Court"
end

Esta pequeña porción de código es todo lo que necesitamos para empezar a desarrollar servicios web utilizando Ruby.

A diferencia de Rails o Django, Sinatra es un DSL que no sigue MVC (o ningún otra arquitectura), y por defecto no incluye código para conectarse a bases de datos, helpers para la creación de vistas o una interfaz de administración. El framework tiene como objetivo construir la librería de código más sencilla posible y luego extenderla mediante el uso librerías externas.

Actualmente Sinatra soporta todo tipo de adaptadores de BD (RDBMSs, gestores NoSQL, etc.), varios lenguajes de markup para el diseño de las vistas (ERB, HAML, Builder y más) y existen cientos de plugins para extenderlo a nuestro antojo y hacer cualquier tipo de porquerías.

En este taller vamos a crear una aplicación sencilla para la venta de libros y música utilizando Sinatra y Heroku. Realmente no vamos a hacer patria, pero patria rima con Sinatra.

Jun 14
Permalink

Mi Primera Vez

El 30 de Junio estaré hablando en Campus Party Bogotá sobre Ruby. El siguiente texto es un vistazo rápido a los temas que pienso tocar:

“Mi Primera Vez” es una mirada supraficial al lenguaje de programación Ruby. La charla está dividida en tres secciones:

Introducción

I always knew that one day Smalltalk would replace Java. I just didn’t know it would becalled Ruby. - Kent Beck

Ruby es un lenguaje de programación dinámico creado por Yukihiro Matsumoto en 1995, en Japón, al otro lado del mundo, donde la gente come pescado crudo, donde tienen nombres para las cuadras y no para las calles. Japón. “Matz” tomó lo mejor de Smalltalk, lo poquito bueno que había en Perl y creó su propio lenguaje de programación, o como diría él, su propio Lisp.

Wikipedia dice que que Ruby es un lenguaje “dinámico, reflectivo, orientado a objetos y de uso general”. Yo creo que Ruby es un lenguaje de programación orientado a personas, seres humanos, micos.

En el siglo XVI los humanistas italianos decidieron hacer a un lado las cuestiones supernaturales (como la existencia o carencia de testículos en los ángeles) para dedicarse a estudiar a los seres humanos. De igual manera, los programadores de Ruby decidimos que las discusiones sobre patrones, arquitecturas y jerarquías de objetos son secundarias a la idea principal de que somos personas limitadas por el tamaño de nuestro cerebro. Los lenguajes son herramientas que potencian nuestro entendimiento (y no simplemente un medio de expresión), y es por esto que decidimos abordar el problema de nuestra propia estupidez antes de preocuparnos por otras cosas.

Intermedio

Todo cuerpo mantiene su estado de reposo o movimiento siempre y cuando no sea sea obligado a cambiar por medio fuerzas impresas en él. - Isaac Newton

En la física de Newton existe un concepto importante llamado fricción. La fricción es la fuerza que se opone al movimiento de los objetos, es la fuerza que nos desacelera y nos roba el momento. Como programadores, seres sistemáticos armados (y creadores) de herramientas, estamos buscando reducir la fricción, no queremos que nos detengan las fuerzas externas. Ruby como lenguaje tiene la misma finalidad: salirse de nuestro camino y dejarnos conservar nuestro momento. El lenguaje no debe dictarnos la forma en la que resolvemos los problemas, y no existe una sola forma de resolver un problema (hola Guido).

Outroducción

Language shapes the way we think, and determines what we can think about. - Benjamin Lee Whorf

Aunque Ruby es magnífico, rosado y lindo, no es la solución para todos nuestros problemas. Sin embargo, es un lenguaje extensible que nos permite ampliar nuestras capacidades por medio del uso de lenguajes específicos al dominio de nuestros problemas.

Las abstracciones que nos dan los lenguajes de programación nos ayudan a sumar “unidades de potencia” a nuestras capacidades intelectuales, cada vez que creamos una nueva abstracción podemos ir un poquito más lejos.

Los lenguajes que nos permiten crear lenguajes como abstracciones multiplican estas unidades de potencia, nos permiten llegar mucho más lejos. Tenemos que ver entonces que herramientas nos proporciona Ruby para la creación de nuestros propios lenguajes.

Jun 10
Permalink
Yo multiplico, divido, sumo, resto y mato.

Yo multiplico, divido, sumo, resto y mato.

Jun 06
Permalink
Ya no hay gris, otra vez hay sangre en los labios azules de un tipo ahogado.

Ya no hay gris, otra vez hay sangre en los labios azules de un tipo ahogado.

Permalink
Jun 05
Permalink
Reddit AMA

Reddit AMA

May 29
Permalink

In the end, after you were wasted by our discussions and your thoughts —when crying was the only thing keeping you from the ceiling— you had an arm to hold on to, warm meat to lay your head on. That’s what made us different.

Our pact was to “die while we’re young”, that was the plan all along. Now, after I failed and you cowered out (you always cowered out), don’t expect me to pretend it never happened. Die. While. We’re. Young. That’s all the loving you’re getting from me.

May 23
Permalink

ZOMGRSS

ZOMGRSS es un Rubygem para crear feeds RSS de una colección en Ruby. Un ejemplo de uso:

 class BlogPost < ActiveRecord::Base
   rss_me
 end

 print BlogPost.to_rss

 # Devuelve:

 <?xml version="1.0" encoding="UTF-8"?>
 <rss version="2.0">
   <channel>
     <title>Your blog!</title>
     <description>A nice description of your emo posts</description>
     <link>http://example.com/blog</link>
     <item>
       <title>My first post</title>
       <link isPermaLink="false">http://example.com/blog/1</link>
       <description>Isnt this super interesting?</description>
       <pubDate>Sat, 22 May 2010 21:38:17 -0500</pubDate>
       <guid>1@http://exmaple.com/blog/</guid>
     </item>
     <item>
       <title>My second post</title>
       <link isPermaLink="false">http://example.com/blog/2</link>
       <description>I wish my lawn was emo so I could stop doing silly jokes</description>
       <pubDate>Sat, 22 May 2010 21:38:17 -0500</pubDate>
       <guid>2@http://exmaple.com/blog/</guid>
     </item>
   </channel>
 </rss>

Más información en Github.

May 04
Permalink

Garaje de Heroína

Espero que en un mes pueda lanzar http://mheroin.com, un proyecto en el cual llevo trabajando un par de semanas. No quiero hablar sobre el sitio todavía (no es nada grande o importante), pero esta es la apuesta que estoy haciendo para no tener que pensar en el nueve a cinco nunca más.

Necesito plata para contratar un diseñador e imprimir algunos stickers para regalar a cualquier persona que quiera un pegarlos en el computador, así que he lanzado mi Garaje de Heroína. Estoy vendiendo todos mis libros de programación, algunos de literatura y los 3 DVDs que tengo, todo a $25.000. Espero poder vender un par de estos artículos para al menos poder imprimir los stickers, así que se agradece cualquier ayuda. Los pagos son en efectivo o consignación.

Estoy dispuesto a enviar mierdas a cualquier lugar de Colombia (o afuera) siempre y cuando el comprador pague los gastos de envío. En Medellín la entrega la haré cara a cara para poder decir “Gracias”.

Finalmente, el código para el Garaje está disponible en Github en caso de que cualquiera quiera ver un ejemplo de una pequeña aplicación en Sinatra (corriendo en Heroku).

Apr 26
Permalink
The building of things scratches an essential itch for engineers. It’s why they became engineers in the first place. When they were six, their Dad handed them two boards, a nail, and a hammer and they started whacking. BLAM BLAM BLAM. Even with the nail awkwardly bent in half, the wood was suddenly and magically bound together: a thing was built. At that moment, this junior engineer’s brain excreted a chemical that instantly convinced them of the disproportionate value of this construction. This is the best wood thing in the world because I built it. And then they looked up from their creation and pleaded, “Dad, I really need more nails”.
Apr 03
Permalink
Dracula&#8217;s a Racist

Dracula’s a Racist

Mar 25
Permalink
Go boys.

Go boys.

Mar 18
Permalink
[Flash 9 is required to listen to audio.]

Here We Are Juggernaut, primer sencillo de “Year of the Black Rainbow”.