Como agregar un campo nuevo en OpenbravoPOS

El objetivo de esta entrada es enseñar la forma de añadir un nuevo campo a la venta de productos de Openbravo POS.

Paso1

Se debe añadir el campo a la base de datos en la tabla de products

ALTER TABLE products
      ADD COLUMN min double precision;

Paso2

Editar la clase ProductsEditor (com.openbravo.pos.inventory)

  • Crear una etiqueta y un campo (jLabel14 y jTextField1)
  • Agregar el listener al constructor
jTextField1.addActionListener(dirty);
  • Agegar esta linea al metodo writeValueEOF()
jTextField1.setText(null);
  • Agregar esta linea al metodo writeValueInsert()
jTextField1.setText(null);
  • Agregar esta linea al metodo writeValueEdit()
jTextField1.setText(Formats.STRING.formatValue(myprod[17]));
  • Agregar esta linea al metodo writeValueDelete()
jTextField1.setText(Formats.STRING.formatValue(myprod[17]));
  • Agregar esta linea al metodo createValue()
myprod[71] = jTextField1.getText();

Paso3

Editar la clase DataLogicSales (com.openbravo.pos.forms)

  • Añadir la nueva columna al constructor
new Field(“MIN”, Datas.STRING, Formats.STRING));
  • Cambie estos metodos, añadiendo al final el nuevo campo (min):
// Utilidades de productos
    public final ProductInfoExt getProductInfo(String id) throws BasicException {
        return (ProductInfoExt) new PreparedSentence(s
            , "SELECT ID, REFERENCE, CODE, NAME, ISCOM, ISSCALE, PRICEBUY, PRICESELL, TAXCAT, CATEGORY, ATTRIBUTESET_ID, IMAGE, ATTRIBUTES, MIN " +
              "FROM PRODUCTS WHERE ID = ?"
            , SerializerWriteString.INSTANCE
            , ProductInfoExt.getSerializerRead()).find(id);
    }
    public final ProductInfoExt getProductInfoByCode(String sCode) throws BasicException {
        return (ProductInfoExt) new PreparedSentence(s
            , "SELECT ID, REFERENCE, CODE, NAME, ISCOM, ISSCALE, PRICEBUY, PRICESELL, TAXCAT, CATEGORY, ATTRIBUTESET_ID, IMAGE, ATTRIBUTES, MIN " +
              "FROM PRODUCTS WHERE CODE = ?"
            , SerializerWriteString.INSTANCE
            , ProductInfoExt.getSerializerRead()).find(sCode);
    }
    public final ProductInfoExt getProductInfoByReference(String sReference) throws BasicException {
        return (ProductInfoExt) new PreparedSentence(s
            , "SELECT ID, REFERENCE, CODE, NAME, ISCOM, ISSCALE, PRICEBUY, PRICESELL, TAXCAT, CATEGORY, ATTRIBUTESET_ID, IMAGE, ATTRIBUTES, MIN " +
              "FROM PRODUCTS WHERE REFERENCE = ?"
            , SerializerWriteString.INSTANCE
            , ProductInfoExt.getSerializerRead()).find(sReference);
    }
public List<ProductInfoExt> getProductCatalog(String category) throws BasicException  {
        return new PreparedSentence(s
            , "SELECT P.ID, P.REFERENCE, P.CODE, P.NAME, P.ISCOM, P.ISSCALE, P.PRICEBUY, P.PRICESELL, P.TAXCAT, P.CATEGORY, P.ATTRIBUTESET_ID, P.IMAGE, P.ATTRIBUTES, MIN " +
              "FROM PRODUCTS P, PRODUCTS_CAT O WHERE P.ID = O.PRODUCT AND P.CATEGORY = ? " +
              "ORDER BY O.CATORDER, P.NAME"
            , SerializerWriteString.INSTANCE
            , ProductInfoExt.getSerializerRead()).list(category);
    }
    public List<ProductInfoExt> getProductComments(String id) throws BasicException {
        return new PreparedSentence(s
            , "SELECT P.ID, P.REFERENCE, P.CODE, P.NAME, P.ISCOM, P.ISSCALE, P.PRICEBUY, P.PRICESELL, P.TAXCAT, P.CATEGORY, P.ATTRIBUTESET_ID, P.IMAGE, P.ATTRIBUTES, MIN " +
              "FROM PRODUCTS P, PRODUCTS_CAT O, PRODUCTS_COM M WHERE P.ID = O.PRODUCT AND P.ID = M.PRODUCT2 AND M.PRODUCT = ? " +
              "AND P.ISCOM = " + s.DB.TRUE() + " " +
              "ORDER BY O.CATORDER, P.NAME"
            , SerializerWriteString.INSTANCE
            , ProductInfoExt.getSerializerRead()).list(id);
    }
