‘ Java ’ Categoría

Sun Microsystems compra MYSQL

5 Comments // Written on Ene 16, 2008 // Java, Programación, Software

Ya mucho se ha hablado de esta compra hoy, pero mmmm…… no sé.

mysql

¿En que beneficia esto a mysql?
¿Veremos un gran desarrollo junto con JAVA?
¿Conviene o no que ahora pertenezca a SUN?

Me gustaría conocer su opinión. Creo que los javeros estarán más que felices(Oh wait! yo soy uno de ellos).

PHP vs JSP

5 Comments // Written on Sep 02, 2007 // Java, PHP, Programación, Tecnológico

Últimamente me he dado a la tarea de contestar una pregunta, ¿en que conviene programar mas? ¿en PHP o en JSP?. Claro que la pregunta siempre va a ser depende del proyecto. Muchos profes, incluso muchas empresas de Morelia usan JSP para desarrollar sus proyectos. Parece que java es la mejor opción para todos los casos, lo cual obviamente no es cierto, siempre depende….

Entonces mi pregunta ya no es cual es mejor, si no por que conviene utilizar JSP en lugar de PHP en algún proyecto, pero hasta ahora nadie me ha dado las respuestas claras. Algunos dicen es que simplemente es mejor por que tienes la potencia de un lenguaje como JAVA para desarrollar aplicaciones Web, esto es cierto, pero también es cierto que raramente vas ocupar todo lo que haces como cuando programas una aplicación de escritorio, entonces esta ventaja en lugar de ayudarte podría frustrarte.

Yo programo en JAVA, java es un buen lenguaje. Pero en JSP cambian algunas cosas que no me gustan nada. Un ejemplo los BEANS.

Supongamos que tienes en un archivo tu clase que hace cualquier cosa, esa clase necesitas incluirla en un archivo y crear un constructor y ejecutar un método.

PHP:


include “miclase.php”;
$clase= new miclase();
$clase->;Metodo();

JSP:


<@page language="Java" import="miclase.jsp" >




Yo me pregunto por que es así en JSP, no sé si hay otra manera pero esa es la que me encontré. Los beans no te dan mayor control en la aplicación, no entiendo el motivo de ellos, no sé el por que es así…. ¿alguien me lo podría explicar?.

Yo les quiero creer, creer que JSP puede ser mejor opción que PHP en la mayoría de los casos. Quiero escuchar razones validas, no simplemente por que es java.

Popups inmortales gracias a Java

3 Comments // Written on Ago 10, 2007 // Java

Hoy me entero de algo muy curioso.

Imagina que eres un anunciante en Internet…

Imagina que puedes abrir una ventana emergente (pop up) que supera cualquier bloqueo…

Imagina que esta ventana puede llenar TODA la pantalla…

Imagina que esta ventana no tiene bordes, ni menúes, ni barras, ni título, ni botones… Ningún medio para cerrarla…

Imagina que la ventana no se puede mover ni minimizar… Sólo desaparece cuando acaba el anuncio o si cierras tu navegador…

Ahora imagina que te dedicas a hacer phishing…

Imagina que puedes usar esta ventana para mostrar en ella lo que quieras… un falso navegador o -por qué no- un falso escritorio para recopilar datos del usuario…

Es posible gracias a java, el descubrimiento fue hecho por Giorgio Maone, que pareciera que tiene fobia de javascript y creo la extensión para firefox NoScript.

La manera de demostrar su fobia es publicando dos demos:

La primera es solamente en javascript usando LiveConnect, sin embargo solo funciona en navegadores que usen Gecko como motor de rendirezado. Uno de ellos es mi amado firefox .

var w = new java.awt.Window(new java.awt.Frame());
var label = new java.awt.Label(”PWNED”);
label.setFont(new java.awt.Font(”Serif”, java.awt.Font.BOLD, 80));
label.setAlignment(label.CENTER);
label.setForeground(java.awt.Color.white);
w.setBackground(java.awt.Color.black);
w.setLayout(new java.awt.BorderLayout());
w.add(label, java.awt.BorderLayout.CENTER);
w.setLocation(0, 0);
var d = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
d.height += 80;
w.setSize(d);
w.setVisible(true);

La segunda demo la hace desde java, desde un applet. Esta funciona en cualquier navegador, siempre y cuando tenga el runtime de java.

Lo mas probable es que este problema no se solucione rápidamente. Muy pronto veremos a muchas páginas haciendo mal uso. El popup regreso mas fuerte que nunca :S.

Links:

Demo 1 en javascript
Demo 2 desde applet

Chiste anti java

