Hosting sencillo utilizando dropbox

Esta entrada va para mis compañeros realizando el diplomado HTML5.

 

Para realizar algunas actividades del diplomado nos piden que publiquemos la página en algún servidor, con acceso a Internet, para que sea público a cualquiera.

Esto lo podemos hacer por medio de Dropbox. (https://www.dropbox.com/). Al crear una cuenta Dropbox se nos crea una carpeta llamada “Public” donde podemos agregar los archivos que deseamos sean públicos.

Podemos crear una carpeta (Por ejemplo Actividad7), donde ponemos todos los archivos HTML de nuestra aplicación. En las opciones de nuestro archivo principal HTML podemos seleccionar la opción de “Copy public link” y de esa manera obtendremos un link a nuestra página principal de la actividad y listo.

 

Solo hay que tener un poco de cuidado al utilizar enlaces relativos a la raíz del documento.

 

Problema con Visual Studio después de instalar Office 2010

Si alguno de ustedes tiene instalado el Visual Studio 2008 y alguna versión de Office 2007 y actualizaron a la version office 2010, es muy posible que encuentren un problema con su Visual Studio 2008, el problema es que al estar editando un archivo.aspx visual studio se inhibe y tenemos que cerrarlo.

Solución: 

1) Entrar a:

Windows 64bit

C:\Program Files (x86)\Common Files\microsoft shared\OFFICE12\Office Setup Controller\Setup.exe

Windows 32bit

C:\Program Files\Common Files\microsoft shared\OFFICE12\Office Setup Controller\Setup.exe

2) Correr el setup.exe y entrar la opcion de reparar (repair).

Listo!!

WCF Service en IIS

Continuando con mi post anterior…

Uno de los problemas que mas tiempo nos consumió fue correr un WCF (Windows Communication Foundation) Service en nuestro IIS. El error que nos marcaba era que el servico (.svc) no estaba mapeado correctamente en el IIS.

Después de un poco de investigación encontramos la solución.

Para solucionar este problema copiar el siguiente texto:

“%WINDIR%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe” -r

Dar click en inicio, buscar “cmd.exe”, correrlo y pegar el texto de arriba. Corran el comando y si les pide alguna confirmación, acéptenla.

Listo con esto el error quedará resuelto.

Para mas información consultar: http://msdn.microsoft.com/en-us/library/ms752252.aspx

Gracias.

Acceso a SQL Server desde IIS

Recientemente en los dias  de trabajo de Proyecto9 (proyecto finalista de Imagine Cup México 2010) nos hemos ido encontrando con algunos errores y problemas y en cada uno de ellos tenemos que realizar investigación para resolverlos.

Trataré en algunos de mis posts, exponer estos problemas y la solución de los mismos.

El problema que se nos presentó fue el de acceder a un SQL Server mediante una aplicación corriendo desde IIS. El problema es que hay que abrir permisos para un usuario en específico. Seguir los siguientes pasos:

1)     Abrir SQL Server Management Studio.

2)     En la sección de seguridad de su SERVER, click derecho en Logins/Agregar Nuevo Login.

3)     En el campo de login name escribir: IIS APPPOOL\DefaultAppPool. Asignenle si quieren acceso a una base de datos en específico.

4)     Después, abran la carpeta de su base de datos, en la parte de seguridad, usuarios click derecho, agregar nuevo usuario.

5)     En el campo de User Name, escriban lo que quieran.

6)     En el campo de login Name, le dan click al botón con los 3 puntos, después hacen click en browse, y seleccionan el usuario de DefaultPool que creamos en pasos anteriores.

 

Listo, ya no deberían tener problemas al accesar a su servidor SQL desde IIS.

Lanzamiento Visual Studio 2010 y Windows Azure!!

1.- Inscríbete al concurso Ti Vida en Codigo   para ganar una Lenovo ThinkPad de doble pantalla.

2.- Asiste al evento de lanzamiento La eficiencia en tus manos  en México D.F. el 22 de abril.

3.- Asiste al evento virtual:  “La eficiencia en tus manos” el 21 de abril.

Si no estas en la CD. de México, consulta los eventos mas cercanos  a tu ciudad.

¿Qué esperas?

La tecnología está aquí y ahora.

Microsoft SQL Server Management Studio

¿Quieres tener un completo control sobre tu base de datos en Microsoft SQL Server?. ¿Quieres hacerlo mediante una manera gráfica y fácil?.

En ese caso Microsoft SQL Server Management Studio es para ti.

Microsoft SQL Server Management Studio es una herramienta gráfica de administración gratuita; con ella podras crear tus bases de datos, modificar tus tablas, agregar registros, quitar registros, inclusive visualizar el diagrama de tu base de datos. En fin todo lo que necesitas para administrar tu base de datos, Microsoft SQL Server Management Studio te lo proporciona.

Para descargarlo :

http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796

GLPK y Visual Studio en 10 pasos.

El semestre pasado me encargaron un proyecto en la material de Investigación de Operaciones:

