Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



jueves, 26 de marzo de 2015

Aplicaciones Android para seguir la Semana Santa



Aplicaciones Android para seguir la Semana Santa

Os dejo este enlace: Semana Santa 2015 Aplicaciones Android, donde  encontrareis un montón de aplicaciones sobre la  Semana Santa de distintos pueblos y ciudades (la mayoría son gratuitas). Con estas aplicaciones obtendréis la información de las hermandades, galerías de fotos y vídeos, conocer sus horarios y seguir su recorrido por las calles de distintas ciudades.

Por si vais a visitar Sevilla en Semana Santa, (o simplemente por curiosidad)  os dejo algunos enlaces de descargas de las aplicaciones gratuitas que están disponible en gogle play. 


Las mejores aplicaciones Android para seguir los pasos y hermandades de Semana Santa 2015
https://play.google.com/store/apps/details?id=com.iliberi.semanasantasevilla



Las mejores aplicaciones Android para seguir los pasos y hermandades de Semana Santa 2015
https://play.google.com/store/apps/details?id=com.sopinet.icofrade
Las mejores aplicaciones Android para seguir los pasos y hermandades de Semana Santa 2015
https://play.google.com/store/apps/details?id=com.ssanta2014sevilla.iphone





Las mejores aplicaciones Android para seguir los pasos y hermandades de Semana Santa 2015
https://play.google.com/store/apps/details?id=com.elcapillita.zonapp



Imágenes de las aplicaciones:

Semana Santa Sevilla 2015 - screenshot thumbnailGuía Semana Santa de Sevilla - screenshot thumbnailPaso a Paso con Ayto. Sevilla - screenshot thumbnailSemana Santa iCofrade - screenshot thumbnail

Saludos


















domingo, 22 de marzo de 2015

Truco: Haz que en tu lapiz USB tengas una distribución linux modificable y home persistente

Truco: Haz que en tu lapiz USB tengas una distribución linux modificable y home persistente



Este truco consiste en convertir un lapiz usb en un verdadero sistema linux,  en el cual se puedan instalar aplicaciones, como si fuera un disco duro normal,  (y sin gastar un CD o DVD !!!)

¿Como hacerlo?
1) Tienes que tener un lapiz usb de por lo menos 4 GB de tamaño (cuanto mayor tamaño tenga, mejor, ya que te permitirá instalar más programas). Formatealo como mínimo con dos particiones (una  EXT4 para linux y otra pequeña para la swap (500 mb)). Recomendación: Usa Gparted, para hacer las particiones necesarias en tu USB.
Una vez, realizadas las particiones, conectas el lapiz a tu pc.

2) Descargarte la imagen .iso de tu distribución favorita (y lo he probado con Elementary OS, linux mint, Minino-Picaros y Artabros)

3) Usar virtualbox de la siguiente manera:

3.1) Creas una máquina virtual, con el 50% de tu memoria ram. Esto es para hacer el proceso de creación del usb. Luego tu usb usará el 100% de la memoria de tu ordenador. No hace falta que definas disco duro para tu máquina vitual.

Además, para algunas distribuciones linux, tienes que activar el PAE, en la pestaña Sistema/Procesador:




 3.2) Indicar que la máquina virtual se inicie con la imagen .iso de la distribución que has descargado.


 
3.2) En la máquina virtual, tienes que definir que vas a usar un dispositivo USB (donde tengas conectado tu lapiz USB)


3.3) Arrancas tu máquina virtual, y se iniciará la imagen de la distribución.

3.4) Elige la opción de instalar en el disco duro, y se detectará el lapiz USB como un disco duro, seleccionalo, y  sigue con el proceso de instalación de la distribución con los pasos habituales.

3.5) Una vez terminado el proceso, apaga la máquina virtual, reinicias tu ordenador, y si tienes indicado que tu ordenador use los puertos USB para arrancar, detectará el lapiz y se iniciara el sistema linux que has grabado en el usb.

3.6) Este sistema linux, es totalmente modificable, osea puede instalar, desinstalar programas.

3.7) Puedes optimizar el sistema linux que tengas en el USB para que alargues la vida de USB, por ejemplo cargar en memoria Ram la carpeta /tmp
http://jsbsan.blogspot.com.es/2014/08/mejora-el-rendimiento-de-tu-pc-usando.html

Saludos


PintaScreen: Nueva Versión: 0.0.65


PintaScreen: Nueva Versión: 0.0.65




Os traigo una nueva versión del PintaScreen, con las siguientes novedades:

- Un nuevo botón a la barra de herramienta de pintascreen: se trata de "emborronar" la parte de la imagen que seleccionamos. La utilidad esta clara ¿no?, por si acaso: si estamos trabajando en una captura de pantalla, y se ven textos que no queremos que se puedan leer (datos de clientes, personales, url, etc), pues se emborrona con esta herramienta para que no se pueda leer:

- Se he añadido la posibilidad de guardar las capturas en formato .jpg, que comprime mejor y hace que las imágenes pesen menos, ideal para subir las imágenes a internet.


Aqui os dejo un video explicando las novedades:





Para la descarga de la nueva versión, visitad la web del proyecto:
http://pintascreen.blogspot.com.es/


Saludos







martes, 17 de marzo de 2015

XlinceGambas: Programa de softwarelibre para crear y gestionar presupuestos





Bueno pues os dejo aqui mi último proyecto. Se trata de un programa para hacer y gestionar presupuestos. Esta pensado para autónomos o freelance, que se dediquen a realizar trabajos, y tengan o usen,  un banco de precios tanto de trabajos y como de materiales, con los que confecionan los presupuestos para  los clientes..

Este tipo de programa es muy usual en el sector de la construcción:  Presto, Arquimedes, Menfis

Pero realmente, la gente que usa este tipo de programas, no aprovecha el 100% del programa, les pasa igual que con Autocad, ya que  tienen demasiadas opciones....

Hace dos meses, una pequeña empresa  de trabaos pintura de México, me pidio hacerle un programa para poder gestionar sus presupuestos, y con la idea que yo ya tenia, pues he hecho este programa que lo podeis ver en el siguiente enlace:

http://presupuestosobras.blogspot.com.es/

He creado una serie de videos cortos para explicar como se usa:


 Es softwarelibre y se agradecen los donativos.

Saludos

Tutorial: Como incluir anuncios de google adsense en tu blog

Tutorial: 

Como incluir anuncios de google adsense

 en tu blog

 

En esta entrada os dejo 3 videos para que veais lo fácil que es incluir vuestros bloques de anuncios en blogspot.com u otros alojamientos que admitan colocar publicidad.

Los dos primeros tratan de como añadir la publicidad usando el gadget que trae para ello blogger. El tercero explico como obtener el código html/javascript del anuncio y como insertarlo en vuestra página web.




En  el siguiente enlace lo explico todo con más detalles y con capturas de pantallas: http://addpublicidad.blogspot.com.es/


Saludos


lunes, 16 de marzo de 2015

Elementary OS: Instalando gambas3


Elementary OS: Instalando gambas3
Os dejo un video tutorial donde explico como instalar gambas3 (la versión 3.6.2) desde repositorio PPA, en la distribución elementary os





Enlace de descarga de elementary os: http://elementary.io/
Instalación de gambas3 explicado en  http://cursogambas.blogspot.com.es/2012/08/instalacion-desde-repositorios-del.html

Comandos para la instalación desde la terminal, usando PPA:

$sudo add-apt-repository ppa:gambas-team/gambas3

$sudo apt-get update

$sudo apt-get install gambas3


Nota:
La versión que salio el pasado Sábado 14 de marzo (la 3.7), en los próximos días se actualizará el ppa gambas-team/gambas3 para que se instale.

Simulador Online de Arduino: Monta y prueba tus circuitos sin ningún coste

Simulador Online de Arduino:
 Monta y prueba tus circuitos sin coste


Pues si, ya podéis trastear con un arduino y con muchos componentes electrónicos, sin gastar ni un dolar o euro, totalmente gratis.. En esta página   http://123d.circuits.io/  tendreis a vuestra disposición un simulador donde podéis realizar vuestros montajes de circuitos electrónicos  y usar un arduino virtual, el cual podéis programar.y realizar la simulación.


En este video podeís ver como se usa:




Vuestros montajes los podéis compartir con la comunidad, tanto el circuito como los componentes que habéis usado.

Circuito ya montado y que podéis simular:

sábado, 14 de marzo de 2015

Gambas: Lanzamiento de la versión 3.7


Gambas: Lanzamiento de la versión 3.7



Lo acaba de anunciar Benoït en las listas de usuarios de gambas:

Hola,
Después de unos minutos últimos errores se habían corregido, Gambas 3.7 ha sido liberado!
Algunos de los principales cambios son:
- Un nuevo repositorio de software hecho con Gambas para Gambas. Permite publicar e instalar softwares Gambas.
- Bases de datos ahora se puede inicializar a partir de plantillas de forma automática generado por el IDE.
- Descriptores de acceso de arrays son ahora más rápido.
- El controlador de base de datos MySQL es más rápido.
- La interfaz de proceso hijo se ha corregido y optimizado.
- Nuevo componente SDL2.
- Nuevo componente de gestión de escáner.
- Nueva versión del componente de informe.
Ver el 'Notas de la versión' en el wiki de la lista de todas las nuevas características y
correcciones de errores.
http://gambaswiki.org/wiki/doc/release/3.7.0
Gracias por su paciencia y disfrutar de ella!

