lunes, 30 de junio de 2008

Ultraportatil Hackintosh

La noticia de Applesfera donde anuncian que se ha podido ejecutar MacOSX en un ultraportatil, concretamente en un MSI Wind (cuya salida desede hace un par de días se sabe que se retrasará) me ha recordado esto:

Es gracioso ver como lo que para unos es una novedad, para otros puede ser un deja vú de hace más de medio año. Lo que no se haya intentado ya en un EeePC 701 (por cierto el del video es idéntico al mío) no creo que se intente.

No me canso de agradecerle Asus lo que nos ha dado con el EeePC 701, larga vida al mito!!!

Pleo esta de aniversario



Pleo es un robot con apariencia de dinosaurio, años luz de distancia de roboraptor y sus hermanos. De apariencia mucho más realista y autonomo, no es radio control, es la mascota sintética con mejor relación calidad precio en la actualidad. El motivo es que actualmente están de celebración, y podemos adquirir este magnífico robot por poco mas de 150€ (ahorrandonos 100€)

http://www.pleoworld.com/

Sin duda alguna este es el mejor robot comercial que he visto hasta el momento junto al iSobot.

Juego interesante para Wiiware USA

Nuevo juego interesante para el canal wiiware, que a este paso va a superar a los juegos disponibles en tiendas. La verdad es que esto no sería para nada dificil, viendo las auténticas chapuzas que hacen las compañías para las consolas de Nintendo. Saben que con poco esfuerzo su software se venderá, y es por esto que invierten bastante poco en el desarrollo para las máquinas más vendidas hasta la fecha.

miércoles, 25 de junio de 2008

Yoigo dá un paso atrás.

Yoigo siguiendo su política de "donde dije digo, digo Diego", se vuelve a echar atrás en los avances revolucionarios que sus tarifas causaban en el mercado. Lo primero fue restringir esas llamadas a 0€ entre todos los yoigos a únicamente una hora diaria, ahora es el turno del 3G.

La compañia de la verdad verdadera, esta resultando ser de lo mas mentirosa, dado que hay un rumor que dice que:

Yoigo, lanzó la primera tarifa de datos para móviles asequible en España, un año y medio después dá un paso atrás. La nueva tarifa de datos, complementará a la actual de 1.20 €/día que se pagaba como máximo, incluye 1GB de tráfico 3G (384Kbps) por 25 €/mes. Superado el primer GB disminuye la velocidad a 128Kbps y se cobran 0,015 eur por MB adicional, con un máximo de 70€ de gasto mensual; pero a diferencia del resto de operadoras aquí se corta la conexión cuando se llega a ese tope (es decir solo se podrá descargar 4GB al mes). Además ofrece un módem USB por 39€, sin contrato de permanencia, todos los precios +IVA.


Nuevos juegos para el canal Wiiware

La lista de juegos del canal Wiiware de la consola de Nintendo ha aumentado con 3 títulos:



-Cocoto Fishing Master


-Block Breaker Deluxe


-Actionloop Twist

Nokia compra Symbian


Hace tiempo que se viene especulando que Nokia abandonaría la plataforma Symbian, que empezaría a sacar móviles con SO Windows Mobile, que su apoyo a Linux podría hacer que migraran sus terminales a este SO... Todo queda aclarado con la compra de Symbian por parte de Nokia (de la que ya era en parte propietario).

Linux ya solo será, en su versión MAEMO, el SO de los MID de la marca firlandesa (por cierto estos dispositivos son bastante buenos y recomendables N800, N770...)

Con esta compra también cambia el nombre a fundación Symbian, y se han aunado los principales usuarios de este SO, Nokia, Sony Ericson, Motorola y NTT DoCoMo para crear una plataforma comun para finalmente aunar en uno solo los S60, UIQ y MOAP.

Curiosidades: Windows Vista y requisitos de sistema


