recolector de basura

abril 28, 2012

bueno, señores, este, no tan joven, finalmente cayó…

todo objeto que uno hace en java, a menos que algo anormal pase en el medio, tiene como destino final el recolector de basura…

ahora entendiendo la naturaleza de los objetos que la jvm espera…

Anuncios

bisiesto

febrero 29, 2012

Mientras cuento los días para irme de vacaciones, y administracion de recursos queda atras noto que es 29 de febrero. Un día que disponemos cada 4 años. Bah, generalmente, porque los años terminados en 00 y no múltiplos de 400 tienen febreros de 28 días.

Parece ser que los romanos contaban los días respecto a días claves, por ejemplo calendas era el primero, nonas el quinto e idus el 13, salvo en marzo, mayo, julio y octubre que caía 15.-

Al parecer para compensar el -casi- 1/4 de día excedente de los 365 que le toma al Sol darle una vuelta a la Tierra, cada cuatro años los romanos agregaban un día más, el 23 de febrero, o seis días antes de las calendas de marzo, duraba 48 horas. Para complicarla más contaban también el día de la referencia, es decir: 2 para las calendas sería el día anterior al primero del mes siguiente. A la segunda parte de este día se le decía bis sectus o segundo sexto. De ahí, una serie de deformaciones de pasar de un idioma a otro, produjeron el vocablo bisiesto.

Y se fue otro 29 de febrero. El del año que el calendario maya dio over-flow. Buenas noches.

ley de Kernighan

febrero 25, 2012

“Debuggear es el doble de difícil que escribir código. Por lo tanto, si escribo el código más ingenioso que puedo, no soy, por definición, lo suficientemente inteligente para debuggearlo”.

Así que a escribir código feliz y declarativo.

1q84

febrero 22, 2012

A ver… me llamó mucho la atención porque yo sabía que la letra q en japonés se lee igual que 9… me llamó mucho la atención que fueran varios libros… sentía que tenía que leer algo de Haruki Murakami

Los dos primeros libros que se editan como un sólo libraco de 700 páginas me gustaron. Me gustó mucho la historia tras de Vanguardia, una comunidad religiosa (secta) formada a partir de una granja comunitaria de izquierdistas setentosos devenidos en vendedores de productos orgánicos en los ’80. La little people, las dos lunas, esa especie de Rei Ayanami llamada Fukaeri. Komatsu el editor maldito que quería reirse de su mundillo. Todos en algún momento encontramos cómico y algo ridículo el mundo en el que nos desenvolvemos.

La novela iba in crescendo, hasta la página 600 aproximadamente. Haruki resutló un gran narrador, con muchas referencias a la cultura de masas. Muy interesante de leer. Después me resultó un difícil trámite, lleno de historias que no conducen a mucho, personajes movidos por más por venganzas personales que por causas altruistas, parejas artificiales, historias que no se cierran y algunas crueldades innecesarias.

Da la impresión que la propia novela fuera escrita por Tengo -el protagonista, un profe de matemáticas escritor que todavía no desarrolló su oficio de novelista del todo-, o que el mismo Haruki leyó la Crisalida de aire y fue convirtiendo la anodina novela de una asesina de tipos de la peor calaña (los tipos!) en una historia fantástica con dos lunas, concepciones a distancia y una pareja con menos química que Lara Croft y el profesor McAllister.

En algún momento pensé que se iba a salvar, que la mitad del libro era una ficción escrita en la otra mitad, pero de golpe el libro se empezó a estancar, y todos  -hasta un sagaz detective de aspecto desagradable- terminaron embobados, mirando la luna sobre un tobogán en un arenero de plaza.

Lo pior es que yo también me subí a ese tobogán, buscándole algún cierre, miraba y miraba las dos lunas. Pero nada.

Igual prometo darle otra oportunidad a Muramaki.

¿qué es esto de los servlets?

enero 12, 2012

Mi inmersión al mundo java web ocurrió hace unos años ya, pero recuerdo que yo andaba medio perdido con muchos nombres nuevos y con poca idea de cómo se hacían las cosas por ese alocado lugar.

Hoy un poco más cascado puedo ordenar algunas ideas y contar un poco lo que aprendí.

Antes que nada responden a una especificación como casi todo en java.

