Ir al contenido principal

Entradas

Mostrando las entradas de marzo, 2009

Revisión de Punto de Venta

Pues he agendado una reunión con los demás miembros del equipo de sistemas para revisar el Punto de Venta, puesto que creo que me estoy ciclando... esto es ya no estoy viendo claro como solucionarlo, y seguramente con la ayuda de ellos podré verlo mejor. Ahi les platico el resultado...

Problema con Grails

Pues después de disfrutar un maravilloso sábado en compañía de mi familia, me puse a resolver un problema que se sucitó ayer en la clase mientras les explicaba acerca de Grails, me pidieran que si podía hacer una tarea muy común en el desarrollo de páginas web, esto es, desaparecer cierta funcionalidad y aparecerla cuando se activara algo, pero por alguna razón no pude ayer... Yo sé que andaba enfermo, desvelado y todo, pero bueno, el fin es que no le dí... ahorita revisándolo noté que estaba rompiendo una regla básica de html, estaba tratando de romper una tabla con un div, cosa que no se puede, la solución a este problema es ya sea hacer una columna y hacer un colspan con ella para mostrar lo que queremos (pero tendremos problemas con el diseño) o hacer dos div's, uno por columna, con esto mantendremos el diseño pero tendremos un poco más de código que mantener, que al final de cuentas sería lo que yo haría... en fin, esta es la solución... espero les sirva...

AppFuse y Grails

Pues la parte de explicar AppFuse fue todo un éxito, no solo vieron lo que hice, sino que hasta hicieron su ejercicio sin problemas, claro, no me pude meter a todos los detalles de AppFuse, pero se cumplió el objetivo de mostrarles que, aunque complejo, pueden usarlo sin entender todo lo que pasa atrás. A parte, empezamos a ver Grails, lo cual también caminó muy bien, tuvimos tiempo para ver en menos de 1 hora lo que con las otras herramientas (solo con struts y con AppFuse) nos tomo el doble de tiempo o más... Ahorita se encuentran desarrollando el ejercicio en Grails, les explicaré como subirlo a Subversion y realizaremos las relaciones entre maestro y materia. Todo parece indicar que, gracias a Dios, este curso ha sido un éxito!

Desde la UAT

Nos encontramos en la UAT dando el curso de infraestructura de desarrollo... Al parecer, hasta ahora se ha recibido bien, tengo que hacer algunas modificaciones a la parte inicial, no tardandome tanto en la explicación de métodos ágiles, pero por lo demás parece estar bien... Pese a que tienen equipos sólo con 512 MB en RAM, se pudo instalar VirtualBox y un servidor de ubuntu para hacer la instalación de subversion y trac, la cual todos pudieron completar sin problemas. En cuanto a la parte de desarrollo, empezamos el día de ayer a crear una aplicación Struts2 con NetBeans... esta parte, es lo que más han estado esperando, dado que tienen muchas ganas de empezar a desarrollar, pero todavía no saben como iniciar... Espero que me de la semana para poder explicarles un poco de AppFuse para que puedan lograr este objetivo...

Preparándome para curso de Infraestructura

Estamos preparándonos para curso de infraestructura de desarrollo que estamos dando como parte del proyecto de Prosoft de Academic Java Centers. Ya tenemos montada toda la infraestructura, esto es un servidor de versiones (subversion), una herramienta para administrar los proyectos (trac) y el servidor de integración continua (hudson)... solo que falta ver con qué les vamos a ayudar a integrarlos. Tengo entendido que vienen saliendo del curso web con Struts 1 (todavía). Así que había pensado ayudarles a hacer alguna aplicación, la que ellos quieran, pero con Struts 2, integrarle el JUnit, HttpUnit y Canoo o Selenium, para poder ver lo de pruebas unitarias y de Integración, pero luego me acorde de los Mocks para las pruebas unitarias, y lo que me va a tomar integrar todo eso... y rápidamente pensé en AppFuse, si yo sé que he dicho que AppFuse es muy complicado para un desarrollador Junior. Pero es la mejor forma de asegurarte que lo que esta haciendo ese programador Junior tenga la cali

Punto de Venta

