Curso Analítica de Google para móviles

Bueno, al final me he decidido y vamos a probar este servicio de formación gratuito de google, como bien pone en su página web: «Mejora tus habilidades de Analytics con cursos gratuitos en línea de Google», pues allá vamos, a parte de saber hacer aplicaciones para móviles quiero saber un poco del mundo de la analítica en esta plataforma.

En estos momentos tenéis disponible el siguiente curso que empezará en breve: Mobile App Analytics Fundamentals

Podéis ver el vídeo promocional también a continuación:

Por cierto es del 18 de noviembre al 11 de Diciembre.

Usando amplifon sonidos en Street View

Hacía ya semanas que me encontré navegando en mis feeds con esta librería llamada Amplifon, ¿qué es Amplifon? pues básicamente un conjunto de herramientas que podemos usarpara poder generar sonidos en 3D sobre la capa de street view.

Podéis ver más información en el vídeo de su propia página web:

Al final le he dedicado unos minutos a hacerme una demo propia para una zona de Coruña, el palacio de la ópera, y me he centrado en 3 sonidos, el sonido de la cascada, el murmullo de la gente saliendo del palacio de la ópera y el tráfico de la calle juan florez. El problema está que no son sonidos reales de este lugar y tampoco el street view me brindaba la vista de la gente saliendo, así que habrá que echarle un poco de imaginación. Para el resto prefiero que vayáis a la página del creador del invento porque en la galería tiene un ejemplo bastante mejor que el mío. A continuación podéis ver mi ejemplo, lo he puesto en modo desarrollo para que podáis ver los iconos de las marcas donde he agregado los sonidos y comprobar que al alejarnos/acercarnos a dichas marcas el sonido nos llega de diferente manera. Primero escucharéis la cascada, si os movéis hacia la siguiente marca cerca de las escaleras del palacio de la ópera imaginaos que hay mucha gente y escucharéis los murmullos de la gente y si después nos dirigimos a la tercera marca escucharemos los sonidos que vendrían de juan florez, coches, una ambulancia, etc…

 

Para realizar este ejemplo hay que seguir los siguientes pasos:

  1. Crear una estructura html básica, y en el body generar un div con identificador «pano».
  2. Hay que añadir las librerías en primer lugar de google maps versión 3, jquery y la propia de sosv.js.
  3. Añadir unos estilos básicos:
    html, body {
    margin: 0;
    padding: 0;
    }
    #pano {
    width: 100%;
    height: 100%;
    position: absolute;
    background: #000;
    }
    .amplifon {
    position: absolute;
    bottom: 10px;
    right: 20px;
    }
  4. Añadir el código javascript para cargar nuestros datos en formato json para los audios:

    $(function(){
    // Create your Sound of Street View - make sure the path points to your JSON file
    new SOSV('data/demo.json');
    });
  5. Crear una carpeta data donde alojaremos nuestro archivo demo.json y otra audio con los archivos *.mp3 a usar.

    /*Nuestros sonidos en formato json*/
    {
    "id": "pano",
    «lat»: «43.3625425»,
    «lng»: «-8.4105247»,
    «heading»: «1»,
    «pitch»: «1»,»sounds»: [
    {
    «name»: «waterfall»,
    «lat»: «43.3625904»,
    «lng»: «-8.4108386»,
    «src»: [
    «audio/waterfall.mp3»
    ],
    «db»: «80»,
    «pause»: «0»
    },
    {
    «name»: «coches»,
    «lat»: «43.3627923»,
    «lng»: «-8.4101495»,
    «src»: [
    «audio/coches.mp3»
    ],
    «db»: «100»,
    «pause»: «0»
    },
    {
    «name»: «charla»,
    «lat»: «43.3628407»,
    «lng»: «-8.410547»,
    «src»: [
    «audio/charla.mp3»
    ],
    «db»: «80»,
    «pause»: «0»
    }
    ]
    }

 

Como podéis escuchar las posibilidades son tremendas y le da vida en cierta manera a todas estas vistas de street view. Imaginaros que a parte de poder ver todos los sitios que nos ha dejado ver podamos escuchar a la vez… la experiencia sería mayor, incluso no solo en exteriores, sino en interiores.