Hace 2 años que "disfruto" de un DELL Inspiron 6400 equipado con un procesador Core Duo T2400 a 1'8Ghz, tarjeta gráfica X1400 de 256MB de memoria de video HiperMemoryT (esto quiere decir que usa 128MB dedicados y otros 128MB tomados del sistema con capacidad de tomar más en función de las necesidades), HDD 100GB SATA II, y memoria RAM 1024MB DDR2 533Mhz. Este equipo trae de fábrica su pegatina de preparado para windows Vista.

Ahora bien, este equipo ahora no es nada del otro mundo, pero cuando salio era de lo mejor del mercado. Mi sorpresa fue cuando al instalar el windows vista la evaluación con la experiencia windows me dio una puntuación de 3'6!!!! No podía creer que un equipo de 1200€ con el último procesador y una gráfica de media-alta diera una nota tan baja. Realmente parte de la baja puntuación era porque tenía uno de los dos núcleos del procesador desactivado, por lo que me dispuse a activarlo desde la BIOS. Al volver a evaluar el equipo, la puntuación aumento quedando en 3'7!!!!!!! POR DIOS, ESTE WINDOWS CON 2 PROCESADORES SOLO MEJORA EN 0'1 PUNTOSSSS!!!!!!!!

Esto es cosa del pasado, ya que volví a XP por infinidad de motivos que hacen al vista la peor de las opciones.

Aquí no acaba la cosa, hace 2 días amplié el portátil a 2'5 GB de memoria RAM del tipo DDR2 a 667MHz y me dispuse a reinstalar el vista con la intención de ver cual es la mejora que tendría mi equipo en la evaluación. Bien, nueva sorpresa, la puntuación aumento ni más ni menos que 0, sii siiii 0!!!!! Es increible como aumentando la velocidad de la RAM, y más que duplicando la cantidad, no se ve afectado en NADA.

El Dell E, si sigue la filosofia Asus EeePC


Con el exito del asus EeePC 701, han surgido cientos de modelos de empresas distintas que quieres ocupar el segmento antaño abandonado de los subnotebook. Todos hacen promesas y las discursiones sobre cual es mejor y cual es peor se extienden por los foros.

Lo cierto es que después del 701, ningún otro modelo ha conseguido alcanzar los objetivos reales de la filosofía que hizo famoso al Asus, incluyendo la versión 900 del mismo equipo. Las premisas mas importantes eran:

1º Muy reducido tamaño.
2º Precios de risa.
3º Buenas prestaciones.
4º Materiales de calidad.

Ahora, el HP 2133, el MSI Wind, EeePC 900... infinidad de modelos salen buscando continuar con el éxito del EeePC primigenio, pero realmente ninguno cumple con estos 4 factores importantísimos, y aun así la demanda aumenta. Cuando consiguen buen rendimiento, el precio se dispara, cuando consiguen precios adecuados, el rendimiento se resiente, cuando el equipo parece equilibrado pero siempre por encima del 701 se incrementa el tamaño.

Pues parece que por fin el Dell E será el encargado de volver a repetir formula, a expensas de la calidad de materiales (insuperables en el asus sin duda). El precio que se maneja para este subnotebook con procesador Atom, 3USB, lector de tarjetas, y pantalla de 8,9" (esperemos que el de 1,6GHz dado que es el que en rendimiento equivale al Celeron 900Mhz de los 701) es de 299$ al cambio 199€. Es evidente que con estas características incluso se supera al mítico EeePC original.

Microsoft alarga la vida del XP

Dada la baja demanda del windows Vista por parte de los usuarios, ya llevo a la empresa americana a adelantar sus trabajos en Windows 7 (el cual compartirá interfaz gráfica con este último) Ahora, dado que la mayoría de sus clientes tanto empresas como particulares, siguen con XP, se han visto obligados a ampliar el soporte técnico para este SO hasta el 2014. Lo cierto es que con la explosión de los subnotebooks de bajo precio, la propia Microsoft ha fomentado el uso de XP para tratar de evitar la extensión de Linux, por lo que esta decisión es más que lógica.
Notese, que esta imagen es del famoso OLPC, cuyos precios ridículos eran motivados por el uso de el Linux sugar entre otros factores. Si microsoft, ha conseguido esto serían algo contradictorio el eliminar el soporte de XP.