Estamos empezando el punto de venta del sistema de inventarios, el detalle es que en el último release de inventarios no lo teníamos del todo terminado, por lo que estamos viendo como solucionarlo. Tenemos los artículos existentes en el inventario, pero ven que cuando vendes, puede que necesites sacar algo que no estaba contemplado, por lo que estoy pensando en hacer un objeto como servicios y englobar estos en una orden de salida. Aunque el articulo que salga no seria un servicio en si, tendría que hacer algo como articulo no identificado. Cómo ven?

Nadie llego :(

Pues si, asi es... nadie llego al curso de AppFuse para empresas. Es interesante el hecho de que para el curso de Grails si hay interesados y para AppFuse no, siendo que AppFuse tiene mas tiempo y lo que obtienes es muy parecido, bueno, lo que obtienes de AppFuse es mejor, pero bueno lo que te ahorras desarrollando con Groovy usando las convenciones de Grails creo que valen la pena. Por ahora ya terminé con las Entradas y las Salidas, las salidas tomándome un poco más de lo esperado dado que no conocía como hacer unas validaciones, pero bueno, ya superamos eso, ahora estamos trabajando de lleno con el Punto de Venta, espero mañana poder avanzar a tal grado de que pueda presentárselo a la tienda de la Universidad para ver si le interesa una solución como esta para manejar su inventario y puntos de venta, es una tienda pequeña, por lo que me parece un buen lugar para probar el punto de venta. Por cierto, el inventario ya está probado por el Almacén de la Universidad y a punto de ser prob

Fin de semana largo...

Pues es viernes... (Gracias a Dios) Después de una semana llena de desarrollo en Grails, me gusta más y más desarrollar en él. Claro que cambian unos cuantos paradigmas de lo que venía haciendo con Java, pero sin que ninguno de ellos me duela tanto. Ahora me encuentro pensando en qué mas cosas puedo subir sobre esta plataforma, para pronto, estoy pensando en una aplicación que hice para la universidad para poder hacer los pagos en línea, a la que, por hacerla rápido, ni framework le puse... También estoy pensando en el tablero de control que desarrollé hace unos años en AppFuse también para la universidad. Todo esto sin dejar de incrementar la funcionalidad que estoy logrando hacer al sistema de inventarios que estoy migrando. En fin, ha sido una muy buena semana, lo cual es perfecto para entrar al fin de semana largo... Que lo disfruten...

Opensolaris vs Ubuntu vs Windows 7

Pues como ya les había mencionado, estuve probando OpenSolaris 2008/11... No puedo decir que ha sido una mala experiencia, simplemente no puedo producir tanto como produzco en windows como ubuntu. Ahora bien, es una plataforma sólida con todo lo que tienen los servidores que están en producción en muchas empresas, y con una interfaz gráfica bastante útil y fácil de usar si has usado Gnome antes. La cuestión está que todavía no es tan rápido como windows y menos como ubuntu. Le falta todavía en el área de multimedia y en la usabilidad de ciertas cosas, por ejemplo el trackpad, no toma los puntos donde puedes hacer scroll, no puedes utilizar la cámara, no tiene suspender ni hibernación. Además le toma un buen iniciar, no tanto como el 2008/5, pero igual, le toma mucho... Dadas esas circunstancias terminé en Windows 7... pero igual, carece de un ambiente al que ya me acostumbré bastante, las "ventanas" donde puedes agrupar el trabajo... Mejoró en su barra de tareas, donde se ase

Encadenamiento de Selects en Grails

Pues la integración de acegi security a la aplicación de Grails, la verdad fue una maravilla hacerlo, no cuesta absolútamente nada de trabajo... ahora configurar el encadenamiento de unos selects en Grails es otra historia, pero bueno, nada que no pueda ser resuelto... Primero necesitas agregar en el head de tu gsp, luego agregar los selects a encadenar en mi caso estoy encadenando 3 (bueno 2, el 3ro depende del 2do y el 2do del primero, algo bastante obvio, pero bueno uno nunca sabe, jeje) <tr class="prop"> <td valign="top" class="name"><label for="organization.name">Organización:</label></td> <td valign="top" class="value"> <g:select optionKey="id" optionValue="name" name="organizationId" id="organizationId" fr

El sábado y la muerte

Aquí la Sra. Elena de White nos explica la importancia qué existe entre los dos días el Sábado y el Domingo, no es que el día de reposo se haya recorrido sólo un día, se ha ido de guardar el 7mo día de la semana al 1er día de la semana, o sea, categóricamente retando lo ya establecido por Dios en los mandamientos. La cuestión del sábado será el punto culminante del gran conflicto final en el cual todo el mundo tomará parte. Los hombres han honrado los principios de Satanás por encima de los principios que rigen los cielos. Han aceptado el falso día de descanso que Satanás ha exaltado como señal de su autoridad. Pero Dios ha puesto su sello sobre su requerimiento real. Ambos días de reposo llevan el nombre de su autor, una marca imborrable que demuestra la autoridad de cada uno. Es nuestra obra inducir a la gente a comprender esto. Debemos mostrarle que es de consecuencia vital llevar la marca del reino de Dios o la marca de la rebelión, porque se reconocen súbditos del reino cuya marca

Reporte de Productos con POI

Pues ya quedó con POI de Apache y la solución esta aquí: HSSFWorkbook objWB = new HSSFWorkbook(); HSSFSheet hoja1 = objWB.createSheet("productos"); HSSFRow fila = hoja1.createRow((short) 0); fila.createCell((short) 0).setCellValue(new HSSFRichTextString("ID")); fila.createCell((short) 1).setCellValue(new HSSFRichTextString("UBICACION")); fila.createCell((short) 2).setCellValue(new HSSFRichTextString("SKU")); fila.createCell((short) 3).setCellValue(new HSSFRichTextString("NOMBRE")); fila.createCell((short) 4).setCellValue(new HSSFRichTextString("DESCRIPCION")); fila.createCell((short) 5).setCellValue(new HSSFRichTextString("MARCA")); fila.createCell((short) 6).setCellValue(new HSSFRichTextString("MODELO")); fila.createCell((short) 7).setCellValue(new HSSFRichTextString("FRACCION")); fila.createCell((short) 8).setCellValue(new HSSFRichTextString("EXISTENCIA")); fila.createCell((short) 9).s

Reporte Excel con JasperReports

Pues no funcionó el reporte con Jasper, pude hacer que evitara paginar con estas opciones ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); JRXlsExporter exporterXLS = new JRXlsExporter(); exporterXLS.setParameter(JRXlsExporterParameter.JASPER_PRINT, jasperPrint); // exporterXLS.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE); exporterXLS.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE); exporterXLS.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE); exporterXLS.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_COLUMNS, Boolean.TRUE); exporterXLS.setParameter(JRXlsExporterParameter.IS_COLLAPSE_ROW_SPAN, Boolean.TRUE); exporterXLS.setParameter(JRXlsExporterParameter.IGNORE_PAGE_MARGINS, Boolean.TRUE); exporterXLS.s

