Noob, te presento a Mongo

“The database market is in need of a big change. The technology that people typically use, the database layer, was designed in 1970 with a very different set of requirements in mind […] It’s common to have applications for all your customers, your partners, your prospects, all interacting over the internet. It just wasn’t in mind when the relational database was built.” Max Schireson

Cuando uno se inicia en una base de datos no relacional como MonboDB se siente realmente perdido. No hay tablas, no hay registros, no hay SQL y NO HAY RELACIONES. Entonces… ¿Por dónde empiezo?

A lo largo de este artículo vamos a pasar a través de conceptos teóricos hasta llegar a un uso práctico:

  • ¿Qué es MongoDB y Cómo funciona?
  • ¿Cuándo usarlo y cuándo no?
  • ¿Cómo lo instalo?
  • Terminología, y formato de los documentos e ideas para la organización de datos
  • Comandos útiles en la consola de MongoDB
  • ¿Cómo consulto los datos?
  • ¿Cómo inserto los datos?
  • ¿Cómo hago un update? Parámetros especiales de update
  • ¿Cómo hago un delete?
  • Operaciones avanzadas de consulta

Continue…

Git para principiantes. Noob te presento a Git.

¿Qué es Git?

Git es una herramienta mágica y fundamental que todo desarrollador debería utilizar y que en trabajos colaborativos será imprescindible. GitHub es una red social que ha cambiado la forma en la que los desarrolladores trabajamos.

Git es un sistema de control de versiones distribuido, de código abierto y gratuito. Con él podrás tener varias versiones de un proyecto, sin que los cambios en una de ellas afecten al resto. Fue pensando para la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando estas tienen un gran número de archivos de código fuente.

¿Por qué usarlo?

Además de la respuesta obvia, que sería para llevar un control de versiones, Git es especialmente útil en trabajos distribuidos o colaborativos. Digamos que sois dos compañeros trabajando en la misma parte de un proyecto. Tú haces tus cambios , los guardas , y los subes al servidor . Hasta ahora , todo bien. El problema viene cuando tu compañero de trabajo está trabajando en la misma parte del proyecto y al mismo tiempo. Uno va a sobreescribirle el trabajo al otro. Con Git, tú y tu compañero de trabajo no tendréis que preocuparos , y Git ahorrará dos copias. Más tarde , puede combinar los cambios juntos sin perder el trabajo a lo largo del camino. Incluso se puede volver a una versión anterior en cualquier momento, debido a Git mantiene una “snapshot” de todos los cambios que se hayan realizado .

Continue…

Android: Publicando en Alpha o Beta

Desde mayo del año pasado está disponible para los desarrolladores la opción de publicar aplicaciones en versions Alpha y Beta además de la version Release a través del Play Store. La diferencia fundamental entre la versions Alpha, Beta y Release es que esta última será la única en aparecer en las búsqueda del Google Play . Para poder accede a cualquiera de las otras dos versions será necesario crear un grupo de Google o una comunidad de Google + desde los que se distribuirá la aplicación a un grupo determinado de usuarios.

Es muy recomendable la distribución de una versión pre-release de tu aplicación a tus principales usuarios para facilitarles una manera sencilla para acceder a un buen feedback y reporte de bugs.

A través de la consola de desarrollador , al subir la aplicación determinaremos el tipo de publicación. En caso de querer publicar en Alpha o Beta… sigue leyendo

Continue…

Android. Persistencia de datos en la rotación de pantalla. Portrait <-> Landscape.

portrait_landscape

Cuando programamos para un dispositivo móvil, es una buena práctica asegurarnos de que nuestras interfaces se visualizarán de una forma decente en cualquier orientación que adopte el teléfono, tanto en “Portrait” (vertical) como en “Landscape” (horizontal).

Por defecto, cuando ocurre un cambio en la configuración del teléfono, algunas configuraciones del dispositivo pueden cambiar en tiempo de ejecución (como la orientación de la pantalla, la disponibilidad del teclado o el idioma). Cuando se produce un cambio de este tipo, Android reinicia la actividad en ejecución, es decir, destruye (OnDestroy) y reconstruye (onCreate) la actividad. El comportamiento de reinicio está diseñado para ayudar a la aplicación a adaptarse a las nuevas configuraciones mediante la recarga automáticamente de recursos alternativos que responden a la nueva configuración del dispositivo. En el caso de la rotación, la finalidad es cargar nuevos layout para ofrecer una vista más cómoda al usuario.
Continue…