Benoît Minisini

Como veis, la gran aportación de esta versión es un nuevo repositorio de aplicaciones realizadas en Gambas, para que los usuarios puedan descargarselas y también subir las suyas.
Todo accesible desde el Ide de Gambas:



En los próximos días estará disponible el PPA, por ahora lo que esta disponible es el paquete del código fuente para compilar.

Fuente:
http://gambas.sourceforge.net/en/main.html
http://gambaswiki.org/wiki/doc/release/3.7.0


Youtubers:como iniciarse.Ganar dinero con Google Adsense

Youtubers: como iniciarse.

Ganar dinero con Google Adsense

En este post, voy a contestar varias preguntas que me han hecho sobre publicidad, blogger y videos de youtube. Es mi modesta opinión y
 os cuento mi experiencia de más de 5 años:


Pregunta: ¿necesito tener blogger para que aparezca publicidad (adsense) en vídeos?
No y si, te explico: En principio no hace falta, solo tienes que acceder a google adsense, y/o registrarte he indicar tu canal de youtube.

Yo lo hice de la siguiente manera:
Cree un blog, al que le fui añadiendo poco a poco entradas, luego me apunte a google adsense, y ellos comprobaron la calidad del blog y (en unos meses),  lo incluyeron en el programa de publicidad.
 Entonces ya pude crear y obtener los códigos de los anuncios y ponerlos en el blog. Y a la vez también aparecieron en mi canal de youtube (hay que activar una opción de monetizar los videos, pero hasta que no estes en google adsense no te va a aparecer esta opción)

¿Por que digo "No y Si"?
Porque una forma de que la gente visite tus videos es que los conozcan atraves de tu blog. La gente que lee los artículos y les interesen, también verán los videos. 

Y también se produce el efecto contrario: los que vean tus videos (y les deje el enlace al blog), van a visitar tu blog.

Es muy importante usar las redes sociales, foros, etc. para dar a conocer tu blog... pero tampoco hay que ser pesados, porque consigues el efecto contrario.

Pregunta: quiero saber como puedo ganar dinero con los videos en youtube.
Se gana dinero por cada vez que vean tus videos. Cuanta más personas vean tus videos más ganarás.

Pregunta: ¿hay un método fácil para aumentar las visitas?
Hacer trampas: existe multitud de web que ofrecen (ya sea bajo pago o mediante intercambio de visitas), generar visitas a tus videos y/o blog. Esto esta totalmente prohibido por google, a la larga, lo detectarán y te echaran del programa de google adsense sin pagarte nada.

No dudes que al final te pillarán, y perderás todo lo que hayas acumulados en meses.

Consejo:
 Es preferible ganar todos los meses 1 euro, a ganar 30 euros en un solo mes usando malas prácticas.

Es muy importante leerse las politicas de google adsense y cumplirlas.
https://support.google.com/adsense/answer/48182?hl=es

Te recomiendo que veas este video (son 21 minutos), pero te van a ahorrar muchos dolores de cabeza:





Pregunta: ¿que temas interesa a los visistantes?, ¿de que tema deben de tratar mis videos, para asi conseguir más visitas?
Deberías de hacer la pregunta al revés:

  •  ¿que cosas te interesan a ti?
  •  ¿que te gusta?
  •  ¿que me gustaría compartir con los demás?

Si haces algo que te gusta, aunque ganes poco, estarás feliz.
Si haces algo que no te gusta, y ganas poco, te sentirás infeliz. 

Pregunta: ¿compro mi propio dominio www.MiNombre.Com ?
Yo personalmente, te recomiendo que no te gastes dinero.

Consejo: Como al principio no sabes si vas a ganar dinero, mejor es que no te gastes tu dinero. Luego cuanto ya sepas de que va esto, te lo puedes replantear.

Se que en muchos sitios te venden la idea de que tener un dominio propio es mucho mejor,  porque va a facilitar que la gente te encuentre, que recuerde el nombre de la página web, etc...

Esto no es del todo falto, pero para el 90% de las personas que lo hagan, no les sirve para nada.