Probando codepen

Hoy sí ha sido el día donde puedo decir que he creado mi cuenta en codepen.

Hace ya un tiempo que me pierdo mirando ejemplos en los ratos muertos en la página de codepen.io aunque hasta hace poco no me he decidido a crearme una cuenta y ponerme a subir algún contenido. En mi caso siempre tengo una carpetilla en mi ordenador alojado en mi servidor web a la cual llamo Fozadas con ejemplo de código útiles que está bien no perder y te pueden venir bien, incluso para aprender cosas nuevas. Para la prueba he rescatado mi primera lección de angularjs y la he subido para que la podáis ver a codepen.

Mira el codepen Flat minion por Programación Web Galicia (@PWGalicia) en CodePen

Si os preguntáis como aparece el código embebido en el post que acabo de escribir, si tenéis ejemplos que queréis mostrar en vuestro wordpress podéis usar el siguiente plugin: codepen embedded pen shortcode, donde podéis configurar la altura del shortcode y un tema de color.

Capturador de contadores de impresoras en red local

Se ha desarrollado una solución software en C# a la medida para generar un capturador de contadores de impresoras en red local con acceso a internet.

Este proyecto surge de la necesidad del cliente de recoger información de todas las impresoras instaladas en sus respectivos clientes, sin tener que andar realizando llamadas telefónicas, de manera que se pueda intentar automatizar la captura de todos los contadores en una misma red mediante un software instalado en el servidor de sus clientes finales, que se encargue de recoger capturas de pantalla de todas las impresoras asociadas y poder enviarlas por correo electrónico cada mes. Para todo ello se ha programado el capturador de contadores de impresoras, desarrollado en C#, es un software que se está ejecutando en segundo plano en el servidor y mediante hilos de ejecución threads va realizando las acciones de captura y envío de la información.

En el capturador de contadores de impresoras se puede configurar el listado de impresoras de la red local donde esté instalado, indicando la dirección local del contador de la impresora, un nombre, código y descripción de la misma. También es posible configurar la dirección de correo usada para el envío de las capturas, así como diferentes direcciones de correo de destinatarios de las capturas de pantalla. También contiene un log interno donde se recogen todas las posibles incidencias de la aplicación por día, las cuales también se envían por correo electrónico si existiera algún problema el día que se configure para los envíos. También se ha contado con el caso de si el servidor está apagado relance la operación cuando se reinicie, si es que tiene que hacerla.

Por último se ha implementado una utilidad de Test, para poder probar la configuración del software una vez instalado.

Con esta solución el cliente puede automatizar un proceso que le lleva tiempo y dinero, lo cual le lleva a un ahorro evitando estar pendiente de sus clientes finales y teniendo la información cuando la requiere.

Páginas Web en PHP: Yii Framework

Para crear páginas web en php rápidamente mediante un framework, vamos a explicar cómo instalar uno de los más conocidos: Yii Framework.

Antes de empezar tenemos que tener instalado y configurado un XAMPP, para poder tener nuestras páginas en local. A partir de ahí ya podemos empezar a hacer páginas web en PHP.

En primer lugar vamos a dirigirnos al enlace de Yii Framework, para descargarnos el framework a usar en «Download Yii«. Nosotros nos hemos creado dentro de htdocs una carpeta llamada TestYii que es donde descomprimimos lo que acabamos de descargarnos, para ver que todo está correctamente escribimos en el navegador la siguiente ruta: http://localhost/testYii/requirements/index.php en la cual podemos ver si lo que acabamos de copiar y nuestra configuración XAMPP es correcta para este framework de php. Esta carpeta es donde tenemos el framework inicial para todas nuestras futuras páginas web en php.

Lo segundo es generar nuestra primera aplicación web de pruebas, para ello si estamos en windows, tenemos que entrar en la consola de comandos [Nos dirigimos a Inicio-> Ejecutar -> Escribimos «cmd» sin las comillas y debería aparecernos]. A continuación dentro de la consola tenemos que ir a la ruta del framework que acabamos de instalar. En nuestro caso escribiremos «cd C:\xampp\htdocs\TestYii\framework\», sin las comillas, desde aquí y mediante la siguiente línea de comandos podremos crear automáticamente los archivos para iniciar nuestra aplicación web:

yiic webapp C:\xampp\htdocs\AppYii\

Con esta línea crearemos una carpeta llamada AppYii(o como queramos llamarle), con los archivos necesarios para ir empezando a crear páginas web en php. Podemos comprobar que todo ha ido correctamente desde el navegador mediante la ruta: http://localhost/AppYii/ donde veremos algo como en la imagen de cabecera de esta noticia. Podéis ver que ya hay ciertas cosas generadas automáticamente con código incluído.

En tercer lugar vamos a meternos con la base de datos, os recomiendo que creeis en primer lugar vuestro Entidad-Relación, para ello nosotros hemos usado la aplicación Mysql Workbench, desde la cual una vez generado vuestro diagrama correctamente podéis exportarlo a sentencias SQL para generar vuestra base de datos mediante phpmyadmin.

A continuación podemos ver la estructura que se ha generado y que compartirán inicialmente todas nuestras páginas web en php:

testdrive/
index.php archivo de entrada de la aplicación Web
assets/ contiene archivos de recursos públicos
css/ contiene archivos CSS
images/ contiene archivos de imágenes
themes/ contiene temas de la aplicación
protected/ contiene los archivos protegidos de la aplicación
yiic script de linea de comandos yiic
yiic.bat script de linea de comandos yiic para Windows
commands/ contiene comandos ‘yiic’ personalizados
shell/ contiene comandos ‘yiic shell’ personalizados
components/ contiene componentes reusables
MainMenu.php clase de widget ‘MainMenu’
Identity.php clase ‘Identity’ utilizada para autenticación
views/ contiene los archivos de vistas para los widgets
mainMenu.php el archivo vista para el widget ‘MainMenu’
config/ contiene archivos de configuración
console.php configuración aplicación consola
main.php configuración de la aplicación Web
controllers/ contiene los archivos de clase de controladores
SiteController.php la clase controlador predeterminada
extensions/ contiene extensiones de terceros
messages/ contiene mensajes traducidos
models/ contiene archivos clase de modeloscontaining model class files
LoginForm.php el formulario modelo para la acción ‘login’
ContactForm.php el formulario modelo para la acción ‘contact’
runtime/ contiene archivos temporarios generados
views/ contiene archivos de vista de controladores y de diseño
layouts/ contiene archivos de diseño
main.php el diseño default para todas las vistas
site/ contiene archivos vista para el controlador ‘site’
contact.php contiene la vista para la acción ‘contact’
index.php contiene la vista para la acción ‘index’
login.php contiene la vista para la acción ‘login’
system/ contiene archivos de vista del sistema

De toda esta estructura, nos interesa abrir el archivo que se encuentra en la carpeta \protected\config\main.php, y descomentar las siguientes líneas de código:

/*
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=NombreBaseDatosCreada',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
),
*/

Podemos indicar los datos de conexión a nuestra base de datos, nombre de usuario y contraseña que tenemos configurado en nuestro XAMPP, con esto ya podría tener acceso nuestra aplicación web a la base de datos que tenemos creada.

En quinto lugar vamos a generar los modelos y el CRUD (Create, Read, Update y Delete) de cada uno de ellos en nuestra aplicación web en php, esta parte es la mejor y donde comprobaremos lo que ahorraremos en el inicio de la programación de páginas web en php. En este paso podemos volver a usar el comando que hemos visto con anterioridad llamado Yiic para automatizar la generación de código o scaffolding, pero yo me voy a centrar en otra manera más fácil e intuitiva que es en la herramienta Gii que viene con Yii Framework.
Esta herramienta hay que activarla, para ello tenemos que ir al mismo archivo que hemos modificado anteriormente main.php y descomentar las siguiente líneas de código e introducir una contraseña nueva:

'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'gii123',
// If removed, Gii defaults to localhost only. Edit carefully to taste.
'ipFilters'=>array('127.0.0.1','::1'),
),

