Ficheros de configuración en QT

logo_QTPara un proyecto que estuve realizando hace poco en C++ usando la librería QT (la versión 4.7), necesitaba almacenar la configuración en ficheros XML y poder leerla desde el programa.

QT provee de una funcionalidad que permite almacenar y, posteriormente, leer variables de configuración de manera cuasi-transparente. Eso lo realiza mediante QSettings. No obstante, esto no me servía a mi. Yo quería usar una estructura XML conocida, que se pudiera modificar desde un editor de texto, y que la aplicación recorriera el fichero XML sacando todas las variables.

Un fichero de ejemplo sería el siguiente:

<Configuration>
 <Section name="Server">
   <Port>8080</Port>
   <Hostname>Test.Server1.com</Hostname>
   <User>root</User>
 </Section>
</Configuration>

Yo utilizaba “secciones” de configuración, y cada una podía tener atributos especificando ciertas variables. Además, especifico en mis requisitos que las secciones podían ser optativas.

La solución que escogi la implementé por completo “desde cero” y, si bien se podrá codificar mejor o peor, sirve perfectamente para mis necesidades, y estoy convencido que para el 95% de las aplicaciones que almacenan sus variables de configuración en ficheros XML también.

Me basé en parte en QSettings, que se basa en QVariant. Yo al final lo que hice fue un QMap de QVariants, donde la clave del map es el nombre de la variable, y el contenido el valor. Esto te da mucha flexibilidad, ya que en un QVariant puedes poner cualquier tipo básico de QT. De este modo, puedes almacenar cualquier tipo sin volverte loco. Otra opcion es hacerlo todo con QString. De todos modos, al final en el XML se escribe como texto, y tú al leerlo ya sabes qué tipo debería ser para hacer el cast.

Read the rest of this entry »

1 views
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

[Howto] Instalar Eclipse (y cualquier app) en un U3

Hay veces que viene bien llevar en un dispositivo, no sólo tus datos, sino también las aplicaciones con las que manejarlos. Esto puede ser por diversos motivos: no tienes acceso a un equipo con los programas adecuados instalados o bien no te fías de que sean seguros. En mi caso, quería tener siempre un Eclipse en un dispositivo USB, junto al workspace con el código, para poder “jugar” cuando tenga algo de tiempo libre. Arcaico, pero funcional :-)

U3 comercializa unos dispositivos USB que permiten hacer esto. Además de tener alguna que otra medida de seguridad, dispone de un menú de inicio, auto-arranque de una mini aplicación de gestión, etc. En realidad, en mi caso el eclipse se puede poner en una carpeta dentro del USB (incluso una para Windows y otra para Linux)  y funcionaría perfectamente. Pero quería probar a meterlo dentro del U3.

Después de buscar un rato, encontré un programa llamado PackageFactory que permite empaquetar cualquier aplicación (o casi cualquiera) en un fichero u3p, que son los que se instalan en el dispositivo.

Todo lo que hay que hacer es arrastrar a la ventana del programa (dentro del recuadro correspondiente, claro) el ejecutable con todas las librerías y ficheros que necesita. En algunos casos será necesiro arrastrar todo el directorio de la aplicación.

Tras eso, y una espera que puede ser más o menos larga, se debe instalar en el dispositivo, mediante la opción de “Instalar desde mi PC“.

Esto, aplicado a cualquier otra aplicación, te permitirá tener todo lo que desees en tu U3.

Y si esto no es suficiente, eres un vago y lo quieres todo hecho, o bien no tienes un U3, siempre puedes ir a PortablesApps y descargar e instalar este programa junto con todas las aplicaciones que trae incorporadas (visto esto, ¿para qué quieres un U3?).

1 views
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

La importancia de un buen inventario

Buenas,

cualquier administrador de TI y responsable de seguridad de cualquier empresa estará de acuerdo con que, según crece el número de equipos y de software, aumenta exponencialmente su trabajo diario. Por ejemplo, tareas como:

  • Administrar la red y los sistemas de información.
  • Controlar las licencias del software.
  • Controlar cambios y averías en el hardware.
  • Poder realizar una simple consulta de direcciones IP.
  • Actualizar el software.
  • O algo tan trivial como tener un poco de orden en medio del caos.