Cuidado:
Hay ofertas del primer año que registrar tu dominio no cuesta casi nada, pero luego los siguientes años, mantener el dominio, cuesta muchísimo más de lo que vas a obtener por la publicidad.

Pregunta: ¿alojamiento gratuito o de pago?
Personalmente,yo buscaría un alojamiento  gratuito pero donde pueda poner mi publicidad.

Hay muchos alojamientos web que son gratuitos, pero no te dejan poner tus bloques de anuncios.

Yo te recomiendo blogspot  porque te deja poner tus bloques de anuncio y no te cuesta nada mantenerlo.

Los alojamiento de pago, tienen la ventaja, de darte más libertad a la hora de diseñar tu web/blog, pero con el inconveniente de tener un pago fijo mensual/anual. (que muchas veces va a ser superior al los ingresos que consigas)


Pregunta: ¿cuanto se gana?
Pues la respuesta es: muy poco, apenas nada. 

Si publicar un blog o subir videos, lo haces por hobby, entonces, el hecho de ganar poco no te llega a importar, será tu pequeña recompensa.

Si lo haces para ganarte la vida,... mejor dedicate a otra cosa, solo algunas personas consiguen ganar lo suficiente para mantenerse con la publicidad.

También es importante hacer esta cuenta:

Balance de Beneficio = los ingresos  menos los gastos.

A los ingresos de publicidad les tienes que quitar los gastos que te genera, ya sea:
   - Coste de la conexión de internet
  - Tiempo que le dedicas. Si, tu tiempo vale dinero, porque lo que le dedicas a tu blog o canal, es tiempo que no lo dedicas a otras cosas (estudios, amigos, familia, etc...)


Pregunta: ¿con la publicidad, podré de dejar de trabajar?
No, tienes que combinar más fuentes de ingresos. La venta de productos por comisión puede ser una solución, buscar patrocinadores directos para tu blog y/o  canal de yotube, también te puede ayudar.
¿es difícil conseguirlo? Si
¿como puedo conseguirlo? Calidad en lo que hagas y mucha mucha suerte.

Finalmente:
Si has llegado hasta aquí, te darás cuenta que:

  • No todo lo que brilla es oro
  • Que nadie da duros a cuatro pesetas
  • Que nadie te va a regalar el dinero
  • Que en la televisión/periódicos solo sale los pocos que lo han conseguido.... muchos muchos quedaron en la cuneta y no salen en ningún programa de televisión o periódico para contarlo.

Bueno, como no quiero terminar este artículo en plan pesimista, deciros que hay que intentarlo, y que el camino es:
- La Calidad: calidad en el contenido que subid a la red.. Hacer cosas propias, no copiar ni pegar otros artículos. Hacer buenos videos y  buenos artículos.
- Las Ganas e ilusión que le echeis a vuestro proyecto de canal o blog.
- Ser Constante. Periodicidad en la publicaciones: no sirve de nada subir 10 videos en un dia, y luego llevarte 3 meses si subir nada.
- Críticas: seguros que recibirás criticas: algunas serán constructivas ya que os aportarán información de lo que fallas, otras serán directamente destructivas o incluso faltándote el respeto, a esas ni caso. Desgraciadamente hay mucha gente "frustrada" que usa el anonimato de la red para insultar.

Y sobre todo:

  •  disfrutad mientras hacéis vuestros videos y/o blog.
  •  disfrutad cuando lo compartas.
  •  disfrutad cuando algunos os den las gracias.


Ese será vuestro mejor pago.

viernes, 13 de marzo de 2015

Blog sobre Caracterización de Personajes

Blog sobre

 Caracterización de Personajes



Este es un blog que preparé con la ayuda de mi mujer, de un trabajo que hizo ella, cuando estudiaba Técnico de Caracterización sobre la caracterización de personajes en la historia: vestimenta, pelucas, peinados de la época, maquillaje y posticería.

Le llevo varios meses para recopilar toda la información,  y os dejo aquí todo el indice del trabajo:

00 Introducción

01 Egipto
01.01 El maquillaje
01.02 Cuidado del cabello, manicura y pedicura.
01.03 Vestidos y Calzado
01.04 Pelo, Pelucas, Peinados, tinturas, tratamientos de la calvicie, etc.

02 Grecia y Roma
02.01 EL PEINADO GRECOROMANO
02.02 EL MAQUILLAJE
02.03 EL VESTUARIO EN ROMA

03 Edad Media
03.01 EL PEINADO EN LA EDAD MEDIA
03.02 EL MAQUILLAJE EN EL MEDIEVO
03.03 EL VESTUARIO EN LA EDAD MEDIA