viernes, 20 de junio de 2008

Nintendo y sus juegos prácticos

Nintendo ha sacado hoy a la venta un nuevo "juego" revolucionario en el camino de los englishtraining, braintraining, wiifit... Se trata de "cocina conmigo" es un juego dedicado a ayudar a los jovenes y no tan jovenes en sus labores caseras. Realmente, más que un juego es una base de datos de recetas de todo el mundo con instrucciones para la preparación de los platos. También se puede utilizar para que te recomiende un plato en función de los ingredientes de los que dispongas.

Incluye temporizador para controlar que la comida este en su punto, y gracias al manejo del puntero y del micrófono, no será necesario tocar la consola una vez comiences a meter mano.

Kroll, juego español para iPhone

De los creadores del magnífico ONE (juego de lucha de la n-gage) llega el primer juego para el iPhone. Su pinta es impresionante, es un juego hecho por españoles y esta muy por encima de bastante de los juegos ya conocidos para consolas portatiles de primer orden. Parece no solo que el iPhone tiene capacidad para hacer cosas muy buenas, sino que además se va a potenciar esta característica en el móvil de Apple como ya mencione en otra ocasión.

No se sabe como serán los controles, si hará uso de un iControlPad o de la propia pantalla.

Un video:

jueves, 19 de junio de 2008

iTunes, Zas! en toda la boca, SGAE.


No he podido contenerme. iTunes alcanza los 5.000 millones de canciones descargadas, y todas pagadas señores de la SGAE. Lo mejor de todo es que sus cifras son incontestables incluso en el ámbito de las películas. 50.000 películas alquilan DIARIAMENTE. Y esto es todo de autores de calidad que no viven de subvenciones estatales para después crear cosas que no verían/escucharían ni sus pareientes más cercanos por el amor que les tienen.

Lo que sería un bombazo, sería que se confirmaran los rumores surgidos hace unos meses sobre la posibilidad de la salida de una suscripción de por vida para descargas ilimitadas de música por 100€


SGAE, no tenéis escusa.

La SGAE nos la vuelve a clavar.


ORDEN PRE/1743/2008, de 18 de junio, por la que se establece la relación de equipos, aparatos y soportes materiales sujetos al pago de la compensación equitativa por copia privada, las cantidades aplicables a cada uno de ellos y la distribución entre las diferentes modalidades de reproducción.

Ya hay cannon digital para ABSOLUTAMENTE TODO HARDWARE capaz de crear o reproducir copia privada. Esto quiere decir que tendremos que pagar un plus a la SGAE por impresoras, reproductores de video, grabadoras, discos duros... no solo por los CDs o DVD como hasta ahora.

Se acabo lo de los CDs, ahora pagaremos por todo, y todavía podemos dar gracias a Dios por no tener que pagar un cannon en el ADSL en función del ancho de banda como ellos propusieron hace algún tiempo. Que paguen justos por pecadores!!! dirá el Bautista y compañía.

La constitución es un papel listo para usarlo para higiene íntima. No hay presunción de inocencia que valga, y pagando previamente por un "delito" (compartir música no es delito) que no hemos cometido, tampoco nos da el derecho a cometerlo. ¿Pero esto qué es? Don Ramon del Valle-Inclán estará contento del término que tan bien acuño.

No termina todo aquí, el señor Jose Luis Borau (nuevo presidente de la SGAE) ha superado a Ramoncin, Luis Eduardo Bautista, y a todos con lo que ha conseguido. Cobrará miles de millones de euros a los ciudadanos, por derechos de autores que no pertenecen a la SGAE. Cobrará por autores Franceses, NorteAmericanos, Tailandeses, españoles pertenecientes a otras sociedades de autores.... por autores que están muertos, como los derechos de Kurtcobain etc etc etc. Cobrará por cine, por software, por todo, la cuestion es cobrar, cobrar y cobrar.

