Datos personales

Mi foto
Colonia Caroya, Córdoba, Argentina
Ingeniero en Sistemas de Información

18 noviembre 2008

Comandos Utiles para Windows XP



Una de las cosas que cambio radicalmente para los usuarios, al pasar de D.O.S. al "maravilloso" Windows, fue el poder utilizar la pc sin tener que recordar una gran cantidad de comandos y parámetros, lo cual facilito su uso, apredizaje y cumplir el sueño de nuestro líder espiritual (y receptor de nuestras descargas emocionales cuando la pc se revela) Bill Gates.

Lo cierto es que, aunque todo sea más bonito y más fácil, para muchas tareas es más rápido escribir un comando, que buscar la opción en el menú, que algunas veces está bastante oculta.

Windows permite ejecutar muchas de sus opciones de configuración, utilidades y programas, por medio de comandos. Esta facilidad permite que podamos invocar esas funcionalidades por medio de la línea de comando, Ventana de Ejecutar (tecla Win + R), acceso directo o los místicos y poderosos archivos BATCH (.bat).

Utilizarlos de esa manera, no solo nos permitirá ganar tiempo, ser mas preciso al ayudar remotamente a alguien a realizar una tarea en la pc, sino que también nos permitirá dar una idea de profesionalidad o de ser unos "genios" delante de compañeros, amigos o en presentaciones.

Aquí les dejo una lista de algunos comandos que recopile, los que me parecieron más útiles, para Windows XP, aunque la mayoría debería funcionar en otras versiones de ese S.O.

Para usarlos, por ej, pueden presionar WIN + R, esto abrirá la ventana de ejecución, escriben uno de los comandos y presionan enter y listo...


Control Panel

CONTROL: Panel de Control de Windows
CONTROL ADMINTOOLS: Las Herramientas administrativas
CONTROL KEYBOARD: Propiedades del teclado
CONTROL COLOR: Si se quiere que aparezca la pestaña de control de colores
CONTROL FOLDERS: Para opciones de la carpeta
CONTROL FONTS: Fuentes
CONTROL INTERNATIONAL or INTL.CPL: Configuración Regional
CONTROL MOUSE or MAIN.CPL: Propiedades del mouse
CONTROL USERPASSWORDS: Cuentas de usuarios
CONTROL USERPASSWORDS2 or NETPLWIZ: Permite modificar las claves y los permisos de los diferentes usuarios, así como requerir la pulsación de control+alt+suprimir para poder iniciar sesión, haciendo el inicio de sesión más seguro
CONTROL PRINTERS: Impresoras y Faxes
NCPA.CPL / CONTROL NETCONNECTIONS: Conexión de red
APPWIZ.CPL: Herramienta para Instalar/desinstalar programas
OPTIONALFEATURES: utilidad para Agregar/Desintalar componentes de Windows
DESK.CPL: Propiedades de la Pantala. Tab Temas
HDWWIZ.CPL: Asistente para añadir hardware
IRPROPS.CPL: Utilidad de infrarojo
JOY.CP: Controladores de Juegos
MMSYS.CPL: Tab Volumen de las Propiedades de Dispositivos de sonido y audio
SYSDM.CPL: Propiedades del Sistema
TELEPHON.CPL: Opciones de Teléfono y modem
TIMEDATE.CPL: Propiedades de fecha y hora
WSCUI.CPL: Centro de Seguridad de Windows
ACCESS.CPL: Opciones de Accesibilidad
WUAUCPL.CPL: Actualizaciones Automáticas de Windows
POWERCFG.CPL: Propiedades de opciones de energía
CERTMGR.MSC: Administrador de Certificado
COMPMGMT.MSC: Administración de Equipos
DCOMCNFG: Administrador de Servicios de Componentes
DEVMGMT.MSC: Administrador de Dispositivos
EVENTVWR or EVENTVWR.MSC: Visor de Sucesos
FSMGMT.MSC: Carpetas Compartidas
SERVICES.MSC: Administrador de Servicios
CONTROL SCHEDTASKS: Administrador de Tareas Programadas
GPEDIT.MSC: Directivas de Grupo
LUSRMGR.MSC: Usuarios Locales y de Grupo
SECPOL.MSC: Configuración de Seguridad Local
CIADV.MSC: Servicio de Index Server
NTMSMGR.MSC: Medio de Almacenamiento Extraíbles
NTMSOPRQ.MSC: Solicitudes del operador de medios de almacenamiento extraíbles
WMIMGMT.MSC: Windows Management Infrastructure (WMI)
PERFMON or PERFMON.MSC: Monitor de Rendimiento
MMC: Abre Consola vacia
DXDIAG: Herramienta de Diagnotico de DirectX
ODBCAD32: Administrador de orígenes de datos ODBC
REGEDIT or REGEDT32: Editor del Registro
DRWTSN32: Dr. Watson para Windows
VERIFIER: Administrador del comprobador de controlador
CLICONFG: Herramienta de cliente de red de SQL Server
UTILMAN: Administrador de utilidades
MOBSYNC: Elementos para sincronizar
MSCONFIG: Utilidad de configuración del sistema
SYSEDIT: Editor de configuración de sistema
SYSKEY: Asegurar la base de datos de cuentas de Windows
SFC /SCANBOOT: Protección de ficheros do Windows (analizar en cada arranque)
SFC /SCANONCE: Protección de ficheros de Windows (analizar en el próximo arranque)
SFC /SCANNOW: Protección de ficheros de Windows (analizar)
SFC /REVERT: Protección de ficheros de Windows (volver a la configuración de fábrica)
RSOP.MSC: Conjunto de políticas resultante (XP Prof)
NUSRMGR.CPL: Cuentas de usuario
INTL.CPL: Opciones regionales y de idioma
TIMEDATE.CPL: Propiedades de fecha y hora