3 Comments // Written on Ago 04, 2007 // Java, Programación, lol

¿Cómo se puede desarrollar un potente virus en Java, que acabe con la memoria, consuma todos los recursos disponibles y ponga al ordenador a funcionar más lento que el fotingo de Don Domingo?Respuesta:

static void main( String[] args)
{
System.out.println(”Hello world!”);
}

lol, ¬¬.

PreciseJava: Buenas técnicas de programación

7 Comments // Written on Ago 02, 2007 // Java, Programación

Aunque java no es muy querido entre linuxeros (eso lo he notado, sobre todo en #gekko xD), no deja de ser la opción para los proyectos grandes.

PreciseJava una página donde dan consejos para optimizar tu código en este lenguaje y las buenas prácticas de programación(aunque cada quien tiene sus “buenas prácticas”). Ellos utilizan la técnica benchmark, para tener un parametro de referencia en lo que aconsejan y lo que cuesta no hacerlo.

Por ejemplo no usar try{} catch {} en ciclos.

package com.performance.exception;
public class ExceptionTest{
public static void main(String args[]){
long start,end;
int i =0;
int[] intArray = new int[25000];
String stringArray[] = new String[25000];
int size = stringArray.length;
for(i=0;i
if(i%50 == 0)
stringArray[i]=”hello world”;
else
stringArray[i]= Integer.toString(i);
}
start=System.currentTimeMillis();
for(i=0;i
try{
intArray[i]=Integer.parseInt(stringArray[i]);
}catch(NumberFormatException e){}
}
end=System.currentTimeMillis();
System.out.println(end-start +

" millis with try/catch inside for loop ");
start=System.currentTimeMillis();
try{
for(i=0;i
intArray[i]=Integer.parseInt(stringArray[i]);
}
} catch(NumberFormatException e){}
end=System.currentTimeMillis();
System.out.println(end-start + ”

millis with try/catch outside for loop ");
}
}

La verdad son consejos pequeños, pero que valen la pena conocerlos.

Link: http://www.precisejava.com

I love java

4 Comments // Written on Jun 27, 2007 // Java, Programación

I love JAVA

Creo que este lenguaje me encanta no tanto por su sintaxis o la manera en que se programa, si no por que tiene cosas que en otros lenguajes no se podría hacer o no seria tan fácil. A veces tienes que hacer cosas que en otros tendrías que cambiar el codigo fuente, en JAVA solo cambias la manera en que se ejecuta.

Hacer que las app en Java funcionen con Beryl

1 Comment // Written on May 23, 2007 // Java, Linux

Si instalaste Beryl y usas algunas aplicaciones en java como Netbeans o Limewire, entre otras. Tal vez tengas el problema en el que la aplicacion no muestra nada, solo la ventana limpia.
Buscando un poco encontré la solución. Yo uso Ubuntu Feisty.

sudo gedit /etc/environment

Y al final del archivo tienes que agregar la siguiente linea
AWT_TOOLKIT="MToolkit" AWT_TOOLKIT="MToolkit"

Reinicias tu Pc y todo tendria que funcionar.

Problema de diseño en twitter

No Comment // Written on Abr 15, 2007 // Hacking, Java, Programación, Servicios

Hace ya algunas semanas que tengo mi cuenta en twitter twitter.com/michoacano y he encontrado algunos problemas :-|, problemas a los cuales no se les podría llamar bugs, si no mal diseño.

Uno de ellos es que cada usuario tiene un ID numérico unico, y al parecer consecutivo entre los otros usuarios. ¿Cual es el problema con esto? hace algún tiempo hablaba sobre el problema de tener ids numéricos consecutivos , pues cuando pasa eso, es fácil recorrer todo el sistema automáticamente, si alguien descubre un bug le seria facil explotarlo en la mayor parte del sistema.

¿Como se el ID de un usuario en determinado en Twitter?

icazaSolo falta iniciar sesión a tu cuenta de twitter, ir a una url de otro usuario como Miguel de Icaza y ver la url que nos lleva el link de “add”.

http://twitter.com/friendships/create/823083

Y pues “82083″ es el id único de cada usuario.

¿Y que se puede hacer?

Cualquier persona puede hacer un Script para empezar agregar amigos recorriendo todo el sistema, no mas cambiando el id /friendships/create/XXXXXX podría empezar desde el 1 hasta lo que se quiera, y aunque los ID no son consecutivos, la diferencia entre uno y otro es tan pequeña que eso no lo hace un problema. Además de que twitter no tiene alguna protección contra este tipo de acciones yo hice un script sencillo en java y descubri todavía mas cosas….

Para hacer la petición a /friendships/create/XXXXXX lo único que hace falta es mandarle la session y ya, eso es todo, la cabecera HTTP referer no la verifica, es todo todavía hace mas fácil programar el ya simple script, si INCREÍBLE :| , esto se podría haber evitado(creo yo), si el sistema analizara que el referer, osea la página de donde se pulso “add” viene del usuario que corresponde al id numérico, por lo que para agregar a alguien y hacerlo automáticamente tendrías que conocer su nombre de usuario y su ID.

La sesión nunca caduca, o al menos dura varios dias. El script que hice le puse la sesión que había obtenido de ese día, luego en los siguientes días lo volví a correr y seguía funcionando…. entraba al navegador, iniciaba sesión , twitter me daba otra y la que ya tenia seguía funcionando :-| ¿Se me imaginan que no se podría hacer con eso?… se los dejo a su imaginación.

Mis pruebas las hice con este user:

url:http://twitter.com/thehacker

  • 73 Followers
  • 17 Updates

Mi meta era ser el mas popular de twitter, el que tuviera mas followers, pero me dio hueva y ya no le seguí. ¿Que conseguí? pues nada que valga la pena solo estaba probando, tengo mas amigos que otras personas, mas followers que mi cuenta principal, ese dia recibi como 200 visitas a mi web desde twitter.

Ya no sé si me extendí mucho con esto, esto lo puse no por que haya sido el primero, si no por que veo que ya varias personas están haciendo lo mismo, creo que en poco tiempo twitter se convertirá en un medio de SPAM en tiempo real si los administradores no hacen algo, eso si seria un problema grave.

Ya por ultimo xiam hace poco hizo unas graficas lindas de twitter, según me dijo hizo “spidering” a twitter, por lo que recorrer twitter por si mismo, el propio sistema no lo facilita.

Netbeans 5.5 | Ubuntu Edgy Vs Windows

2 Comments // Written on Ene 06, 2007 // Java

NetBeansPara los que programamos en JAVA(o nos obligan a programar) y que utilizamos Netbeans que para mi es el mejor IDE que he conocido para un lenguaje, pues te ayuda tanto que prácticamente pareciera que aveces ni necesitas saber JAVA, esta muy completo y muy bien estructurado(a veces también pareciera que se anticipa a los errores como si los fuera a predecir..).

Algunos también utilizan Jcreator o Eclipse, Jcreator para Windows es ligero pero falla en los proyectos grandes, en script sencillos es muy útil(cosa en la que falla Netbeans) y eclipse francamente no me gusta.

Bueno ya me sali del tema, lo que pasa es que he probado Netbeans desde Windows y Linux, misma pc, misma versión y parecen totalmente diferentes. En linux corre 50% mas rápido que en windows, además la velocidad con que compila también es menor. Yo me pregunto si el factor es el Sistema Operativo o del IDE.

Netbeans es tan CHIDO que yo siento que le tengo mas cariño al IDE que a Java JEJEJE!!. Sin duda es el mejor y también sirve para C/C++ pa’ quien lo quiera probar.

PING para g30rg3 que creo que usa Jcreator

Robocode | Simulador de IA

1 Comment // Written on Dic 11, 2006 // Java

Robocode es una aplicación hecha en JAVA, el objetivo es pelear contra otro robots y ganar la pelea. Puedes crear tu propio robot y tus propias estrategias programando en java, es decir, creas tu robot programando sus eventos y características en este lenguaje de programación.

En cierta manera programas o simulas Inteligencia Artificial. Es divertido y lo mejor es que se pueden organizar concursos y luchar para ver cual robot es el mejor.

Descárgalo desde: http://robocode.sourceforge.net/download

Robocode

Cada robot dentro del escenario puede avanzar, retroceder, girar y un sensor que detecta ciertos eventos. Desde la aplicación puedes programar tu robot, tiene un editor sencillo y rápido.

Una vez que te hayas bajado el jar desde la página, solo hace falta ejecutarlo. Para esto necesitas JRE o JDK, yo uso Ubuntu Dapper y necesitas instalar otra version que la que trae por default sistema.

Ya que la tengas solo vas a consola y tecleas

$ java -jar robocode-setup-1.2.2-Beta.jar

(o el nombre del archivo que bajaste ) y te va a decir que donde lo instales y blablabla.

Vas a la carpeta donde lo instalo y ejecutas cualquiera de estas instrucciones.

$ ./robocode.sh

$ java -jar robocode.jar

Propongo un concurso, no es difícil hacer el robot, de hecho no necesitas saber JAVA, que opinan?

Aquí una imagen.

ROBOCODE IN UBUNTU DAPPER