Lo gracioso es que después de todo esto, si tu eres un autor y has pagado por el CD, por el disco duro del ordenador, por la grabadora de CD y por tu ordenador, nada de esto significa que tu trabajo ya este protegido por la SGAE y que parte de estos beneficios del cannon se destine a tu cuenta. Pero.. ¿esto que importa? los autores cobran de la SGAE una ridiculez, y los cantantes ni os cuento, ganan el grueso de sus "sueldos" por conciertos y no CDs vendidos ya que de estos viven casi en su totalidad las discográficas.

Un poco de reflexión. Realmente estos personajes piensan que todo lo que se descarga habrían sido potenciales ventas? La basura que fabrica OT anualmente no merece ni que se les escuche, pero si los fans un día quieren descargar la canción de la gala de la semana anterior, esto es una pérdida de dinero.

1º El no vender un disco, no es una perdida sino dejar de ganar.

2º Las descargas de internet no significan potenciales compras, si alguien quiere escuchar como es el nuevo disco del cantante X, en lugar de ir a El corte ingles y pedirle al encargado que te ponga el CD para escucharlo, lo descarga en 5 minutos y lo borra sobre la marcha. Jamás esto debe considerarse como un disco que se ha dejado de vender.

3º ¿Cómo contabilizan el número de descargas?, ¿qué medios tienen para ello, telefonica les dice los GB descargados y ellos los dividen por el peso de una cancion media?, ¿como diferencian si son canciones de la SGAE..?, ¿comó saben si esas canciones son del iTunes y ya se ha pagado por ellas?...

Las preguntas se multiplican, y todo sigue sin tener un sentido. Esta situación lleva a que una persona compre un PC, pagando el cannon por el equipo, este tiene un HDD que también tiene su correspondiente cannon y una grabadora de DVD con otro cannon más y una impresora. Total ha pagado ya 4 veces el "impuesto revolucionario" por un mismo "delito" sin haber cometido. Continuo, ahora se compra un iPod, paga otro cannon (no sabemos si también otro por el HDD interno que tiene), y descarga de la tienda iTunes 10 canciones pagando su precio. Esta persona habrá pagado 5 veces el cannon por unas canciones QUE HA PAGADO, y que para más inri sus autores no pertenecen a la SGAE.

¿Por qué no buscan otro modelo de financiación o de paliar la supuesta "piratería"? sencillamente no les interesa, mientras el gobierno les siga el juego. Pediamos que se modernizaran, pues aquí tenemos modernidad. El soporte óptico esta cediendo terreno en favor de las memorias flash y HDD, pues ¿qué es lo lógico?, renovemos el cannon.

El beneficio brutal obtenido por la SGAE, que ha aumentado sus beneficios a cifras record que no habían vivido nunca en su vida, incluso cuando no había "piratería" y no "perdían" tanto como ahora, no les corta las alas. Pero lo más curioso, es que estamos en la peor época creativa de los autores en toda la historia de España. ¿Donde quedan los años de Mecano, Radio Futura, Nacha pop...? no, ahora que solo hay pura BASURA pero quieren venderla a toda costa. Cuando uno de los grandes de la vieja guardia como Alaska, saca un CD a 10€ y afirma que: "no es de recibo pagar 21€ por un disco", se le veta y retira su trabajo de las tiendas. VERGÜENZA.

martes, 17 de junio de 2008

Microsoft y los rumores.

Esto es un empezar y no acabar. Microsoft a este paso se va a convertir en la compañia de los rumores por excelencia, y esto es signo de que es la que mas espectativas levanta de cara a los videojuegos. Es bueno ver como una compañía que pese a quien pese, le esta dando un lavado de cara total al mercado de videojuegos con calidad y buenos precios.

Recapitulando rumores de los últimos días tenemos:
  • Microsoft compra SEGA-Sammy
  • Microsoft abarata los precios de la Xbox360 (aun mas, cuando ya lo ha hecho 3 veces)
  • Microsoft va a crear una versión de la XTS con lector de bluray
  • Microsoft va a sacar un wiimote para su consola