Windows utility and applications


EXPLORER: Explorador de Windows
WAB: Libretas de Direcciones
CHARMAP: Mapa de caracteres
WRITE: WordPad
NOTEPAD: Notepad
CALC: Calculadora
CLIPBRD: Visor del Portafolios
WINCHAT: Microsoft Charla
DVDPLAY: Reproductor Windows Media
WMPLAYER: Reproductor Windows Media
MOVIEMK: Windows Movie Maker
OSK: Teclado en pantalla
MAGNIFY: Ampliador de Microsoft
DIALER: Marcador Telefonico
EUDCEDIT: Editor de caracteres privados.
MRT: Herramienta para quitar software malicioso de Microsoft Windows
TASKMGR: Gestor de tareas de Windows
MSTSC: Conexión a escritorio remoto
CMD: Línea de comandos
GPEDIT.MSC: Política de grupo (XP Prof)
POWERCFG.CPL: Configuración de energía


Disk management

DISKMGMT.MSC: Administración de Discos
CLEANMGR: Liberador de espacio en disco
DFRG.MSC: Defragmentador de Discos
CHKDSK: Análisis Completo de la partición del Disco
DISKPART: Herramienta de Particionamiento de Discos


Connection management


IPCONFIG:
list the configuration of IP addresses on your PC (for more information type IPCONFIG/? in the CMD menu)
IPCONFIG /FLUSHDNS: Configuración del protocolo de Internet (información de DNS) IPCONFIG /RELEASE: Configuración de protocolo de Internet (Todas las conexiones)
IPCONFIG /DISPLAYDNS: Configuración de protocolo de Internet (ver DNS)
IPCONFIG /ALL: Configuración de protocolo de Internet (ver todo)
IPCONFIG /SETCLASSID: Configuración de protocolo de Internet (Modificar DHCP Class ID)
INETCPL.CPL: Propiedades de Internet
FIREWALL.CPL: Firewall de Windows
NETSETUP.CPL: Asistente de Configuración de la Red

Miscellaneously

WINVER:
Version de Windows

FSQUIRT: Asistente transferencia de archivos por Bluetooth
FONTS: Fuentes
LOGOFF: Dejar de utilizar Windows
SHUTDOWN: Apagar Windows
MSPAINT: Microsoft Paint


Como veran los comandos que hay son muy variados, algunos nos pareceran muy interesantes, otros estan algo ocultos en los menus de Windows y otros directamente no estan en ningun menu y deben ser ejecutados de esta manera.


Que tengan un buen día...

Marce

05 octubre 2008

Esteganografía Digital


La Esteganografía Digital, básicamente consiste en ocultar un mensaje en un medio, de manera que no sea percibida su existencia. Esta técnica está muy emparentada con la criptografía y suelen usarse conjuntamente, aunque sus objetivos son distintos, en la criptografía se busca codificar y en la esteganografía el fin es ocultar.

Este arte tuvo sus inicios allá por el año 440 antes de Cristo, y siempre muy ligada a los fines militares. Empezó con métodos simples como rasurar la cabeza a alguien, tatuar el mensaje ahí y esperar que crezca el pelo, o la de ocultar el mensaje en la segunda letra de cada palabra, por ej.
Para la Segunda Guerra, ya se disponía de tecnología para poner microfilm en los puntos de las i's o los signos de puntuación en un carta.