sin un software de inventario, pueden resaltar casi misión imposible.

Además, existen algunas otras tareas, quizás no tan triviales, que también necesitan de un inventario adecuado:

  • Estar al loro de las vulnerabilidades que salen para el software instalado.
  • Gestionar incidencias.
  • Realizar un análisis de riesgos.
  • Poder enlazar información proveniente de diferentes fuentes relacionada con los Sistemas de Información.
  • Y así nos podríamos tirar todo el día.

Y si estáis obsesionados con cumplir con normas de la ISO, como la ISO 20.000 o la ISO 27.001 (entre otros), debéis saber que es IMPRESCINDIBLE para estar normas tener un inventario bien implantado.

Read the rest of this entry »

1 views
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Tips para Gentoo

Hola!

como sufrido usuario de Gentoo Linux en algunos sistemas, hay algunos trucos que he aprendido con el paso del tiempo y que me han salvado la vida en algunas ocasiones :-)

A continuación voy a indicar algunos que espero ir completando poco a poco.

Tengo un sistema con pocos recursos y me falla muchas veces al hacer un emerge

Es recomendable en el fichero /etc/make.conf quitar el parámetro -pipe en los CFLAGS. Según la ayuda de Gentoo, este parámetro hace que el sistema, al compilar, en lugar de usar ficheros temporales usa pipes, lo que acelear el proceso de compilación pero usa más memoria. En sistemas con pocos recursos, estos pueden llegar a colapsarse, fallando la compilación.

Adicionalmente, asegúrate de que MAKEOPTS tiene el valor correcto. Lo normal es que tenga el valor del número de CPUs. En mi caso, y lo más normal en sistemas de pocos recursos, será lo siguiente:

MAKEOPTS="-j1"

Si no lo tienes en el fichero de configuración, siempre puedes usar el siguiente comando para un emerge en particular (en el ejemplo con gcc):

MAKEOPTS="-j1" emerge=sys-devel/gcc-4.4.5

Al hacer un emerge, la compilación se ha realizado correctamente, pero ha fallado el proceso de instalación. ¿Se puede hacer esto manualmente para no tener que compilar todo de nuevo?

Es posible usando los scripts Ebuild. A mi me pasó precisamente con glibc-2.12.2. Lo que hice fue ir al directorio donde está el ebuild, que es /usr/portage/sys-libs/glibc/, y usar los siguientes comandos:

ebuild glibc-2.12.2.ebuild preinst
ebuild glibc-2.12.2.ebuild install
ebuild glibc-2.12.2.ebuild qmerge
ebuild glibc-2.12.2.ebuild postinit
ebuild glibc-2.12.2.ebuild postinst
ebuild glibc-2.12.2.ebuild config

De todos modos creo que con hacer el install es suficiente.

glibc no hace más que fallar en la compilación. ¿Qué puedo hacer?

Si tienes distcc instalado, prueba con el siguiente comando:

FEATURES="-DISTCC" emerge glibc
1 views
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Impresiones de las euskal securiTIConference

El pasado martes 24 de mayo fue la euskal securiTIConference, organizada por el Colegio de Ingenieros en Informática de Euskadi. Además de lo que se puede ver por la red sobre el evento (

incluidas), voy a dar mi opinión al respecto.

Por un lado, y a nivel personal, me resultó muy grato encontrarme con antiguos compañeros que hacía mucho tiempo que no veía. Resulta muy agradable discutir con ellos los temas de la agenda, y siempre surgen nuevas ideas e iniciativas…. que muchas veces se quedan en el mismo sitio, en el pasillo o cafetería de turno (y otras no, afortunadamente).

De todas las charlas que hay de seguridad, lo que menos me suele gustar es la monotonía de las temáticas. Casi siempre dicen lo mismo, qué dice la ley o la norma tal que hay que hacer, y pocas veces bajan al mundo real o presentan novedades interesantes en seguridad. He de decir que en esta ha habido un poco de todo. Entiendo que a nivel de negocio siempre es bueno saber temas de normativas y esas cosas, pero sinceramente, si quiero una descripción literal me compro el libro o espero a que salga la película. Lo bueno de estas charlas son las experiencias, que las personas que tienen experiencias en ciertos campos compartan con todos los problemas que existen, como los han solucionado, que beneficios les han aportado, etc. Y en este sentido, la charla que más me gustó fue la de Iñaki Regidor, de EiTB, cuando contó cómo se pusieron en marcha los planes de contingencia de su empresa el día que les pusieron una bomba.