Cómo Instalar Mac OS X Maverick(10.9)DP1 en Windows(Imagen VMware) y XCODE

1.- Instalamos VMware 8 o superior.

2.- Nos descargamos la maquina virtual del siguiente enlace: http://kickass.to/os-x-mavericks-10-9-dp1-vmware-image-t7550335.html (Recomiendo descargarlo por torrent)

3.- Por defecto VMware en Windows viene bloqueado para poder crear maquinas virtuales que soporten Mac. Pero tranquilos en el fichero que se han descargado con anterioridad vienen los archivos correspondientes para desbloquear esta funcionalidad. En Windows tenemos que irnos a la carpeta C:\…\OS X Mavericks 10.9 DP1 VMware Image\VMware Unlocker – Mac OS X Guest\VMware 8.x + 9.x Series\VMware Workstation Unlocker – Window, luego entramos en la carpeta acorde a nuestra versión de VMware( si poseen la versión 10 entramos en la que dice 9.x Series), posteriormente entramos en la carpeta acorde a nuestra edición de VMware, y en el caso de Windows ejecutamos el fichero install.cmd con permisos de administrador (OJO!!! El VMware debe de estar cerrado). Hecho esto ya podemos montar maquinas Mac en nuestro VMware, puedes comprobándolo si creas una, y veras que ya aparece la opción Mac OS en el asistente.

4.- Ahora copiamos la maquina virtual (carpeta \OS X Mavericks) que nos descargamos, en el directorio donde tenemos las maquinas virtuales de VMware.

5.- En el directorio de las maquinas de VMware, accedemos a la carpeta que copiamos y ejecutamos el archivo OS X Maverick.vmx (el del icono de los tres cuadrados), se nos abrirá el VMware.

6.- Editamos la configuración de requerimientos hardware de la maquina virtual, procesadores, RAM,etc.

7.- Arrancamos la maquina virtual, esta procederá a la instalación del sistema Mac, configuramos el SO. (Importante: cuando lleguemos a la configuración del teclado elegimos Spanish ISO, ya que es la más parecida al teclado QWERTY español)

8.- Una vez finalizado esto, solo nos quedaría instalar las VMware tools para poder ver la maquina en pantalla completa, para ello montamos la ISO que encontraremos en  C:\…\OS X Mavericks 10.9 DP1 VMware Image\VMware Unlocker – Mac OS X Guest\VMware 8.x + 9.x\Tools\darwin.iso, nos aparecerá una ventana de dialogo a la que le daremos en instalar. Al acabar la instalación reiniciamos, y ya podremos visualizar nuestra maquina virtual en pantalla completa.

Notas:

Si queremos ver contenidos multimedia como vídeos de youtube en nuestra maquina virtual necesitamos instalar  Adobe Flash Player, (si tenemos problemas al cargar la pagina de adobe podemos descargarnos el .dmg en Windows y pasarlo a la maquina virtual por USB). Luego por ejemplo nos vamos a youtube, le damos a cualquier vídeo, y podremos ver que se escucha pero la pantalla permanece negra, para solucionar esto le damos click derecho en el vídeo y posteriormente en configuración, a continuación desactivamos la casilla de aceleración de hardware y reiniciamos el safari. Ahora ya podemos ver vídeos en Youtube y contenidos multimiedia.

————————————————————-

Instalación del Xcode:

  1. Nos bajamos el Xcode del App Store.
  2. Instalamos.
  3. Si al ejecutar el simulador se nos cuelga el programa, podremos solucionarlo haciendo click en la barra de herramientas en Product/Scheme/Edit Scheme… y nos vamos a la casilla Debugger y seleccionamos None, guardamos los cambios, reiniciamos el Xcode y listo, ya podemos usar el simulador de iPhone.

—————————————————————————————————————————–

Actualización Instalación Xcode:

Para arreglar el fallo de que se cuelga el programa tras ejecutar el navegador con el Debugger activado, solo tenemos que irnos al App Store y ejecutamos todas las actualizaciones pendientes que tengamos, con esto se nos actualizara el Developer Preview y el Xcode, el cual posteriormente al ejecutarlo nos pedirá añadir algunas herramientas, aceptamos y Voilà, al final todo funcionará con normalidad, sin necesidad de capar funcionalidades.

 

