Comenzando con Python – Instalación en OSX y paquetes

Para preparar obtener la última versión del lenguaje debe descargarse desde https://www.python.org/downloads/

El instalador se ejecuta, para el caso de OSX por tratarse de un paquete no firmado mostrará un error, luego se debe ingresarse a Preferencias del Sistema -> Seguridad y privacidad. En la opción: “Permitir apps descargadas de” verá una advertencia por el paquete recién ejecutado, se autoriza que se ejecute y se procede a instalar.

OSX tiene una versión preinstalada (2.7), la versión que se descarga quedará instalada solo para el usuario y no afecta la versión del sistema operativo.

Para instalar el manejador de paquetes pip, se descarga el script get-pip.py desde una fuente confiable como https://bootstrap.pypa.io/get-pip.py una vez descargado se ejecuta:

python3 get-pip.py

Esto instalará las dependencias necesarias, tenga en cuenta que python3 se refiere a la versión instalada, si usa python solamente en el comando intentará hacerlo sobre la versión del sistema operativo y generará errores de permisos.

Una vez instalado pip para instalar nuevos paquetes en python, por ejemplo Numpy, usar el manejador de paquetes de este modo para instalar el paquete básico de computación científica en Python:

pip3 install numpy

Notar nuevamente el uso del comando como pip3 para que el sistema operativo ubique apropiadamente la versión con la cual se trabaja.

Seleccione el entorno de desarrollo de su preferencia, uno IDE sencillo  para principiantes puede ser Thony, el cual puede descargarse de http://thonny.org

Para el trabajo con gráficas es importante instalar un paquete que pueda trazarlas.

pip3 install matplotlib

Otras librerías útiles para instalar:

  • Trabajo avanzado con fechas: dateutil
  • Uso de tablas de datos e importarlos desde csv: pandas
pip3 install python-dateutil
pip3 install pandas

Más sobre operaciones básicas con Python y uso de Numpy AQUÍ

Women Who Code Medellín, Meetup presencial – Workshop Datos Abiertos – Noviembre 12 2016

women-who-code-noviembreEste mes de Noviembre en Women Who Code Medellín tendremos Meetup Presencial, para que puedas reunirtey participar en un taller sobre datos abiertos, el sábado 12 de Noviembre de 2016, de 1:00 pm a 5:00 pm en el ViveLab de RutaN Medellín.

Regístrate para asistir en https://www.meetup.com/Women-Who-Code-Medellin/events/235267313/

Estaremos hablando de Datos abiertos (OpenData). Trae tu laptop para que puedas participar en un taller donde crearemos aplicaciones web que consumen datos abiertos de gobierno y charlaremos sobre la convocatoria abierta de emprendimiento usando datos abiertos.

Que bueno será verlas de nuevo 🙂

Women Who Code, Meetup virtual 15 de Octubre de 2016

Este mes de Octubre en Women Who Code Medellín tendremos Meetup virtual, para que puedas conectarte desde donde quiera que estés por YouTube Live, el sábado 15 de Octubre a las 2:00 pm.

Regístrate para asistir en https://www.meetup.com/es-ES/Women-Who-Code-Medellin/events/234281652/

Estaremos hablando de OpenData. Les contaremos qué son los datos abiertos, mencionaremos algunas plataformas disponibles para consumir datos, los clientes de Socrata (también te diremos qué es Socrata) y sobre una convocatoria abierta de emprendimiento usado datos abiertos.

Aquí la versión grabada del streaming.

Hack.summit() 2016

Del 22 al 24 de febrero de 2016 se llevará  a cabo en línea el Hack Summit, el evento contará con presentaciones de importantes creadores de muchas de las tecnologías y lenguajes que usamos diariamente, e ingenieros de primer nivel de reconocidas compañías.

Puedes registrarte AQUÍ ya sea realizando una donación o compartiendo la información en tus redes sociales para que otros donadores se enteren. Todo lo recaudado por el evento irá a diversas organizaciones que apoyan el desarrollo de los programadores, entre ellas Women Who Code.

Durante los dos días previos podrás participar en un Hackaton internacional de aplicaciones web para apoyar a fundaciones sin ánimo de lucro, al cual podrás aplicar AQUÍ

