Android: Reproducir vídeo desde URL de Google Drive usando VideoView

Standard

google_drive_logo_3963Qué tal. En el post de hoy, retomaré un tema visto antes en este mismo blog pero en una faceta diferente a la del ejemplo anterior. Hablamos antes sobre como reproducir un vídeo en la vista VideoView de Android, pero en aquella ocasión, para fines prácticos, solo se reprodujo un vídeo previamente añadido a los resources de nuestra aplicación.

Hace unas semanas uno de nuestros lectores solicitó ayuda sobre cómo reproducir un vídeo mediante una URL de Google Drive directamente en la vista VideoView, y me parece una buena idea compartir con ustedes la solución que se encontró para ese caso específico. Para esto, se tomó como referencia una respuesta de StackOverflow consultada para la decodificación de la URL en cuestión.

Entonces, sin mayor preámbulo, pasemos a la implementación de nuestro ejemplo. Pueden encontrar en GitHub el CÓDIGO COMPLETO DEL PROYECTO, ya que en el presente post sólo se mostrarán las partes importantes del mismo.

Continue reading

Aprender a Programar Jugando

Standard

Hola a todos, en mi post anterior nos pusimos serios revisando los tipos de competencias que un buen programador debe de contar en su arsenal de conocimientos y habilidades. En este post vamos a enfocarnos en el aprendizaje continuo, pero jugando. 😃

Habiendo actualmente tantos recursos donde aprender como:

  • Libros.
  • Blogs.
  • Tutoriales.
  • Videos.
  • MOOC (Massive Online Open Courses)
  • Degrees y Nanodegrees. (De estos dos últimos hablaré en algún post a futuro).
  • otros…