Para comprobar que todo ha ido bien, iremos al navegador y escribiremos: http://localhost/AppYii/index.php?r=gii, nos pedirá introducir la contraseña que hemos metido con anterioridad, en nuestro caso gii123 y ahora solo queda empezar a crear los objetos que con anterioridad hemos creado mediante nuestro Entidad-Relación en Mysql. Todos estos pasos serían un buen método de desarrollo a repetir en todas nuestras páginas web en php. Para ello tenemos que entrar en la opción «Model Generator«, introducir los datos de nuestra base de datos «db» y el nombre de tabla y luego los modelos (normalmente las tablas las ponemos en plural y los modelos en singular), presionamos en botón «Preview» y si todo ha ido correctamente podremos presionar el botón «Generate» para confirmar la creación de nuestro modelo, este paso lo repetiremos con todos nuestros modelos. Podemos ver como se han generado todos los modelos en la siguiente carpeta: protected\models\.

Ahora que tenemos los modelos, vamos a generar el CRUD de cada uno de ellos, entrando en la opción «Crud Generator«, en nuestro caso mantendremos los nombres que usamos para los modelos en el campo de ID, podemos ir viendo que lo que estamos generando está activo vía web: http://localhost/appYii/index.php?r=nombremodelo y veremos que hay código ya creado automáticamente para dar de alta, leer, modificar y borrar cada uno de los modelos.

A partir de aquí, ya tenemos bastante trabajo hecho por adelantado para nuestras futuras páginas web en php con unos cuantos clicks.

Landing Page: Tiendas Online y Web Coruña

Proyecto de landing page, para atraer tráfico y futuros clientes de tiendas online para comercio electrónico y páginas web en la zona de Coruña.

Este proyecto nace de la colaboración con Noroesteweb, una de nuestras premisas en la colaboración con más empresas del sector, ya que la unión hace la fuerza. En este caso nosotros nos hemos encargado de la programación de la landing page, incluyendo parte de la maquetación inicial, google analytics, configuración para seo básico, formulario de acción, así como del bombardeo de ideas para su diseño, donde Noroeste web tiene su gran baza y mayor experiencia.

Para este proyecto nos hemos basado en la noticia publicada en nuestra web sobre páginas de aterrizaje o landing page.

Nos gusta cooperar con diseñadores web o gráficos, así que no dudéis en contactarnos, nos encanta contribuir con lo que mejor sabemos hacer en cada uno de nuestros proyectos y poder colaborar con grandes profesionales, en este caso Noroeste web que nos ha deslumbrado con el diseño final de la landing page, un diseño con unos colores frescos y vivos.

Podéis ver los resultados en el siguiente enlace de Tiendas Web Coruña.

Aparece en primer lugar una cabecera con el eslogan, siempre es bueno indicar la oferta a la que va dirigida la landing page y por eso es parte del propio diseño, pero sobretodo indicar que nuestras propias bazas.

Se resalta el botón de acción «¡Infórmate ahora!», se reducen los datos a cubrir por el futuro demandante de información con solo un correo y la información que necesita saber. Es importante señalar los servicios de una manera resumidad, en este caso son: estadísticas internas, gestión de envíos, posicionamiento (SEO), panel de administración, pagos y avisos.

Y por último una anotación más de lo que intenta marcar un poco la diferencia con el resto de competidores.

¿Por qué existen permisos en las aplicaciones android?

¿Por qué hay permisos en las aplicaciones android? Pues es muy sencillo, para que no hagan lo que no queremos que hagan en nuestros teléfonos.

Al bajarnos aplicaciones Android en la tienda de google, siempre nos aparece una pantalla para que validemos los permisos de dichas aplicaciones, hay estudios que hablan que el 25% de ellas son peligrosas por este motivo, ya que aunque aparecen detallados lo que pueden hacer en tu teléfono no lo solemos leer y estamos pensando más en que queremos esa aplicación o ese juego sin pararnos a pensar en porque necesita acceso a ciertos datos de mi teléfono móvil.