Women Who Code, Meetup virtual 20 de febrero de 2016

Iniciamos este año Women Who Code Medellín con un Meetup virtual, para que puedas conectarte desde donde quiera que estés en el siguiente evento de google hangout on air, el sábado 20 de febrero a la 1:00 pm.

Regístrate para asistir en http://meetu.ps/2RT7Kg

Queremos escuchar lo que te interesa conocer y aprender durante este 2016, tus preguntas y comentarios durante el hangout son bienvenidos. Queremos que otras chicas se vinculen a la logística de los eventos, tu participación es importante.

En lo técnico estaremos hablando de prototipado rápido de aplicaciones con Invision. Puedes seguirnos y participar desde tu computador en cualquier lugar. Para enviar preguntas y participar puedes hacerlo desde Hangouts On Air, las preguntas pueden hacerse desde antes de que comience https://plus.google.com/events/c8mq0nd7sfmic4dlrjg7ucnrk0s

Para visualizarlo de forma no interactiva, puedes hacerlo desde YouTube.

 

SF Mobile Food App, Open Data for the common person.

Since the Open Data initiative started, tons of information has been offered to the general public in forms of spreadsheets, maps, calendars and others, giving people access to information that was buried before in Government institutions files and data servers.

The Open Data initiative is a valuable effort to give the power of information to citizens, allowing them to make more informed decisions and creating a transparency sensation among them.

However there’s still a link that needs to be stronger in the chain, how to put that information in the hands of the people who has no time or expertise to dig into the lots of databases available. This is a place where developers are called to act as translators that transform raw data into meaningful visualizations for the general public and to offer simple solutions to improve people’s lives.

The most common apps you can find are related with the main concerns of citizens: neighborhood safety and transportation; but now that Open Data is better known it is expanding to tourism, food, politics, education, environment and so on. The more apps fetch Open Data information, the more public use them, and they will demand more updated and Open information, motivating cities and government institutions to Open their public Data.

Hacemos Contactos developed a simple mobile app to show how you can take this Open Data information and transform it into a useful tool for the common person walking on the street. In this case we are using the data that comes from the approved permits for food carts/trucks, and showing them in list and map views.  The update frequency information is very important to make an app valuable for the public, in this case San Francisco Open Data site declares the information is updated daily, what is enough for the purpose of the app. We looked for other cities with similar information to include them in the app, but the data wasn’t available or the last update happened two years ago, making it not enough accurate for the intended use.

See SF Mobile Food App showcased in San Francisco Open Data site http://apps.sfgov.org/showcase/apps/sf-mobile-food/

We encourage other developers to create more apps that use Open Data and contribute in that way with information transparency.

Download on the App Store

IMG_0866P

Women Who Code Medellín se une a la “Hora del Código”

HoraDelCodigo_logo_RGBCon ocasión del cumpleaños de Ada Lovelace este 10 de diciembre, vamos a unirnos a la “Hora de Código” una iniciativa mundial para que todas participemos ese día haciendo código durante una hora.

Si eres principiante te recomendamos este recurso donde podrás programar tu robot de Star Wars https://code.org/learn Motiva a otras para que participen, es un reto que puedes completar con tus hijas, sobrinas, tías, hasta tu abuela puede divertirse haciéndolo.

Si quieres saber más sobre la “Hora de Código” puedes consultar aquí https://hourofcode.com/co

Nos gustaría que compartieras tu experiencia con nosotras registrándote en el Meetup o en nuestra página de Facebook.  También puedes hacer tus twits con el Hashtag #HourOfCode y ver lo que otros hacen alrededor del mundo.

Si quieres saber más sobre Ada Lovelace, la primera programadora de la historia, mira aquí. http://findingada.com/about/who-was-ada/ o aquí en español http://www.lavozdegalicia.es/noticia/sociedad/2012/12/10/ada-lovelace-implicacion-maquina-analitica-babbage/00031355146716765243152.htm

Practiquemos diversos tipos de navegación para apps iOS

Hoy utilizaremos varios elementos de navegación en apps para iOS con XCode, comencemos creando un proyecto nuevo que sea una aplicación con tabs, lo dejaremos para dispositivo iPhone, lenguaje Swith y desactivados los Tests (Si tienes dudas sobre esto último consulta el post sobre la primera app sin código)

