domingo, 10 de julio de 2011

Creando Excels

¿Alguna vez has necesitado crear una hoja de cálculo a partir de varias hojas? Puede que este programa te ayude. Se trata de una aplicación Java (y por tanto multiplataforma) que he desarrollado a partir del uso de la librería Apache POI para generar un fichero Excel a partir de los libros contenidos en una lista de Excels (de tamaño variable):




Por defecto, copia la primera hoja aunque puede ser especificado el nombre de la hoja a copiar. El orden es significativo ya que define la posición en el que se copiarán en la hoja destino. Opcionalmente, se puede copiar el estilo de la hoja (aunque es una opción que funciona regular, está en beta). Si el fichero Excel destino existe, las hojas se añaden a las que existieran previamente. La copia se hace completa, respetando el tipo de cada celda origen, por lo que se mantienen las fórmulas y demás características. La forma de uso es la siguiente (in English):

# java -jar mergeExcel.jar
Program for merging several Excel (97-2003) files into one:

Usage: java -jar mergeExcel.jar [-style] -output output.xls -input input1.xls[:sheet_name1][;input2.xls[:sheet_name2];...]

-style: If present, cell style is copied. This parameter is optional (and beta).
-output: Output Excel file. If output file exists, it adds sheets to existing ones. This parameter is mandatory.
-input: List of input files for merging. Excel files must be separated by ';'. Optionally, sheet label can be specified adding ':' at the end of Excel file name. If no sheet name is specified, first one will be taken. No spaces or special characters are allowed. All final merge sheets (including those in output file, if exists) must have different labels. Otherwise, it could not be merged. This parameter is mandatory.

Copyleft - Javier Sianes

Un ejemplo de uso seria el siguiente:



Con esta llamada se ha creado un fichero Excel de nombre merge.xls que une la primera hoja del fichero C41185CCPR-06-2011.xls y la hoja de nombre C41186POPR del fichero C41186POPR-06-2011.xls. El resultado es el siguiente:




Espero os sea de utilidad. El aplicativo es completamente libre y puede descargarse del siguiente enlace.

viernes, 20 de mayo de 2011

Dell Inspiron 9400 y Snow Leopard



Voy a escribir este post para ayudar a aquellos que quieran iniciarse en esto de instalar un MacOSX Snow Leopard en un equipo no Apple. Este post está enfocado a hacerlo sobre un Dell Inspiron 9400, pero estoy seguro que algunos de los consejos serán de mucha ayuda para otro tipo de equipos.

Lo primero es conocer bien el hardware. Si algo tiene de malo esto es que la autodetección de hardware va muy mal o directamente no funciona. Por eso es crucial conocer el hardware de nuestro equipo. Investiga y apunta bien antes de empezar. De base he instalado la distribución iATKOS S3 V2. Importante que sea versión 2. Probé la V1 antes consiguiendo un estupendo kernel panic antes si quiera de llegar a la ventana de instalación.

Un consejo de oro: no instales de mas. Si no tienes claro el hardware es mejor seleccionar de menos que de mas en la personalización de la instalación. Generalmente si se selecciona de mas se tiende a favorecer el conflicto de hardware y llegar con mayor facilidad al temido kernel panic. Si una vez instalado falta detección de hardware no te preocupes, lo solucionaremos a posteriori.

Para la instalación base de mi Inspiron 9400 seguí como indicaciones de selección en la personalización lo descrito en esta página. De lo expuesto modifiqué aquellos puntos que afectaban directamente al hardware de mi equipo:

  • Añadí el apartado Laptop hardware
  • En VGA añadí la entrada NVenabler para el soporte de mi tarjeta gráfica nVIDIA GeForce Go 7900 GS. Con esto conseguimos soporte completo, incluida aceleración 3D.
  • En Wired Network eliminé toda selección salvo la que activa la tarjeta de red de mi Dell, la extensión BCM440X
  • En Wireless Network no seleccioné nada. La tarjeta wifi del Inspiron 9400 (Intel PRO/Wireless 3945ABG/BG) no está soportada salvo en modo BETA, muy limitado y nada funcional.

