Usa bloqueador Solar
Aún recibiendo el NullPointerException de Java
Oracle, revela los planes de productos Open Source de Sun
En Abril de 2009 se anunció la adquisición de Sun por parte de Oracle, muchos nos sorprendió la capacidad y el poder de inversión de Oracle; desde eso ha venido mucho análisis y espectativa de los productos Open Source abanderados por Sun, como Java, Netbeans, OpenSolaris entre otros.
Hoy he visto un documento que revela los planes de algunos de estos productos, a continuación mencionaré en forma breve:
Acelerar la inversión y la innovación en Java:
Oracle Planea acelerar la inversión en la plataforma Java para beneficio de sus clientes y la comunidad Java.
Así también quieren comprometerse mas con la comunidad que hace que Java sea ubicuo, una plataforma innovativa alrededor de los estándares abiertos.
¿Qué planea Oracle para Solaris?
Oracle planea invertir mas dinero en Solaris del que invertía Sun.
Las capacidades del Sistema Operativo Solaris lo hacen lider en desempeño, escalabilidad, confiabilidad y seguridad, todos estos son requerimientos de los clientes.
Que está planeando Oracle para el servidor empresarial Glassfish, después que la transacción termine?
Oracle planea continuar desarrollando Glassfish como una implementación Open Source de la versión empresarial de Java (Java EE), soportando activamente la comunidad de Glassfish.
¿Qué planea Oracle para Netbeans?
Se espera que Netbeans sea una opción Open Source y complemente JDeveloper y Oracle Pack for Eclipse.
¿Qué planea Oracle para MySQL?
Oracle planea invertir mas dinero en MySQL de lo que invertía Sun.
Oracle Planea integrar MySQL a su suite de producto de Base de Datos.
¿Que hay de Linux?
Oracle aún continua con su compromiso con el Sistema Operativo Linux y planea continuar desarrollando y mejorando Linux.
Enlace del documento: http://www.oracle.com/ocom/groups/public/documents/webcontent/038563.pdf
Jornadas de Robótica y seguridad Universidad de Manizales
En días pasados se celebro en la universidad de Manizales las Jornadas de Robotica y Seguridad en la universidad de Manizales.
El evento contó con la asistencia de varios colegios de Manizales, como siempre muchos se mostrarón interesados otros no tanto, pero en si la asistencia fue bastante.
Como todo buen metido que soy, fuí me dí el pantallazo, tomé fotos y realizé algunas entrevistas que compartire con ustedes, espero les guste.
Entrevista Expositor Robótica
JP: Me encuentro en este momento con Leonardo Velasquez, quien presenta una exposición de robotica, con dos robots muy interesantes que juegan fulbol, se barren, hacen chilenas
.
Por favor Leonardo Hablanos del proyecto danos una introducción:
LV: Bueno, muy buenos días, estamos trabajano en un proyecto de robótica acá en la Universidad de Manizales, nosotros empezamos con un semillero de investigación que es de Robótica virtual con el profesor Luis Carlos Correa; el realizó un contacto con una compañera de la maestría que esta realizando con una empleada de la Fundación Luker, quien fue el contacto para un evento regional y local de Robótica, entonces allí se realizó contacto con la Fundación Global que es quien nos hace la dotación de los Robots y las partes y nosotros nos encargamos de ensamblar todo esto. Entonces los colegios privados realizarón un evento en el Centro Comercial Sancancio y nosotros estamos trabajando con los colegios públicos a quienes la alcaldía y la gobernación los dotó de unos kit de robotica básico, nosotros vamos a apadrinar los colegios del área urbana y rural.
JP: Como fue el ensamble y desarrollo de los robots.
LV: El ensamble fue muy sencillo, consiste en partes metálicas y un microcontrolador que ya viene con todos los dispositivos de la conexión de radiocontrol y programable, esto esto se ensambla con los materiales que inicialmente nos entregan, despúes ya juega la parte de creatividad y capacidad de diseño de cada uno, con los piñones, la fuerza que tendrán, si tendrá velocidad, si tendrá brazos.
JP: ¿Qué proyectos esperan desarrollar como grupo de trabajo desde la Universidad?
LV: Como grupo de trabajo, este es un abre bocas del semillero de investigación de robótica virtual, ¿por qué?, porque nosotros entramos a manejar la parte de investigación y de recopilación de información, ahora tenemos mas conceptualizado lo que es un robot, que lo hemos manejado y lo hemos tratado, la parte que sigue es la implementación virtual de los robots, es decir, que podamos modelar en 3D un laboratorio que todo lo que realizemos en este se pueda controlar con bluetooth o por algún medio inhalambrico, entonces tenemos el componente virtual, la parte física, unir los dos y ya podamos implementar, por decir en empresas que no vayan tanto a la prueba y el error, sino que modelen en 3D y simulen ya vayan a la fija, y no compren partes innecesarias.
JP: ¿Cúal es su papel en el proyecto de robótica extrema con la alcaldía.
LV: Nosotros apoyamos a los colegios públicos que recibieron el kit esta semana, vamos a los colegios, que son alrededor de 20; destinamos mínimo 2 horas semanales, nos reunimos con el grupo de estudiantes que el colegio destine para concursar y el docente que los va a acompañar, nosotros los asesoramos con el ensamble y la parte mecánica y la programación.
JP: ¿Cúal es el futuro de la robótica en Colombia?
LV: En este momento, en la Universidad de Manizales somos alrededor de 10 integrantes, que estamos para apoyar a los colegios, encontramos mucho talento, y nos hemos dado cuenta que otras Universidades de la ciudad también tienen su grupo de Robótica; hay un evento que patrocina la Fundación Global, viajaron a Estados Unidos a la competencia mundial, donde hacen alianzas con otros países y compiten con otras alianzas, fue representación de un pueblo llamado Mira Flores, no ganaron el primer puesto, pero obtuvieron premios por diseño y funcionalidad del robot que llevaron en ese entonces.
La parte de programación de los robots, ya toca evaluar que componentes se utilizarán, porque en este momento hay mucho lenguaje de programación, porque hay que revisar si es necesario realizar un compilador nuevo para realizar la programación de forma mas libre, actualmente hay muchos microcontroladores con un lenguaje base que son muy amarrados y no ofrecen libertad para el programador; respecto al futuro de la Robótica en Colombia, estamos empezando pero esta avanzando muy bien.
JP: Leonardo, muchas gracias, siga haciendo goles con los robots.
Expositor Video Juegos para la educación
Julián Andrés Largo, nos muestra su iniciativa del uso de video juegos para la educación.
JP: ¿Por qué utilizar video juegos para aprender?
JA: primero que todo, es una forma divertida de aplicar todos los conocimientos que se adquieren, sobre todo en programacion, me gustaria resaltar que la animacion digital tambien entra a formar parte de ese mundo de entretenimiento digital.
JP: ¿Hacia que plataforma desean desarrollar?
JA: es todo un recorrido que se tiene que hacer al principio nos enfocamos en juegos de java para celulares de gama media y baja con poca resolucion y capacidad de procesamiento, tambien en juegos de flash para la web que son tambien sencillos de realizar, al mismo tiempo de entender la logica de los juegos iremos iniciando el estudio de motores robustos para desarrollo de juegos para PC y el objetivo principal seria incursionar en consolas también.
JP: ¿En Colombia, que dificultades se puede presentar en la implementación de este tipo de metodologías?
JA: Primero la desconfianza de la mayoria de adultos hacia la palabra videojuego la consideran falta de seriedad.
segundo como es un mercado apenas en surgimiento en colombia el gobierno todavia no tiene un plan de desarrollo para este sector aunque ya se le esta trabajando segun conferencia vista en el CNEIS 2009 en barranquilla con un enviado gobierno nacional.
JP: ¿Qué quieres lograr con el semillero para la región ?
JA: El semillero se convertira en punto de partida de una factoria de videojuegos a nivel local y obviamente tambien ervira como refencia para una comunidad de desarrolladores de videojuegos ya que en el eje cafetero todavia esta muy poco concreto el asunto.
JP: ¿Cúal es tu video juego favorito?
JA: Es duro de decir la verdad juego mucho y principalmente RPG pero en este momento estoy dedicado a un juego en linea llamado Silkroad Online que es un MMORPG batante divertido basado en la hitoria de la antigua ruta de la eda que abarcaba desde china hasta europa oriental.
Gedit como un IDE
Gedit es el editor por defecto que trae Gnome.
Gedit tiene tareas básicas como resalto de sintaxis de varios lenguajes de programación, como C, C#, Java, Python entre otros, yo lo uso con frecuencia para editar fuente.
Hace poco descubrí muchas utilidades que ofrece, pero esto que ví realmente me dejó descrestado, la posibilidad de personalizar Gedit a tal punto que es posible navegar entre las clases que realizo en Java, el plugin es llamado gedit-classbrowser, se puede descargar desde http://www.stambouliote.de/projects/gedit_plugins.html, la instalación resultó ser sencilla:
Habilité el navegador de archivos de gedit, que me ubica un panel lateral para navegar entre los archivos del sistema.
Despúes de descargar el plugin lo descomprimí y renombre la carpeta a classbrowser.
Despúes de esto ubiqué el contenido al interior de la carpeta en ‘/usr/lib64/gedit-2/plugins‘; es necesario activar el plugin:
En la barra de herramientas: Editar -> Editar -> Preferencias [Complementos] y activar el plugin de Class Browser.
pero al arrancar Gedit en consola, me dí cuenta que solicitaba el ctag, no lo encontraba y no navegaba por las clases que abria, así que instalé el paquete:
# yum install ctags -y
Ya con esto el plugin funciona.
Pd: El truco lo ví en : http://byroncorrales.blogspot.com/2009/07/transformando-gedit-en-un-ide-tu-medida.html
Annotation @Override, Polimorfismo, Herencia
Ahora ando aprendiendo Annotations en Java.
Leyendo la función del annotation @Override, consiste en que si la clase Padre y la hija tienen un método con el mismo nombre, con este annotation no hace una sobre carga del método sino que lo redifine usando el método de la clase Hija, al fin y al cabo esa clase es la que usa el annotation.
Haciendo un ejercicio con una clase base ‘Parent’ y otra clase ‘Child’ que hereda, en ambas clases hay solo un método llamado ‘doWork()’ pero que imprimen distintos mensajes, la clase hija ‘Child’ declara un annotation ‘@Override’ obtuve mensjaes de error y comportamientos no deseados, moleste mucho con las clases y tenia esto:
// Clase Parent.java
class Parent {
public static void doWork ()
{
System.out.println (” Padre”);
}
}// Clase Child
class Child extends Parent {
@Override –> Acá uso el annotation para redefinir el método de la clase Padre
public static void doWork ()
{System.out.println (” Hijo”);
}
public static void main (String args[])
{
Parent niño = new Child (); // Polimorfismo, un Child es de tipo Parent, por eso es posible, no aplica a la inversa
Child niña = new Child ();niño.doWork ();
niña.doWork ();
}
}Al compilar la clase ‘Child’ obtenia este mensaje de error:
Child.java:5: method does not override or implement a method from a supertype
@Override
^
1 error
Si comentaba la línea del anotation podia compilar y obtenía una salida no deseada:
$ java Child
Padre
Hijo
Esto que significa?, que no esta funcionando el polimorfismo, mucho menos una sobrecarga de método, la salida que debo obtener es en ambos casos Hijo Hijo, no debe imprimir en ningún momento el texto Padre, despúes de reventar cabeza un rato, descubrí el motivo:
Los métodos static como son los métodos doWork() de las dos clases son métodos de Clase, no de instancia, es decir, no están asociados al objeto instanciado (Child) sino a la clase, así cree n cantidad de objetos de tipo ‘Child’, siempre existirá ese método por la clase ‘Parent’, por eso cuando el objeto niño llama el método doWork() no hace uso del método de un objeto que sería de tipo ‘Child’ sino que usa el método de dicha clase.
Por esa razón no hay polimorfismo, y obtengo el error al compilar con el annotation ‘@Override’.
Solución, quitar la palabra static de los métodos:
// Clase Parent.java
class Parent {
public void doWork () // Sin static
{
System.out.println (” Padre”);
}
}// Clase Child
class Child extends Parent {
@Override
public void doWork () // Sin static
{
System.out.println (” Hijo”);
}
public static void main (String args[])
{
Parent niño = new Child (); // Polimorfismo, un Child es de tipo Parent, por eso es posible, no aplica a la inversa
Child niña = new Child ();niño.doWork ();
niña.doWork ();
}
}
$ java Child
Hijo
Hijo
Pd: Creo que este post esta muy aburrido.
Eliminar Kernel viejos en Fedora
Saludos.
Desde que tengo Fedora 11, en dos ocasiones se ha hecho actualización de Kernel; ahora estoy con ‘2.6.30.5-43.fc11.x86_64′. Siempre que cambio kernel debo reinstalar la tarjeta NVidia, y eso me da mamera, prefiero editar el archivo ‘/boot/grub/menu.lst’ y dejar que arranque por el kernel que tiene instalado la Tarjeta envidia
.
Ahora decidí habilitar el kernel mas último e instalar la tarjeta de video en ese kernel, inspirado por un post en DiarioLinux, en ese post lo hace desde Ubuntu, despúes me dí a la tarea de desinstalar los Kernel anteriores en fedora, a continuación los pasos, eso si con pelo en pecho y en línea de comandos:
rpm -qa | grep 2.6
kernel-2.6.29.6-217.2.7.fc11.x86_64
avant-window-navigator-0.3.2-6.fc11.x86_64
libtool-ltdl-2.2.6-11.fc11.1.x86_64
xorg-x11-xauth-1.0.2-6.fc11.x86_64
gnutls-2.6.6-1.fc11.x86_64
SDL_image-1.2.6-7.fc11.x86_64
python-2.6-9.fc11.x86_64
kernel-2.6.30.5-43.fc11.x86_64
cjkuni-uming-fonts-0.2.20080216.1-26.fc11.noarch
libmpcdec-1.2.6-5.fc11.x86_64
hal-libs-0.5.12-29.20090226git.fc11.x86_64
libglade2-2.6.4-1.fc11.x86_64
hal-0.5.12-29.20090226git.fc11.x86_64
kernel-firmware-2.6.30.5-43.fc11.noarch
psmisc-22.6-9.fc11.x86_64
audiofile-0.2.6-10.fc11.x86_64
gnutls-2.6.6-1.fc11.i586
im-chooser-1.2.6-3.fc11.x86_64
python-libs-2.6-9.fc11.x86_64
xorg-x11-drv-vmmouse-12.6.4-1.fc11.x86_64
gimp-libs-2.6.7-2.fc11.x86_64
iproute-2.6.29-2.fc11.x86_64
libtextcat-2.2-6.fc11.x86_64
kernel-devel-2.6.30.5-43.fc11.x86_64
udev-extras-20090226-0.5.20090302git.fc11.x86_64
gimp-2.6.7-2.fc11.x86_64
gimp-help-browser-2.6.7-2.fc11.x86_64
pidgin-2.6.2-1.fc11.x86_64
kernel-devel-2.6.29.6-217.2.16.fc11.x86_64
kernel-2.6.29.6-217.2.16.fc11.x86_64
cjkuni-ukai-fonts-0.2.20080216.1-26.fc11.noarch
ptlib-2.6.4-2.fc11.x86_64
kernel-headers-2.6.30.5-43.fc11.x86_64
pygtksourceview-2.6.0-1.fc11.x86_64
hunspell-en-0.20090216-2.fc11.noarch
libarchive-2.6.2-1.fc11.x86_64
kernel-devel-2.6.29.6-217.2.7.fc11.x86_64
Los paquetes necesarios para desinstalar son los que estan en Bold, así:
# yum remove kernel-2.6.2*
# yum remove kernel-devel-2.6.2*
Así remueve el kernel anterior al 2.6.30, lo que falta es editar el grub para eliminar las líneas de kernel anteriores
Fail2ban
En una conversacion que comenzó manera no usual con otro administrador de red (http://ik4ros.blogspot.com/)me comentó de un paquete llamado Fail2ban; fail2ban es un escaneador de logs como del apache o ssh y banea las IPs que origina muchas contraseñas fallidas.
Para instalar y configurar fail2ban en Fedora 11:
# yum install fail2ban
Configuramos las ips que nunca tendrán rechazo por fail2ban, es decir, las que siempre podrán autenticarse:
# vi /etc/fail2ban/jail.conf
Se busca la línea que contenga ‘ignoreip’ y se edita con las ips que quiera autenticar sin problema:
# “ignoreip” can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
# ban a host which matches an address in this list. Several addresses can be
# defined using space separator.
ignoreip = 127.0.0.1 192.168.X.X -> IPs separada por espacios
Otro parámetro importante es el tiempo de baneado, es el tiempo en que una ip dura rechazada, por defecto esta a 600 segundos (10 minutos), considero conveniente subir el tiempo de baneo.
# “bantime” is the number of seconds that a host is banned.
bantime = 3600
Ahora si editemos la configuración de ssh, es el único que esta habilitado por defecto:
[ssh-iptables]
enabled = true -> Habilita este servicio
filter = sshd -> Cual es el demonio
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=root, sender=fail2ban@mail.com] -> A quien envia notifiación y quien la envia
logpath = /var/log/secure -> Este es el log que usa SSH en Fedora / RHEL / CentOS
maxretry = 3 -> Número de intentos que se puede realizar antes de banear
Ahora lo que sigue es reiniciar el fail2ban y probar.
# service fail2ban restart
Podemos ver las reglas IPTables ahora con el chain fail2ban:
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-SSH tcp – anywhere anywhere tcp dpt:ssh
ACCEPT all – anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp – anywhere anywhere
ACCEPT all – anywhere anywhere
ACCEPT tcp – anywhere anywhere state NEW tcp dpt:ssh
REJECT all – anywhere anywhere reject-with icmp-host-prohibitedChain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all – anywhere anywhere reject-with icmp-host-prohibitedChain OUTPUT (policy ACCEPT)
target prot opt source destinationChain fail2ban-SSH (1 references)
target prot opt source destination
RETURN all – anywhere anywhere
Es necesario activar el servicio para que arranque automáticamente cuando inicie el sistema:
# chkconfig –levels 2345 fail2ban on