public final SentenceList getProductList() {
        return new StaticSentence(s
            , new QBFBuilder(
              "SELECT ID, REFERENCE, CODE, NAME, ISCOM, ISSCALE, PRICEBUY, PRICESELL, TAXCAT, CATEGORY, ATTRIBUTESET_ID, IMAGE, ATTRIBUTES, MIN " +
              "FROM PRODUCTS WHERE ?(QBF_FILTER) ORDER BY REFERENCE", new String[] {"NAME", "PRICEBUY", "PRICESELL", "CATEGORY", "CODE"})
            , new SerializerWriteBasic(new Datas[] {Datas.OBJECT, Datas.STRING, Datas.OBJECT, Datas.DOUBLE, Datas.OBJECT, Datas.DOUBLE, Datas.OBJECT, Datas.STRING, Datas.OBJECT, Datas.STRING})
            , ProductInfoExt.getSerializerRead());
    }
public SentenceList getProductListNormal() {
        return new StaticSentence(s
            , new QBFBuilder(
              "SELECT ID, REFERENCE, CODE, NAME, ISCOM, ISSCALE, PRICEBUY, PRICESELL, TAXCAT, CATEGORY, ATTRIBUTESET_ID, IMAGE, ATTRIBUTES, MIN " +
              "FROM PRODUCTS WHERE ISCOM = " + s.DB.FALSE() + " AND ?(QBF_FILTER) ORDER BY REFERENCE", new String[] {"NAME", "PRICEBUY", "PRICESELL", "CATEGORY", "CODE"})
            , new SerializerWriteBasic(new Datas[] {Datas.OBJECT, Datas.STRING, Datas.OBJECT, Datas.DOUBLE, Datas.OBJECT, Datas.DOUBLE, Datas.OBJECT, Datas.STRING, Datas.OBJECT, Datas.STRING})
            , ProductInfoExt.getSerializerRead());
    }

    //Auxiliar list for a filter
    public SentenceList getProductListAuxiliar() {
         return new StaticSentence(s
            , new QBFBuilder(
              "SELECT ID, REFERENCE, CODE, NAME, ISCOM, ISSCALE, PRICEBUY, PRICESELL, TAXCAT, CATEGORY, ATTRIBUTESET_ID, IMAGE, ATTRIBUTES, MIN " +
              "FROM PRODUCTS WHERE ISCOM = " + s.DB.TRUE() + " AND ?(QBF_FILTER) ORDER BY REFERENCE", new String[] {"NAME", "PRICEBUY", "PRICESELL", "CATEGORY", "CODE"})
            , new SerializerWriteBasic(new Datas[] {Datas.OBJECT, Datas.STRING, Datas.OBJECT, Datas.DOUBLE, Datas.OBJECT, Datas.DOUBLE, Datas.OBJECT, Datas.STRING, Datas.OBJECT, Datas.STRING})
            , ProductInfoExt.getSerializerRead());
    }