Android: Gestión de orientación con VideoView

Hace no mucho tuve que escuchar como un “experto” en Android decía que nunca íbamos a tener que reproducir vídeos de forma nativa en una aplicación. Para mí suerte o desgracia eso no era más que una gran mentira. No sé si mucha gente tiene que pelearse a diario con la reproducción de vídeos pero en mi caso se ha convertido en mi pan de cada día. Poco a poco he tenido que ir armando el pequeño puzzle e intentar crearme las piezas que me permitieran reutilizar mi trabajo de una aplicación a otra. Aquí está un pequeño resumen de lo que he sacado en claro, y espero que ayude a alguien.
Continue…

Cheat Sheet (Chuleta) – Diseño UI en iOS y Android

iOS_Android_DesignGuidelines_CheatSheet

Ya vimos en una entrada anterior una chuleta sobre las directrices de diseño de una interfaz en Windows Phone. No iba a ser menos en iOS y Android. Y es que al hacer una aplicación, seguir las directrices de diseño de la plataforma es una manera de aumentar métricas como la retención de usuarios y la satisfacción del cliente. Esto hace que sea más fácil para los usuarios a aprender a utilizar la aplicación, de una manera lo más rápida e intuitiva posible. Por este motivo surge esta chuleta tanto para iOS y Android.

Continue…

Cheat Sheet (Chuleta) – Diseño UI en Whindows Phone

WindowsPhone_CheapSheet

Genial “Cheat Sheet” o chuleta que muestra la infografía con las líneas maestras del diseño del interfaz de usuario de las aplicaciones para Windows Phone, creada por Nathalie Belval.

Además, en su noticia, Nathalie anuncia que está a punto de publicar la versión de la guía de diseño para Windows 8 (Modern UI), y que posiblemente realice una versión que fusione ambas infografía por la convergencia de las dos plataformas. Según Nathalie:

“When your are building apps, this cheat sheet will avoid you to look on devcenter or msdn in order to find another time, size of icons, tiles, etc. More over, respect guidelines ensure you to increase user rentention and user satisfaction for your appplications. This cheat sheet focus on principles UI guidelines for Microsoft Design Language in order to create quality Windows Phone applications.

Continue…

Speaking in bytes…but do they understand?

These days, there is a considerable quantity of technology talking around us. The other day, I was in a Christmas party and I realized that most of the people there would know what a Gigabyte, a pixel or WI-FI are. Conversations on such terms, which were considered technical just a few years ago, are common in our daily routine.

But despite this popularization, there is still a considerable mass of population with limited knowledge of technology. Therefore, it is key not to assume that everyone can always follow our discourse. Presenting a product to a client, discussing with the leadership possible courses of action in a technical decision, or training users into a new system or technology are situations where the communication can be the critical fact between success and failure.

In some cases, it can be challenging adapting the speech while communicating the technical concepts. If in our daily work we are sunk deep in our technology wording it can get difficult to differentiate the specialized language from the simpler language that most of the people can follow.

1speakinginbytes01

Practice is basic in easing the language adaptation, but let me explain the main tips that work for me when facing the communication challenge:

Though it seems pretty obvious, the first step is assessing the technical knowledge of the person or people you are talking to. Learn about their most used gadgets, systems or programs, and how do they use them. Be careful when asking not to sound condescending, but interested in their background. Questions like “are you familiar with the use of this tool?”, or “what are the programs that you use in your work day?“ can go a long way determining the technical words that the interlocutor might be familiar with.

Also, listen to the audience, check the terms they use when asking questions or making statements and try to use them when building the answers. Be ready to ask for a broader explanation if you are unsure on how they understand a specific term.

Finally, make sure to explain functionalities, not technical features. Use pros and cons analysis to make a point where the features are key. Remember to state pros and cons in a way that the interlocutor can understand the differences between the proposed options – for example, don’t just say a feature is better, but explain the benefits that the person will be able to experience or measure.

I have the firm belief that the days of “sounding smart” by being unintelligible are far past us. My personal point of view is that being clear and adjusting the speech is part of the added value you can bring to your company and product.

And you, have you ever felt misunderstood when trying to explain a technical concept? What are your tips to adequate your speech to your audience?

Source: http://www.anywherexchange.com/2013/08/project-management-swing-tree.html