Una vez hechas las personalizaciones cruzamos los dedos y pulsamos a instalar. Se lleva sobre 30-40 minutos en completar el proceso. Una vez instalado reiniciará el ordenador. A mi, después de esto, me dio un magnifico kernel panic. Debemos estar preparados para esta situación ya que cambiando extensiones del kernel (kext) es probable que metamos la pata y lleguemos a la temible pantalla negra de la muerte. Si pasa esto, tendremos que modificar el sistema a bajo nivel. Para eso debemos estar familiarizados con los terminales Unix (bash). Si no lo estás, mala suerte, te aconsejo que estudies un poco al respecto. Meteis de nuevo el DVD de instalación y justo cuando aparece la ventana gráfica en la barra superior nos vamos al menu de herramientas para seleccionar abrir el Terminal. Esto os permitirá llegar al disco duro instalado y eliminar la extensión que os está provocando el fallo. Al recibir el error, fijaros en la traza que suele indicar qué extensión esta probocando el conflicto. En mi caso la extensión ElliottForceLegacyRTC.kext me estaba tirando el sistema. ¿Qué hice? Entrar con el terminal y mover (no os recomiendo borrar, nunca sabes cuando puede hacer falta) del directorio donde se encontraba (las extensiones de kernel estan localizadas en /Extra/Extensions ó /System/Library/Extensions) a un directorio que creé llamado SAVE:

# mkdir RAIZ_HD/Extra/SAVE
# mv RAIZ_HD/Extra/Extensions/ElliottForceLegacyRTC.kext RAIZ_HD/Extra/SAVE


Donde RAIZ_HD es el directorio donde os haya montado el DVD instalador el raiz de vuestro disco duro. El comando de creación del directorio obviamente sólo se debe realizar en la primera ocasión. Una vez eliminada la extension problematica, reiniciar. A mi con esto ya me arrancó correctamente. Os recomiendo tener a mano un raton y teclado USB, por si no os reconoce el del portátil pincharlo y poder salir del apuro. Una vez iniciado el MacOSX os recomiendo mirar las trazas del fichero /var/log/system.log. Si algun módulo o extensión de kernel no ha cargado correctamente o hay conflictos, ahí encontrareis trazas. Yo depuré el sistema con ayuda de esto. Revisé todos los errores y conflictos para ir arreglandolos manualmente poco a poco. Seguramente algunas extensiones de kernel os den problemas y otras os falten. Para eliminar extensiones, seguid el procedimiento descrito anteriormente (con mucho cariño) y para añadir extensiones os recomiendo usar el programa Kext Helper. Os quitareis de problemas de permisos y propietarios al mover la extensión al disco duro ya que automatiza el proceso. Para usarlo solo tenéis que descargar la extensión de kernel necesaria (fichero con terminación kext), arrastrarlo a la ventana, soltarlo, introducir la contraseña de administración y pulsar el botón EASY INSTALL.

Para revisar la lista de compatibilidad de hardware y extensiones necesarias para el Inspiron 9400 os recomiendo este enlace. Podréis encontrar por esa Wiki la misma descripción para una gran cantidad de equipos portátiles. Aplicado a mi instalación esquemáticamente os diré que:

  • Sonido: VoodooHDA
  • Tarjetas SD: VoodooSDHC
  • Teclado y trackpad: VoodooPS2Controller
  • Indicador de bateria: VoodooBattery
  • Información de CPU y solucion problema Dual Core: VoodooTSCSync
  • Problema de hibernación: SleepEnabler
  • USB 2.0: IOUSBFamily-378

Hay un problema molesto y es que si la pantalla se apaga no vuelve a encenderse. Como workaround os aconsejo:

  • Panel de control -> ahorro de energia -> apagar monitor -> nunca
  • Crear una carpeta de nombre 'Negro' y añadirle dentro una pequeña imagen completamente negra
  • Panel de control -> Salvapantallas -> Añadir carpeta 'Negro' -> Opciones (eliminar todas)

De esta forma cuando se active el Salvapantallas os mostrará una imagen en negro, que es equivalente a apagar el monitor (a mi, si le bajo el nivel de brillo al mínimo, me causa el mismo efecto que apagarla). Y del salvapantallas se recupera sin problemas.

La tarjeta de red (Broadcom 440x 10/100) tiene problemas de estabilidad detectados y mientras se soluciona la única opción para poder conectar sin problemas usándola es limitar la memoria del sistema a 1GB. Para ello en el arranque pulsar cualquier tecla y escribir:

maxmem=1024

