Blog de Phesus Opensource Software
Misceláneos
Phesus Cotizatodo
Jul 26th
|
Las cotizaciones hechas simples. La razón de éste nuevo programa de phesus es la de facilitar y acelerar la realización de presupuestos internos así cómo la comparación de precios, en realidad ésta pequeña utilidad tiene varios usos. Características:
|
|
Screenshots:
Versión para imprimir / exportar

Pantalla principal
Saqueados y reparando un proyecto air
Jun 7th
Tengo mucho tiempo sin escribir, hay un par de programas que tengo por publicar principalmente, el Mepro, una pequeña utilidad que usamos en phesus para hacer scripts para las necesidades temporales diarias. Es una especie de menú programable.
Y bien en nuestro taller y centro de entretenimiento nos saquearon, robaron, se llevaron ni más ni menos que el proyector en el que jugamos wii, vemos películas y demás actividades recreativas, además de nuestro set de guitar hero: cañón de humo, luces, etc. Bueno nos sirvió para reflexionar muchas cosas hoy, cómo la inseguridad en México, el trabajo y que si bien lo material no es tán importante se llevaron un pedacito de nuestras almas pues habíamos armado todo con mucho ánimo. Ni hablar.
En otros temas recomiendo ampliamente trabajar con flex y play framework, es realmente entretenido pero con el nivel suficiente para entregar aplicaciones de escritorio y web completamente profesionales.
Hace pocos días me encontré con un problema, actualicé mi flash builder de la versión 3 a la 4, el error:
Process terminated without establishing connection to debugger. Command: “E:\Programs\Flex 3 Plugin\sdks\3.4.0\bin\adl.exe” E:\EclipseWork\Foo\bin-debug\Foo-app.xml E:\EclipseWork\Foo\bin-debug Output from command: error while loading initial content
El proyecto (basado en air) no se ejecutaba, busqué por todas partes y nada hasta que me encontré con ésta solución que además es muy simple y se explica en ésta página. Mi agradecimiento a Adam Adamczyk autor del blog que les enlacé.
“Bootear” un pendrive desde virtualbox
Jan 11th
Actualmente (checado hace pocos días) el bios de virtualbox no tiene soporte para “bootear” pendrives.
Comparto mis notas al respecto, éste método también sirve para bootear otras particiones o unidades físicas.
Boot usb desde virtuabox (también sirve para arrancar otras particiones del hd):
1. Ejecutar línea de comandos COMO ADMINISTRADOR dándole click derecho al icono de símbolo del sistema
2. Ejecutar la instrucción: vboxmanage internalcommands createrawvmdk -filename [dirección dónde quedará el vmdk] -rawdisk \\.\PhysicalDrive2 -register
3 Agregar el disco a virtual box también como administrador (click derecho en virtualbox)
Nota: El vmdk es un pequeño archivo que actual como un disco duro virtual pero redirecciona su contenido a una unidad real en este caso
Nota: La dirección \\.\PhysicalDrive2 indica que estoy apuntando a disco 2 en la nomenclatura de windows, ésto se puede checar en administrador de equipos
Máscara de formato o formateando campos
Aug 2nd
Sé que ésto no es nada sofisticado ni moderno pero quizá a más de uno le sea de utilidad como a mi.
Cuando están haciendo algún programa principalmente utilidades propias o simplicidades similares, si son algo quisiqullosos con los detalles como yo querrán de vez en cuando tener campos enmascarados o formateados. En mi caso principalmente los de fecha y hora.
Sin más, un ejemplo simple y directo pero práctico (cuando el campo ya está creado y queremos asignarle la máscara):
import javax.swing.text.*;
import javax.swing.*;
..
fmtFecha = new MaskFormatter("##/##/##");
fmtFecha.setPlaceholderCharacter('_');
DefaultFormatterFactory fechaFactory = new DefaultFormatterFactory(fmtFecha);
JFormattedTextField fechaTextField = new JFormattedTextField();
fechaTextField .setFormatterFactory(fechaFactory);
El código anterior nos dejará el campo “fechaTextField” formateado y sólo recibirá números en los espacios marcados con # asímismo mantendrá las líneas diagonales separando la fecha, mes y día y rellenará los espacios vacíos con guión bajo “_”.
o sí crearemos el campo al mismo tiempo que le damos el formato es un poco más simple:
import javax.swing.text.*;
import javax.swing.*;
..
fmtFecha = new MaskFormatter("##/##/##");
fmtFecha.setPlaceholderCharacter('_');
JFormattedTextField fechaTextField = new JFormattedTextField(fmtFecha);
Nuevamente espero no ser muy ambiguo…
Slax y como remasterizar slax 6
Jul 12th
Hace poco nos topamos con la necesidad de utilizar linux para un sistema embedido, para ellos revisamos posibilidades como tinycore linux y puppy linux (ambas excelentes opciones) sin embargo se adaptó mejor a lo que requerimos el sistema operativo Slax.
Slax es una distribución de linux que puede ejecutarse desde un live cd así como en memorias usb, de hecho ya traé un script para volver booteable la memoria sólo hay que copiar los archivos en ella, también puede instalarse en el disco duro normalmente. La imagen pesa alrededor de 190 mb y traé toda la paquetería básica y un poco más. En lo personal encontré el manejador de paquetes muy agradable así como toda la interfáz, el tiempo de arranque es promedio y el consumo de memoria ram más bajo que el promedio.
Bueno, pero nuestro problema es que necesitabamos el sistema operativo con algunas modificaciones leves de interfáz, nada grave… como todo lo sencillo ésto se volvió sumamente complicado y es que resulta que los cambios hechos a slax se guardan en una carpeta que suele dañarse nada más con que la pc se apague mal… aunque sea sólo un poquito mal, algunas veces nisiquiera sabes que la apagaste mal.
En el negocio en el que estamos implementando el sistema ésto es muy común y para no hacer largo el post éstas son las soluciones (que encontramos) espero le ayuden a alguien más:
- Utilizar otra partición que no sea fat ni fat32
- Remasterizar. Slax traé una imagen del sistema operativo limpio llamada “always fresh” los cambios que hagas aquí no se guardarán ni tampoco se rescatarán, pero sí hay una manera sencilla de guardar. La idea es generar cambios y guardarlos para luego ser usado en sólo lectura, así ya no hay problemas de corrupción (y se consigue un efecto embedido)
¿ Cómo remasterizar ?
- Entrar en modo normal, hacer los cambios necesarios y apagar
- En otro sistema operativo u otra pc, copiar el contenido de la carpeta changes a rootcopy
- Eliminar archivo *-slax de rootcopy/root/, son 6 o 7
- Entrar siempre a always fresh
- Para guardar cambios será necesario repetir éste proceso desde el paso 1
- (Opcional) Guardar rootcopy como módulo
Disculpen si no soy lo suficientemente claro, puede ser debido a que estoy algo desvelado pero puedo ayudarles con cualquier duda.
Cuentos de terror (audio)
Apr 8th
Buscando los viejos cuentos de terror de “la mano peluda” que son más o menos conocidos en méxico y estados unidos (hispanoparlantes), encontré una buena página con muchos relatos de terror.
Lo curioso es que los que he escuchado son bastante malos…
Les dejo el enlace para todas las personas que como yo gustamos de asustarnos un poco mientras trabajamos… o manjeando, etc: http://audiorelatosdeterro.blip.tv/file/1648337/
Gorm Standalone, desktop, outside grails, etc.
Mar 28th
Hola!, hace algunos días me estuve peleando con la instalación del gorm que viene en el nuevo grails 1.1, obviamente como dice el título yo lo quería funcionando en mi aplicación de escritorio, por algún motivo aunque la solución era muy simple nunca encontré un ejemplo claro, así que para quién le sirva lo pondré aquí.
Primero que nada necesitarán grails 1.1 y groovy 1.6, básicamente el paquete de grails traé todas las dependencias necesarias entre las cuales estarán hibernate y spring.
Aclaro que aunque se usan todas éstas tecnologías en realidad la aplicación no debe tener ninguna orientación, si no que se puede agregar sin importar que utilicemos el framework spring-mvc.
- Insertamos el siguiente archivo en el classpath, deben cambiar los datos de su base de datos y su base-package por los suyos!
applicationcontext - Escribimos el código de inicialización de todo el framework, aquí viene el “truco”
import org.springframework.context.support.ClassPathXmlApplicationContext; ...... def factory = new ClassPathXmlApplicationContext('(tu paquete)/applicationContext.xml')En package simplemente pongan el nombre de su paquete (lo digo para quién aún no sepa eso) , en en mi caso fue “nadesicoi”
- Escribir algún dominio, por ejemplo:
@grails.persistence.Entity class Hoja { String alfa String beta }Creo que sobra decir que la clase Entity vuelve a nuestra clase un dominio
- Sólo resta hacer una prueba en cualquier lugar de nuestro programa:
package nadesicoi import org.springframework.context.support.ClassPathXmlApplicationContext; class Prueba { static def ejecuta() { def factory = new ClassPathXmlApplicationContext('nadesicoi/applicationContext.xml') //Operaciones gorm def obj = new Hoja(alfa:'a', beta:'b') obj.save() Hoja.findAll().each() { println it.dump() } println Hoja.get(21).alfa def obj = Hoja.list(max:10) } }
Acelerando AspireOne con WinXP y SSD
Mar 6th
Bueno, ya estamos cansados de que algunas aspire one con ssd de las muchas que compramos vayan tán lentas (taaan) con windows xp, así que continuando sus optimizaciones ahora intentaremos el método de ewf (extended write filter), en teória éste método cargará el os en ram y protegerá el ssd de escritura, redirigiendo tál escritura a la ram.
Nota: Éste proceso es igual de efectivo en cualquier pc, sirve también para evitar virus y lógicamente es muy deseable para dispositívos embedidos
Anteriormente probamos cosas como quitar la memoria virtual, poner la memoria virtual en una ssd (de las lentas), desactivar las restauraciones, quitar todo del inicio del sistema, etc. Pero aún así las que tienen el ssd más lento siguen igual de inutilizables. Sin más preámbulos comenzamos.
Proceso:
- Descargar los componentes necesarios: ewftool, xplite, el iso trial de windows xp embedded y (opcional si se quiere instalar minlogon que acelera el tiempo de arranque y apagado aunque desactiva las opciones de usuario) minlogon.reg
- Abrir con winrar (o cualquier otro programa de descompresión) el archivo XPEFP2007.exe, dentro de ese exe entrar a la carpeta /rep/ y descomprimir los archivos: fbwf*.*, ewf*.* y minlogon.*
- Ejecutar xplite y desactivar la pretección de archivos de windows (después podrán reactivar dicha protección)
- Eliminar la carpeta \windows\system32\dllcache\ y su contenido
- Eliminar \windows\bootstat.dat
- (Opcional para instalar minlogon) Respaldar \windows\system32\winlogon.exe.
Después copiar a esa misma carpeta minlogon.exe
Renombrar minlogon.exe a winlogon.exe (cuando quieras puedes regresar el archivo original de winlogon.exe)
Correr minlogon.reg - Aquí copio todos los archivos fbwf*.* y ewf*.* a \windows\system32\ aunque no sé si sea necesario, pero finalmente necesitan algún lugar donde vivir
- Ejecutar ewftool y dar click en “install ewf support”, seguir los consejos dados en “other ways to increase performance and reduce disk writes”, por último dar click en “minimize disk writes”
- (Opcional) Enable HORM
- Cerrar ewftool. Al reiniciar la pc el sistema ya estará protegido contra escritura
- Para activar la protección contra escritura usaremos el comando: “ewfmgr c: -enable”
Para desactivar la pretección usaremos: “ewfmgr c: -commitanddisable –live”
Activar/Desactivar tendrán efecto al siguiente reinicio
Para activar y utilizar HORM:
- Descargar ewf & horm manager de ésta página (versión 1.1 y el paquete de archivos necesarios “ewf files”
- Ejecutar ewf & horm, activar horm
- Ejecutar horm.reg
- Copiar a la raíz de la unidad que contiene windows el archivo horm.dat
- Utiliza el hibernar de windows, el sistema iniciará como en cualquier hibernación, la gracia es que ya no tendrás que volver a hibernar, ahora siempre iniciará con el contenido de esa hibernación
- Como el sistema siempre se restaurará de la hibernación, el tiempo de encendido se reduce muchísimo
- Puedes reiniciar y apagar el equipo normalmente, siempre se restaurará de la hibernación previamente hecha
- Se puede volver a hibernar para guardar un estado distinto
- Para desactivar e iniciar normalmente windows, oprime F8 durante la restauración y selecciona iniciar windows normalmente
Resultados:
- La pc ahora arranca en 15 segundos, desde oprimir el botón de inicio hasta que termina de cargar todo
- Y apaga en sólo 10 segundos o menos (inclusive en 3 segundos)
Tiempo que me tomó:
- Ya con práctica el proceso toma menos de 30 minutos, la primera vez por hacer pruebas y leer las instrucciones tardé unas 4 o 5 horas
Conclusión:
- Usarlo en cualquier pc aún sin tener el problema del ssd!!
- Agradezco a los autores de los enlaces que tengo abajo, ahí podrán encontrar mucha más información de la que yo puse!! y aclaro, éste método lo tomé totalmente de los siguientes sitios.
Enlaces:
Instrucciones resumidas y claras
Instrucciones para seguir este proceso pero aplicado a una pc para automóvil
Enlace principal sobre el tema
Otras instrucciones un poco más atrasadas, también están aplicadas a una pc car