Era buscar un problema de optimización de la vida real, entenderlo, codificarlo de manera que el usuario metiera ciertos parámetros a la aplicación y esta le arrojara el resultado óptimo. Y para terminar construirle una interfaz amigable a la aplicación.

Decidí usar una librería llamada GLPK que contiene una gran cantidad de métodos de optimización. En ese tiempo no encontré mucha información acerca de cómo implementar esa librería; es por eso que hago este pequeño tutorial de cómo “instalar” GLPK en Visual Studio 2008.

Pasos

1)      Entrar a http://www.gnu.org/software/glpk/ para descargar la librería. La pueden bajar ya sea por FTP, HTTP. Si es por FTP entren aquí: http://ftp.gnu.org/gnu/glpk/ . Escogen la versión más reciente y bajan el archivo .tar.gz.

2)      Extraigan la carpeta de la librería (puede ser con WINRAR).

3)      Dentro de la carpeta hay dos subcarpetas (W32, W64), dependiendo de su sistema operativo (32 o 64 bits) abran la carpeta deseada.

4)      Si tienen el Visual Studio 2008 el archivo que van a buscar es el “Build_GLPK_with_VC9”. Localícenlo hagan clic derecho y denle edit. Si tienen Visual Studio 2010, la terminación es VC10.

5)      En el archivo busquen la línea que dice “set HOME =…” verifiquen que la dirección de su compilador este correcta. Para verifican abran la carpeta donde tienen instalado el Visual Studio, por ejemplo: “C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC”. Y verifiquen que sea igual a la de la variable HOME. Si no está bien modificarla, si está bien dejarla así. Guardar y cerrar archivo.

6)      Repetir el paso anterior pero ahora para la línea de código: “call %HOME%\bin\vcvars…”. Verifiquen que este bien direccionado el archivo y se llame igual.

7)      Ahora dar doble clic sobre el archivo del paso anterior. Al final del proceso deben de poder ver “OPTIMAL SOLUTION FOUND”. Eso significa que se crearon correctamente los archivos.

8)      Ahora, de esta ultima carpeta (w32 o w64), copiaremos un archivo:

a)      glpk.lib

9)      Después regresamos a la carpeta inicial (glpk-versión). Abrimos la carpeta include y copiamos y pegamos el archivo glpk.h.

10)   Ahora vamos a la siguiente carpeta “C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC”. En la carpeta “lib” pegan el archivo “glpk.lib”. En la carpeta “include” pegan el archivo “glpk.h”.

Listo ya tienen configurado glpk en su Visual Studio.

Haremos una prueba ahora.

1)      Abran Visual Studio y creen un nuevo proyecto. Proyecto Visual C++, aplicación para consola W32,  vacio.

2)      Hacemos clic en Proyecto/Agregar Nuevo Elemento/C++ File (.cpp).

3)      En la carpeta de la librería, hay una subcarpeta llamada “Examples”. Ahí dentro busquen el archivo “Sample.c”, clic derecho, editar, copiar todo el código.

4)      En el archivo .cpp en el Visual Studio peguen el código.

5)      Si intentan compilar así les va a marcar una serie de errores, esto porque la librería .lib todavía no esta linkeada. Esto es muy importante.

6)      En la parte de Explorador de Soluciones, hagan clic derecho en el proyecto, y hagan clic en properties.

7)      Abran el apartado de Linker y posiciónense en Entrada (Input en ingles). Donde dice Dependencias Adicionales (Additional  Dependencies) escriban “glpk.lib”.

Listo ahora si den Ctrl + F5 y verán que ya compila y corre el archivo de prueba.

Más adelante escribiré y subiré una pequeña guía acerca de cómo resolver un problema de programación lineal con GLPK y como construirle una interfaz grafica.

¡Por favor comenten!

Computo en paralelo con Visual C++ 2010

Computo en paralelo con Visual C++ 2010

Primero, ¿por qué aprender computo en paralelo?, muchas veces como programadores tenemos una idea equivocada sobre la programación en arquitecturas multicore. Pensamos que solo basta con programar nuestra aplicación  de forma secuencial y que el sistema operativo se encargara de optimizarla para hacer uso eficiente de la arquitectura multicore; pero esto en realidad no es asi.

Tarde o temprano, tendremos que aprender las metodologías de cómputo en paralelo, los procesadores ya no están creciendo en Gigahertz, ahora están creciendo en número de núcleos, y si no aprendemos esta metodología, en un futuro con la presión y tecnología encima, será más difícil.

Programar en paralelo puede ser complicado,  con Windows Threads que maneja un nivel complicado de programacion, después esta OpenMP que es un poco de más alto nivel comparado con Windows Threads, el único problema es que OpenMP no es tan flexible.

Visual Studio 2010 nos pone las herramientas sencillas y flexibles para desarrollar con PPL (Parallel Patterns Library). PPL Cuenta ya con una serie de algoritmos listos para implementar.

PPL viene con las siguientes funcionalidades:

. Parallel Algorithms: la librería contiene 3 tipos de algoritmos:

1)      parallel_for : usado para paralelizar un simple ciclo for.

2)      parallel_for_each: cuando usamos alguna estructura STL.