Captura de pantalla 2015-11-28 10.43.32

Cuando abras la story board que te ha creado verás que tienes una vista inicial y un par de vistas hijas.Captura de pantalla 2015-11-28 11.20.50

Captura de pantalla 2015-11-28 11.23.50Aunque hoy no los usaremos, puedes notar en el menú a la izquierda que ha creado un archivo .swift para cada una de las vistas hijas. Esto servirá luego para poder hacer programación personalizada de cada una de las vistas, en cuanto a contenido y acciones.  Cambia el color de fondo de cada vista para que puedas observar fácilmente su cambio en el menú.

Captura de pantalla 2015-11-28 11.28.50Abre el menú de los elementos del story board que se muestra en la imagen, si está colapsado y no lo ves da click sobre botón para desplegarlo en la parte inferior que hemos encerrado en un círculo fucsia.

Puedes ves que hay una “First Scene” y una “Second Scene” para cambiarle el nombre que se despliega selecciona dentro de la vista la estrella azul que tiene el nombre, en este caso “First”

Una vez seleccionada te permitirá ver las propiedades del elemento, entre ellas el título y la imagen. Cambiemos el nombre a Español en ambas vistas

Captura de pantalla 2015-11-28 11.34.39

Agrega a tu aplicación un par de íconos y cambia también la imagen desplegada, el tamaño adecuado para la barra es un png de 32×32 pixels, con sus versiones @2x de 64×64 y @3x de 96×96.  Un buen lugar para encontrar íconos gratuitos que puedes usar siempre y cuando atribuyas a sus autores es flaticon.com. Revisa la primera app sin código si no recuerdas como agregar los íconos.

Haz correr la aplicación desde la barra superior, en el símbolo “play”, elige el dispositivo sobre el cual quieras observarla, lo cual abrirá el simulador. select run device

Observarás que aparece cargada por defecto la primera vista y si das click en la barra inferior pasa a la segunda.

tab-bar

Ahora vamos a integrar lo que aprendiste antes, selecciona la primera vista y buscas en el menú Editor -> Embed in -> Navigation controller. ahora tendrás una primera vista a la cual puedes agregar vistas hijas como en la vez anterior, no detallaremos el proceso pues ya lo vimos en la primera app sin código, pero crearemos un par de botones para abrir dos vistas, una que contenga imágenes de gatos y otra de perros. El resultado debería verse algo como esto.

conect-button-detail.gif

Ahora vamos a integrar un nuevo elemento, una Table View Controller, esta nos permite crear tablas con contenido dinámico o fijo, hoy la usaremos de forma fija.  Busca el elemento en el menú de la derecha y arrástralo a la storyboard.

Captura de pantalla 2015-11-28 12.09.19

Una vez insertada vamos a integrarla al tab bar, para esto selecciona la vista principal, presiona la tecla ctrl y arrastra hasta tocar la table view controller, conéctala en modo Relationships y se agregará un nuevo tab.

conect-tableviewcontroller

Cambia el nombre del nuevo item y agrégale su ícono respectivo como lo hicimos antes, la llamaremos Directorio.

Captura de pantalla 2015-11-28 12.14.33

Ahora vamos a cambiar la configuración para que nos deje  personalizarla, dejaremos el contenido en celdas estáticas y agrupadas, haremos un directorio sencillo.  Captura de pantalla 2015-11-28 12.15.02

Puedes ver que ha creado un par de secciones con de a tres celdas cada una. borra una de las table view cells que no la vamos a necesitar.

 

Captura de pantalla 2015-11-28 12.16.24

Agregaremos un texto de encabezado y otro de pie de página, en cada una de las secciones.

 

Captura de pantalla 2015-11-28 12.18.50

 

Ve al menú lateral y agrega el ícono de info en la celda

 

Del menú lateral toma un label y un image view para agregarlos dentro de la primera celda, escribe el nombre de una amiga en el label y añade un ícono pequeño al image view.

Captura de pantalla 2015-11-28 13.01.01

Captura de pantalla 2015-11-28 13.03.27.png