04 Siglo XVI
04.01 EL PEINADO
04.02 MAQUILLAJE SIGLO XVI
04.03 VESTUARIO SIGLO XVI

05 Siglo XVII
05.01 EL PEINADO
05.02 EL MAQUILLAJE EN EL SIGLO XVII
05.03 VESTUARIO SIGLO XVII

06 Siglo XVIII
06.01 EL PEINADO
06.02 EL MAQUILLAJE
06.03 EL VESTUARIO

07 Siglo XIX
07.01 EL PEINADO
07.02 EL MAQUILLAJE
07.03 EL VESTUARIO

08 Siglo XX
08.01 EL PEINADO
08.02 EL MAQUILLAJE
08.03 EL VESTUARIO

09 Años 1910
09.01 EL PEINADO
09.02 EL MAQUILLAJE
09.03 EL VESTUARIO

10 Decada años 20
10.01 EL PEINADO
10.02 EL MAQUILLAJE
10.03 EL VESTUARIO

11 Decada años 30
11.01 EL PEINADO
11.02 EL MAQUILLAJE
11.03 EL VESTUARIO

12 Decada años 40
12.01 EL PEINADO
12.02 EL MAQUILLAJE
12.03 EL VESTUARIO

13 Decada años 50
13.01 EL PEINADO
13.02 EL MAQUILLAJE
13.03 EL VESTUARIO

14 Década años 60
14.01 EL PEINADO
14.02 EL MAQUILLAJE
14.03 EL VESTUARIO

15 Década años 70
15.01 EL PEINADO
15.02 EL MAQUILLAJE
15.03 EL VESTUARIO

16 Década años 80
16.01 EL PEINADO
16.02 EL MAQUILLAJE
16.03 EL VESTUARIO

17 Década años 90
17.01 EL PEINADO
17.02 EL MAQUILLAJE
17.03 EL VESTUARIO

18 La posticería en la Historia

19 Bibliografía

jueves, 12 de marzo de 2015

Indignante: RR.HH:Ainhoa Gasull

Indignante: RR.HH:Ainhoa Gasull


Cuando abres tu correo electrónico, estando en situación de desempleo y ves un correo de RR..HH palabras que indican que es del departamento de recursos humanos, te llenas de ilusión ¿una respuesta sobre alguna oferta de trabajo?

Pues hoy recibo un corre enviado por RR.HH: Ainhoa Gasull, y se trata de un .... curso... si un curso...otro master para aprender aplicaciones android, un mercado que ya de por si se encuentra saturado de profesionales...y por ningún lado veo una oferta de trabajo ni de mi curriculum.......

Creo que evidentemente se trata de un engaño, y de quedarse con la gente y con sus ilusiones....

Evidentemente no me voy a  apuntar al curso, porque si me engañan el el primer contacto con  la publicidad ¿no me van a engañar en el resto?



miércoles, 11 de marzo de 2015

Diseño De Una Base de Datos: respondiendo a una pregunta



  Diseño De Una Base de Datos: respondiendo a una pregunta.



Os traigo otra perla, esta vez de Shordi, del foro de gambas-es.org.
Se trata de explicar como se debería diseñar una base de datos.


Para iniciar el diseño, no debes pensar en maneras de entrar los datos o en la cualidad de cada campo. Eso vendrá después.
Para diseñar una base de datos, escribir un programa, hacer un guiso o escribir una novela nuestro cerebro funciona de la misma manera.

Un cocinero no empieza pensando qué ingredientes se echan con los dedos y cuales con la cuchara. Empieza con identificar los ingredientes.
Un Escritor no empieza pensando qué corbatas llevarán los  personajes y de qué color. Empieza identificando los personajes que van a intervenir.
Una base de datos no se empieza pensando qué pantallas vas a rellenar o qué dato será obligatorio: Se empieza identificando las "Entidades" (Clases) que intervienen en ella.
Los Tipos de Entrada, los modos y formatos de salida, la cualidad de sus relaciones, etc. etc. eso vendrá después.

En otras palabras olvídate, de momento, de nada que no sea las propiedades de las Clases. Yo prefiero la palabra "Entidad" que implica que de lo que hablo tiene "existencia" por sí misma, dejando eso de "Clases" para la POO a la hora de diseñar el programa. Como norma general puedes identificar "Entidad" con "Tabla Maestra" (hay entidades complejas, pero eso es otra historia)

Por lo que cuentas en tu diseño hablas de manejar: Libros, Autores, Editoriales, Citas, Tesis.