Ahora tenemos que se supone saldrá al mercado una 360 con HDD de 60GB. Yo sinceramente no me creo nada hasta que no lo vea en el E3.

Que hablen mal o que hablen bien, pero lo bueno es que hablen de ti. Buen sintoma sin duda alguna (aunque muchos estan deseando matar a Microsoft y su consola)

Android

Con el reciente anuncio de la salida del primer móvil con Android al mercado por parte de HTC (Google Dream / HTC Dream), voy a hacer una breve introducción para que todos sepáis de que va todo exactamente.

Android es una plataforma software Java para dispositivos móviles, que incluye un SDK para programación, aplicaciones y un SO que en breve verá la luz. Esta pila de software ideada por Google (quién sino) pretende hacerse un hueco donde ya triunfa Windows Mobile y MacOSX esta empezando a meter cabeza gracias al iPhone.

Supuestamente el enemigo natural y al que quiere eliminar del mapa es al SO de Microsoft, pero por su sencillez de uso, su interfaz, la cantidad y tipo de servicios que trae incluidos, va a ser un muy serio rival para el SO del iPhone. Curiosamente ambos tienen muchas caracteristicas comunes, incluso Android se basa en un kernel Linux 2.6 mientras que el MacOS es un Unix.

Otra novedad de Android es una nueva máquina virtual para Java en dispositivos moviles que parece ser una maravilla. Su nombre es Dalvik, consume mucha menos memoria, admite varias instancias del mismo...

Video:


El HTC Dream aparecerá en el mercado el último trimestre de este año.

Alteran geneticamente un microorganismo para producir petroleo


Unos científicos han modificado genéticamente unos microorganismos de forma que tras ingerir virutas de madera, son capaces de producir crudo refinable.


Uno de los cientificos creadores de dicho milagro, Greg Pal, comenta que el precio de producción de cada barril será de 50$ algo muy por debajo de los 140$ que cuesta a día de hoy, y que en el 2011 habrán puesto su primera fábrica. También parece que la secreción del microorganismo es mucho más ecológica que el método tradicional para obtener crudo, emitiendo menores cantidades de CO2 (lo cual no quiere decir que los coches al consumirlo dejen de producir este elemento contaminante).


Como todo este tipo de avances, hay que tomarlo con excepticismo, no por la veracidad del invento sino por la credibilidad de que llegará hasta nosotros. ¿Cuantas veces hemos visto cosas similares que se han quedado en el camino? Los oscuros intereses que se encuentran en el mercado nadie los conoce, y pese a que esto tiene pinta de ser bastante rentable, no quiere decir que a los actuales grandes compañías les interese.

lunes, 16 de junio de 2008

Estrenamos diseño

He hecho una nueva cabecera para el blog, y modificado la hoja de estilo TicTac green, con la intención de personalizarlo un poco mas.

Los personajes proceden de http://www.myextralife.com/ hechos por Scott Johnson, todo el montaje y modificaciones son mías. Lo cierto es que tenía muy poca idea sobre el uso del GIMP, pero con un poco de práctica se acaban haciendo bastantes cosas con un resultado muy bueno. Da gusto que existan estas aplicaciones OpenSource con tanta calidad, disponibles en varias plataformas (MacOSX, Linux, Windows) e incluso traducidas al castellano.


http://www.gimp.org.es/

Espero que os guste, y espero que el señor Scott no se nos enfade por el prestamo.

domingo, 15 de junio de 2008

Java BinaryTree. part V

When we want to visit all Binarytree's nodes, we need an aditional structure. I have decided to use a list, but can be used others like the set.

Why do we need it? The iterator is a lineal path over a structure whoes returns the next object, but the Binarytree has a special morphology wich allow us cross throw the nodes by three differents paths.

InOrder:

When we visit a node, we process him, our idea is add it to the list. The method is recursive, we call the own function to visit the full tree.