Tu primera celda debería verse ahora algo así.
Puedes repetir el proceso varias veces o usar la tecla command+d para duplicar tu celda. Ten cuidado, el duplicado por defecto aparece fuera de la tabla, debes arrastrarlo hasta la ubicación correcta.
Tu tabla debe llegar a una apariencia como esta, o mejor 🙂 Captura de pantalla 2015-11-28 13.04.45
Crearemos una nueva View Controller con los datos de tu amiga, usa los elementos que ya conoces.
Captura de pantalla 2015-11-28 13.06.22.png
Ahora conectaremos el detalle de la vista a la celda, primero vuelve tu table view controller embebida en una navigation controller, igual que antes. Luego como se muestra a continuación, dando click + ctrl sobre la celda y arrastrando hasta la vista, selecciona modo push.
conect-cell-detail
Una vez hemos terminado tu directorio se vería así.  Ahora es tu turno de integrar estos nuevos elementos y crear nuevas cosas.
table-detail-navigation.gif
Ah, no olvides cuando publiques, atribuir a los dueños del contenido, por ejemplo de aquí saqué los íconos.
Icons made by Freepik from www.flaticon.com is licensed by CC BY 3.0

Usar CocoaPods en tu proyecto XCode

Seguimos con los tutoriales para adquirir herramientas para nuestros proyectos con XCode, hoy nos dedicaremos a CocoaPods.

Primero que todo ¿Qué es CocoaPods? Es básicamente un manejador de dependencias de librerías para proyectos de XCode. ¿Esa vaina no te dice nada? bueno, en términos sencillos resulta que hay mucha gente por allí desarrollando código para compartirlo libremente con el resto de humanidad, a eso lo llamamos OpenSource o código abierto; esta gente que te digo ha organizado su código en librerías, que son porciones de código funcional que puedes importar a tus proyectos, conservando sus derechos de autor (que los tienen claro, pero nos dejan usarlo). Para que sea más sencillo aún se han organizado en lugares públicos en internet llamados repositorios. ¿Te es familiar la palabra? Claro, hablamos de ello en el post de GitHub, y les han puesto índices para que podamos encontrarlos según su utilidad. Aja ¿Y CocoaPods? pues es un software que te ayuda a usar esas librerías y a garantizar que haya consistencia en las dependencias, ¿Y qué son las dependencias? Son otras librerías que necesitas para que el código funcione. Más info en https://cocoapods.org

¿Qué cosas podemos encontrar en CocoaPods? Librerías útiles como AFNetworking, que se encarga de hacer por nosotros operaciones de descarga de información de la red para ponerlas a disposición del app, librerías para manejar iBeacons, para tener informes detallados de errores en las aplicaciones y muchas cosas interesantes que te ahorran esfuerzo.

¿CÓMO SE HACE?

Lo primero que necesitamos es abrir la terminal, si, tu Mac tiene línea de comandos y por debajo sigue siendo básicamente un Unix. La puedes encontrar en el Finder en la ruta Aplicaciones -> Utilidades -> Terminal

Los Mac con versiones superiores a 10.7 (Lion) tienen ya instalado Ruby que es necesario para poder instalar CocoaPods, no hablaremos hoy de Ruby, solo lo actualizaremos para garantizar que tenemos la última versión, con el siguiente comando, es probable que te pida tu password:

$ sudo gem update --system

Verás como resultado algo como esto:

Captura de pantalla 2015-11-25 00.10.49

Ahora instalaremos CocoaPods, así:

$ sudo gem install -n /usr/local/bin cocoapods

La instalación puede tomar un tiempo, ten paciencia. Esta forma de instalarlo funciona aun si tienes instalado “El Capitan”.

Si no quieres o no puedes usar privilegios de root para la instalación, puedes consultar instrucciones detalladas (en inglés) en la página de CocoaPods

Suponemos que ya tienes tu proyecto creado, si necesitas un recorderis sobre ello lee el post sobre la primera app sin código. Ahora vamos a crear un archivo llamado PodFile en la carpeta raíz de tu proyecto. ¿Puedes crearlo por la interfaz gráfica? Si, si tienes instalado un editor de texto plano como Sublime Text puedes hacerlo directamente, para quienes no lo tengan lo explicaremos desde la terminal.