Inventario Reloaded

Pues después del intento fallido de utilizar OpenBravo, estamos rediseñando el inventario para que utilice Grails en lugar de AppFuse, hasta ahorita vamos muy bien. Hemos encontrado más facilidades de las que te otorga AppFuse, va a ser más fácil de implementar y de utilizar que la aplicación anterior (que ya era bastante sencilla), pero bueno, ahora después de un poco más de experiencia tanto del 'input' que me han dado los usuarios y otras cosas que hemos aprendido desde su última implementación. Ahora a ver si podemos pulir la parte del punto de venta en la versión actual para una demostración pactada para el día de mañana. Después de la cual, seguiré implementando todo sobre Grails 1.1 RC2

Curso de Grails

Pues en esta edición del curso de Grails, los alumnos tenían mucho interés en métodos ágiles. Por lo que tuvimos que dedicar un buen tiempo para esto. Lo cual ayudó a crear el ambiente necesario para el aprendizaje de Grails. Dado que este grupo tenía buen trasfondo Java, no tuvimos tanto problema para comunicarnos con el grupo, a diferencia de la sesión anterior de Grails. Mejoramos algo también, íbamos compartiendo código con ellos de tal forma que no fuera necesario el teclear todo lo que esta en el taller, y también pudiesen corroborar por qué no funcionaban algunas de sus soluciones. Todavía tengo que hacer algo para mantener la atención del grupo mientras están las largas modificaciones de código, pero bueno ya se me ocurrirá algo... En cuanto a la salida del viernes, pudimos hacerlo a las 2.30 llegar a tiempo para tomar el vuelo de las 5 y llegar a casa para las 9 a disfrutar de mi familia, que todavía no se habia dormido. Pasamos un excelente sábado en compañía de ellos en la i