miércoles, 2 de marzo de 2022

Guardar correo outlook web en eml

 Con la portabilización de las aplicaciones hacia la WEB, una costumbre es guardar mensajes de correo de la aplicación de Outlook para  escritorio a un archivo con extensión .eml, que nos permite usarlo en otros correos como adjunto o mas aún en otras aplicaciones como información complementaria.



Desde el portal de office.com donde accedemos a outlook web, no nos presenta una opción directa para guardar el mensaje a archivo .eml.

En este caso recurrimos a una opción un tanto escondida, al abrir el mensaje seleccionamos el submenu del mensaje en la parte superior izquierda con puntos suspensivos, e ingresamos al menu "Other reply actions" o "Otras acciones de respuesta" y presionamos la opción "Forward as attachment" o "Reenviar como datos adjuntos".



Nos aparecerá la vista de un nuevo correo con el correo anterior adjunto, seleccionamos el menu del correo adjunto y presionamos "Download" o "Descargar" y ya nos permite guardar el correo como un archivo con extensión .eml.




 

Happy Hacking!


jueves, 18 de agosto de 2011

Uso de controles y eventos en Android

Al crear un nuevo proyecto de Android en Eclipse o MotoDev Studio, que se llame HolaMundo, nos genera una aplicación tipica con una pantalla y una leyenda en la parte superior.

Tomando como base esta plantilla, nos dirigimos a ella en la carpeta /res/layout/ y abrimos el archivo main.xml que corresponde a la ventana principal de nuestra aplicación.



En la parte izquierda veremos los controles o widgets que tenemos para construir nuestra interfaz gráfica, aquí seleccionaremos el EditText y lo arrastramos a la ventana,bajo la leyenda HolaMundo; luego seleccionamos el control Button y lo arrastramos también a la ventana.

martes, 16 de agosto de 2011

Estructura de una aplicación Android


Cuando recién creamos un nuevo proyecto en eclipse con el plugin de Android, o en Motorola Dev Studio for Android, podremos ver la siguiente estructura:

/src - Código fuente,clases en java

En esta carpeta podemos encontrar el archivo principal de java, desde donde inicia nuestra aplicación,y aquí mismo podemos crear mas clases o interfaces.

/gen - Código generado,clases creadas automáticamente

Cuando se compila o ejecuta nuestra aplicación, se genera código complementario automáticamente como el objeto R que vincula a nuestra interfaz definida en xml, con nuestro código java

/Android 2.2 - Librerias,empacados jar de android y otros

Cuando al principio seleccionamos una versión de Android para nuestra aplicación, se incluye la librería correspondiente y nuestro proyecto hace referencia desde esta carpeta.

/assets - Otros archivos, carpeta para almacenar archivos auxiliares

Si necesitamos incluir otros archivos de recursos, propios de nuestra aplicación o incluir otros medios,podremos copiarlos a esta carpeta.

/res - Archivos de recursos,documentos xml e imágenes

/res/drawable-hdpi /res/drawable-ldpi
/res/drawable-mdpi

Contiene las imagenes de múltiples resoluciones,que se utiizarán dependiendo del tamaño de la pantalla del dispositivo

/res/layout

Contiene los archivos de descripción de interfaz gráfica o layouts, que representarán a nuestras "ventanas" o "formularios" como se le diría en el idioma de las aplicaciones de escritorio. Y que contienen los componentes y su ubicación en pantalla como botones y cajas de texto.

/res/values

Contiene archivos que almacenan las cadenas de texto de nuestra aplicación, para permitir traducirla mas fácilmente

/AndroidManifest.xml Archivo de configuración

Nos indica entre otras cosas,la versión de nuestra aplicación, la lista de activities o ventanas, permisos para acceder a la información del usuario o al teléfono, la mínima versión de android donde correra nuestro programa,etc.

/default.properties Configuración de la versión del sdk

Versión de librería de Android, con la que se compilará la aplicación


Happy Hacking!

viernes, 15 de julio de 2011

av2t app envío de tweets reconociendo voz



Con la inquietud de un amigo de twitter (alias @pelaxix) que desea regresar a su extasiado estado de twitear mientras maneja y ya que la nueva ley de tránsito de nuestro estado lo impide, surgió la idea de crear una aplicación de Android que permita twitear sin necesidad de escribir texto, y usando manos libres.