3)      parallel_invoke : usado para correr diferentes tareas en paralelo.

 . Parallel Containers and Objects:

La librería viene con un contenedor llamado Combinable. Muchas veces en las aplicaciones escritas con una metodología en paralelo, necesitamos usar una variable al mismo tiempo. Por ejemplo:

Tenemos un arreglo de 100 elementos y queremos la suma total de esos.

Lo norma que haríamos es tener un ciclo for con una variable contador, el problema es que si lo hacemos en paralelo van a querer acceder al mismo tiempo a la variable y al final tendremos una suma errónea.

Podemos hacer dos cosas, utilizar un objeto critical_section, y con los métodos de lock() y unlock() proteger la variable al momento de usarla.

Esto es muy ineficiente, por eso tenemos el container combinable, lo único que hace es permitirnos acceder a una variable sin necesidad de protegerla, esto con el método .local(). Lo que hace es que crea resultados parciales, los cuales al final hay que sumar todos con el método:

.combine(plus<int>());

Para mas información visita:

http://msdn.microsoft.com/en-us/library/dd728079(VS.100).aspx

Para terminar, pues ya no tenemos excusas para sacarle la vuelta a el computo en paralelo con Visual Studio 2010 tenemos las suficientes herramientas para prepararnos para un futuro muy cercano.

C#/OLEDB/Access2007/Visual Studio 2008

En este  post tratare de explicarles como crear una conexión en C# hacia una base de datos Access.

Primero que nada… que es OLE DB?

OLE DB significa Object Linking and Embedding for Databases que en español es Enlace e incrustación de objetos para bases de datos. Como su nombre lo indica es una interfaz que nos permite comunicarnos con una fuente de datos, desde un archivo de texto hasta una base de datos (Oracle, Access, etc.) de manera muy fácil.

Ahora si a la programación:

1)      Lo primero que hay que hacer es nuestra connection string, la cual voy a guardar en una variable string llamada conString:

                        string conString = “Provider=Microsoft.ACE.OLEDB.12.0;”

                        +@”Data Source=path”;

Path contiene la dirección hacia nuestra base de datos.

Nótese el símbolo @ en la segunda línea de código, esto lo hago únicamente para evitar que se ejecuten secuencias de escape mientras trato de escribir el path.

*Ejemplos de secuencia de escape: 

                        \n = nueva línea.

                         \t = tab.

2)      Si queremos realizar alguna acción sobre nuestra base de datos vamos a necesitar un objeto de tipo  OleDbCommand.

                          OleDbCommand command = new OleDbCommand();

3)      Necesitamos un objeto de tipo  OleDbConnection para representar nuestra conexión abierta a la base de datos. Este objeto al crearlo recibe de parametro nuestra string de conexión:

                           OleDbConnectionconn  =  new OleDbConnection(conString);

                           conn.Open();

                           command = conn.CreateCommand();

Es importante no olvidar agregar las siguientes directivas:

                            using System;

                            using System.Data;

                            using System.Data.OleDb;

Listo, en 3 sencillos pasos hemos creado una conexión exitosa a una base de datos Access.

Ahora vamos a hacer uso de una herramienta llama DataGridView, esta nos va ayudar a mostrar los datos en una cuadricula parecida a las de Excel. 

Arrastramos de la barra de herramientas el objeto DataGridView y le ponemos de nombre grid.

Primero necesitamos tener alguna sentencia SQL, por ejemplo:

                        string strSQL = “SELECT [Tbl Nombres].* FROM [Tbl Nombres]”;

Supongamos que tengo una tabla llamada “Tbl Nombres”, con esta sentencia traigo toda la información en esa tabla.

Se la asignamos a nuestro objeto OleDbCommand :

                         command.CommandText = strSQL;

Para ejecutar esa sentencia necesito un Objeto OleDbDataAdapter, el cual recibe de parametro el objeto OleDbCommand :

                        OleDbDataAdapter adapter = new OleDbDataAdapter(command);

La informacion la vamos a guardar en un DataSet, lo relleneamos usando el objeto OleDbDataAdapter:

                        DataSet ds = new DataSet();

                         adapter.Fill(ds);     

Por ultimo mostramos la informacion en el DataGridView:             

Como solo tenemos una tabla en el dataset, escribimos ds.Tables[0].

                          grid.DataSource = ds.Tables[0]; 

 Y listo, mas adelante explicare diferentes maneras de representar la informacion obtenida de una base de datos: crear filtros, reportes, etc.

Tal vez se preguntaran por que hacer esto, si los queries ya estan en Access, etc. Mi respuesta seria que la manera en que presentamos la informacion importa mucho y se me viene a la mente una conferencia/platica impartida por Mauricio Angulo en el MSP Summit 2010, acerca de la Experiencia de usuario y como influye al momento de usar una aplicación.

Bienvenido

 

Bueno, este es mi primer post…

Solo para darles la bienvenida y decirles que  en este espacio tratare de publicar artículos sobre nuevas tecnologías, la explicación de algunos algoritmos y su implementación , algunos tutoriales sobre programación, etc.

Muchas Gracias!

Roberto Alejandro Treviño Lozano