Destaca uno en particular que son los juegos, que te ayudan a reforzar los conceptos de programación, inteligencia artificial (AI)  o herramientas, tratan de hacerlo divertido en el proceso y promueven que aprendas “ensuciandote las manos”.
Les voy a compartir tres juegos que he usado y estoy usando actualmente en tres plataformas y herramientas diferentes: VIM, R y Ruby.
zelda-nes
Zelda NES Screenshot (tomada de http://www.EmuParadse.me)

Continue reading

Matriz de Competencias del Programador

Standard

Esta publicación es el resultado de la experiencia como programador y de la lectura de varios libros, no tanto de una tecnología o plataforma en concreto, si no más bien de conceptos, patrones y buenas prácticas.

En particular decidí escribir al respecto por un par de blogs y un libro que fueron seminales para esta idea:
– La discusión por la cuál nació la idea de este post, aquí se referencia la matriz, y a aparte hay una discusión muy interesante a favor y en contra de estos puntos.
– La matriz de la cual me tomé la libertad de traducir y agregar mis comentarios.
– 97 cosas que todo programador debería saber. A través de historias y anécdotas de programadores experimentados, van ilustrando algunos de los puntos considerados en esta matriz.
Cabe mencionar que más que volvernos expertos en herramientas, yo valoro los atributos como que este fuerte en los conceptos necesarios para ser programadores exitosos, ya que debido a la experiencia, las herramientas, frameworks, etc., pueden variar, pero las buenas bases y prácticas aceleran la adopción de nuevas tecnologías y mejora el desempeño de los equipos.
Gran parte de estos puntos los estamos utilizando activamente en Hunabsys, para definir que buscamos en nuestros equipos de desarrollo, en qué los vamos a entrenar y como base para seleccionar algún nuevo integrante.

Continue reading

Android: Repetir un include y encontrar su ID con un string utilizando ciclos

Standard

 

Qué tal, gente, en esta ocasión volvemos con más Android “tricks”.

¿Les ha pasado que se topan de repente con la necesidad de construir un layout que presenta algún componente custom de manera repetitiva y necesitan solucionarlo sin intención de hacer un copy-paste redundante? Pues bien, a mí me pasó hace poco tiempo y, aunque existen varias alternativas diferentes para dar solución a este problema, comparto con ustedes una alternativa que apliqué y que en lo particular considero me ahorró algo de tiempo y esfuerzo. Continue reading

Limitantes en Biblioteca “SoftwareSerial” de Arduino

Standard

Que tal amigos lectores, me da gusto estar con ustedes de nuevo. Les comparto que en particular este post me alegra mucho redactarlo, ya que la empresa decidió apostar por contar con mis servicios de forma oficial, es decir no seré más un practicante, sino un desarrollador mecatrónico, fuck yeah! Por supuesto que en lo personal es algo que me motiva mucho,ya que desde un inicio me sentí feliz de encontrar un lugar donde aplico los conocimientos de mi perfil profesional y además día con día continuo desarrollando nuevas habilidades. Por lo cual estoy muy agradecido con esta empresa quien ahora me da la oportunidad de seguirme formando profesionalmente.

Pero bueno, continuemos con lo que nos compete en este blog. En la empresa he realizado labores en particular de 3 grandes áreas de la ingeniería mecatrónica. He realizado actividades de diseño mecánico, de diseño electrónico y de programación de microcontroladores. Trabajando hace poco tiempo en un proyecto donde estaba involucrado en la parte de diseño electrónico y programación, me topé con pared de una forma verdaderamente absurda por querer hacer las cosas de una manera “sencilla” y “práctica”. Sin embargo durante las pruebas finales las cosas no resultaron como lo esperábamos mi jefe directo y amigo, Jesús Quintero y yo. Pero bueno, todo comenzó de la siguiente manera.

Continue reading

Creando un CRUD con MVC4 y ENTITY FRAMEWORK (Parte 1)

Standard

Hola Gente, aquí andamos de nuevo. El día de hoy vamos a crear un CRUD en C# utilizando C# con MVC4, (el tutorial lo dividiremos en tres partes) partiendo de esto, ¡comencemos!

Bueno, y muchos se preguntaran ¿Qué es un CRUD, C = Create , R= Read, U= Update, D= Delete?, En nuestro caso, lo que esperamos al final de este tutorial es tener la posibilidad de Agregar, Eliminar, y Editar, Clientes, Platillos y las Compras que hagan nuestros clientes, para tener la posibilidad de administrar nuestro sistema de ventas,además nos dará las nociones básicas de como usar C# MVC con Entity Framework.

PARA COMENZAR

       Para empezar, en nuestra herramienta crearemos un nuevo proyecto, elegimos la opción ASP .NET MVC 4 WEB APPLICATION, pondremos el título de nuestro proyecto, para este caso pondremos el título: RestaurantEjemplo , y daremos click en OK.

IMAGEN1 Continue reading

Instalación y configuración de Jenkins en Ubuntu 14.04

Standard

 

logo-title

Qué tal. En esta ocasión veremos un tutorial que nos ayudará a dar nuestros primeros pasos en el uso de esta útil herramienta, acerca de la cual les hablaré un poco a continuación.

De acuerdo con lo que nos dice su página oficial, Jenkins es, en pocas palabras:

“El servidor de automatización de código abierto líder. Construido en Java, este provee cientos de plug-ins para ofrecer soporte a la construcción, el testeo, el deploying y la automatización de virtualmente cualquier proyecto de software.”

Jenkins es un servidor de integración continua multi-plataforma, el cual, utilizado de la manera correcta, ayuda a los desarrolladores a aumentar su productividad. Es un sistema que se ejecuta en un servidor, el cual puede considerarse un contenedor de servlets.

Entre otras muchas cosas, éste nos permite construir y testear nuestros proyectos de software de manera continua y automatizada, volviendo más fácil la integración de cambios en el proyecto y el conseguir compilaciones actualizadas con la frecuencia que sea necesaria. Además de esto, soporta herramientas de control de versiones como CVS, Subversion, Git, Mercurial, Perforce y Clearcase, también puede ejecutar shell scripts y programas batch de Windows.

Ahora que sabemos esto, podemos comenzar con la instalación y configuración de nuestro propio servidor Jenkins.

Continue reading

Probando UI App con API 21/22 Android (Básico)

Standard

Muy buen día, hoy me propongo a hablarles un poco de lo que son pruebas en android.

El objetivo es dar una pequeña muestra de cómo podemos utilizar las herramientas proporcionadas por google para probar nuestras apps.

Esta primera versión está basada en la guía oficial que podemos encontrar aquí.

Pues a lo que vamos, lo primero que vamos a hacer es crear una app nueva con un activity vacío. Para este ejemplo llamaré a la app “ApplicationTest” y al activity “MainActivity”.

Ahora que ya tenemos nuestro proyecto vamos a validar que tengamos instalada Testing Support Library.

Para conseguir lo anterior es bastante simple, vamos y abrimos nuestro “Android SDK Manager”, para esto simplemente damos click en el ícono correspondiente Screen Shot 2015-12-17 at 14.01.39 con lo cual se nos mostrará la siguiente imagen.

Screen Shot 2015-12-17 at 14.02.40 (Asegurarte de estar en la pestaña “SDK Tools”). Continue reading

Trabajando con Google Maps

Standard

Ubicar puntos dentro de una figura irregular con Google Maps

Hola a todos, ¿qué tal? , ¿cuántas veces nos hemos topado con problemas que nos quitan horas e incluso hasta un día completo en resolver?, supongo que muchas y en algunas ocasiones es muy estresante, este fué mi caso cuando implementé Google Maps en una aplicación Web usando figuras irregulares para dibujar en el mapa y querer manipular nuestra figura para que haga cierta acción. Y es aquí donde mi aventura y reto a la vez con Google Maps empieza.

Primero si no tienes idea de como agregar la opción de dibujar en nuestro mapa (así como yo no la tenia) solo debes agregar un drawingManager el cual nos proporcionará esta herramienta, para esto agrega el siguiente código:

var drawingManager = new google.maps.drawing.DrawingManager({
   drawingMode: google.maps.drawing.OverlayType.MARKER,
   drawingControl: true,
   drawingControlOptions: {
     position: google.maps.ControlPosition.TOP_CENTER,
     drawingModes: [
       google.maps.drawing.OverlayType.MARKER,
       google.maps.drawing.OverlayType.CIRCLE,
       google.maps.drawing.OverlayType.POLYGON,
       google.maps.drawing.OverlayType.POLYLINE,
       google.maps.drawing.OverlayType.RECTANGLE
      ]
    },
    markerOptions: {},
    circleOptions: {
    fillColor: '#ffff00',
    fillOpacity: 1,
    strokeWeight: 5,
    clickable: false,
    editable: true,
    zIndex: 1
    }
});
drawingManager.setMap(map);

/*donde map representa nuestro mapa en la aplicación.Esta código nos agrega   ra la opción de poder dibujar en nuestro mapa.*/ 

Continue reading

Sending E-mails from Android

Standard

Getting Started

As a user, have you ever seen an android app that sends you interesting information?. As a developer, have you ever feel you would like to send valuable info to your users through their email with information?… Well, this is a commonplace problem among android applications. A first approach of sending emails (and the easiest) is to use the built-in Email apps installed in our device. However, this is only useful in some cases. When we need to send information with no user input/intervention this heads to a little harder approach, Pure code!, sending everything “behind the scenes”.

Intents Approach

Of course there is an email “intent” utility that you could use almost in all devices when we are developing an app. However, this intent allows the user to explicitly modify data before sending the email, which is not always the desired functionality. For instance, we will not extensively describe this functionality here, but you may see how it works in the next images:

i1         i2 Continue reading