Es importante ver los permisos de las aplicaciones android, si ya las hemos instalado y tenemos dudas podemos verlos en Ajustes -> Aplicaciones -> Nombre de la aplicación -> Permisos.

Es bueno siempre fijarse en las puntuaciones y en los comentarios de las mismas, y si nos pasa algo con ellas no solamente desinstalarla sino dejar constancia de lo que sucede, si son solamente fallos a los programadores nos puede venir muy bien para intentar solventarlos.

Permisos en aplicaciones android:

  • Llamar directamente a números de teléfono.
  • Enviar mensajes
  • Modificar o eliminar el contenido del almacenamiento USB
  • Leer y modificar los contactos
  • Historial de páginas web
  • Leer la identidad y el estado del teléfono
  • Precisar la ubicación (GPS)
  • Conexiones Bluetooth
  • Acceso íntegro a Internet
  • Estado de la Red / Estado Wi-Fi
  • Buscar cuentas conocidas
  • Administrar la lista de cuentas
  • Actuar como autenticador de cuentas
  • Gmail: uso de cuentas en el dispositivo, añadir o eliminar
  • Impedir el modo de suspensión
  • Instalación de paquetes (Instalar aplicaciones)
  • Leer ajustes de sincronización
  • Cerrar aplicaciones en segundo plano
  • Control de la alarma por vibración
  • Realizar fotografías y vídeos

En las aplicaciones android que nos descarguemos siempre es recomendable descargarlas del sitio oficial, en segundo lugar prestar atención a todos los permisos, por ejemplo un juego no tiene porque tener acceso a mis datos de GMail o mis contactos o incluso poder instalar otras aplicaciones en mi móvil, también salvo que sea un programa de imagen no debería tener permiso para realizar fotografías ya que podría hacerlo cuando le diera la gana y a escondidas nuestra. Muchas aplicaciones nos piden la posición gps, muchas veces es para publicidad, está claro que la nuestra de Tapear Gratis solo lo necesita para saber donde estás y mostrarte los locales de la ciudad en la que te encuentres.

Landing Page, la página donde aterrizan tus futuros nuevos clientes.

¿Qué es una landing page? una landing page es una página que se ha diseñado específicamente para la obtención de clientes, para nuestras campañas de marketing o acciones de comunicación.

En sentido más amplio se podría comparar con los carteles publicitarios que podemos encontrarnos en la calle, nos muestran información concisa sobre una oferta de algún nuevo producto o campaña publicitaria de una empresa. Se basan en un buen diseño y que la información este totalmente clara, pero sobretodo que te induzca a buscar más información sobre lo que estas viendo y ahí es donde aterrizas en la oferta para dar el salto a contactar para pedir más información. Solo cambia el soporte en el que se muestra, pero la idea en sus fundamentos es la misma.
En una landing page es muy importante elegir un diseño que impacte al cliente, teniendo claro lo que queremos para resaltarlo, podemos querer añadir clientes que simplemente se agreguen a una lista de correos para que reciban información puntual de nuestros productos, o bien resaltar ciertos productos de nuestra empresa, también sacar un nuevo producto o mostrar una oferta en concreto.
En el diseño que hagamos deberían estar claros los puntos de acción con los que queremos que interactúe la persona que llega a nuestra landing page, desde un formulario de contacto con un botón de contactar, o un formulario para agregarse a una lista de clientes que desean recibir información con su respectivo botón de acción. En el diseño de nuestra landing page será muy importante conocer el rango de edad a la cual va enfocada la acción, para buscar un diseño amigable al público al que va dirigido.
Los textos empleados tienen que ser breves y concisos, nuestros clientes no quieren de primeras leer todos los detalles, necesitamos que se interesen y una vez logrado esto, necesitan tener toda la información de una manera accesible.
Por último y no menos importante deberemos elegir las palabras y frases adecuadas que nos posicionen mejor, así como el nombre de dominio que se adecue a la esencia de lo que intentamos resaltar.

Nuestra landing page tiene que ser una nueva puerta de entrada para nuestro negocio.

Podéis encontrar más información en la wikipedia.