Empieza por eso: Pregúntate Qué es y de Qué se compone un Libro, un Autor, una Cita, etc.
Eso te dará los campos y su tipo de una forma natural.
Es evidente que 
 -Un libro tiene: Título, Autor, editorial, Nº de páginas, etc.
 -Un Autor tiene: Un nombre, una fecha de nacimiento, un país de nacimiento, una biografía, una bibliografía, etc. etc.
 -Una Cita tiene: Un texto, un libro de referencia, una página donde aparece, un libro, o varios, donde es citada, etc. etc.

En el desarrollo de esto verás que el tipo de dato lo marca la naturaleza del mismo y empezarán a surgir las relaciones entre ellos. Por ejemplo el número de página donde aparece la cita no puede ser mayor que el número de páginas del libro, etc. También te encontrarás que, a lo mejor, te aparecen entidades en las que, de entrada, no habías pensado. Por ejemplo, una Tesis tiene un Autor, no confundir con el autor de los libros que se citan ¿Será necesario también una tabla de autores de Tesis? ¿Qué características tendría?, etc. etc.

Una vez que tengas diseñadas las características (campos) de tus "Entidades" (tablas maestras), tendrás que relacionarlas entre sí (esta es la esencia de las Bases de Datos Relacionales), de forma que se constituyan en una estructura de datos coherentes y eficaz. Para ello necesitas encontrar primero de todo la Clave Primaria de cada Entidad, es decir qué identifica cada fila de una forma única y definitiva entre todas las de su clase y construir los índices que apunten a esas claves.
Así una editorial tiene un Id del registro mercantil, Un libro un ISBN, etc. Esto es básico: Dos libros pueden tener el mismo título, dos Autores el mismo nombre, etc.
Puedes construir tus claves mediante la unión de varios campos, Título+Autor o puedes crear campos que sirvan de índice (autonuméricos) para ello.

Con los indices construidos estableceremos las relaciones entre las tablas. Así , en la tabla de libro, campo editorial, almacenaremos la clave de la tabla editoriales, para lo que crearemos una relación Padre-Hijo (Foreign key) y la base de datos misma se encargará de mantener la coherencia y de que no haya claves perdidas o referencias ciegas.
En este paso verás que no es posible, muchas veces, establecer una relación directa y sencilla, por ejemplo:
Un autor ha escrito varios libros. Un libro puede tener varios co-autores. La solución más sencilla entonces es la creación de una tabla de enlace intermedia. Una tabla que se componga exclusivamente de tres campos: índice de la relación, clave el autor, clave del libro.

Finalmente, una vez que tengas la estructura creada, es conveniente hacer una serie de vistas que simplifiquen las consultas más frecuentes que luego usaremos en el programa.
Por ejemplo: una vista que contenga todos los campos del libro y todos los de su autor (recordemos que en la tabla de libros sólo tenemos la clave de la tabla del autor).
Almacenando estas vista, seremos capaces de mostrar al usuario los datos que necesite de manera muy sencilla.

Hay mucho más, claro, pero más o menos estos son los pasos básicos para el diseño de una base de datos.
Todo el tiempo que dediques a esto, será tiempo ganado en la programación. Un error de programación se arregla, a las malas, en unas horas. Un error en el diseño de la base de datos puede costarte meses o, incluso, hacer inútil todo tu proyecto. (Créeme, me ha pasado)

El diseño de tu base de datos es la esencia de tu programa.

Mi cita favorita:
"Enséñame tu código y mantén ocultas tus estructuras de datos, y me seguirás engañando. Muéstrame tus estructuras de datos y normalmente no necesitaré que me enseñes tu código: resultará evidente." (Fred Books.)


Fuente:
http://www.gambas-es.org/viewtopic.php?f=3&t=4419

martes, 10 de marzo de 2015

Sql: Filtrar datos entre fechas en gambas3

 

Sql: Filtrar datos entre fechas en gambas3


Hoy me ha hecho falta tirar del botón de buscar del foro de gambas-es.org.
Necesitaba que un programa me listara unos registros entre dos fechas, y no había manera. Al final, jguardon en el hilo (ver fuente), lo explica muy bien como hacerlo para no tener problemas con los dichosos formatos de fechas:



"Voy a explicar un par de detalles que van a facilitar la vida en gambas, cuando tratamos con fechas en las bases de datos:

Es muy importante trabajar con controles de gambas que manejen las fechas nativamente, como datebox o datechooser, cuya propiedad Value recibe o establece su valor como tipo Date (de gambas). Es decir, vas siempre a manejar una variable de tipo Date para almacenar fechas y NUNCA debes convertirlas a String para trabajar con fechas, ¿de acuerdo?