Sobre esta charla, Iñaki hizo un par de reflexiones muy útiles. Puedes “idear”, e incluso ensayar, un plan de contingencias que en la teoría, o en la práctica controlada, sea casi perfecto. Precisamente ahí está el problema. Una emergencia real nunca será como se indique en el papel. Algunos aspectos que nos comentó que se “escaparon” de la teoría, fueron:

  • La ertzaintza se puso al frente del desalojo. La persona que se encargó nunca había estado en la sede de EiTB y desconocía la mejor forma de llevarlo a cabo.
  • Miembros de la ertzaintza, en su afán por desalojar lo más rápido posible (algo más que comprensible), impidieron que se llevaran a cabo algunas de las tareas del CAU, como la realización de copias de seguridad, etc.
    • En este sentido, después del incidente han establecido relaciones con los cuerpos de seguridad más cercanos, han difundido su plan de contingencia y han realizado visitas conjuntas a la sede para que también la ertzaintza esté entrenada.
  • Se vio la importancia de tener la documentación disponible no solo en la red corporativa, sino en sitios externos (google docs, por ejemplo).
  • El orden de apagado de las máquinas es muy importante y debe ser especificado.
  • Las redes sociales son un buen medio para informar acerca del estado de la contingencia.
  • Por lo general es mejor no apagar las comunicaciones, ya que permite hacer un diagnóstico en remoto. También sería muy útil disponer de un mecanismo de encender los servidores en remoto.
  • Es muy importante no solo tener un plan de contingencia de los medios técnicos, sino también del negocio. ¿De qué sirve que los medios funcionen si no hay gente para usarlos?
  • Tener casi todo el personal de negocio en la misma sede hace que, si pasa algo en la sede, la empresa se quede casi innoperativa.
  • En momentos de urgencia, la búsqueda de los contactos adecuados resulta una odisea. Ahora tienen una “cartulina” con los teléfonos más importantes en caso de contingencia, y no pierden tiempo buscándolos. A mi esto me sorprendió, porque es una verdad como un templo, y algo tan básico… que pocas veces se tienen. A veces deberíamos tener los pies más en la tierra en lugar de buscar soluciones demasiado novedosas (espera, que cargo los contactos en gmail y los sincronizo con Exchange para que puedas acceder desde tu BlackBerry con conexión 3G y… Joder, con lo fácil que es tener una tarjetita con 10 números de teléfono…).
  • Por último, pero quizás debería estar en primera posición, comentó que hay que tener en cuenta las emociones humanas. Cuando estás en tu despacho, calentito y “a salvo”, es fácil tener la cabeza fría y creer que sabes lo mejor que se puede hacer. Pero en el momento, con la confusión existente, tus emociones te pueden jugar una mala pasada.

Otro de los momentos que prometían más interesantes fue la mesa redonda, de nombre ¿Cómo aseguramos la información?. Aparte de cuatro datos o novedades legales y regulatorias, he de decir que a mi me decepcionó un poco por un motivo que ya adelantaba al principio del post: más de lo mismo. Las preguntas que se hicieron a los participantes eran demasiado genéricas, y las respuestas tampoco se mojaban mucho. Todos sabemos que existen regulaciones, los problemas comunes que tienen las empresas, lo que dicen los expertos, etc. Pero, ¿cómo afrontan realmente las empresas sus incidentes de seguridad en el día a día? ¿Cóm afrontan el multicumplimiento normativo? Las consultoras que deberían innovar en este aspecto ofreciendo soluciones novedosas ¿como es que todas hacen lo mismo? ¿ninguna ve lagunas, o cuando las ven, ninguna propone nada para mejorar la forma de hacer las cosas?

Por esto creo que lo mejor es, siempre, una charla que trate sobre un caso de éxito. Y si lo cuenta el cliente en lugar de una consultora, mucho mejor.