public final SentenceList getProductCatQBF() {
        return new StaticSentence(s
            , new QBFBuilder(
                "SELECT P.ID, P.REFERENCE, P.CODE, P.NAME, P.ISCOM, P.ISSCALE, P.PRICEBUY, P.PRICESELL, P.CATEGORY, P.TAXCAT, P.ATTRIBUTESET_ID, P.IMAGE, P.STOCKCOST, P.STOCKVOLUME, CASE WHEN C.PRODUCT IS NULL THEN " + s.DB.FALSE() + " ELSE " + s.DB.TRUE() + " END, C.CATORDER, P.ATTRIBUTES, P.MIN " +
                "FROM PRODUCTS P LEFT OUTER JOIN PRODUCTS_CAT C ON P.ID = C.PRODUCT " +
                "WHERE ?(QBF_FILTER) " +
                "ORDER BY P.REFERENCE", new String[] {"P.NAME", "P.PRICEBUY", "P.PRICESELL", "P.CATEGORY", "P.CODE"})
            , new SerializerWriteBasic(new Datas[] {Datas.OBJECT, Datas.STRING, Datas.OBJECT, Datas.DOUBLE, Datas.OBJECT, Datas.DOUBLE, Datas.OBJECT, Datas.STRING, Datas.OBJECT, Datas.STRING})
            , productsRow.getSerializerRead());
    }

    public final SentenceExec getProductCatInsert() {
        return new SentenceExecTransaction(s) {
            public int execInTransaction(Object params) throws BasicException {
                Object[] values = (Object[]) params;
                int i = new PreparedSentence(s
                    , "INSERT INTO PRODUCTS (ID, REFERENCE, CODE, NAME, ISCOM, ISSCALE, PRICEBUY, PRICESELL, CATEGORY, TAXCAT, ATTRIBUTESET_ID, IMAGE, STOCKCOST, STOCKVOLUME, ATTRIBUTES, MIN) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
                    , new SerializerWriteBasicExt(productsRow.getDatas(), new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16})).exec(params);
                if (i > 0 && ((Boolean)values[14]).booleanValue()) {
                    return new PreparedSentence(s
                        , "INSERT INTO PRODUCTS_CAT (PRODUCT, CATORDER) VALUES (?, ?)"
                        , new SerializerWriteBasicExt(productsRow.getDatas(), new int[] {0, 15})).exec(params);
                } else {
                    return i;
                }
            }
        };
    }
public final SentenceExec getProductCatUpdate() {
        return new SentenceExecTransaction(s) {
            public int execInTransaction(Object params) throws BasicException {
                Object[] values = (Object[]) params;
                int i = new PreparedSentence(s
                    , "UPDATE PRODUCTS SET ID = ?, REFERENCE = ?, CODE = ?, NAME = ?, ISCOM = ?, ISSCALE = ?, PRICEBUY = ?, PRICESELL = ?, CATEGORY = ?, TAXCAT = ?, ATTRIBUTESET_ID = ?, IMAGE = ?, STOCKCOST = ?, STOCKVOLUME = ?, ATTRIBUTES = ?, MIN = ? WHERE ID = ?"
                    , new SerializerWriteBasicExt(productsRow.getDatas(), new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 17, 0})).exec(params);
                if (i > 0) {
                    if (((Boolean)values[14]).booleanValue()) {
                        if (new PreparedSentence(s
                                , "UPDATE PRODUCTS_CAT SET CATORDER = ? WHERE PRODUCT = ?"
                                , new SerializerWriteBasicExt(productsRow.getDatas(), new int[] {15, 0})).exec(params) == 0) {
                            new PreparedSentence(s
                                , "INSERT INTO PRODUCTS_CAT (PRODUCT, CATORDER) VALUES (?, ?)"
                                , new SerializerWriteBasicExt(productsRow.getDatas(), new int[] {0, 15})).exec(params);
                        }
                    } else {
                        new PreparedSentence(s
                            , "DELETE FROM PRODUCTS_CAT WHERE PRODUCT = ?"
                            , new SerializerWriteBasicExt(productsRow.getDatas(), new int[] {0})).exec(params);
                    }
                }
                return i;
            }
        };
    }

Paso4

Editar la clase ProducstInfExt (com.openbravo.pos.ticket)

  • Agregar el nuevo atributo
protected String min;
  • Modificar el constructor
