Jan 30

Introducción

SQLite es un gestor de bases de datos pequeño y simple que se usa ampliamente como apoyo al software (aplicaciones de escritorio, navegadores web, etc.) y en sistemas embebidos como los teléfonos móviles (Android por ejemplo).

A continuación se muestra como crear campos autonuméricos en esta base de datos, es decir, campos cuyo valor es un número serial que es asignado automáticamente por el software.

Procedimiento

Crear la tabla con el campo autonumérico (code en este caso).

CREATE TABLE test (
code     INTEGER        PRIMARY KEY    AUTOINCREMENT,
name     VARCHAR(20)    UNIQUE,
value    FLOAT
);

Agregar datos a la tabla recién creada.

INSERT INTO test VALUES(NULL, 'demo1', 10.10);
INSERT INTO test VALUES(NULL, 'demo2', 20.20);
INSERT INTO test VALUES(NULL, 'demo3', 30.30);

Consultar los datos recién ingresados.

sqlite> select * from test;
    1|demo1|10.1
    2|demo2|20.2
    3|demo3|30.3

Consultar el valor del último campo autonumérico ingresado durante la sesión.

SELECT last_insert_rowid();
    3

Enlaces

Tagged with:



En January 30 de 2012, Jorge Iván Meza Martínez escribió acerca de Campos autonuméricos con SQLite3.
Jun 24

El día de ayer recibí noticias de Hernando Barragan de la llegada del Release Candidate 1.0 de la versión del ambiente de desarrollo  de Wiring (La plataforma de hardware abierto para el desarrollo de prototipos) que ha venido madurando desde hace mucho tiempo y la cual comienza hacer mas abierta permitiendo el uso de otras plataformas de hardware, la nueva versión tendrá :

  • Soporte para tarjetas Wiring y otros  fabricantes/marcas, incluidos chips de atmel en formato DIP, Arduino, etc. que pueden ser programados directamente desde Wiring.
  • Una Nuueva arquitecura de Wiring permite hablar realmente de open hardware, mediante un sistema de núcleos (Cores).
  • Disponible el core AVR8 que permite usar todo tipo de chip Atmel AVR-8Bits,en proximas versiones se  tendra cores para AVRTiny, Microchip PIC y ARM.
  • Un sistema de librerías Core que están implementadas sobre cada core específico, un sistema de librerias multi-plataforma que pueden funcionar con cualquiera de los cores que estarán disponibles.
  • Referencia en Inglés y Español seleccionable mediante el Menu Preferences de la aplicación.
  • Librerías para Processing y Openframeworks usando el protocolo Firmata.
  • El API incluye nuevos comandos que estabilizan el lenguaje y permiten aprovechar el poder de cada plataforma, cosas como poder seleccionar la frecuencia y la resolución de un pin PWM. Tonos polifónicos, pullups, manejo avanzado de potencia.
  • Un sistema apropiado de instalación para los diferentes sistemas
  • Multi ventanas para abrir diferentes Sketchs.
  • Visualizacion de los esquematicos si el Sketch los contiene.
  • Nuevo hardware compuesto de varios modelos.
  • Definicion para la coinstruccion en casa de la tarjeta basada en los chips de Atmel atmega168, atmega328p y atmega644p.
  • Soporte para el hardware de Arduino directamente

Como se puede apreciar son muchos los cambios en esta nueva versión de Wiring que lo convierte no solo en una plataforma de hardware abierto, si no en un lenguaje de programación multiplataforma gracias a su nueva arquitectura basadas en núcleos, que permite su implementación para un sin numero de plataformas de hardware permitiendo escribir código Wiring para gran cantidad de dispositivos.

Estaremos haciendo las pruebas respectivas del Ambiente de Desarrollo de Wiring 1.0 RC3 el cual esta disponible actualmente para MacOSX y Windows, desafortunadamente en estos momento no se encuentra la version para Linux, pero pronto se publicara en el sitio de Wiring.

Enlaces :

 

Tagged with:



En June 24 de 2011, Marlon J. Manrique escribió acerca de Wiring : Pronto llega a la version 1.0.
Jun 18

Introducción.

Instalar Windows XP en una netbook (portátil liviano sin unidad de DVD) desde una memoria USB no fue tan fácil y placentero como fue la instalación de Windows 7.  Después de algunas pruebas estos fueron los pasos que se siguieron.

Crear la unidad USB de instalación.

Para crear la unidad USB de instalación se utilizó WinToFlash.  Este procedimiento es muy simple, sólo se debe especificar cual es la unidad en la que se encuentran los archivos (CDROM) de instalación de Windows y cual es la unidad (USB) hacia la cual se realizará la copia.

Instalación del sistema operativo.