La última charla a la que haré referencia será la de Pedro Alberto González, titulada “La arquitectura de la privacidad. Ver los esfuerzos que se están haciendo a este respecto en otros países y como incluyen la privacidad en el análisis y diseño de los sistemas fue muy interesante. Mi pregunta ahora es: en el panorama del desarrollo español, que somos unos desgarramantas, ¿quién va a aplicar estos principios si ni siquiera desarrollan con seguridad? Hace años que se dice que se debe incluir la seguridad en el ciclo de vida de desarrollo, existen muchas metodologías, pero en España ¿quién lo hace? En esta cultura del “cuanto antes y cuanto más barato mejor”, me temo que esto no tiene cabida. Y la culpa la tienen las empresas usuarias, que pasan olímpicamente de la calidad. ¿Funciona? Sí (más o menos). ¿Es barato? Sí (aunque te dejarás la pasta en el mantenimiento). Pues ale. Y cuando haya fallos de seguridad (de todos modos a mi eso no me va a pasar), entonces ya lloraremos. Creo que antes de inventar cosas nuevas, hay que educar a esta sociedad empresarial, y luego ya veremos.

Algunas charlas no he comentado porque no pude ir. Espero que mi reflexión sirva de algo, y si en el futuro ayudo a montar la siguiente convocatoria, lo tendré en cuenta para intentar que sea más interesante y útil si cabe.

1 views
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading ... Loading ...

Conceptos de ITIL Foundation v3

Como dentro de poco tengo el examen para la certificación ITIL Foundation v3, me he hecho unos pequeños resúmenes mediante Freemind, un programa bastante chulo para hacer mind-mapping, o mapa de ideas, o brain storming, etc.

Get the Flash Player to see this player.

 

El fichero se puede encontrar aquí (por si lo quieres abrir con Freemind). Para bajarlo, pero hacerlo con “botón derecho–>Guardar archivo como” Y si por lo que sea lo descargas como htm, cambiarle la extensión a “mm

ITIL v3

1 views
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 4.00 out of 5)
Loading ... Loading ...

Desarrollando mis Plugins para wordpress

Llevo un tiempo trabajando en un proyecto personal que consiste en el desarrollo de un sistema de gestión de infraestructura de IT (básicamente, un ERP aplicado a departamentos de IT). La idea es que el sistema consista en un core, con un mínimo de funcionalidades, y que estas se añadan mediante plugins, en caliente (ya hablaré en otro momento de este proyecto). Aquí me encontraba con dos grandes dificultades:

  1. Hace mogollón que no programo grandes aplicaciones. Últimamente estaba más enfocado en pequeño scripts muy específicos. Esto lo estoy solventando pegándome la gran pechada a empollar/recordar lenguajes ya olvidados y perfeccionando otros.
  2. Nunca he desarrollado un sistema basado en plugins. Y es algo chungo. Aparte de leerme medio Internet (que tampoco he encontrado mucho sobre el tema), he pensado que me vendría bien practicar.

En estas circunstancias, he decidido llevar a la práctica una idea que me rondaba por la cabeza desde hacía tiempo: crearme un par de plugins para WordPress que me ayuden en tareas básicas que suelo hacer a menudo. La idea es tener en la Web una herramienta que permita, de momento, convertir:

Así que, sin tener ni idea de cómo se hace un plugin para WordPress y habiendo programado 4 líneas de {es:PHP} en mi vida, vamos a ver qué sale…..

Read the rest of this entry »

1 views
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Los spammers te dan trabajo

Flipo. Y es que ya lo hacen sin ningún cargo de conciencia ni nada.

ODesk es una Web donde profesionales freelance buscan proyectos, y viceversa, empresas anuncian proyectos para freelances.

Echando un vistazo, veo el siguiente anuncio: https://www.odesk.com/jobs/Web-Guru-Internet-Security-Expert_~~d3a10fae86ad8045?tot=192&pos=11

Básicamente buscan lo siguiente:

We require talented individual(s) capable of processing the web resources (e.g., online consumer databases, social networking portals, blogs etc.) to extract information and provide thousands of email addresses, phone numbers etc. grouped by country or region.

The output we are looking for:

Valid email addresses (as many as possible) and contact phone (if possible) of companies or peoples grouped according to specific country.