min = null;
  • Modificar el metodo getSerializerRead()
product.min = dr.getString(14);

Paso 5

Compilar y reiniciar la aplicación.

EL RESULTADO

Sincronizacion OpenbravoERP con OpenbravoPOS

Esta combinación resulta explosiva para una empresa que tenga una o varias tiendas y que a su vez quiera consolidar toda la información de su negocio en un sistema web que se pueda acceder en cualquier lugar con una conexion web y en tiempo real. Antes de seguir con esto, voy a profundizar un poco mas y me puedan comprender las 2 herramientas.

Por una parte hablo de OpenbravoPOS, es un programa que te permite realizar ventas mostrador y llevar un registro de tu inventario local. Con este producto (que puede funcionar con una pantalla touch), vas a dar una apariencia muy profesional a tu negocio hacia, tus clientes por una parte, mientras que por otra podras hacer cierres de caja y tener informacion de ventas de tus clientes y empleados, sabras que cliente compra mas al igual de que vendedor te da las mayores ganancias.

Ademas con OpenbravoPOS puedes generar las etiquetas con codigo de barras para tus productos y personalizacion de tus tickets de venta. Este producto como tal puede funcionar de forma independiente consolidando la información antras mensionada y dandole su mantenimiento como puede ser:

  • Actualizacion de productos
  • Actualizacion de impuestos
  • Actualizacion de Inventario
Es tropicalizable desde el idioma hasta los reportes y funcionalidad que el usuario final solicite.
Por otra parte, el Openbravo ERP es un sistema de gestión (el anterior era OpenbravoPOS, del que hablamos ahora es OpenbravoERP), con este sistema (mas robusto) puedes manejar las siguientes areas de tu negocio:
  • Gestion de datos maestros
    • Categorias de terceros
    • Terceros (proveedores, clientes, empleados, bancos,etc…)
    • Categoria de Productos
    • Productos
  • Gestion de compras
  • Gestion de Ventas
  • Gestion de almacen
  • Proyectos y servicios
  • MRP
  • Produccion
  • Finanzas (Contablidad)
La flexibilidad de este sistema, te permite usar desde uno hasta todos los modulos de tu negocio, es decir, puede que inicialmente solo lleves tu almacen y con el paso del tiempo desees implementar la gestion de compras y ventas, el sistema te permite hacerlo con unas horas de consultoria pero tendrias la misma interfaz y la información consolidada en un solo producto que es el OpenbravoERP.
Su principal beneficio es la capacidad de ser web, esto te permite consultarlo con tener solo un navegador de internet a la mano, y va a la nuevas tendencias de la computacion en donde todo sera web.
Volviendo al tema, si deseas tener los dos sistemas trabajando como uno solo, se puede hacer, OpenbravoERP puede sincronizar la informacion de tus tiendas a la base de datos locar de tu OpenbravoPOS de la tienda, mientras que OpenbravoPOS puede sincronizar en la noche todas sus ventas a OPenbravoERP para que puedas generar los reportes de inteligencia de negocio y saber si necesitas surtir tu tienda o comprar mas producto a tus proveedores en funcion de la cantidad de venta que tiene.
Es decir, puedes tener lo de 9 sistemas en uno solo consolidando la información y asegurando la integridad de la misma… pero hay algo que te puede resultar mejor…
Al ser sistemas Opensource eres el dueño de tu sistema …  de TODO, … los codigos fuente, es decir los que generan la aplicacion son tuyos, esto es “UNA SOLUCION LLAVE EN MANO” y por otra parte puedes optar que tu informacion este en la nube … esto es, un servidor amazon en donde ellos se encargarn de temas como los respaldos y tu no te preocuparás de acoplar un site para tu servidor.
Bueno estos sistemas tienen mas beneficios, tales como la cantidad de socios de Openbravo en cada pais para ayudarte en la implantacion y que la logica ya esta construida y lista para configurarse a las necesidades de tu negocio.
Te invito a que cualquier duda o comentario me la hagas saber y poder retroalimentar este pequeño post, yo eh visto funcionar estos dos sistemas hermanos y resultan fabulosos.
Nos leemos pronto…