Aplicaciones gratis ¿quién descarga lo que hacemos gratis?

Aplicaciones gratis  ¿quién descarga lo que hacemos? A veces nos surge esta pregunta, creamos aplicaciones y módulos gratuítos para que la gente los descargue. Estan disponibles por el mundo adelante, pero casi no llegamos a saber quién descarga lo que hacemos y qué uso al final le acaban dando. La gran mayoría de los usuarios no comentan al respecto o solo un pequeño porcentaje, y dentro de los que comentan la gran mayoría lo hace por existir algún error, lo cual no es malo ya que es la mejor prueba de que sí interesa que lo que has hecho funcione correctamente ya que se le va a dar un uso.

En nuestro caso tenemos dos proyectos que son aplicaciones gratis, uno de ellos que es una aplicación android para geolocalizar locales a lo largo de todo el mundo donde tapear gratis, llevamos más de 50 descargas en poco tiempo en la tienda de Google. Podéis hacer la descarga aquí de la aplicación.

Por otro lado tenemos un plugin gratuíto de geolocalización llamado SimpleGMaps, para añadir rápidamente un mapa con una localización mediante un shortcode en cualquiera de las páginas que creamos en wordpress con solo introducir unos cuantos datos, muy simple y útil por ejemplo en un formulario de contacto o en donde quieras poner los datos de tu empresa, podéis descargarlo en la página de plugins de wordpress en el siguiente enlace: SimpleGMaps. Este último lleva 494 descargas en pocos meses.

Por eso es importante saber cuando hacemos aplicaciones gratis a qué usuarios finales nos dirigimos, pero si que se puede asegurar que aún habiendo pensando mucho en ello, no dejamos de sorprendernos.

¿Por qué hacer aplicaciones gratis? Pues porque de esta manera podemos publicar trabajos que dan muestra de lo que sabemos hacer, al final son ventanas a posibles futuros clientes que necesitan algo similar o mejorado. Siempre es una buena manera de publicitarse.

Uno de los factores que influye en el número de descargas de aplicaciones gratis, es el idioma en Internet, tienes mucha mayor probabilidad cuando usas el Inglés para que tu aplicación sea descargada por más gente, en el caso del plugin de wordpress lo considero un requisito indispensable, en el caso de nuestra aplicación de Android no, porque al público que va enfocada es mayoritariamente español.

Esta claro que los primeros usuarios siempre van a ser los más cercanos a tu red de seguidores, pero siempre nos quedará la duda del resto que no vemos…

Twitter callback y rss error página no existe

Peleándonos con twitter.

Recientemente para los que habéis programado o enlazado a la red social del pajarito azul, twitter , desde vuestras páginas web, seguramente os habéis encontrado que han dejado de funcionar enlaces del estilo:

https://twitter.com/statuses/user_timeline/NombreUsuario.json?callback=twitterCallback2&count=3

Encontrando un mensaje de error:
twittercallback2({«errors»: [{«message»:»Sorry, that page does not exist»,»code»:34}]});
Para poder solventarlo solo hay que cambiar las rutas, ya que parece que las están dejando obsoletas o al menos en los últimos tiempos no están siendo muy fiables:

https://api.twitter.com/1/statuses/user_timeline.json?screen_name=NombreUsuario&callback=twitterCallback2&count=3

O si cargáis los datos mediante Rss:

https://api.twitter.com/1/statuses/user_timeline.rss?screen_name=NombreUsuario

Para el rss no ha habido ningún cambio significativo, lo que sí cambia es algún campo en el callback sobretodo con el tema de la imagen de perfil, solo tenéis que cargar en el navegador primero los enlaces y comprobar todos los campos nuevos. En base a ello hacer los respectivos cambios en vuestro código.

Con este tipo de problemas siempre hay que intentar ir a mirar las cosas más simples, como ver si realmente me están llegando los datos y para ello copiar estas rutas en el navegador para ver realmente qué sucede, también no estaría mal que por parte de Twitter en vez de solo decir que la página no existe, nos pusieran algo así como un mensaje de rutas obsoletas si en realidad es esa la raíz del problema.