Nos ubicaremos en la terminal en la carpeta raíz de tu proyecto, si no sabes donde está ve al Finder y observa la ruta que te muestra abajo.

Captura de pantalla 2015-11-25 00.39.03

Si tu sistema operativo está en español (como el mío) debes saber que el nombre de la ruta original está en inglés, así que para entrar a la ruta mostrada arriba debes hacerlo en la terminal con el comando mostrado a continuación. Esto es Unix, ten cuidado en conservar mayúsculas y minúsculas:

$ cd /users/iyepes/Documents/XCode/hcoportfolio

Para verificar que estás en el lugar correcto puedes digitar el comando pwd que te mostrará tu ruta actual. Luego usaremos “nano” que es un editor de texto plano para crear el archivo así:

$ nano PodFile

Obtendremos una ventana como esta que nos permitirá editar el archivo.

Captura de pantalla 2015-11-25 01.06.21

Agregaremos el siguiente texto al archivo que indica, lugar donde están los el repositorio, versión del sistema operativo destino (fíjate que coincida con el target de tu proyecto) nombre de tu proyecto y el nombre de la librería, en nuestro ejemplo AFNetworking.

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.1'
workspace 'hcoportfolio'
pod 'AFNetworking'

Para guardar presionas ctrl+o (la letra o) y para salir ctrl+x

Asegúrate de que tu proyecto esté cerrado en XCode e instala la librería con el siguiente comando:

$ pod install

Si te da el error “pod: Command not found” es necesario cambiar los permisos de la carpeta donde fue instalado CocoaPods, esto puede pasarte si vienes de un upgrade a “El Capitan”. puedes hacerlo así:

$ sudo chmod -R 755 /usr/local/bin

Una vez aceptado el “pod install” debe comenzar la instalación.  Tardará dependiendo de la velocidad de tu conexión a internet, pues lo que hace el instalador es descargar la librería de internet y añadirla a tu proyecto. Al terminar te mostrará algo como esto.

Captura de pantalla 2015-11-25 02.07.47

Captura de pantalla 2015-11-25 02.21.16Observa la advertencia que dice cerrar las sesiones abiertas de tu proyecto y a partir de ahora abrirlo desde el archivo terminado como .xcworkspace, el otro que termina en .xcodeproj no tiene las librerías que acabamos de adicionar. Al abrirlo notarás que ahora hay dos carpetas principales, una con el nombre de tu proyecto y la otra con el nombre Pods

Hay un truco, estamos agregando a un proyecto en Swift una librería que está escrita en Objective-C, ambos son interoperables, es decir puedo usar código en ambos lenguajes en la misma aplicación, para ello crearemos un archivo de enlace del siguiente modo:
Captura de pantalla 2015-11-25 02.27.14

Creamos un nuevo archivo en nuestro Workspace usando File -> New -> File

Captura de pantalla 2015-11-25 02.30.44

 

Seleccionamos un nuevo archivo de Objective-C

 

Captura de pantalla 2015-11-25 02.32.30

 

Le damos cualquier nombre, lo borraremos después así que no importa

Continuamos con Captura de pantalla 2015-11-25 02.32.35 luego Captura de pantalla 2015-11-25 02.32.49 y posteriormente se nos presentará una ventana que nos preguntará como queremos crear el Objective-C bridging header.

Captura de pantalla 2015-11-25 02.34.14

Damos click sobre Create Bridging Header, esto solo hay que hacerlo una vez y aparecerá un archivo con el nombre del proyecto y como Bridging Header.Captura de pantalla 2015-11-25 02.42.34 Allí importaremos las librerías que necesitemos, por ejemplo:
Captura de pantalla 2015-11-25 03.06.26

#import "UIImageView+AFNetworking.h"
#import "UIActivityIndicatorView+AFNetworking.h"

No olvides borrar el archivo dummy.

¿Cómo usaremos esas librerías? Bueno, eso lo veremos en otro post.

UPDATE sobre swift

Si estás agregando un pod a swift vas a obtener este error:

Captura de pantalla 2016-02-26 21.52.33

Debes agregar en la parte superior de tu PodFile lo siguiente al comenzar:

use_frameworks!

source 'https://github.com/CocoaPods/Specs.git'