Sistema operativo SunOS

Este sistema operativo esta compuesto de 3 principales componentes, estos son:

  • Kernel
  • Shell
  • Jerarquia de directorios

Kernel

Este es lo más importante, es el nucleo del SO, se encarga de manejar todos los recursos físicos del sistema, en pocas palabras, aparte de manejar la estructura y sistema de archivos, se encarga de manejar:

  • CPU
  • la RAM
  • el I/O
  • Almacenamiento en disco
  • y claro! el manejo de la memoria

Shell

Como todo en la vida IT (jeje), no podemos dirigirnos directamente con la pc, necesitamos de un interprete que haga ese trabajo sucio, para eso esta el shell. Digamos que es el interprete de comandos, es decir, el intermediario entre nostros y el kernel. Todos los comandos que usualmente utilizamos en la poderosa terminal, el shell se encarga de darselos de comer al kernel quien los ejecuta.

En Solaris existen tres shells por defecto:

  • Bourne shell
  • C shell
  • Korn shell

Cada uno con sus características, por default el shell de Solaris es el Bourne shell, un ejemplo, cuando abrimos la terminal , al final de la linea de comandos aparece un signo de dollar $, cuando nos logueamos como root, este simbolo cambia a #, es solo gustos del shell.

En la actualidad, estos shell se han modificado pero sin perder su esencial, solo mas eficientes. Solaris 10, tiene estos shells a nuestar disposición:

  • Bash
  • Z shell
  • TC shell

Son los mejorados de las generaciones anteriores.

Jerarquia de directorios

La jerarquia no voy a ondar, es como cualquier unix y GNU linux, tiene la raíz representada por / y del ella se desprende todo el sistema operativo.

Introducción a Solaris HOME

Restaurar grub de Ubuntu, puede funcionar en otras GNU Linux distribuciones