Una técnica casera y bastante simple, es por ej, la de escribir una carta común y corriente, y luego escribir el mensaje secreto, en el espacio blanco de la carta, con jugo de limón, después la carta al recibir el calor de la luz de una vela, revelara el verdadero contenido.

Con la llegada de la informática, un mundo de nuevas y sostificadas posibilidades arribo, que no solo permiten ocultar los mensajes de una manera prácticamente perfecta sino que además permiten su rápida distribución.

Las técnicas digitales para estos propósitos son variadas, y consisten en agregar o integrar un documento digital sobre un archivo portador, por ej. un documento de texto, archivo de audio o imagen, por nombrar los más comunes e inocentes.

La forma más simple de hacerlo es "adosar" el documento secreto al archivo transportador. Realizar esta tarea es increíblemente sencilla, y describirla fue el motivo de este post. Para realizarla no necesitamos programas específicos o sofisticados, es mas con cualquier pc en que estemos podremos llevarla acabo.

Veamos un ejemplo de cómo hacerlo:
Creemos un escenario interesante, queremos enviarle un mensaje secreto a nuestro amigo Bin Laden, para invitarlo a comer un asado el próximo finde, obviamente no queremos que nuestros amigos del FBI intercepten esa invitación. Así que luego de meditar e investigar decidimos usar la Esteganografía.

Materiales necesarios:
  • 1 pc con algún Windows o DOS en su defecto...
  • 1 foto inocente, por ej una srta mostrando sus virtudes
  • 1 archivo de texto o word con nuestro mensaje
  • winrar instalado

Pasos:

1) Comprimimos el documento del mensaje con el winrar, sería recomendable, codificarlo con una contraseña segura, ya saben, algo de más de 12 caracteres, con mayúsculas, minúsculas, números y algún símbolo, obviamente el destinatario debe conocer esa clave. Esto será para integrar en cierto modo, la criptografía con la esteganografía.
2) En una ventana de comandos (sino saben abrirla: tecla win + r y ahi escriben cmd y presionan enter) escriben lo siguiente:
copy /b foto.jpg + mensaje.rar foto-msg.jpg

donde:
foto.jpg: es la foto inocente...
mensaje.rar: es el archivo comprimido con nuestro mensaje.
foto-msg.jpg: es el archivo resultante, el que contendrá el mensaje oculto.
copy /b: este comando genera una copia binaria de los dos archivos pasados como parámetros.

Y listo, tenemos nuestra foto "tuneada" listo para enviar por email a nuestro amigo bin.

Si prueban abrir el archivo resultante con el visor de imágenes de windows o su visor preferido veran que muestra la foto original, pero si abren esa imagen con el winrar, verán que les muestra el contenido del archivo comprimido, esto es totalmente transparente para el usuario.

Observaciones:
Como se imaginaran, al realizar este método el archivo con el mensaje oculto tendrá un tamaño igual a la imagen original mas el tamaño del archivo a ocultar, lo cual puede levantar muchas sospechas, por ej, si mandamos un jpg de 800x600 que mida 5mb, por eso es conveniente comprimir el archivo a ocultar para tratar de disimular mas el tamaño.
Este método por ser muy sencillo es mas fácil de detectar, por eso es conveniente codificar el archivo con una contraseña.


Otra alternativa más profesional con un resultado mas difícil de detectar, es la de modificar el bit menos significativo (LSB - less significant bits) de cada byte.

Veamos cómo es esto en una imagen...
Como sabemos una imagen está compuesta por pixeles, cada pixeles está formado por 3 bytes, uno para el rojo, azul y verde. El valor de cada byte da la intensidad del color y la suma de los tres colores da el valor de color que tendrá el pixel.

Un byte es un conjunto de 8 bits, que va del 0 al 255 (en binario 00000000 al 11111111), en binario tanto como en el sistema decimal, los dígitos que están mas a la izquierda tienen más "peso", es decir valor que los que están mas a la derecha.

Es decir si a 9874 le cambiamos el 9 por un 2, nos quedara:

2874

Si en lugar de cambiar el 9 hubiéramos cambiado el valor de más de la izquierda, nos quedaría:

9872

como verán el cambio es menos significativo es su valor numérico mientras más a la izquierda nos vamos.