Un servlet es un componente java que permite generar contenido dinámico y que corre en el contexto de contenedor de servlets. Los servlets que usamos para programar web son los HTTP Servlets. Estos corren en un contenedor -que es parte de un servidor web o de un servidor de aplicaciones y que se encarga de manejar la comunicación con el cliente usando el modelo de Petición / Respuesta. Un ejemplo de contenedor de servlets es apache tomcat.

El contenedor suele tener un archivo descriptor de despliegue: el archivo WEB-INF/web.xml.

En este archivo mapeamos las URL con los servlets que vamos creando, configuración de la sesión y otras cosas como definición de filtros y etc.

A diferencia de otras tecnologías, donde se crea todo un proceso por cada solicitud del cliente, un servlet corre en un hilo. Esto genera menos carga para el servidor, por lo que se supondría que es más rápido.

El contendor maneja su ciclo de vida, que empieza llamando al método init(ServletConfig) e inicializa nuestro servlet. Por cada petición que recibe, invoca al método service(ServletRequest, ServletResponse). Finalmente destroy() es invocado cuando el contenedor decide descargarlo y es el momento para liberar recursos.

Los HttpServlet en particular nos abstraen de manejar qué mensaje HTTP implementando el método service y dejándonos a nosotros implementar los distintos mensajes como GET, POST, DELETE y PUT mediante doGet, doPost, doDelete y doPut. Estos a su vez reciben como parámetro los objetos de clase HttpServletRequest y HttpServletResponse. El servlet trabajará con el contexto provisto por el Request y escribirá en el Response los resultados de su ejecución.

En el próximo capítulo vamos a implementar un servlet muy sencillo que recibe una frase y cuenta la cantidad de palabras. Este implementa los métodos de HTTP, POST y GET. Si no recibe nada para contar,  explica el uso y provee un form, si recibe algo directamente muestra el resultado.

¡Hasta la próxima!

Peter Capusotto y sus videos, ahora en el cine en 3D!

enero 6, 2012

Gente, el 26/01 del corriente se estrena en el cine Peter Capusotto y sus videos en 3D. Casi un regalo de cumpleaños para quien suscribe.

¡Feliz día de reyes magos!

agotando las últimas horas de 2011

diciembre 30, 2011

Qué calor que hace! Al fin parece diciembre.

Bueno, lector que pasás por acá, este es un post de cierre de año. Año curioso. En la facu me cambiaron de plan, lo que significó cursar física 2, cosa que por suerte ya pasó y ya quedó afirmada la aprobación en un acta de la facu. Remando y con un par de golpes conseguí el 13/12/11 el título intermedio de Analista Universitario de Sistemas, título que me viene bien laboralmente, aunque no estaba en mis planes originales al ingresar a la facu.

Aprendí algo de computación gráfica y de administración de recursos humanos. Me tengo que poner pillo con la investigación operativa de acá a los primeros días de febrero para recuperarla, que me quedo colgando.

Hice un curso de metodologías de desarrollo seguro, dictado por Cristian Borghello. Es curioso, pero cada vez más veo la necesidad de aplicar metodologías a esto de programar, pero por otro lado las urgencias o tal vez la falta de disciplina de uno, hacen que uno termine a mitad de camino. Es algo que le pasa mucho a quién escribe, sabe que es lo correcto, pero por alguna razón no llega a ponerlo en marcha.

¡Scala es un bodrio! Java 7 llegó tarde y con pocas cosas divertidas. Al parece Java 8 la va a romper. A quien ande en esta no tan noble profesión del desarrollo web en java le recomiendo Como funciona tomcat. El libro explica como funcionan las versiones 4 y 5 del servidor planteando el diseño como si lo quisieramos programar de nuevo.

Recomiendo encaresidamente el libro Kryptonita de Leonardo Oyola. La cosa es más o menos así, el nafta super no es como nosotros. Evidentemente vino de otro lado, pero por razón terminó viviendo entre nosotros. Hay quien dice que si hubiera terminado en otros lados, como en una granja en arkansas, hoy sería el super hombre -no, el de nietzche y sus seguidores folkloristas alemanes, no!-, ese que se para por sobre todos y lucha por la justicia y los mercados. Como sea nuestro nafta súper tuvo un percance, y cayó en la guardia del Paroissien. Un nochero (doctor que cubre guardias por otro a un costo humano muy elevado) tendrá que mantenerlo con vida, mientras sus super amigos lo cuidan del horror… el horror…

Como sea el libro del párrafo anterior es el libro del año.