En ocasiones el grub de ubuntu (u otra ( GNU Linux distribución )es dañado y no se puede entrar a ningu S.O. existe una solución usando el CD Live para solucionar este problema!

aca ls pasos:

  • Bootea desde el CD Live de Ubuntu (o Fedora CentOS, Mandriva, etc..)
  • Abrir una terminal
  • hacer la siguiente instruccion:

sudo fdisk -l

para conocer las particiones de tu disco duro, asi identificaras en que particion esta el /boot/grub, en caso de que no este en ninguna particion independiente (lo mejor es que si lo este), se encuentra en la particion de tu GNU Linux distribucion. Veras algo asi:

Disk /dev/sda: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x1549f232

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       25508   204886016    7  HPFS/NTFS
/dev/sda2           37874       38913     8353800    7  HPFS/NTFS
/dev/sda3           25509       25994     3903795    5  Extended
/dev/sda4           25995       37873    95418067+  83  Linux
/dev/sda5           25509       25994     3903763+  82  Linux swap / Solaris

Partition table entries are not in disk order

en este caso mi /boot/grubno esta independiente por lo que se encuentra en la partición /dev/sda4

Ahora desde la terminal tecleamos la siguiente instruccion para acceder al grub:

sudo grub

ahora vas a indicar desde ahi donde esta tu grub en mi caso estaria en hd0,3 ¿Por qué? hehe no era sda4, si! pero en el grub se indentifica asi, hd siginifica disco duro (hard disk), hd0 disco duro uno de tu sistema ( recuerden que la pila empieza desde cero, por eso el disco duro 1 esta en la posicion 0, el dos en la 1), hd0,3 es la partición 4 (por que inicia desde la cero) del disco duro 1 ( en linux lo reconoceria como sda4 ok?) asi que la isntruccion quedaria

install(hd0,3)/boot/grub/stage1 (hd0) (hd0,3)/boot/grub/stage2 p (hd0,3)/boot/grub/menu.lst

Basicamente tenemos que cargar el stage1, y el estage2 donde claramente vemos que carga la lista de los sitemas operativos que podremos bootear.

Salimos del grub con la instrucción quit y reiniciamos la maquina

Listo!!!! tu grub funcionando

Dudas? por favor haganlas!!!

Saludos,

Carlos

JavaONE 2009 schedule STUFF

javaone

La JavaONE 2009 es la conferencia mas importante de Java de año, este año celebrada en SAN FRANCISCO del 2 al 4 de junio (ahora!!!).

Este año se el tema principal es Cloud Computing, donde SUN ah anunciado servicios de consultoria entre otras cosas interesantes.

Para todos aquellos que no pudimos estar en a JavaONE de este año, aca les dejo unas ligas para que puedan aprender de la JavaONE, hacia donde va SUN y que es una experiencia de este tipo.

JAVAONE GENERAL SESSIONS
Aqui los lideres e grandes proyectos se presentan y hacen una demo de sus proyectos, IBM, SOMY ERICSON, etc grandes empresas presentan lo que los mueve hoy en dia apoyados en JAVA, la primer sesión como debe de ser, de el cerebro de esta JavaONE Crhis Melissinos, NOSOTROS PODEMOS VER LA REPETICION DE CADA UNA DE LAS SESIONES GENERALES. La liga es:

JAVAONE GENERAL SESSIONS

JAVAONE RADIO
Es la cobertura oficial de la JavaONE por radio, podras escuchar todo lo que pasa, ademas de que freceuntemente entrevistarán a celebridades presentes en la JavaONE, una de ellas nuestro querido Felipe Cerda (embajador SUN representante de LATAM).

JAVAONE RADIO

JAVAONE MINUTE
Sesiones de 60 segundos donde se entrevista a gente importante de SUN, como el creador de Zembly, Chris Melissinos, desarrolladores de proyectos, el mismo Gary Serda.
Aqui podemos ver a cada uno de los embajadores en la JavaONE entrevistando a estas celebridades, por cierto, nuestro amigo Felipe Cerda ya ah hecho 2 JavaONE Minute
Si ustedes quieren saber de los proyectos que actualmente se estan haciendo, dichos de sus mismos desarrolladores, no se pierdan este recurso.

JAVAONE MINUTE

Finalmente otro recurso son los WEBINARS del comunityOne cursos donde nosotros podemos aprender todo lo visto en la JavaONE, la repeticion de esos webinar estan en la pagina de javapassion aca la liga
CURSOS COMMUNITYONE

Configurar graficos nvidia en UBUNTU 9.04 automática y manual, tambien funciona en otras versiones

Hola chicos,

Les enseñare a instalar la tarjeta de gráficos nvidia en UBUNTU, hay ocaciones que no funciona la instalacion automatica por lo que tambien lo veremos manual, iniciemos…

CON AYUDA DE UBUNTU

PASO 1.

Nos vamos a la barra superior y damos clic en

System (Sistema) -> Aministration (Administración) -> Hardware Drivers

Veremos un asistente que hara una revision de los drivers disponibles en los repositorios y si encuentra uno disponible nos dara la opcion de instalarlo

Screen01Es muy simple seleccionas el driver y elijes Activar y listo, en automatico se descarga eh instala.

SIN AYUDA DE UBUNTU

Necesitaras entrar a la pagina de Nvidia para descargar el driver, en esta pagina deberas seleccionar tu driver (generalmente viene una etiqueta pegada en tu laptop o pc que dice que versión de driver nvidia necesitas, por ejemplo, mi laptop es una tarjeta de graficos GEFORCE 7000M, asi que yo seleccione, GEFORCE, la serie 700 y el sistema operativo linux.

Ahora deberas bajar el driver y listo. Ahora viene la parte que pareciera dificil.

Abre una terminal y teclee

sudo gedit /etc/X11/xorg.conf

Ahora se abrira un archivo y verifica que las siguientes lineas esten la de negro deben ir a fuerzas, el la sección de modulo sustituyela por la que veas aqui

Section “Monitor”
Identifier    ”Configured Monitor”
EndSection

Section “Screen”
Identifier    ”Default Screen”
Monitor        ”Configured Monitor”
Device        ”Configured Video Device”
DefaultDepth    24
EndSection

Section “Module”
Load “extmod”
Load “dbe”
Load “type1″
Load “freetype”
Load “glx”
EndSection

Section “Device”
Identifier    ”Configured Video Device”
Driver    ”nvidia”
Option    ”NoLogo”    ”True”
EndSection

Guarda el archivo y en terminal teclea donde guardaste el archivo de tu driver

sudo sh NVIDIA-Linux-x86_64-185.18.14-pkg2.run

Se abrira el instalador de tu driver NVIDIA, si te marca un error tendras que reiniciar, pero ups!!!, sorpresivamente tu tarjeta de graficos estara funcionando al 100%

SI AL REINICIAR NO TE ABRE EL MODO GRÁFICO TRANQUILO!!!

Desde terminal inicia sesión

Despues vete a la carpeta donde esta tu archivo de tu driver

y tecleea

sudo sh NVIDIA-Linux-x86_64-185.18.14-pkg2.run

Y ahora si se instalara y en automático tendras tu tarjeta de gráficos funcionando

PRUEBA Y NO PIERDAS LA CALMA CUALQUIER DUDA ESCRIBANME Y LISTO

por aqui o a mi mail

carlos.aguilar@sun.com

CURSO DE JavaFX, GRANDES PREMIOS JavaFX Course

El próximo Lunes 23 comienza el concurso internacional de JavaFX. Más info en http://www.javafx.com/challenge/.

El concurso tiene 3 premios principales de $25,000, $10,000 y $5,000. Los estudiantes pueden competir por estos, y 3 reconocimientos especiales a los mejores trabajos estudiantiles — las 3 mejores aplicaciones de estudiantes recibirán además $1,500. Hay 100 menciones honorables para los mejores trabajos.

No se lo pierdan!!!

Primer Curso presencial para la Certificación Java SCJA

El lunes 9 de marzo de 2009 se dio inicio del primer curso presencial en buscar de la certificacion SCJA en las instalaciones de la ESIME Cuhuacan, campus perteneciente al IPN (Instituto Politécnico Nacional), la difusión se dio a través del OSUM y se registraron cerca de 100 chavos con ganas de ser reconocidos por un atecnología tan clara e importante como es JAVA.

Actualmente estamos en la semana 2, y ya estamos a punto de empezar a explotar el poder de la programacion OO en JAVA, para aquellos interesados las presentaciones de los temas vistos estan dentro del grupo de la ESIME CULHUACAN, y cada una describe los temas que aborda. Esperamos en un lapso de 2 meses estar listos para rendir la primer certificación. CUANDO CADA UNO DE LOS CHICOS DECIDIO UNIRSE A ESTOS CURSOS, ES POR QUE ESTAN SEGUROS QUE CUANDO LO TERMINEN RENDIRAN LA PRIMER CERTIFICACIÓN Y OBTENDRAN EL PREMIO DE LA CERTIFICACIÓN.

Sun Microsystems is one of a number of computer vendors promoting the latest trend in servers; the ability to use less power.

Sun Microsystems is one of a number of computer vendors promoting the latest trend in servers; the ability to use less power.

This is wonderfull !!!

Embedded video from &lt;a href=”http://money.cnn.com/video” mce_href=”http://money.cnn.com/video”&gt;CNNMoney Video&lt;/a&gt;

La resesión aumenta el interes por Cloud Computing y virtualizacion

La recesión mundial está obligando a las empresas a buscar en tecnologías como cloud computing, virtualización y tecnologías verdes para encontrar maneras de reducir costos y aumentar la eficiencia en sus centros de datos, de acuerdo a Sun CTO, Greg Papadopoulos . Es ahora que vendedores como Sun y grupos como AFCOM son requeridos en centros de datos para administrar de la información con soluciones como cloud computing y tomar las decisiones correctas. Como se profundiza la recesión,cloud computing y otras tecnologías seguirá creciendo.

Follow

Get every new post delivered to your Inbox.