¿Cómo metemos esto del bit menos significativo con los pixels y con la esteganografía?
Bien... unamos las partes que tenemos, como sabemos un pixel tiene 3 bytes, es decir 3 conjuntos de 8 bits, cada uno de esos conjuntos de bits da el valor de la intensidad del color. Si agregamos acá la idea del bit menos significativo, podemos sacar el bit de más a la derecha, con lo cual destinaremos 7 bits a determinar el color y dejaremos el ultimo para usarlo a nuestro gusto. Con lo cual tenemos 3 bit por pixel, como la unidad mínima de información es un byte, emplearemos 3 pixels por byte, en realidad un poco menos.




Este cambio obviamente producirá un deterioramiento en la calidad de la imagen, ya que 1 pixel con 3 octetos permite mostrar algo mas de 16 millones de colores, y con 3 conjuntos de 7 bits la cantidad de colores que se pueden representar son un poco mas de 2 millones. Lo bueno es que el ojo humano no es tan preciso con la cantidad de colores que puede distinguir, con lo que ver una imagen de 16millones y la misma en 2millones no representara una gran diferencia a nuestro sentido visual.

Como se estarán imaginando la cantidad total de bytes que podremos ocultar con este método está limitada por la cantidad de pixeles que tenga la imagen, con lo cual es muy recomendable usar una imagen con una alta resolución.

Otra ventaja de usar una imagen de alta resolución es que nos permitirá modificar solo algunos pixeles, siguiendo una especie de patrón, mientras más aleatorio parezca ese patrón, mas difícil será reconocer que se está usando el ultimo bit para otro fin...

Veamos un ej. en una imagen:

Y la imagen con sus bits modificados:


Como observan el cambio es casi imperceptible.

Esta técnica no solo es exclusiva del mundo de las imágenes, de una manera análoga se puede implementar con archivos de audios, aunque en este caso la diferencia si puede ser perceptible ya que se pueden sentir ruidos en el audio.

Otras técnicas más eficaces consisten en agregar espacios y tabulaciones a los textos, en los extremos de las líneas, considerando que la mayoría de los procesadores de textos no muestran esos espacios es realmente una técnica muy buena.

Hay otras técnicas muy avanzadas que se fundamentan en los "delays" en una comunicación, se codifica la información por medio de los retardos en los paquetes que se envían, algo como un código morse moderno.

Como dato curioso del uso cotidiano de esto, algunos fabricantes de impresoras como Xerox y Hewlett-Packard han programado algunas de sus impresoras para incluyan en la esquina de cada página un conjunto de puntos amarillos prácticamente imperceptibles a simple vista, en donde se detalla información como la fecha, hora, marca, modelo y nro. de serie de la impresora. Pueden ver una prueba de esto, junto con una aplicación web que les informara que dice ese patrón de puntos, en la siguiente pagina DocuColor Tracking Dot Decoding Guide

Otro uso que están dando las grandes compañías para proteger la propiedad intelectual de sus obras, es la de incluirles marcas de agua, para que sus creadores puedan demostrar su propiedad intelectual o para poder identificar por donde se filtran los contenidos.

Para ver código en C# que aplica técnicas del bit menos significativo, les recomiendo que visiten el siguiente enlace en codeproyect, donde se encuentra una serie de artículos muy bien explicados y con código para descargar, de la programadora alemana Corinna John. Pueden visitar su blog también. Podrán ver ejemplos para aplicar con imágenes, wave audios, midi, assemblies, archivos zip y hasta en cassetes de audio.

Si quieren usar esto sin tener que programar o compilar nada, en este sitio encontraran varios programas de criptografía y esteganografía

Como comentarios finales agrego que lo expuesto aquí es para fines "educativos", si quieren hacer cosas malas tengan en cuenta que The Big Brother tiene en cuentas estas cosas, como pueden ver en la siguiente page

Que tengan un lindo día...

Marce

06 septiembre 2008

Buscando iconos y Convirtiendo .ico en png y viceversa..

Aunque un slogan de una gaseosa decía algo así como "la imagen no lo es todo, hacele caso a tu sed", en el caso de las aplicaciones o sitios web, la estética de las mismas impacta mucho sobre el usuario y en cierta medida sobre el concepto de calidad que el mismo tiene sobre el producto.

Y como la mayoría de los desarrolladores no tenemos una gran sentido del diseño gráfico, solemos por lo menos, tratar de que tengan unos lindos iconos.

Por suerte en la web hay infinidades de librerías de iconos, muchas de ellas muy buenas, y además hace un tiempo contamos con buscadores de iconos, aunque son algo limitados en su base de datos y hay que ingresar lo que buscamos en ingles, pueden hacernos ahorrar mucho tiempo.