Cuando vayamos a usar esos valores de tipo date en una consulta sql, vamos a emplear una sintaxis de gambas que internamente usa Subst() que es una función que sustituye las variables dentro de la cadena sql usando comodines. Ya sea que almacenes una fecha en una variable de tipo Date o directamente uses el valor de un control que maneje fechas, no tendrás que hacer conversiones excepto para representar esa fecha en un control de texto.

Un ejemplo vale más que mil palabras:


conexion.hconn.Exec("Select * from delitos where fecha_delito between &1 and &2", fecha_inicio, fecha_fin)

Vamos a explicar ese código:

Lo que vemos es que hemos empleado los caracteres &1 y &2 como comodines para que la función Exec los sustituya posteriormente por los argumentos que van a continuación de la consulta sql. En este caso hemos usado unas variables (que me he inventado) que representan la fecha de inicio y la fecha final sobre la que quieres hacer la consulta. También podrías haber empleado directamente los valores de los controles, como por ejemplo datechooser_inicio.Value y datechooser_final.Value. Esta sintaxis nos asegura que siempre funcione la consulta ya que las conversiones las hace gambas internamente, evitando que tengas que poner comillas, concatenar, etc... lo cual siempre es bastante confuso.

Lo segundo es conocer un poco de sql para emplear la sintaxis más sencilla o más efectiva, dependiendo de lo que queramos hacer. En este caso he usado el operador BETWEEN que busca entre dos valores máximo y mínimo o viceversa. ( http://www.w3schools.com/sql/sql_between.asp ). También podríamos haber usado la sintaxis propuesta por shordi, la cual quedaría así:

conexion.hconn.Exec("select * from tabla where fecha_delito >= &1 and fecha_delito <= &2", fecha_inicio, fecha_fin)


En ambos casos, independientemente del motor de bases de datos que uses, esto funcionaría. No hay conversiones, no hay comillas, no hay concatenaciones de cadenas y variables, por lo tanto hay menos posibilidades de cometer errores, el código es mucho más limpio y comprensible y además más sencillo de mantener.

Resumiendo un poco, no hay que preocuparse mucho por las fechas y su formato siempre que usemos controles diseñados para tal fin, porque internamente van a representar un objeto de tipo fecha en el formato de nuestro idioma. Por lo tanto, si no rompemos la cadena, no tendremos problemas. Las bases de datos como mysql, tienen un tipo de campo DATE o DATETIME, que podemos extraer en gambas como un objeto de tipo date de gambas, pero si lo hacemos como cadena, empezarán nuestros problemas. En sqlite3 aunque no tiene realmente tipos de datos (todo son strings) si usamos objetos date para guardar y consultar de la manera que he explicado, gambas hará las conversiones por nosotros y sólo en casos muy concretos tendremos que formatear una fecha para representarla en un control de texto, pero repito, nunca para guardarla en la BD."



Como siempre, las explicaciones de jguardon, muy útiles.



Saludos

Fuente:

http://www.gambas-es.org/viewtopic.php?f=3&t=3563&highlight=buscar+entre+fechas+base+datos

domingo, 8 de marzo de 2015

SimpleDiff: Herramienta para comparar trozos de código

SimpleDiff: Herramienta para comparar trozos de código



SimpleDiff es una pequeña utilidad que nos sirve para comparar dos trozos de código.

Antecedentes:

Existen multitud de programas que comparan ficheros y nos dicen en que se diferencian. El que más me gusta a mi es el meld (http://meldmerge.org/) y también esta en los repositorios wheezy de DEBIAN , tiene un entorno gráfico fácil de usar y se pueden  visualmente las diferencias muy claramente. (ver la nota final sobre la versión a instalar, la 1.6.1 de meld). También tiene esta Kompare, muy potente, ya que te permite comparar directorios, ficheros y te muestra la información de donde estan los cambios.

Os cuento que hace mi pequeña herramienta:

Objetivo:

Algunas veces no quiero comparar archivos, sino pequeños trozos de códigos, y entonces se me ocurrió hacer esta herramienta.

Lo que hace mi herramienta:

Con esta herramienta, le pego los dos trozos pequeños de código que quiero comparar,  y la herramienta se encarga crear archivos y llamar a las aplicaciones meld o kompare para mostrar las diferencias.


En este video podeis ver como funciona:





Enlace de descarga de la herramienta simplediff: http://goo.gl/tixqbo


Nota:
Meld: Hace falta tener instalado el programa meld, la version es la 1.6.1 (con versiones superiores me ha dado errores meld, y he reportado el bug a sus creadores.https://bugzilla.gnome.org/show_bug.cgi?id=745837

Con Kompare, no he observado ningún problema.


Truco: Saber si tenemos instalado un determinado programa

Truco: Saber si tenemos instalado un determinado programa


Para averiguar si tenemos un programa instalado, tenemos varias opciones:

1) La simple, usando el comando which
$ which nombre_programa

Este comando nos informará de donde esta instalado el programa, y con el parámetro -a, nos dará
todas las ocurrencias que encuentre:
$ which -a nombre_programa


2) Usando dpkg -l|grep, que nos mucha más información, paquetes,versión y que es lo que hace el paquete o la aplilcación.

$ dpkg -l|grep nombre_paquete

Un video para que veais el resultado de usar estos comandos:

Fuente:
http://enavas.blogspot.com.es/2008/03/el-shell-de-linux-comando-which.html

miércoles, 4 de marzo de 2015

Truco: Saber el número y datos de descargas de un archivo o documento.

Truco: 

Saber el número y datos de descargas 

de un archivo o documento.



Muchas veces, nos preguntamos, cuantas personas se descargan un archivo o documento que estamos compartiendo, de donde son, que sistema operativo usan, que navegador, etc. Muchos servicios de alojamiento no dan esa información, o solo algunos datos. Os voy a enseñar un pequeño truco para obtenerlos.

Bien, imaginaos que tenemos un documento alojado en google drive (por ejemplo, google drive que no da información de descargas) y queremos compartirlo pero queremos  saber los datos estadísticos de las descargas.

Pasos a seguir:
1) Obtener su enlace para compartir.