Sourcecode:

private void recorrerInOrden(BinaryTree t,List l){
if ((t==null)||(l==null))
throw new NullPointerException ("No hay arbol que recorrer, o no se puede guardar el recorrido");
//Llamada recursiva hasta que el arbol este vacio para hacer un tratamiento
inOrden
if (!t.isEmpty()){
recorrerInOrden(t.left(),l);
l.add(t.getRoot());
recorrerInOrden(t.right(),l);
}
}

PreOrder:

Sourcecode:

private void recorrerPreOrden(BinaryTree t, List l){
if ((t==null)||(l==null))
throw new NullPointerException ("No hay arbol que recorrer, o no se puede guardar el recorrido");
// Llamada recursiva hasta que el arbol este vacio para hacer un tratamiento PreOrden
if (!t.isEmpty()){
l.add(t.getRoot());
recorrerPreOrden(t.left(),l);
recorrerPreOrden(t.right(),l);
}
}

PostOrder: Sourcecode:
private void recorrerPosOrden(BinaryTree t,
List l){
if ((t==null)||(l==null))
throw new NullPointerException ("No hay arbol que recorrer, o no se puede guardar el recorrido");
// Llamada recursiva hasta que el arbol este vacio para haver un tratamiento PosOrden
if (!t.isEmpty()){
recorrerPosOrden(t.left(),l);
recorrerPosOrden(t.right(),l);
l.add(t.getRoot());
}
}

sábado, 14 de junio de 2008

Novedades en iControlPad

Dado que el iPhone estará entre nosotros en breve, me ha parecido interesante informar a los aficionados a los videojuegos sobre un pad de control que apareció hace poco. Es cierto que el iPhone al tener pantalla multitáctil es fácilmente adaptable para convertirse en mando, pero a costa de visibilidad, y por esto ha surgido la necesidad de crear este tipo de adaptadores.
La novedad esta vez, ha sido un hack del mando de la SNES que lo hace apto para conectarlo al móvil y usarlo en sus emuladores de consolas.

Sin duda, el hardware del iPhone esta capacitado para ser usado como consola portatil, dado que comparte parte de su hardware con el N95 (procesador concretamente) y este forma parte de la nueva plataforma n-gage con gráficos en 3D.

http://www.icontrolpad.com/

El A-GPS



Por fin fue anunciado el iPhone para España con Movistar, y con grandes novedades. Incluirá 3G y A-GPS el cual aun se desconoce si será de pago, pero intuyo que las intenciones de MoviStar es de crujirnos por este servicio (como ya ocurre con las blackberry).

¿Qué es el A-GPS?
Es un sistema de navegación asistida que ya se incluye en algunos nokia como los N95 y 6110, pero mas adelante os sorprenderé un poco.

El invento necesita de que el dispositivo en el que se instala tenga funciones de móvil gsm, ya que mediante la localización del móvil en una u otra célula de la red celular (o sea de la red de coberturas de repetidores) es capaz de localizarte en un lugar concreto (realmente en el radio de cobertura de un repetidor). De esta forma se simplifica el trabajo del procesador y del GPS, agilizandose la puesta en marcha, el recalculo de rutas, evitando problemas de ecos con fachadas etc.

Una mejora sin lugar a dudas, que permite incluso que los programas de navegación no necesiten tener infinitos mapas ocupando memoria en una tarjeta SD, sino que pueden ser transmitidos bajo demanda desde un servidor (bien de la compañía que hizo el navegador, o bien por el operador) con las calles y carreteras del entorno de cada repetidor donde te sitúes.

Pues ahora la sorpresa. Esta "nueva" tecnología tubo un predecesor en los primeros Symbian, gracias a un software que te avisaba cuando te encontrabas dentro del área de cobertura de uno u otro repetidor, pudiendo almacenarlos y de este modo "navegar". El programa en cuestión se llama CallTrack y todavía es posible conseguirlo en algunas webs. También existieron otras versiones anteriores más rudimentarias incluso para el 9110.