Entre esos buscadores de iconos podemos destacar:





iconspedia


Una vez que tengamos los iconos que necesitamos, nos daremos cuenta que la mayoria de la veces tendremos archivos .png que para aplicaciones web no representa ningun problema, para aplicaciones de escritorio suele serlo, ya que la mayoría de las veces solo se soporta archivos .ico.

Si ese es el caso, tendremos 2 opciones, o buscamos alguno otro icono que sea .ico o convertimos el .png en .ico.

Para esta tarea hay muchos programitas que podremos usar, uno muy practico y gratis que recomiendo es Ave Iconifier 2.


Es un pragrama tan simple que no tiene menu ni botones, solo dos cuadrados, uno para el .ico y otro para el .png. Su uso es muy simple, solo arrastramos el .png al cuadrado de png, automaticamente se llenara el cuadrado de ico, con el png convertido, y lo que tenemos que hacer ahi, es arrastrar ese cuadrado a una carpeta o el escritorio, y ya tendremos nuestro archivo convertido. Para convertir un ico a png el proceso es similar, solo va el ico en el cuadrado de ico y listo.

Puedes descargar este excelente soft desde aqui: AveIconifier2


Otra muy buena alternativa, que además es online es convertico.com


Su funcionamiento es simple, subimos el icono, tanto sea .ico o .png, también podemos dar la url donde se encuentra, le damos al botón de convertir y listo, el sitio nos mostrara el ¡cono convertido y un link para su descarga, en el link le damos guardar como, y listo, tenemos nuestro icono convertido rápidamente y en el lugar donde estemos.

Hay otro sitio llamado icopng.com en estado beta, pero solo convierte de ico a png.

Bueno, con estas herramientas ya no tendremos escusas para no tener aplicaciones mas agradables a la vista.

Que tengan un buen día.

Marce




03 julio 2008

¿Cómo obtener filas al azar desde una base de datos?

Alguna vez por alguna rara razón nos encontraremos con la necesidad de extraer registros de una base de datos de manera desordenada y que se vuelva a desordenar en cada consulta, es decir, obtener datos de una manera totalmente aleatoria en cada consulta.

Y como se imaginaran cada motor tendrá su sintaxis o truco para lograr esto. Aquí pongo el modo de lograr esto en Mysql, PostgreSQL, SQL Server, IBM DB2 y Oracle.

  • MySQL
SELECT column FROM table
ORDER BY RAND()
LIMIT 1

  • PostgreSQL
SELECT column FROM table
ORDER BY RANDOM()
LIMIT 1

  • SQL Server
SELECT TOP 1 column FROM table
ORDER BY NEWID()

  • IBM DB2
SELECT column, RAND() as IDX
FROM table
ORDER BY IDX FETCH FIRST 1 ROWS ONLY

  • Oracle
SELECT column FROM
( SELECT column FROM table
ORDER BY dbms_random.value )
WHERE rownum = 1


Saludos..

marce

01 julio 2008

Codigos 2D - La evolución del código de barras

Todos hemos visto códigos de barra, están impreso en la mayoría de artículos que compramos, libros, impuestos, facturas, etc. Básicamente es una representación gráfica mediante elementos claros y oscuros de caracteres alfanuméricos, surgida allá en el tiempo por los años 50 para transmitir información de manera rápida y fiable con la ayuda de dispositivos electrónicos (por lo menos un lector de códigos de barras y una computadora).
Como harán observado es un buen método, que agiliza mucho las cosas, sin embargo habrán visto que tienen algunos inconvenientes, como la distancia entre el lector y el código, la cantidad de información que puede contener el código, el contar con un aparato especializado para la tarea (el lector de barras). Por esas razones, el código de barra evoluciono a uno denominado códigos bidimensionales (2D). Los códigos de barra en dos dimensiones, también denominadados "bidis", pueden ser leídos y procesados a gran velocidad por distintos dispositivos. Con la llegada de soft para teléfonos celulares con cámara que interpretan estos códigos, se ha popularizado su uso, en especial en Japón donde es un furor y esta pegando fuerte en Europa. Inicialmente los códigos 2D eran para tareas de logística, transporte, clasificación de mercancía, identificación de personas y control de accesos. Recuerdo haber visto un vídeo de su uso hace muchisimos años en los ferrocarriles de carga de EEUU, aunque la idea era buena, la suciedad que se pegaba en los laterales de los trenes hizo que se descartara. Existen más de 30 tipos diferentes de códigos 2D. Entre los más usados encontramos a Semacode, QR y Datamatrix. Cada uno de estos códigos tienen sus ventajas y desventajas, como todo, y sus usos mas recomendados. Por ej. Semacode y QR son mas usados para trabajar con celulares, para codificar url, sms, email, etc, y Datamatrix se usa mas en procesos industriales para marcar piezas por ej. Cabe aclarar que QR es una especie de Open Source, ya que su creador no ejerce los derechos de su patente y se encuentra mucha información para poder implementarlo. Acá podemos ver las diferencias visuales entre cada uno:

Semacode

Es un pequeño cuadrado con zonas blancas y negras en su interior, con aspecto de crucigrama.


QR


Se diferencia de los anteriores por tres cuadrados negros que muestran en las esquinas y que sirven para establecer la orientación correcta. Es uno de los formatos más extendidos en Japón y un estándar de facto en los teléfonos móviles. Fue creado por la compañía japonesa Denso-Wave y diseñado inicialmente en 1994 para los proveedores de piezas de automoción, como indica su nombre QR ('Quick Response', respuesta rápida), ya que se pensó para que pudiera ser leído y decodificado a gran velocidad en cadenas de almacenamiento y montaje.


Datamatrix


Con un aspecto similar a Semacode, este código se puede usar en objetos de reducido tamaño y permite bajas resoluciones.



Hay que tener en cuenta que la información que pueden contener estos códigos es bastante generosa en comparación a los códigos de barra comunes. Por ej. el código QR puede contener la siguiente cantidad de caracteres:
  • Solo numérico - Máx. 7,089 caracteres
  • AlfanuméricoMáx. 4,296 caracteres
  • Binario (8 bits) - Máx. 2,953 bytes

¿Cuales son las ventajas y usos de estas tecnologías? Es la pregunta que ahora se deben estar realizando y también contestando, imaginando posibles escenarios donde utilizarla. Teniendo en cuenta que estos códigos pueden estar en cualquier superficie, por ej: publicaciones impresas, sitios web, carteles en la via publica, remeras, tarjetas personales, monitores, celulares, etc. y que para su consumo, utilizando el código QR, cualquier celular con cámara es suficiente, nos encontramos con un espectro de aplicaciones limitado solo a nuestra imaginación y creatividad. Los usos que se están dando en la actualidad es sobre todo para las url, en especial para bajar contenido para los celulares, como habrán probado alguna vez, escribir una url, sobre todo si es compleja, con un teclado de celular, nos hace desistir de hacerlo con solo pensarlo. Por esos muchos sitios ponen la imagen del código QR, uno apunta con su cel al monitor, apreta un botón y listo, el celular decodifica la url correctamente y navega hacia esa dirección.
Lo mismo para mandar SMS, sobre todo para adquirir contenidos o participar en votaciones televisivas, el celular automaticamente sera configurado para mandar el sms con el contenido correcto al numero correcto.

Su uso en publicidad también se esta extendiendo mucho, y es la verdad muy útil, imaginemos sino que una persona lee en una revista, o ve un anuncio en la calle y en ese momento no tenemos tiempo o los medios para escribir en algún lugar los datos del producto o la dirección web, perdiendo las empresas un potencial cliente, con este sistema, la persona solo deberá sacar una foto al código y listo, en su celular quedara almacenado toda la información necesaria.

Otras de sus aplicaciones que harán la vida más practica cuando se estandaricen algunas cosas, es la de emplear los códigos 2D en las tarjetas personas, así para agendar alguien con todos sus datos en nuestro teléfono celular, solo tendríamos que sacar una foto a su tarjeta y listo, contacto agregado sin equivocaciones y sin perder tiempo.

Un uso inverso que podemos hacer es la de almacenar la foto del código en el celular, pero sin procesarla, para usarla por ej como cupones de descuento para ir al cine o cosas similares, es decir, sacarle una foto al código bidimensional que sirve como cupón de descuento y luego al llegar al lugar reproducirlo en la pantalla del teléfono para que un scanner lo lea y efectivice los beneficios. La ventaja de esto es que no se necesita instalar un soft especial en el celular, solo hay que sacar una foto al código.

Ej de sus usos:














En próximo post seguiré hablando un poco mas de esta tecnología, en especial de QR y de como generar nuestros propios códigos QR.


Que tengan un buen día...


Marce

16 junio 2008

¿Que trae de nuevo SQL Server 2008?

En estos días salio la versión RC del SQL Server 2008, es decir la ultima versión de prueba antes de su lanzamiento en Agosto. Así que me puse a ver que cosas locas trae este nuevo producto de Microsoft.