Con esto de la investigación operativa me dio curiosidad la película esa de la mente brillante, acerca del matemático Nash. creo que también podría haberse llamado “una película intrascendente”. Más allá del drama personal del compañero Nash, el personaje de russel crowe no pasa el test de turing.

Ciudadano Kane la rompe. Matt Groenning le debe mucho.

Creo que el blog del año es (aunque no de este para el autor, pero sí para mí que llegué tarde, pa’variar) es realismo socialista del dibujante Galliano. En el blog, el dibujante publica sus obras (no, no faltó una s) y se ve que el pibe tiene oficio. Yo creo que dejaría a Nik en la lona si a la nación se copase con el cinismo de izquirdas. Pero la nación es una mierda y nik seguirá en la delincuencia de cuello blanco. Soberbia la serie Lenin y vos!

Bueno, yo estoy contento. Muy vago con esto del blog. Pero como todos los años me propongo darle un poco de vida.

Aflojen con la quiniela! Los números también pueden ser el más grande ejercicio para la cabeza.

Ahora me voy a ver a Almafuerte.

Feliz año, lector!

eScalando

mayo 20, 2011

Hace un tiempo ya que estoy trabajando con java. También me tocó pasarlo con alguna materia de la facu.

Java está bien, pero lo pone a uno poco más charlatán de lo que debería. Y no lo digo por los debates acerca si sigue sirviendo o no, si tipado o no, si interpretado o …

Hay muchas cosas que se vuelven repetitivas. Si uno quiere evitar código redundante, tiene que empezar a fabricar clases para cubrir estos baches. Esas clases hacen más ruido del que deberían hacer (eso que la literatura anglo parlante llama boiler plate code).

Hay por ahí un lenguaje que se llama Scala, que ya tiene sus años y que estoy usándolo para probar. Los vendedores de elixhir sostienen que es la felicidad en tu java virtual machine. Scala es la contracción de SCAlable LAnguage.

Del nombre surgen dos interpretaciones, una por el rendimiento del equipo y la paralelización del código al favorecer estructuras inmutables, y la otra interpretación es por el rendimiento del lenguaje según el programador. En scala podés programar objetos y funcional, o muy para un lado o muy para el otro, todo depende del palo del que vengás. Ahora a medida que vas aprendiendo, vas aplicando mejor el paradigma que te conviene y tu código es más claro. También promete facilidad para generar tus lenguajes de dominio específico, que es casualmente una curiosidad que me pica desde que me enteré que existía LISP y todo eso de extender el lenguaje.

Me parece interesante eso de que el lenguaje “te deje” entrar con tu estilo y que vayás aprendiendo, manteniendo tu JVM abajo. Creo que eso tiene gancho para el ambiente profesional y académico.

Así que para ahí voy.

Como ya tengo algo de programación funcional (haskell mediante) encima, no me parece tan raro.

Como regalo al peregrino le dejo una función escrita en scala y un par de líneas para probarla:

def funcionUltraConocida(n: Int) = (2 to n).foldLeft (1) (_ * _)
def esLaRespuesta = 42.equals(_)
esLaRespuesta (funcionUltraConocida(7) / funcionUltraConocida(5))

¡Suerte! Hoy tengo parcial de física 2 y está bastante complicado.

la ciencia es la física, lo demás es coleccionismo de estampillas

enero 10, 2011

La frase “haciendo amigos 2011” se la sacamos a Ernest Rutherford, físico y químico neozelandés del siglo XX.
Aclaro que  consideramos esta definición de ciencia parcialísima e incompleta y pensamos más en la ciencia como una actividad colectiva que busca generar saber acerca de cosas de la realidad para felicidad del pueblo y grandeza de la nación.
Pero ante todo simpatizamos con la honestidad brutal y creemos que no anda tan lejos del buen camino.
¡Buen año!

Cayó Sistemas de Representación

noviembre 22, 2010

Bueno, el que lea esto por ahí mucho no le importe, pero esta semana, luego de 4 años en la UTN, cayó sistemas de representació (AKA dibujo técnico)

También se firmó ténicas avanzadas de programación (tadp.wikidot.com) y se promocionó Legislación.

Estoy notas de Redes y de Diseño de sistemas, la material troncal de tercero.

Ahora sí, de a 4 o 6 materias por cuatrimestre (este fueron 5), pero rumbo al título.