De la mano de Sun Microsystems, hace ya un tiempo, ha llegado JavaFX para competir en el mercado de las RIA (Rich Internet Application) con otros productos como Ms Silverlight o Adobe AIR.

Siguiendo los pasos del artículo Creating Rich Internet Applications With Compiled JavaFX Script Technology instalaremos el compilador, compilaremos y ejecutaremos el infaltable “Hola Mundo”.

Leer más »

Post atrás, habiamos trabajado con archivos en python y, particularmente, desarrollado un pequeño ejemplo donde editabamos un archivo (específicamente el ID3 Tag de un MP3).

Ahora veremos algo más simple, pero que muchas veces hay que hacer: una lectura secuencial de un archivo plano.

Leer más »

Adobe AIR, evolución del proyecto inicial llamado Apollo, es un programa que nos permite crear y ejecutar aplicaciones de escritorio, aprovechando las tecnologías que hoy en día se usan aplicaciones web (HTML, AJAX, Flash, Flex, ActionScript)

Leer más »

Descompilador Java

En busca de un descompilador para Java, terminé dando con DJ Java Decompiler.

DJ Java Decompiler es un decompilador y desensamblador de Windows para Java que reconstruye el código fuente original de los archivos binarios .class.

DJ Java Decompiler es “autosuficiente”, es decir, no necesita de tener istalados ni el JDK ni el JRE.

El uso es muy sencillo, luego de abrir DJ Java Decompilar, hay abrir un archivo .class e instantaneamente, veremos su código fuente original (el .java). Lo he probado con clases simples y no he tenido problemas, será cuestión de ver como se trabaja con clases mucho más complejas (los comentarios de la web hablan que se comporta muy bien también).

Anteriormente, hemos visto como Instalar nuevos Look and Feels. En esta oportunidad, pongo a disposición el Look and Feel de Mac OS X (Quaque Look and Feel), que puedes descargarlo aquí.

Para recordar rápidamente como “instalarlo”:

  1. Copiar quaqua.tar en el directorio jre\lib\ext
  2. En archivo swing.properties en swing.installedlafs Quaua por ejemplo (swing.installedlafs = metal,motif,winXP,Quaqua)
  3. Crear las claves:
    1. swing.installedlaf.Quaqua.name = Quaqua
    2. swing.installedlaf.Quaqua.class = ch.randelshofer.quaqua.QuaquaLookAndFeel

Inyección SQL

Un poco de humor con SQL Inyection…

Las Fakes de Windows 7

Es mucho lo que se habla acerca de Windows 7 (el antes llamado Blackcomb, y luego Vienna). Mientras por un lado sostienen que el desarrollo termina en 2011; otros aseguran que, apresurado por el fracaso de Windows Vista, podría adelantarse la salida para 2009. Simplemente, son todos rumores.

Para que se entretengan hasta entonces, les ofrezco algunas de las tantas fakes que andan dando vueltas por la web.

Leer más »

Para abrir un archivo en Python se utiliza la función open. Ésta devuelve un objeto del tipo archivo, que tiene métodos y atributos.

Entre sus atributos se pueden citar:

  • mode: modo de apertura del archivo
  • name: nombre del archivo
  • closed: estado del archivo (abierto o cerrado)

Y métodos como:

  • seek: mueve la posición actual dentro del archivo
  • tell: confirma que la posición actual ha cambiado
  • read: lee un número especificado de bytes (o todo el archivo)
  • readline: lee una línea
  • readlines: lee todas las líneas y devuelve una lista
  • write: escribe en un archivo
  • close: cierra un archivo

Leer más »

Herramientas de red

A continuación, se detallan algunas herramientas para Linux imprescindibles para explorar redes y obtener información acerca de servicios y vulnerabilidades.

fping

ping múltiple. Por ejemplo:

fping -s -g 172.16.0.1 172.16.0.50
172.16.0.1 is alive
172.16.0.2 is alive
172.16.0.4 is alive
172.16.0.6 is alive
ICMP Host Unreachable from ...
ICMP Host Unreachable from ...
ICMP Host Unreachable from ...
...
...

50 targets
4 alive
46 unreachable
0 unknown addresses
184 timeouts (waiting for response)
188 ICMP Echos sent
4 ICMP Echo Replies received
174 other ICMP received
0.24 ms (min round trip time)
2.46 ms (avg round trip time)
7.62 ms (max round trip time)
8.400 sec (elapsed real time)

Leer más »

Convenciones de código

Para empezar este post, me parece adecuado empezar citar la comparación “Programar es como escribir“, vía chuidilang.

  • Hay quien escribe mal, con faltas de ortografía y no se entiende qué quiere decir.
  • Hay quien no sabe escribir correctamente, pero consigue explicarse.
  • Hay quien redacta y explica a la perfección y…
  • ¡Hay quien hace poesía!

Los programadores, debemos sufrir muchas veces códigos ajenos, y los hay desde poemas hasta aquellos mal escritos, con faltas de ortografía y se que no entiende que quiso decir su autor.

Como no podemos pedir que sean todos poemas, es necesario un marco que sujete cada línea de código, para que no sea tan dificil la tarea de lidear con uno u otro tipo de “escritor”.

Las convenciones de código son ese marco, y las mismas son muy importantes tanto para trabajo en grupo como para el trabajo individual (cuantas veces te has preguntado al mirar ese código que hace más de seis meses que no tocas ¿que quise hacer aquí?).

Un caso de estas convenciones, y que recomiendo leer, son las propuestas por Sun: Convenciones de código para el lenguaje de programación Java