La primer cosa interesante que encontré es lo siguiente:


En esta edición se hace foco en el concepto de plataforma de datos que
contempla una solución integral para almacenar y gestionar todo tipo de datos,
incluyendo documentos, correos, citas, XML y además suministrar un amplio
conjunto de servicios para interactuar con los datos como búsquedas, consultas,
análisis, integración de datos y sincronización.

Esto es bastante interesante, ya que permite anexar en la base de datos todo tipo de objetos sin tener que estar guardando los archivos por un lado y el path de los mismos por otro, por ej.


Otro punto interesante en esta época en la que cada vez surgen mas dispositivos "inteligentes" es esto:


Los usuarios serán capaces de acceder a la información desde su creación hasta
su almacenamiento sobre cualquier dispositivo, ya sea de sobremesa o móvil.


Por lo tanto el sistema de seguridad esta más desarrollado, permitiendo la encriptación hasta el nivel de registro, de una manera transparente para el usuario.


Se realizaron mejoras en el sistema de espejado, tanto en su administración como en sus recuperaciones automáticas en caso de fallas.


También se mejoro la compresión de datos, permitiendo comprimir toda la base si fuese necesario, mejorando así el rendimiento por las operaciones de I/O y el uso de memoria.

En lo relativo al rendimiento, se agregaron características para garantizar el rendimiento de las solicitudes, y algunas otras mejoras que dicen que permitirá ofrecer un mayor rendimiento que la versión anterior.


Después hay tipos de datos nuevos, en especial para la fecha, ahora se permitida guardar datos que sean solo fecha o solo hora, o guardar una hora con un uso horario asociado. Además un dato para información Geoespacial, es decir datos geograficos, un tipo de datos para almacenar archivos (filestream) y uno interesante, para almacenar ID con jerarquía, por ej para armar un árbol.

Más específicamente para los desarrolladores las novedades son:


  1. Tipo de Dato FileStream: ya comentado anteriormente.

  2. Inicialización en línea y asignación compuesta de variables: Para usarlo en T-SQL.

  3. Comando Merge: Permite realizar un insert o un update de acuerdo si existe o no el registro, muy bueno.

  4. Nuevos tipos de datos DateTime: Los cuales son TIME, DATA y DATATIME.

  5. Parámetros del tipo Tabla: Para suplir por ej, las tablas temporales.

  6. Servicios de Entidades de Datos: Para usar directamente Objetos de Negocio en la base de datos.

  7. LINQ: Soporte del Motor a esta tecnología implementada en Visual Studio 2008.

  8. Tamaño de los Tipos de Datos Definidos por el Usuario basados en CLR: Se aumento el tamaño de 8k a 2gb.

  9. Seguimientos de Cambios: Para realizar auditorías de una manera transparente.

  10. HierarchyID: Tipo de datos para almacenar una estructura del tipo jerárquica.

  11. Datos Espaciales: Para almacenar información de localización.

Estas son solo algunas de las cosas nuevas que se trae esta versión. Hay muchas cosas más sobre todo para Business Intelligence, integración con Office, backups, seguridad, etc. Así que vale la pena ir probando con la versión RC que se puede descargar desde aqui, tanto la versión full como la versión express.

Si descargan el motor necesitaran algunas bases de datos para jugar... la gente de CodePlex libero unas bases de datos de ejemplo para esta versión (la clásica AdventureWorks) que puede ser descargada desde aquí.

Por ultimo, si quieren ampliar, en estas pages me gustaron:

Que tengan un lindo día...

Marce

03 junio 2008

Charla de Robotics Developer Studio 2008

El lunes 9 de Junio a las 19.30hs en SUM Buenos Aires 563 - IES - Córdoba, mi compañero Damian Galletini dara una charla sobre Microsoft Robotics Developer Studio 2008.




La entrada es libre y gratuita....

07 mayo 2008

Enviando un Email desde ASP.Net

Una de las cosas que abruma a los desarrolladores al ingresar al mundo de .net es la gran cantidad de espacios de nombres y clases que posee el framework. Toda esa estructura ordena y esconde muchas funcionalidades, con el propósito de hacer más productivo al programador, al no tener que codificar cosas que no hacen a la esencia del negocio ni tener que recurrir a librerías de terceros o propias, ni a San Google.

Una de esas tareas algo rutinarias es la de enviar un email, algo que antes era muy tedioso, en vb6 implicaba muchas líneas de código, usar el control winsock que no siempre estaba instalado en la pc de desarrollo o en la del cliente, hacer conversiones en base 64, manejar varios detalles del proceso de comunicación con el servidor de correo, y un largo etc. que aunque servia para aprender muchas cosas sobre lo que pasa al enviar un email, hacia perder mucho tiempo y ganar posibilidad de errores.