Cualquier parámetro de arranque puede indicarse para que se aplique de forma automática editando el fichero /Library/Preferences/SystemConfiguration/com.apple.Boot.plist y buscando la cadena Kernel Flag para incluir entre las etiquetas string que hay en la linea siguiente los parámetros personalizados deseados (en este caso, maxmem=1024):



Si tienes mas de 1GB (como yo) es un fastidio tener que aplicar este cambio, ya que se pierde RAM porque si. De todas formas la solución de red definitiva pasa por instalarle una Wifi USB compatible y económica (ver lista de compatibilidad para la versión de OSX).

Pues listo, con esto deberíamos tener un MacOSX bastante completo y estable. A disfrutarlo. Como experiencia os diré que:

  • Cuando pasé de Windows XP a 7 el sistema mejoró en 2x
  • Al pasar de 7 a Snow Leopard ha mejorado en 4x

Programas como Lightroom vuelan, literalmente. Os animo a todos a probarlo. Por último, os dejo una lista de los módulos de kernel que tengo instalados ahora mismo. Con ello tengo funcionalidad completa del equipo (es decir, todo menos la wifi):



Y aquí tenéis el resultado final: Snow Leopard funcionando estable sobre un portátil Dell Inspiron 9400:

jueves, 10 de febrero de 2011

Sevilla de Noche






Estoy iniciándome en la fotografía con cámara reflex. Si te gustan mis instantáneas puedes encontrar mas en mi galería de Picasa

martes, 4 de enero de 2011

Fumadores Vs No Fumadores

Nunca llueve a gusto de todos....

Anon1 said: Me parece bien que no se pueda fumar en bares y restaurantes, así como espacios públicos en general. Me parece bien que los no fumadores tengan su espacio libre de humos. Ahora bien, ¿por qué no se puede abrir un bar o restaurante sólo parafumadores? ¿Por qué no tengo derecho a elegir? Cuando voy a un sitio donde está prohibido fumar, no fumo. Si en algún sitio se puede fumar, que los no fumadores no entren o, simplemente, se amolden. Y, sobre todo, la gran pregunta: ¿Por qué me vendes algo que me prohibes? Creo que decía Sabina: mi camello no puede ser mi policía. Que no lo vendan y se acabó. Lo demás es hipocresía.

Javier Sianes said: Ya se dio la 'libertad' de elegir y te recuerdo lo que paso? Que la mayoría de los bares pusieron el 'se puede fumar' por miedo a perder clientes y luego no veías a ni uno de esos bares respetar el que si el bar era 'para fumadores' no podían entrar menores. En España si das la mas mínima oportunidad para no respetar una norma por lo general no se respeta y entiende que el tabaco es un problema de salud publica que hay que atacar. Por el que fuma y sobretodo para los que no lo hacemos y teníamos que tragarnos el humo de los demas. Fumar en un espacio cerrado y publico es una guarrada, lo pintes como lo pintes. La ropa huele a tabaco, las manos, el pelo, tiñe los dientes, oscurece la piel y en el caso mas grave causa uno de los canceres mas mortíferos que existen.

Hoy he ido a una cafetería tipica en la que te encontrabas a la gente tomando cafe y fumando. Hoy, por primera vez en años, al entrar en la cafeteria.... ¡se podía oler a café! Nada de esa neblina estraña, la ropa oliendo perfectamente... De verdad, he sentido que se ha dado un paso significativo en la mejora de calidad de vida con una simple normativa y el cambio es espectacular. Te animo a que 'redescubras' los espacios públicos.

Sobre la hipocresía, por mi parte mañana mismo podrian dejar de vender tabaco y no me afectaria lo mas mínimo, pero entiendo que hay gente 'enganchada' a esa droga (porque es lo que es: una droga) y lo mismo esa gente lo iba a pasar mal. Prefiero que sigan teniendo la opcion al tabaco, eso si ahora que 'ejerzan' esa opcion es espacios abiertos (donde no me afecte) o en la intimidad de sus hogares.

Con esta ley se ha hecho justicia para defender a los que al salir a la calle estaban indefensos: los no fumadores. Gente obligada a tragarse el humo ajeno si quería estar en un bar, una disco, etc. Gente obligada a padecer problemas de irritacion de vista, garganta, etc. Y no solo consumidores, también trabajadores. Eso si que era tiranico y por fin una ley ha puesto fin a ello. Me da mucha pena la gente que malinterpreta la libertad y lo asocia al 'hago lo que me sale de los hue...'. Cuando estas en un espacio publico tienes una responsabilidad para con la gente que te rodea. Entiéndelo y actua en consecuencia.