Evidentemente estos programas no necesitan de un hardware adicional, pero de la fusión de estos y el GPS tradicional es de donde se puede decir que nació el A-GPS

viernes, 13 de junio de 2008

Rumores Microsoft y SEGA-Sammy


Según parece, Microsoft no se ha cansado de intentar hacerse con la compañía de Sonic y vuelve a la carga tras varios años de su primer intento. Para adquirir la empresa japonesa que ya se fusionó con Sammy (empresa especializada en máquinas pachinco, y desarrolladora de la famosa saga de lucha 2D Guilty Gear) supuestamente ha esperado a uno de los peores momentos económicos que es cierto está viviendo SEGA-Sammy.

Los rumores se están creciendo debido a que en el pasado SEGA ya fue tentada antes de su fusión, y mantuvo muy buenas relaciones con Microsoft haciendo una buena hornada de juegos (la última buena hornada en mi opinión de esta compañia) para la primera versión de Xbox. Es mas, muchos vieron un guiño por parte de la empresa americana con el diseño de esta consola.

Las supuestas negociaciones son lo mejor que le podría pasar a esta grande de las videoconsolas, que ya no es ni una sombra de los que llego a ser y significar. Al convertirse en third party no ha hecho ni la mitad de lo que se esperaba de ella, incluso nos ha dejado sin Shenmue III (una de las mejores sagas de juegos de la historia en todos los aspectos) algo que prometieron, y curiosamente hace poco resurgió otro rumor acerca de su reaparición en la nueva generación de consolas (¿coincidencia?).
Fuente del rumor:

The next step, BinaryTree in Java. part IV

This tutorial is advancing a bit slowly because i have not more free time, but now you can watch a pre-end code.

In the part V i will explain you the InOrder, PreOrder, PosOrder method for construct paths which returns us all the BinaryTree's nodes.

note: The class imported "Lista" can be replaced by ArrayList or LinkedList from java.util

import zapi.list.Lista;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.*;


