Entradas

Convierta Visual Studio en el mejor IDE para Python con PTVS

Imagen
Python Tools for Visual Studio (PTVS) es una herramienta que hace parte del Azure Machine Learning Group que nos permite extender el IDE para hacer scripts y otros proyectos en Python. Incluye intellisense, debugging, virtualenv, testing y templates para Bottle, Django, Flask e integración con Azure. En este post exploraremos algunas de sus características. La plantilla para proyectos web con Django tiene Bootstrap integrado. Plantillas de proyectos incluidas en PTVS. Todo desarrollador debe manejar adecuadamente su entorno de ejecución y ser muy cuidadoso en la instalación de paquetes, porque si tiene varios paquetes en entornos distintos pueden presentarse errores de cross threading . Yo utilizo la distribución Anaconda que ya tiene un grupo de paquetes para análisis de datos y computación científica, dos campos en los que se utiliza mucho Python. Sin embargo, es común tener dos o más intérpretes instalados. PTVS permite crear entornos virtuales ( virtualenv ) independientes ...

Programas de relacionamiento Microsoft

Imagen
En el segundo semestre de 2006, Sergio Victorio, uno de los integrantes del equipo de relacionamiento académico y divulgación de nuevas tecnologías de Microsoft Colombia llegó a la Universidad Icesi junto a Roberto Erazo, un estudiante de la Universidad del Cauca para presentarnos los programas de relacionamiento académico y el concurso Imagine Cup. En la reunión todo era motivante: el viaje a India a la final mundial de IC2006, el programa de Microsoft Student Partners (MSP), las reuniones de integración en las oficinas de Microsoft, las técnicas para aprender rápidamente nuevas tecnologías, los vouchers de certificación, el acceso a software original de forma gratuita, las oportunidades laborales, entre otras. Yo era un estudiante de 6º semestre de Ingeniería Telemática y me gustaba mucho el desarrollo de software, así que no dudé en apostar por esa oportunidad. En el segundo semestre de 2014, 8 años después y ante un público modesto típico de las últimas semanas de clase en la unive...

Error "Fatal Python error: PyThreadState_Get: no current thread" on GNU Radio

If you're getting the error "Fatal Python error: PyThreadState_Get: no current thread" while running GNU Radio on Mac OS X, is because you've OOT modules installed in a wrong way. If you installed GNU Radio using MacPorts and the OOT modules from source, both are using different Python threads (the port's version and the apple's version). To solve that issue, just set the PYTHON_LIBRARY variable while installing the modules: cmake -DPYTHON_LIBRARY=/opt/local/lib/libpython2.7.dylib .. And remember to set the variables in ~/.profile to load the modules on GRC: export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH export GRC_BLOCKS_PATH=/usr/local/share/gnuradio/grc/blocks

Historia de una App: un mes en la Tienda Windows y en Google Play

Les cuento que un mes después del lanzamiento de la app "Calendario Tributario Colombia" para Android , sólo está instalada en 50 equipos. Muy poco comparada con "Calendario Tributario Colombiano" para Windows 8 , que el primer mes alcanzó 104 descargas y 8 meses después tiene 1250 – igual es poco, pero vamos avanzando –. Lamentablemente no tengo el dato de cuántos usuarios todavía la tienen instalada en Windows 8, como sí pasa con la de Android: 50/60. Pienso que eso sucede por 2 razones: 1. Las políticas de la Tienda Windows son mucho más acertadas que las de Google Play. Cuando buscan en la categoría de finanzas de la Tienda Windows la aplicación aparece en el segundo lugar – o solía estarlo –, lo que demuestra una clara segmentación de mercado (Colombia); mientras que en Google Play aparece en la posición 106, por debajo de apps como “Banesco móvil” y “Bank of America”, entidades que no ofrecen sus servicios en el país. Quiero resaltar que la app para Windows 8 ...

El nuevo sistema de autenticación de ASP.NET

Microsoft es sin duda la empresa que mejor documentación tiene sobre sus tecnologías de desarrollo, y cuenta con la mejor herramienta: Visual Studio. Sin embargo hay un tema con el que nunca me había sentido satisfecho hasta hoy: la autenticación de ASP.NET y su integración con el modelo de negocio. ASP.NET (MVC 4) ofrece un sistema de autenticación 'out of the box' muy útil, pero que en mi opinión carece de documentación que explique la mejor forma de integrarlo con otras entidades, entendiendo integración como la creación de relaciones uno a muchos. Estas son algunas propuestas que hay en internet y la razones por las que no me gustan: 1. Crear un proveedor personalizado que incluya las relaciones. Además de ser tedioso y susceptible a errores, implica desaprovechar lo que otros desarrolladores de mucha experiencia han hecho por nosotros. 2. Crear dos bases de datos, una para los usuarios y otra para el negocio (en esa parte estoy de acuerdo), y duplicar la información de l...

Metadatos de Azure vs. caracteres especiales

Estoy desarrollando una aplicación que guarda documentos en Windows Azure y quiero compartir dos decisiones de diseño: No utilizo tablas que relacionen usuarios y documentos, sino que creo un contenedor para cada usuario. Eso me da mayor flexibilidad al momento de hacer transacciones o al eliminar los usuarios (tarea muy frecuente en fase de desarrollo). Los datos asociados al documento como fechas, descripción, etc. los almaceno en los metadatos del blob. Hay un problema con la última decisión: no se pueden almacenar caracteres especiales en los metadatos. Para solucionarlo, seguí la recomendación de WarNov y utilicé un codificador HTML: blob.Metadata["Description"] = HttpUtility.HtmlEncode(model.Description); Description = HttpUtility.HtmlDecode(blob.Metadata["Description"]); Los nombres de los archivos tampoco pueden contener espacios porque hay navegadores que no los aceptan en las cabeceras de tipo Content-Disposition, necesarias para descargarlos. Yo los reem...

Monitoreando el Espectro Radioeléctrico

Imagen
Entre el 30 de noviembre y el 8 de diciembre de 2011 estuve en Costa Rica realizando monitoreos de espectro radioeléctrico en una gran parte del país. Ese procedimiento se hace con el objetivo de identificar las bandas de frecuencia que están en uso, y validar la información que posee la entidad reguladora de comunicaciones sobre la distribución de frecuencias, las potencias de transmisión y las coberturas de servicio. El primer paso fue seleccionar los sitios de medición. Para esto se utilizó una simulación generada en CellGis, un software de planificación de redes inalámbricas desarrollado por el Grupo de Investigación en Informática y Telecomunicaciones i2T de la Universidad Icesi, al cual pertenezco. Allí se identificaron los puntos en que se podían capturar la mayor cantidad de señales y se exportaron a GoogleEarth para facilitar su lectura. A diferencia de las mediciones de radiación, que se realizan cerca a las antenas, los monitoreos de espectro se hacen cerca a las poblaciones...