Anon2 said: Hace siglos que tenéis bares en los que estaba prohibido fumar. Esto no es democracia, es intolerancia de todas, todas.

Javier Sianes said: El fumar en un espacio publico es un problema de salud. ¿Sabes que es intolerante? Que te pongas en un espacio publico y cerrado a fumar. Al sacar un cigarrillo y encenderlo el fumador ejercía uno de los mayores actos de tirania de nuestro estado de derecho. Y doy gracias porque, por fin, una norma haya puesto fin a ello. Cuando estas en un espacio publico tienes una responsabilidad para quienes te rodean.

Anon2 replies: Cuando estas en un espacio publico, que no es lo mismo que un local privado, en el que es el dueño quien tiene la potestad de decidir que se hace en su local y que no, y a los que encima se les ha robado literalmente a aquellos que hicieron reformas para adecuarlos al gusto de todos. Actuar en consecuencia era que los no fumadores entrasen en locales donde no se podía fumar, pero no os ha bastado, y habéis conseguido cohibicion de libertades, intolerancia. Eso es democracia???? Igualmente, tu mismo lo has dicho; es un problema de salud. Ojalá sea verdad y todos dejen de fumar. A ver por donde se pagan entonces la barbaridad de impuestos que se lleva el tabaco en este país. Ahí si veré como lo pagaremos todos.

Javier Sianes replies: Confundes la libertad con el libertinaje y ademas juegas con la ventaja de que sabes que la mayoría de los empresarios si les das a elegir entre beneficios o salud van a elegir $$$$$. Ya si eso con lo que ganen se compran pastillas para la tos, ¿no? ¿Por qué yo, que no fumo, debo aguantar a los fumadores en espacios públicos cerrados si están perjudicando mi salud? Y ya no digo solo bares (que hubo unos pocos que se atrevieron a ponerlos de 'no fumadores' aun con miedo a perder clientela) sino discotecas (que no conocí ni una que no estuviera hasta arriba de humo). O sea, según tu, antes tenia la 'libertad' de ir a los 4 bares y cero discotecas ¡Que tolerante! Por fin, y en mucho tiempo, una ley de ZP ha hecho justicia para con el bien general, aunque les pese a los fumadores.

Sobre impuestos y demás vayamos por partes. De mi por ejemplo el estado no han pillado un euro en la vida y siendo sinceros me parece que hasta recaudan poco. La cajetilla en otros paises europeos está muchísimo mas cara que aqui. Yo animo a ZP que ponga el tabaco a precio europeo, como está haciendo con otros bienes de consumo que son de primera necesidad. Al final esos impuestos financian los hospitales para tratar los problemas pulmonares derivados del consumo (activo O PASIVO) y en casos mas extremos cancer de pulmon (uno de los mas mortíferos que existen).

jueves, 18 de noviembre de 2010

Bloody Friday

I can't believe the news today
When my workmate came here to tell me he’s afraid

How long?
How long we going to feel that is wrong?
How long?
How long?

Cause today... we can be as one
Today...

People living to the edge
Government acting like if were with someone else
irresponsible banks about created
They say: Shut up! And pay the mortage!

Friday, Bloody Friday
Friday, Bloody Friday
Friday, Bloody Friday (Friday, Bloody Friday)

And the battles just begun
Five millions people during Monday at the Sun
Students working very hard
For a future that really never comes

Friday, Bloody Friday
Friday, Bloody Friday

How long we going to feel that is wrong?
How long?
How long?

Cause today... we can be as one
Today…
Today (Friday, Bloody Friday)
Today…
Today (Friday, Bloody Friday)
Today…

Wipe the tears from your eyes
Wipe your tears away
Wipe your tears away
There’s a lot of work to do (Friday, Bloody Friday)
And you are the only one that can make it true (Friday, Bloody Friday)

Friday, Bloody Friday (Friday, Bloody Friday)
Friday, Bloody Friday (Friday, Bloody Friday)

Phone is ringing really loud
My hands are shaking … what is all about?!
H.R. sweet voice at the phone
Calling me to talk … sure that all it’s done

The real battle yet began (Friday, Bloody Friday)
To claim the victory our fathers won (Friday, Bloody Friday)
on...

Friday, Bloody Friday…
Friday, Bloody Friday...




Based and inspired on U2 song “Bloody Sunday”