Logrando acceder a la api de Android para usar el reconocimiento de voz nativo del sistema, la funcionalidad de síntesis de voz para emitir texto hablado y notificar; para finalmente enviar por twitter el mensaje que dijo de viva voz el usuario.

Tenemos la pre-alpha versión de la aplicación av2t , compilada para froyo (versión 2.2) o superior. Que requiere acceso a internet para realizar el reconocimiento de voz y el envío del tweet.

Aqui la descarga del .apk

Happy Hacking!

domingo, 29 de mayo de 2011

Instalación del ambiente de desarrollo para Android

   Se realizó el taller de Android en las intalaciones del Centro de Cómputo de la Facultad de Matemáticas de la UADY, con la colaboración de la Bliblioteca de Ciencias exactas e Ingenierías.

   A continuación un breve resumen de los pasos realizados para llevar a cabo el objetivo del taller, que fue el de instalar las aplicaciones y herramientas necesarias para crear una sencilla aplicación Android, subirla y ejecutarla en un teléfono inteligente para concluir el ciclo de desarrollo.

Paso 1.-Instalación de los kits de desarrollo.

   -JAVA JDK 1.6 de Sun (http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u25-download-346242.html)
   -Eclipse Helios for Java Develop (http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/heliossr2)
   -Android SDK (http://developer.android.com/sdk/index.html)

Paso 2.-Configuración de Eclipse para instalar el plugin de desarrollo para Android.

  En el menú Help/Install New Software agregar las siguientes direcciones de descarga:

https://dl-ssl.google.com/android/eclipse/
(Plugin de Android SDK para usar con eclipse)

   seleccionar la fuente del plugin de android, e instalar el Developer Tools

 

Paso 3.- Instalación de la versión de Android que trabajaremos.

   Ejecutamos la aplicación de configuración del SDK de Android, por ejemplo si lo instalamos en c: , estará en  : c:\android-sdk-windows\SDK Manager.exe o en el caso de linux, en \home\(usuario)\android-sdk-linux\tools\android 

   La primera vez puede sugerirnos descargar todos los sdks disponibles, pero le decimos cancelar, solo necesitamos uno.

   Seleccionamos  Available Packages para instalar la plataforma sobre la cual trabajaremos, esto es si nuestro telefono usa Eclair, elegiremos plataforma Android 2.1 , si no contamos con telefono, un buen punto de partida es Froyo Android 2.2

   Seleccionamos entonces SDK Plataform Android 2.2,API 8,revision 2 y lo instalamos.Tal vez nos pida una actualización del Android tools, la aceptamos y continuamos.

Paso 4.- Configuramos nuestro Virtual Device para poder ejecutar el emulador de Android que viene con el SDK.

   En el Android Manager, seleccionamos la pantalla de virtual devices, y creamos uno nuevo.

   Activamos la característica de snapshot, escribimos la cantidad de momoria para la SD card virtual, y agregamos más carácterísticas como el touch screen y el  acelerómetro.

   Probamos el emulador, presionando el botón [start] sobre nuestro dispositivo virtual seleccionado.

 Paso 5.- Configuramos la ruta de instalación del SDK de Android, en  el menú Window/Preference opción Android de Eclipse.

 y con esto podremos lanzar la configuración del SDK de Android desde el menú Window/Android ADT SDK en Eclipse. Y también lanzar el emulador directamente al ejecutar nuestro programa desde eclipse.

 Paso 6.- Hola mundo Android.

   Creamos un nuevo proyecto desde el menú File/New/Other y seleccionamos Android seguido de Android Project. Llenamos la ventana de información del proyecto con el nombre,versión de la plataforma, nombre de paquete java,Activity que es como la ventana pricipal de nuestra aplicación, y la versión mínima donde correrá.



Y al darle finalizar, crea un nuevo proyecto tipo Android y nos genera la estructura básica de la aplicación incluyendo directorios de recursos y configuración.

En la estructura de proyecto creada, en Hola/res/layout/main.xml lo abrimos y veremos la ventana principal y una barra de componentes para utilizar como cajas de texto, botones, listas,cajas de imagen, videos etc.

 Arrastramos un botón de la barra de componentes y lo sotamos sobre la ventana, grabamos el proyecto, sobre la ventana de proyectos seleccionamos el proyecto hola, luego precionamos el botón [Ejecutar] aplicación o desde el menú Run seleccionamos Run As... y Android Application.

Veremos como se lanza el emulador con nuestra aplicación ya instalada, si el emulador tarda en cargar y falla al instalar y ejecutar nuestra aplicación, esperamos a que el emulador cargue por completo y volvemos a ejecutar el proyecto con Run As... Android Application

    Pueden ejecutar los ejemplos que vienen con el SDK de Android y

Happy Hacking Android!!

 P.D. Para instalar nuestro programa en un smartphone con Android solo copiamos el archivo hola.apk en el directorio del proyecto de eclipse subdirectorio /bin , al SD Card (via cable usb,bluetooth,etc).

   Luego usamos alguna app para explorar archivos y entrar al SD Card para ejecutar hola.apk, el movil nos dirá que debemos habilitar la función que permita instalar aplicaciones fuera del Android Market, continuamos activamos la opción y reintentamos nuevamente.

   Listo, ya tenemos nuestra aplicación corriendo en el smarthphone !!

miércoles, 11 de mayo de 2011

Nueva página para desarrollar en Android



Y comenzamos una nueva aventura, al lanzar una página para aprender a desarrollar en Android.

Junto con el hashtag #AndroidDes en twitter, pueden consultar y participar en la información, en
esta página desde la dirección:

http://androiddes.gusly.org

Con la novedad que junto a las página, se iniciará un curso de Android para poner a punto un ambiente de desarrollo. La información completa se encuentra en la portada de la página.

Tampoco olviden el Super Happy Dev House 5 de la ciudad de mérida, a realizarse el 21 de mayo

http://www.shdhmerida.org/

Saludos y happy hacking.

martes, 1 de marzo de 2011

Curso básico de base de datos SQL

Curso básico de bases de datos SQL y normalización

Comenzamos con las formas normales, que son reglas a utilizar para organizar la estructura de nuestra base de datos, y no terminar con una enorme tabla con 50 campos.
Si ya contamos con nuestra lista de tablas y campos,debemos verificar que se cumplan al menos 4 formas normales y con ello evitar duplicidad y redundancia de la información. Así como contar con relaciones confiables entre nuestras tablas.
Para realizar nuestras prácticas y ejecutar comandos,podremos descargar una imagen de CDRom con el servidor sql ya instalado,configurado, y listo para practicar, haciendo click en este enlace.
FORMAS NORMALES

Primera forma normal (1NF). La primera forma normal (1NF) otorga reglas muy básicas para la organización de una base de datos:
  • Eliminar columnas duplicadas de la misma tabla.
  • Crear tablas separadas para cada grupo de datos relacionados e identificar cada fila con una columna o conjunto de columnas únicas (La llave primaria).
Segunda forma normal (2NF). La segunda forma normal (2NF) nos trae el concepto de remover datos duplicados:

  • Realice todos los requisitos de la primera forma normal
  • Elimine los subconjuntos de datos que se aplican a multiples filas de una tabla y ubiquelas en tablas separadas.
  • Establezca relaciones entre esas nuevas tablas y sus predecesores a través del uso de llaves foráneas.
Tercera forma normal (3NF). La tercera forma normal (3NF) es un gran paso donde:
  • Se encuentran todos los requisitos de la segunda forma normal.
  • Se eliminan columnas que no dependen directamente de la llave primaria.
Cuarta forma normal (4NF). Finalmente, la cuarta forma normal (4NF) tiene un requisito adicional:
  • Cumplir con todos los requisitos de la tercera forma normal.
  • Una relación esta en 4NF si no tiene dependencias de varios valores
Recuerde,estas guías de normalización son acumuladas.Para que una base de datos este en 2NF, debe primero cumplir todos los criterios de una base de datos en 1NF.


Para la práctica de los comandos sql,utilizaremos el CDRom de arranque de GuslyLive. Donde tendremos preinstalado el servidor SQL Firebird, que es un motor robusto,gratuito y open source disponible para las plataformas Linux,Windows,OSX y Solaris.
Solo encendemos la computadora e introducimos el disco,seleccionando el modo de arranque desde el cdrom.Al ver la pantalla de inicio presionamos enter sobre la primera opción "Live",para entrar al sistema:


         Al ingresar al sistema, lo preparamos haciendo doble click sobre el ícono "Bienvenida".

         Que nos mostrará un diálogo donde presionamos el botón del centro con la leyenda "configurar",nos abrirá una ventana que nos pregunta si deseamos iniciar el servidor de base de datos, le decimos "yes" moviendo el cursor presionando la flecha izquierda, y presionando la tecla enter. También nos preguntará por la contraseña del servidor, le escribimos "masterkey" y presionamos la tecla enter:

Base de datos SQL: Firebird versión 2.1 
usuario: sysdba 
contraseña: masterkey

         Luego entramos a la aplicación "FlameRobin" ubicada en el menú principal,grupo "programming"


         Aquí desplegamos la lista "LocalHost" (click en la flecha a la izquierda de Localhost) y hacemos doble click sobre el menú "empleados",para abrir la base de datos. Si obtenemos un error en este punto, repetimos la configuración y nos aseguramos de iniciar el servidor firebird, y escribir en minúsculas la contraseña "masterkey".

         Finalmente,presionamos el botón derecho sobre la lista "empleados" y presionamos la opción "Run a Query",nos abrirá la ventana para ejecutar comandos SQL sobre nuestra base de datos de ejemplo. 

         Para aplicar los cambios ejecute primero el comando con el boton "Execute statement" y luego aplique la transacción en el botón de "commit transaction".


Lenguaje DDL (Lenguaje de definición de datos)

sintaxis:

<tipo> =
  {SMALLINT | INTEGER | FLOAT | DOUBLE PRECISION}
  | {(DATE | TIME | TIMESTAMP}
  | {DECIMAL | NUMERIC} [(precision [, scale])]
  | {CHAR | CHARACTER | CHARACTER VARYING | VARCHAR} [(int)]
  | {NCHAR | NATIONAL CHARACTER | NATIONAL CHAR} [VARYING] [(int)]

<columna>= <nombre><tipo>[not null][primary key];


Crear una tabla


CREATE TABLE <tabla> (<columna>[, <columna> ]);



ej. create table clientes (id_clie integer not null primary key, nombre varchar(120),appat varchar(60),apmat varchar(60))


Modificar la estructura de una tabla existente


ALTER TABLE <tabla> <operacion> [, <operacion> ...];

<operacion> = {ADD <columna>
  | ALTER [COLUMN] column_name <cambios>
  | DROP columna}

<cambios> = {TO nuevo_nombre
  | TYPE nuevo_tipo}



ej. alter table clientes add curp varchar(20);
alter table clientes alter nombre type varchar(200);


Eliminar una tabla


DROP TABLE tabla;



ej. drop table alumnos;


Lenguaje DML (Lenguaje de manipulación de datos)


Insertar registros a una tabla


INSERT  INTO <tabla> [(columna [, columna ...])]
  {VALUES (<valor> [, <valor> ...]) | <expresion select>};



ej. insert into clientes (id_clie, nombre ,appat ) values (1,'mickey','mouse');
insert into clientes (id_clie, nombre ,appat ) select id,nombre,apellido from alumnos;


Actualizar registros en una tabla


UPDATE  tabla SET columna = <valor> [, columna = <valor> ...] [WHERE <filtro> ];



ej. update clientes set curp='xxxxxxxxxxx' where id_clie=1;


Eliminar registros


DELETE FROM tabla    {[WHERE <search_condition>] };



ej. delete from clientes;
delete from clientes where id_clie=1;


Solicitar un conjunto de registros


SELECT [DISTINCT] {<lista_columnas> | *} FROM <lista_tablas>
[WHERE <filtro>]

<filtro>=[not] <campo> <operador><valor>
<operador>= =|>|<|<>|s null|is not null|between
<valor>=<campo>|<constante>|<constante> and <constante>

ej. select * from clientes;
select id_clie,nombre from clientes where id_clie between 1 and 10;