public class BinaryTree implements Tree {
// ATRIBUTOS
/** Referencias al nodo raiz del arbol */
private Nodo root = null;
/** Informa del número de nodos que tiene el arbol */
private int elementCount = 0;
/** Informa del número de modificaciones estructurales realizadas
* en el arbol desde que se construyo. Sólo aumenta, nunca disminuye */

private int modCount = 0;

// CLASES INTERNAS
/** Clase interna Nodo para implementar el arbol binario.
* Con esta clase se modela los datos que se almacenan en el arbol*/

private class Nodo implements Cloneable {
private Object info;
private Nodo left,right;
/** Constructor con parametros */
public Nodo(Object info, Nodo left, Nodo right) {
super();
this.info = info;
this.left = left;
this.right = right;
}
/** Constructor sin parametros */
public Nodo() {
super();
this.info = null;
this.left = null;
this.right = null;
}
/** Clonador del nodo, al clonar el nodo raiz se clona el arbol completo */
public Object clone() throws CloneNotSupportedException {
Nodo clon=(Nodo)super.clone();
clon.info=getClone(info);
if(left!=null)
clon.left=(Nodo)left.clone();
if(right!=null)
clon.right=(Nodo)right.clone();
return clon;
}
/** Devuelve un clon del objeto recibido como parametro */
private Object getClone(Object o) throws CloneNotSupportedException {
Object clon = null;
try {
Method method = o.getClass().getMethod("clone", null);
clon = method.invoke(o, null);
}
catch (IllegalAccessException ex1) {
throw new CloneNotSupportedException("El metodo clone no es publico (" + ex1.toString() + ")");
} catch (NoSuchMethodException ex2) {
throw new CloneNotSupportedException( "El objeto no implementa la interfaz Cloneable (" + ex2.toString() + ")");
}
catch (InvocationTargetException ex3) {
throw new CloneNotSupportedException( "Error inesperado al llamar al metodo clone (" + ex3.toString() + ")");
}
return clon;
}
}

// METODOS PROPIOS DE LA CLASE BINARYTREE
/** Comprobar que se trata de un nodo hoja del arbol binario */
public boolean isLeaf (){
boolean b=false;
if ( this.isEmpty() == true)
throw new NoSuchElementException ("No hay arbol");
if ((root.left==null)&&(root.right==null))
b=true;
return b;
}
/** Comprueba que el arbol este vacío */
public boolean isEmpty(){
boolean b=false;
if (root==null)
b=true;
return b;
}
/** Añade al arbol otro subarbol como hijo izquierdo o hijo derecho. */
public void set (boolean left, BinaryTree t){
if (t==null)
throw new NullPointerException ("No es posible añadir un arbol vacío");
if ( t.isEmpty() == true)
throw new NoSuchElementException
("No hay arbol");
if (left==true){
root.left=t.root;
elementCount=elementCount+t.size();
}
else
{
root.right=t.root;
elementCount=elementCount+t.size();
}
}
/** Elimina el hijo izquierdo o derecho del arbol */
public void remove (boolean left){
if (this.isEmpty()==true)
throw new NoSuchElementException ("No es posible eliminar elementos");
if (left==true)
root.left=null;
else
root.right=null;
modCount++;
}
/** Sustituye la raiz del arbol por el elemento nuevo */
public void setRoot (Object elem){
if (elem==null)
throw new NullPointerException ("No es posible añadir un elemento a la raíz");
if (this.isEmpty()==true)
throw new NoSuchElementException ("No hay arbol");
root.info=elem;
elementCount++;
modCount++;
}
/** Devuelve la información contenida en la raiz del arbol */
public Object getRoot()
{
if (this.isEmpty()==true)
throw new NoSuchElementException ("No hay arbol");
return this.root.info;
}
/** Devuelve el subarbol izquierdo */
public BinaryTree left()
{
BinaryTree b;
if ((this.isEmpty()==true)||(root.left==null))
throw new NoSuchElementException ("No hay arbol");
b=new BinaryTree();
b.setRoot(this.root.left.info);
//Establecemos la raiz del arbol auxiliar, usando la rama izquierda
b.root.left=this.root.left.left; //Rama izquierda del arbol auxiliar
b.root.right=this.root.left.right; //Rama derecha del arbol auxiliar
return b;
}
/** Devuelve el subarbol derecho */
public BinaryTree right(){
BinaryTree b;
if ((this.isEmpty()==true)||(root.right==null))
throw new NoSuchElementException ("No hay arbol");
b=new BinaryTree();
b.setRoot(this.root.right.info);
//Establecemos la raiz del arbol auxiliar, usando la rama derecha
b.root.left=this.root.right.left; //Rama derecha del arbol auxiliar
b.root.right=this.root.right.right; //Rama izquierda del arbol auxiliar
return b;
}
/** Elimina todos los elementos del arbol */
public void clear (){
elementCount=0;
modCount++;
root=null;
}
/** Indica el tamaño del arbol */
public int size (){
return
elementCount-1;
}
/** Dice si un nodo es igual a otro pasado por parametros */
public boolean equals (Object tree){
if (tree == null)
return false;
if (!(tree instanceof BinaryTree))
return false;
BinaryTree bt = (BinaryTree)tree;
if (bt.size()!=this.size())
return false;
Iterator it1=this.iterator();
Iterator it2=bt.iterator();
boolean igual= true;
while (it1.hasNext()&&igual){
if (!(it1.next().equals(it2.next())))
igual=false;
}
return igual;
}
}

domingo, 1 de junio de 2008

Ya tenemos IBSN

Hay novedades en el blog, y es que ya tenemos código IBSN (Internet Blog Serial Number / Número de Serie de Blogs de Internet) como podeís observar en la columna derecha. Lo conseguí registrandome de forma gratuita en http://ibsn.org/

Gracias a este número con funcionamiento similar al ISBN (International Standard Book Number / Número Internacional Normalizado de Libros) podremos identificar el blog independientemente del soporte en el que se publique.