Ahora con el Framework 2.0 o superiores (en el 1.1 también pero no como se explica aquí), toda esta funcionalidad de enviar un email ha sido encapsulada en el siguiente namespace: System.Net.Mail

Bueno, basta de chachara, y manos a la obra...

Los pasos básicamente son estos:

  • Crear un mensaje a enviar del tipo MailMessage.
  • Asignar las propiedades del mensaje (emisor, destinatarios, asunto,contenido,etc).
  • Si el servidor de correo necesita autenticación crear un objeto del tipo NetworkCredential (el cual contendrá el usuario y el password).
  • Crear una instancia de SmptClient para enviar el mensaje.
  • Enviar el mensaje....

Transformemos esos pasos a C#...

static private void SendEmail(string _email,string _subject,string _body)
{
MailMessage _mail = new MailMessage();
_mail.To.Add(_email);
_mail.From = new MailAddress("email@yahoo.com.ar", "Marcelo Lauret", System.Text.Encoding.UTF8);
_mail.Subject = _subject;
_mail.SubjectEncoding = System.Text.Encoding.UTF8;
_mail.Body = _body;
_mail.BodyEncoding = System.Text.Encoding.UTF8;
_mail.IsBodyHtml = false;
SmtpClient _smtp = new SmtpClient();
_smtp.Credentials = new NetworkCredential("usuario", "password");

_smtp.Host = "smtp.mail.yahoo.com.ar";
//si es necesario definir un port
//_smtp.Port = 587;

//Esto es para que vaya a través de SSL por si usamos GMail por ej.
//_smtp.EnableSsl = true;

try
{
_smtp.Send(_mail);
Label1.Text = "El e-mail ha sido enviado con éxito";
}
catch (System.Net.Mail.SmtpException ex)
{
Label1.Text = ex.Message;
}
}



Consideraciones....


  • No olvidemos incluir estos namespace: using System.Net; using System.Net.Mail;


  • En el ejemplo usa el servidor de correo de Yahoo! Argentina, para el cual hay que tener una cuanta de email para utilizarlo y en la parte de credenciales poner su usuario y password.
  • Para utilizar una cuenta de Hotmail (@hotmail, @live.com.ar, @live.com, etc.) el smtp a utilizar es: smtp.live.com y hay que activar SSL (_smtp.EnableSsl = true;), recuerden ademas que al pasar las credenciales para autentificarse con el servicio smtp, deben pasar el usuario con el dominio de la cuenta, es decir "pepito@hotmail.com" y no solo "pepito". Con eso es suficiente para que funcione, sino funciona lo mas probable es que la cuenta con la que estan probando no tenga habilitado aun los protocolos SMTP/POP3, microsoft va habilitando estas caracteristicas por tandas, por lo general, las cuentas mas viejas y/o de ciertos paises tienen más prioridad para incorporar las mejoras.

  • Para otros servidores que no requieran autenticación comentar la linea de Credentials.

  • Para los servidores que requieran usar una comunicación por SSL descomentar la línea de smtp.EnableSsl.

  • En el ejemplo se asigna un destinatario a la propiedad To, esta propiedad es una colección del tipo MailAddressCollection, por eso usa el método Add, podemos agregar la cantidad de destinatarios que necesitemos usando ese método.

  • Al momento de usar el método Send lo ponemos en un Try-Catch porque se puede producir errores en el envió, por ej por requerir SSL.

  • La clase MailMessage pose algunos elementos interesantes, que permiten asignar la prioridad, Destinatarios de copia, Destinatarios de Copia Oculta y Attachments entre otras cosas, vale la pena revisarla...



Y eso es todo...



Que tengan un buen día...



Marce



01 mayo 2008

Presentación

Hola a todos, les doy la bienvenida a lo que será mi segundo blog, en el cual escribiré post desde mi lado técnico, mayoritariamente sobre las tecnologías de Microsoft.

La idea de este espacio, será la de ir poniendo las cosas interesantes o difíciles que vaya descubriendo en mi andar por mi camino profesional, para devolver un poco lo que internet y San Google nos da en cada petición de auxilio y también como un repositorio a donde buscar las cosas que ya "olvide".

Como siempre los comentarios serán bien recibidos y espero que encuentren algo interesante aquí... por lo menos alguna sonrisa…


Que tengan un lindo día…


Marce