2) Nos vamos a http://goo.gl/ y obtenemos el enlace acortado

  • 1) Pegamos el enlace de compartir que hemos obtenido en el paso anterior
  • 2) Pulsamos en el boton de "Shorten Url"
  • 3) Obtenemos el enlace acortado. En este caso es este: http://goo.gl/uy1Zkf

       Os teneis que fijar en la parte final del enlace: uy1Zkf

3) Este enlace acortado lo pegaremos en la página web, twiter, facebook,etc... donde lo vayamos a compartir.


4) ¿Como obtengo las estadísticas?

Pues escribiendo este enlace:  http://goo.gl/#analytics/goo.gl/XXXXXXX/all_time

Siendo XXXXXX la parte final del enlace acortado, en nuestro caso era uy1Zkf

Nos van a aparecer las estadisticas




Por ejemplo, para el enlace que he creado, para ver las estadísticas es el siguiente enlace:



¡¡Experimentar por vosotros mismos!!:

Os invito a que hagais click en el http://goo.gl/uy1Zkf (es un enlace a un formato de currilum) , y luego comprobeis en la página http://goo.gl/#analytics/goo.gl/uy1Zkf/all_time , como van quedando los resultados de la estadísticas


Os dejo un pequeño video tutorial:



Saludos

Julio

domingo, 1 de marzo de 2015

Base de datos Sqlite: Volcar la estructura y el contenido a un fichero de texto, y viceversa




Base de datos Sqlite: Volcar la estructura y el contenido a un fichero de texto, y viceversa

Os dejo aqui un par de comandos muy útiles que nos explicó jguardon en el foro de gamas-es.org:

Instalando el programa para la línea de comandos 'sqlite3' puedes hacer muchas cosas.

$ sudo apt-get install sqlite3

Si lo ejecutas sin argumentos, funciona de forma interactiva, con un prompt que espera comandos.

Si lo ejecutas usando argumentos, puedes hacer algunas cosas interesantes como lo que pides:

Esto vuelca la estructura y el contenido a un fichero de texto:

$sqlite3 mibasededatos.db .dump  >volcado_db_a_texto.sql



Esto vuelca sólo la estructura:

$sqlite3 mibasededatos.db .schema >volcado_estructura_a_texto.sql

Para volver a crear la base de datos a partir del fichero de texto se puede hacer así:

$cat volcado.sql | sqlite3 nueva.db



Para más información mira el manual de 'sqlite3 cli' en https://sqlite.org/cli.html porque si las bases de datos son muy grandes, se puede crear un fichero .gz comprimido al vuelo. Toda la info está en el manual.



Desde gambas3, podemos crear una conexión a la base de datos, ejecutar la sentencia:

select * from sqlite_master 

Y exportar la información del esquema de la base de datos a un archivo .csv

Os dejo aqui un video para que veas el proceso:



Fuentes:
http://www.gambas-es.org/viewtopic.php?f=3&t=4139
http://jsbsan.blogspot.com.es/2014/09/mostrar-el-esquema-de-una-base-de-datos.html