martes, 5 de agosto de 2008

OpenBSD en UltraSparc (error: Fast Data Access MMU Miss)

Como parte del ramo Sistema Operativo se me encargo la tarea de instalar aquel sistema para ser usado como Corta Fuego. El primer problema fue encontrarme con una BIOS totalmente distinta a lo que estaba acostumbrado, para entrar a ella se debe presionar STOP+A. La BIOS se llama OpenBOOT y esta basada en comandos. Para poder arrancar por la unidad de cd se debe ejecutar boot cdrom.

El problema que tuve fue dejarme llevar por lo que me entregaron (una versión de OpenBSD de 32 bits para SPARC) por lo que al momento de hacer "boot cdrom" desde la OpenBOOT me arrojaba el siguiente error: Fast Data Access MMU Miss . Esto era por que a pesar que cueste creer por su antiguedad (167 Mhz , 256 Ram ) es un equipo de 64 bit.

Entonces todo se reduce en:
  1. Bajar la versión 4.4 o alguna otra (al menos a mi me funciono la 4.4 Revisa especificaciones) 64 bits para SPARC (install44.iso, busca ese archivo en las fuentes desde www.openbsd.org, viene listo para quemarlo en cd).
  2. STOP+A
  3. boot cdrom
  4. Saber como instalar OpenBSD y en google podrás encontrar varias guias de como hacerlo, pero te dejo este para una versión anterior es casi lo mismo.
Bye suerte !

domingo, 3 de agosto de 2008

Eliminar elementos en panelSeries IceFace ( jsf )

Bueno... como continuación del POST de mi amigo Felipe en referencia a como eliminar elementos de un panelSeries en IceFaces les dejo el fruto de aquella tarde de busqueda en el siempre fiel amigo Google.

Aqui pueden descargar el proyecto, realizado con Netbeans 6.1 , servidor Tomcat... Descarga el Proyecto

Comenzemos por decir que nuestro proyecto esta compuesto por
  • Dos beans (Usuario y PosiblesAmigos, que es una lista de Usuarios).
  • La pagina (welcomeJSF.jsp)
  • Y nuestro faces-config.xml
Primero creamos nuestros beans (que no son mas que dos clases java comunes y corrientes). En el proyecto adjunto estas clases se encuentran en el paquete "beans".

Lo importante del asunto esta en la clase PosiblesAmigos y en el metodo borrar ya que este sera el encargado de eliminar el elemento del panelSeries, y para esto solo basta con eliminarlo de la lista, esto lo logramos capturando el compomente luego el objeto seleccionado con getRowData(), este metodo retorna un Objeto por lo que hacemos un Cast por el objeto deseado, en este caso Usuario. Luego buscamos el objeto en la lista y lo borramos con remove.


public void borrar(ActionEvent evento){
UIComponent panelSeries = evento.getComponent().findComponent("listaPosiblesAmigos");
Usuario usuario = (Usuario) ((UIData) panelSeries).getRowData();
int aBorrar =listaPosiblesAmigos.indexOf(usuario);
listaPosiblesAmigos.remove(aBorrar);
}

Luego en el archivo faces-config.xml creamos los dos porotos ("beans"), con el fin de poderlos usar en nuestra aplicación, para ello agregamos las siguientes lineas.


<managed-bean>
   <managed-bean-name>Usuario</managed-bean-name>
   <managed-bean-class>beans.Usuario</managed-bean-class>
   <managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
   <managed-bean-name>PosiblesAmigos</managed-bean-name>
   <managed-bean-class>beans.PosiblesAmigos</managed-bean-class>
   <managed-bean-scope>request</managed-bean-scope>
</managed-bean>


Esto quiere decir que creamos un bean llamado Usuario (managed-bean-name) de la clase Usuario que se encuentra en el paquete beans (managed-bean-class) y que sera un bean de respuesta (request, managed-bean-scope). Lo mismo con PosiblesUsuarios...

Bueno y luego pasamos a implementar la parte visual de todo, la pagina. Aquello esta implementado en welcomeJFS.jsp

Bueno la idea aqui es mostrar una serie de Posibles Amigos que estan especificados en la clase "PosiblesAmigos". Para ello hacemos uso del beans PosiblesAmigos, podriamos cambiar el nombre del beans modificando en faces-config.xml en el tag .


<ice:form>
  <ice:panelSeries id="listaPosiblesAmigos" value="#{PosiblesAmigos.listaPosiblesAmigos}" var="posibleAmigo" style="float:left">
   ...
   <ice:commandButton value="Delete" type="submit" actionListener="#{PosiblesAmigos.borrar}" />
   ...
  </ice:panelSeries>
</ice:form>



Revizemos:
  • id="listaPosiblesAmigos". Lo usaremos para recuperar el evento al momento de querer eliminar un elemento de esta lista.
  • value="#{PosiblesAmigos.listaPosiblesAmigos}". Hacemos uso del bean PosiblesAmigos y de su atributo listaPosiblesAmigos que es una lista de Usuarios.
  • var="posibleAmigo". Pasaria a ser cada elemento de la lista listaPosiblesAmigos que es un Usuario.
Entonces para ver los datos de cada posible amigo (Usuario) hacemos uso de la variable "posibleAmigo", y para hacer uso de los atributos y metodos del bean PosiblesAmigos seguimos con el mismo nombre de variable ("#{PosiblesAmigos.borrar}" ), no olvidar el detalle del actionListener.

Espero les alla servido y quedado claro, la verdad es que es mi primera entrega y dudo sea perfecta.

Hasta la proxima.