Es decir, buscan gente (super profesionales de seguridad, vamos), para recoger toda la información de contacto (miles, tantas como sea posible), como por ejemplo emails, teléfonos, etc.

Lo que yo decía, flipante…

1 views
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Gentoo y Debian en un ebox-2300sx

Hace bastante tiempo me compré por ebay un ebox 2300 sx, que tiene un procesador Vortex A9100. El bicho es el de la foto, aunque en su web se podrá ver algo más de info. En resumen es un cacharro con 128 Mb RAM y una CPU compatible con sistemas 486 a 200 MHz. Dispone de una conexión RJ-45 para Ethernet y un slot para introducir una tarjeta CompactFlash. No tiene disco duro, por lo que usa la CompactFlash como medio de almacenamiento. Internamente usa un adaptador a IDE para la conexión a la {es:CompactFlash}, por lo que se trata como un disco IDE a todos los efectos. También dispone de numerosas entradas USB. Mi modelo no tiene tarjeta de sonido, ni wireless. A mi me gusta sobre todo por su bajo consumo y su nulo ruido en funcionamiento (no tiene ventilador).

Mi idea era instalar un Linux y ponerlo en casa como servidor. Para ello, la idea original era simplemente poner en un stick USB una instalación normal de Debian e instalarlo. Problema número 1, descubrí que la máquina no tiene co´procesador matemático, y por lo tanto este debía ser emulado por el kernel. Además, los parámetros de arranque que distribuciones anteriores admitian al respecto, las nuevas instalaciones no las traían “de serie”.

Por lo tanto, mi mejor consejo es armarse de una máquian virtual en un PC normal, y empezar ahí a instalar el sistema base.

Esto no pretende ser un “howto”, pero sí una pequeña ayuda para todos los que quieran instalar un linux en una máquian de estas. A lo largo de este artículo daré enlaces a otros sitios con información más detallada.

Read the rest of this entry »

1 views
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Misma mierda, distinto nombre…

Hola a todos,

es una verdad innegable que las redes sociales han calado en los usuarios de Internet. Ejemplos de sitios Web de este tipo son myspace, tuenti o facebook, por nombrar algunos.

Sin embargo, estos sitios no son tan inofensivos como mucha gente piensa. Desde que el hombre es hombre, ha habido individuos que han tratado de conseguir beneficio propio a costa de los demás. Y desde que Internet es Internet esto se ha extendido al cyberespacio. Correos fraudulentos intentando hacerse con tus datos de acceso o datos bancarios, virus y troyanos que quieren controlar tu sistema, etc.

Como mucha más gente, yo tengo un perfil creado en facebook. Esta red tiene una característica que es el chat. Mediante el chat, es posible hablar en tiempo real con tus contactos conectados en ese momento. Y mediante el chat hay gente que te intenta “engañar”. Hace poco, mientras estaba conectado al facebook se me abrió una ventana del chat proveniente de un contacto, en el que venía un enlace (http://fotospaces.net/photo.php_=1311134775) y animando a pulsar para ver una supuesta foto. Lógicamente, la persona que me lo envío no tenía ni idea que lo había hecho. Y lógicamente este enlace no da a ninguna foto. Por si acaso, lo que hice fue descargarme el destino del enlace:

wget http://fotospaces.net/photo.php_=1311134775
Cabecera archivo

El fichero lo adjunto a este post por si alguien quiere jugar (si tenéis antivirus lo más probable es que no os deje descargarlo, y tampoco lo recomiendo. Lo mejor es usar una máquina virtual para jugar). Lo primero que llama la atención del fichero al ser abierto con un editor de texto sencillo, o simplemente al mostrar si contenido por la consola, es que empieza por “MZ“, lo que quiere decir que es un fichero ejecutable (EXE) de Windows. Podemos llegar a la conclusión que no es una imagen como nos hacían creer. El objetivo de este engaño, que por otro lado es tan viejo como los disquetes, es que ejecutes un archivo pensando que es una foto. Y como veremos más adelante, el propio bicho realiza unas acciones que te hacen creer que realmente estás viendo fotos y que no haría sospechar a un usuario confiado.

Read the rest of this entry »

1 views
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
←Older