Una vez creada la unidad USB de instalación se debe iniciar el sistema desde ella y realizar normalmente los pasos de instalación de Windows XP.

Corregir el inicio de la unidad USB.

Finalizada la instalación del sistema operativo se intenta reiniciar y falla mostrando un error relacionado con la falta de archivos del sistema, comúnmente hal.dll.  Esto aparentemente se debe a que el instalador consideró a la unidad USB  como primer disco y al disco duro real como segundo, generando estas referencias incorrectas en el archivo boot.ini.

Para corregir esto es necesario editar este archivo y modificar la referencia a la partición en la que buscará al sistema operativo durante su inicio.  Por facilidad (para mi) utilicé un Linux (Peppermint) que inicia desde LiveUSB que casualmente tenía preparado para otra prueba.  En el ambiente Windows  imagino que se requerirá de un disco de arranque que permita acceder a través de la consola de texto a los comandos básicos del DOS.

Este es un ejemplo de boot.ini en el que se supone que hay un Windows XP Home Edition instalado en la primera partición del primer disco duro del equipo (como habitualmente sucede).

[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Home Edition" /fastdetect

El parámetro rdisk (marcado en rojo) es el que se genera incorrectamente y aparece inicialmente con el valor de 1 (segundo disco duro).

Cambiar la ruta de los archivos de instalación.

Una vez superado el problema anterior el sistema operativo deberá iniciar sin problemas.  De manera opcional elegí copiar los archivos del sistema operativo al disco duro del netbook para que estén disponibles si se hace necesaria la instalación de algún componente adicional sin que se necesite insertar nuevamente la unidad USB preparada al comienzo de este procedimiento.

Para lograr esto además de copiar físicamente los archivos del CDROM de instalación al un directorio del disco duro, es necesario actualizar la referencia que tiene el sistema operativo de esta ruta.  Para hacer esto se debe ejecutar el programa regedit (hágalo como Administrador si obtiene problemas de permisos) y acceda a la siguiente rama en el panel izquierdo.

HKEY_LOCAL_MACHINE > Software > Microsoft > Windows > CurrentVersion > Setup.

Ubicado en esa rama identifique la variable SourcePath en el panel derecho y modifique su valor a la ruta absoluta donde se encuentra el directorio \i386 de los archivos de instalación de Windows: c:\instaladores\windowsxp\i386 en mi caso específico.

Tagged with:



En June 18 de 2011, Jorge Iván Meza Martínez escribió acerca de Instalación de Windows XP en un netbook desde una unidad USB.
Jun 02

Introducción.

Aparentemente Google Chrome incluye características de seguridad obligatorias como esta que impide que el usuario acceda a servidores a través de ciertos puertos considerados inseguros aunque eso sea realmente lo que se desea.

Error puertos inseguros de Google Chrome

Error puertos inseguros de Google Chrome

A continuación se define el procedimiento necesario para indicarle a Chrome que efectivamente se desea acceder a esos puertos.

Procedimiento.

La única opción es indicarle a Chrome desde el momento de su ejecución cuales son los puertos que se consideran seguros para permitir conexiones mas allá de los estándar.  Para hacer esto es necesario indicar el parámetro –explicitly-allowed-ports seguido por la lista de puertos separados por comas.  Por ejemplo:

$ /usr/bin/google-chrome –explicitly-allowed-ports=4444,5555,6666

Por facilidad, especialmente en la plataforma Windows, se recomienda modificar el acceso directo a la aplicación para que la modificación perdure.

Tagged with:



En June 2 de 2011, Jorge Iván Meza Martínez escribió acerca de Google Chrome y los puertos inseguros: ERR_UNSAFE_PORT.
Jun 02

Introducción.

El procedimiento que se describe a continuación permite modificar la contraseña del usuario administrador (root)  de MySQL 5.  Es útil para los casos en que esta se olvida y por lo tanto ya no es posible acceder a sus funciones de administración.

Procedimiento.

Detener el servicio si se está ejecutando actualmente.

# service mysql5 stop

Iniciar el servicio con el modificador de skip-grant-tables.

# mysqld_safe –skip-grant-tables &

Realizar una conexión al motor de base de datos a través de la herramienta de línea de comando.

# mysql -u root

Realizar la actualización de la contraseña.  Téngase en cuenta que se deberá modificar la palabra NUEVO_PASSWORD por la nueva contarseña que se desee asignar al usuario root.

mysql> use mysql;
mysql> update user set password=PASSWORD("NUEVO_PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit

Detener el servicio

# service mysql5 stop

Iniciarlo normalmente.

# service mysql5 start

Tagged with:



En June 2 de 2011, Jorge Iván Meza Martínez escribió acerca de Modificar la contraseña del usuario root de MySQL 5.
May 27

Introducción.

Para el desarrollo de aplicaciones en Android además de la instalación del SDK es necesario instalar Eclipse como ambiente de desarrollo -oficial- y el plugin ADT para su interacción con Android.

Obtener Eclipse.

Distribuciones de Eclipse

Distribuciones de Eclipse

Descargar de la siguiente ubicación una distribución de Eclipse que corresponda con el sistema operativo y arquitectura donde se desee instalar.  Para el desarrollo de aplicaciones con Android se recomienda utilizar la distribución clásica o la de Java, sin que esto aparentemente sea obligatorio.

http://eclipse.org/downloads/

Instalar Eclipse.

La instalación de Eclipse consiste únicamente en desempaquetarlo y ubicarlo en la ruta donde finalmente residirá.

$ tar zxvf eclipse-java-helios-SR2-linux-gtk.tar.gz

$ mv eclipse ~/

Instalar el plugin ADT.

Iniciar Eclipse y seleccionar la opción Install new software… del menú Help.

Presionar el botón Add… (esquina superior derecha) y especificar los siguientes valorses.

  • ADT Plugin como Name.
  • https://dl-ssl.google.com/android/eclipse/ como Location.
Agregar un repositorio a Eclipse

Agregar un repositorio a Eclipse

Seleccionar la casilla de verificación de la rama Developer Tools.

Paquete Developer Tools del plugin ADT de Eclipse.

Paquete Developer Tools del plugin ADT de Eclipse.

Presione el botón Next en los dos diálogos siguientes.  Seleccione la opción I accept the terms of the license agreements y presione el botón Finish para terminar el procedimiento.  Reinicie Eclipse cuando este lo solicite.

Configurar el plugin ADT.

En Eclipse acceda al diálogo de preferencias a través del menú Window > Preferences.

Seleccione la opción Android en el árbol del lado izquierdo.

Presione el botón Browse… y ubique el directorio de instalación del Android SDK si este no aparece correctamente.  Presione el botón Apply y finalmente Ok.

Preferencias del plugin ADT

Preferencias del plugin ADT

Enlaces.

Tagged with:



En May 27 de 2011, Jorge Iván Meza Martínez escribió acerca de Instalar Eclipse y el plugin ADT en GNU/Linux.
Apr 22

Introducción.

Firefox tiene una característica que permite recuperar el conetenido de su sesión (las pestañas abiertas) aún después de que ha ocurrido un problema grave de ejecución como es el caso cuando el proceso termina abruptamente o el equipo se apaga sin cerrarse convenientemente.

La siguiente vez que se utiliza Firefox, este permite elegir si se desea iniciar una nueva sesión o si por el contrario se desea restaurar la versión anterior.

Yo acostumbro aprovechar esta característica para trabajar en ciertas páginas web durante varias sesiones sin tomar nota de sus URLs, confiando en que la restauración de sesión las abrirá nuevamente.  Esto ha sido confiable salvo algunas pocas oportunidades en las cuales he perdido la sesión, especialmente molesto cuando por error propio presiono el botón de iniciar una nueva sesión en lugar del de restaurar.

Por suerte Firefox permite recuperar la copia de seguridad de la sesión aún si se ha decidido iniciar una nueva.  El procedimiento es muy simple y se explica a continuación.

Procedimiento.

Tan pronto como se desee recuperar la copia de seguridad de la sesión anterior escribir en la barra de direcciones la siguiente instrucción.

about:sessionrestore

La última sesión disponible se recuperará inmediatamente restaurando las pestañas que se tenía abiertas.

La configuración de la restauración de sesión permite ajustar otros comportamientos relacionados como el forzar a que siempre se restaure la sesión si hay una disponible, restaure automáticamente la siguiente sesión únicamente o desactivar esta característica.

Enlaces.

Tagged with:



En April 22 de 2011, Jorge Iván Meza Martínez escribió acerca de Recuperar la sesión de Firefox.
Jan 31

Hace poco me di a la tarea de desarrollar un prototipo de una aplicación en Windows Azure con el propósito de conocer la plataforma y conocer las herramientas y el proceso de desarrollo bajo esta plataforma, buscando que hacer y tratando de adicionarle elementos de aplicación móvil para crear el cliente en Windows Phone 7, recordé el proyecto que desarrollamos hace ya varios años con Alexander Parrales y Martin Estrada el cual llamamos Ciudad Digital y me di a la tarea de crear un nuevo prototipo.

Ciudad Digital (rebautizado como MCity) es un proyecto en el cual las ciudades están llenas de historias que los ciudadanos cuentan desde sus teléfonos móviles, permitiendo contar cualquier tipo de anécdota o suceso que suceda dentro de la ciudad con solo tomar el teléfono móvil y publicando desde el lugar de los hechos una descripcion de lo que le sucedio, o una imagen o un sonido;  esta historia es almacenada para que despues otros ciudadanos cuando lleguen cerca al lugar puedan leer las historias de otros ciudadanos que han pasado por ahi.

La aplicación tiene un componente servidor donde se almacenan las historias, con su titulo, descripción y posición geográfica (latitud y longitud) y las cuales son enviadas y consultadas desde los dispositivos móviles usando WebServices, para el caso de la implementacion en Azure se implemento una solucion en Azure con tres proyectos :

  • MCityAzure
    • MCityModel
      Modelo de Datos de la aplicación
      Basado en el servicio de almacenamiento de Azure de Tablas
    • MCityServices
      Modelo de Servicios
      Servicio Web basado en SOAP para el registro y listado de historias
    • MCityWeb
      Aplicación web para la publicación del web service y la administración

El cliente móvil de la aplicación se implemento bajo la plataforma Windows Phone 7 el cual incluye :

  • MCityMobile
    • Envio de Historias
      Permite enviar historias al servidor para su almacenamiento
      Utiliza el servicio de localización para determinar la posición geográfica del usuario
      Adiciona la posición a las historias que el usuario quiere publicar
    • Visualizacion de Historias
      Permite visualizar las historias usando un mapa del servicio Bing donde se muestran marcadores por cada historia los cuales pueden ser tocados para visualizar la historia completa

La aplicación móvil utiliza una fachada que permite acceder al webservice en el servidor y a los servicios de localización.

Los proyectos se desarrollaron en Microsoft Visual Web Developer Express 2010 y Microsoft Visual Studio 2010 Express for Windows Phone.

Versiones :

  • Version 0.1 (2011.01.26)
    Monousuario
    Listado de historias e interface web sencilla
    El movil solo permite publicar historias no se incluía la posicion geografica
  • Version 0.2 (2011.01.31)
    Monousuario
    Listado de historias e interface web sencilla
    El móvil permite publicar historias con la posición geográfica tomada del GPS del teléfono
    Visualizar historias en un mapa via Bing desde el movil
  • Futuras Versiones :
    Adicionar imagen o sonido a la historia
    Multiusuario
    Categorizacion de las historias
    y mucho mas ...
Tagged with:



En January 31 de 2011, Marlon J. Manrique escribió acerca de MCity: Prototipo de Historias de Ciudad.
Jan 24

Si necesitamos saber la informacion de nuestro disco duro, como el fabricante, la version del firmware, el numero de serie, la Interfaz, el numero de horas encendido y muchas otras cosas mas, podemos utilizar la herramienta CrystalDiskInfo que nos muestra toda esta información por medio de una aplicación bajo la plataforma Windows  de forma gratuita.

Informacion Visualizada por CrystalDiskInfo

En este caso podemos observar la informacion en español de un disco de 3.5" Western Digital Caviar Blue de  250 GB perteneciente a mi proyecto de Modding el cual le he venido trabajando poco a poco.

Con esta utilidad es fácil identificar las caracteristicas del disco duro, su estado actual y el uso que se le ha dado, datos muy importantes al momento de comparar discos duros para seleccionar en cual instalar el sistema operativo, comparar las caracteristicas entre los diferentes discos que tengamos y comprobar las caracteristicas de un disco duro que compremos nuevo o de segunda.

Tagged with:



En January 24 de 2011, Marlon J. Manrique escribió acerca de CrystalDiskInfo : Informacion de Disco.
Jan 24

Si necesitamos saber la informacion de nuestro disco duro, como el fabricante, la version del firmware, el numero de serie, la Interfaz, el numero de horas encendido y muchas otras cosas mas, podemos utilizar la herramienta CrystalDiskInfo que nos muestra toda esta información por medio de una aplicación bajo la plataforma Windows  de forma gratuita.

Informacion Visualizada por CrystalDiskInfo

En este caso podemos observar la informacion en español de un disco de 3.5" Western Digital Caviar Blue de  250 GB perteneciente a mi proyecto de Modding el cual le he venido trabajando poco a poco.

Con esta utilidad es fácil identificar las caracteristicas del disco duro, su estado actual y el uso que se le ha dado, datos muy importantes al momento de comparar discos duros para seleccionar en cual instalar el sistema operativo, comparar las caracteristicas entre los diferentes discos que tengamos y comprobar las caracteristicas de un disco duro que compremos nuevo o de segunda.

Tagged with:



En January 24 de 2011, Marlon J. Manrique escribió acerca de CrystalDiskInfo : Informacion de Disco.