August 26, 2014

Maestros del Web (Editorial)

Facebook combate el spam con cambios en el EdgeRank

Ayer Facebook dio una gran sorpresa a todos los que trabajamos en Social Media y publicamos contenidos en su sitio: anunciaron algunas mejoras en su NewsFeed que implican cambios en el  algoritmo EdgeRank con el fin de favorecer a las personas en la identificación de contenidos interesantes y relevantes y así evitar todas esas historias que son spam, no le interesan a nadie y son una insana manifestación de la guerra por los clics. ¿Cuáles son esos cambios?

Adiós a los “titulares carnada” o “click-bait headlines”

Creo que muchos hemos visto ese tipo de publicaciones en las que literalmente nos hostigan para que hagamos clic a como dé lugar o  para que leamos algún contenido sin darnos información previa sobre lo que estamos a punto de ver. Muchas páginas de medios de comunicación lo hacen.

Ejemplo click bait

Sí, estas publicaciones suelen recibir muchos clics y logran muy buenas posiciones en el News Feed. Pero esto se acabó porque Facebook ha querido —en teoría— proteger los intereses de sus usuarios y decir adiós para siempre a los “titulares carnada” que hoy en día ahogan contenido más interesante.

Debes evitar la palabra clic en tus contenidos y tu FanPage estará a salvo de la tajante daga del EdgeRank. Si quieres que las personas se interesen por leer lo que publicas tienes que volver a lo simple pero creativo, crea un buen texto descriptivo, claro e interesante, de menos de 140 caracteres. Juega también con formatos innovadores de copy o busca feedback de tus seguidores.

Existen muchas ideas de copy que puedes adaptar según las necesidades de tu marca o empresa, solo debes evitar encasillarte, investigar siempre las tendencias en la red y todo fluirá.

Arrivederci a los posts con texto, link e imagen

Sí, vamos a extrañar este fabuloso trío del reino de los contenidos, pero es necesario entender el porqué de este cambio: Facebook descubrió que la gente prefiere darle clic a los links cuando estos se despliegan con formato de link y no cuando el post tiene texto, URL e imagen,  ¿quién iba a creerlo? Pero es verdad.

atlantic-seafood2

Tranquilos, este cambio tiene su lado bueno, como todo. Este nuevo formato mostrará información adicional asociada al link, algunas veces una parte del párrafo inicial del artículo para así ayudar al lector a decidir si quiere seguir leyendo o no. Además tiene otra característica interesante: es mobile friendly pues permitirá que hagamos clic y podamos leer sin importar el tamaño de la pantalla del teléfono.

culinarian-new

¿Ven? no todo es malo…

Los estudios de Facebook, muestran que las publicaciones que utilizan este formato reciben dos veces más clics comparados que los post con texto, URL más imagen, así que nuestras cifras serán mejores.

Recuerden siempre:

“Nada es permanente a excepción del cambio” – Heráclito

 

by Sandra Caldas at August 26, 2014 09:31 PM

August 21, 2014

Maestros del Web (Editorial)

México es potencia de la industria de drones

Christian Qhuevik Aguilar es un mexicano que está impulsando la industria de manufactura de drones en su país con su empresa Smartdrone. Esta empresa se originó en un inocente proyecto universitario fracasado, una especie de objeto volador no identificado que pasó a la posteridad como un aerodeslizador bautizado “la gallina” (ya podremos imaginarnos cómo fue el vuelo de un aerodeslizador con este nombre).

El vuelo más largo registrado de una gallina fue de 13 segundos.

El vuelo más largo registrado de una gallina fue de 13 segundos.

Con este fracaso como antecedente surgió la idea de hacer un cuadricóptero, para lograrlo buscaron el apoyo del Centro de tecnología e Innovación (CTIN) de la ciudad de México, uno de los centros de tecnología más importantes del país, impulsado por los millones de dólares de Carlos Slim. Hoy en día ya hay fondos de capital exclusivamente dedicados a la expansión de esta industria para los que el país centroamericano es uno de los destinos más prometedores.

Actualmente el equipo de SmartDrone está conformado por Agustín Avila, quien es el genio detrás de redes neuronales, Roberto Miranda encargado de diseños estructurales e industriales, Malcolm Dale, quien hace todas las interfaces de usuario y Christian Aguilar, encargado de los sistemas de propulsión.

¿Qué hace Smartdrone?

SmartDrone desarrolla drones enfocados al área de seguridad. Christian nació en Chihuahua, al norte de México, una ciudad que hace algunos años sufrió una fuerte embatida criminal del narcotráfico y que llegó a vivir tiempos tan difíciles que muchas personas no querían ni salir de sus casas por el temor que se había generado:

En el año 2010 mi padre fue acribillado por lo que decidí que los multicopteros deberían ser diseñados para brindar soporte a las instituciones de seguridad

,comenta Christian.

Sus drones tienen una duración de vuelo mayor a una hora, pueden volar bajo la lluvia, nieve y condiciones climatológicas adversas. Ha establecido convenios conWalkera para comercializar sus productos en México, sus clientes reciben capacitación, actualizaciones, mantenimiento y garantía.

¿Cualquiera puede hacer un dron?

Fabricar o armar un dron puede sonar como ciencia ficción para un humano cualquiera, pero para alguien acostumbrado a la tecnología y a aprovechar todas las ventajas de la hipercomunicación de Internet no es una tarea tan compleja, haz de cuenta que es como armar una bicicleta con partes que compras, de diferentes marcas y en diferentes lugares.

arducoptero

Por ejemplo, recientemente la prensa mundial informaba acerca de su fabricación y utilización por carteles de la droga en México:

La información de la agencia antidrogas, así como de fuerzas federales mexicanas menciona que hasta diciembre del 2013 los carteles usaban drones fabricados por empresas extranjeras, particularmente de Israel, pero desde inicios del 2014 se registró un cambio de tendencia al comenzar el proceso de manufactura propia a menor precio que un túnel o semisumergibles y evadiendo cualquier vigilancia incluyendo radares

Recordemos además que la categoría DRON abarca una enorme cantidad de vehículos aéreos no tripulados, no podrás armarte uno como este, pero de seguro lograrás un cuadricóptero adaptado a alguna función simple con estas partes:

  • Motores (es el sistema de propulsión de un drone)
  • Controladores de velocidad (es como el carburador o sistema de inyección en un auto, permite la aceleración y desaceleración de los motores).
  • Propelas dan la sustentación al drone).
  • Piloto automático (hay algunos que están listos para volar y otros que deben ser programados, para este último hay que saber C o conocer un poco de arduino).
  • Frame (es la estructura principal de el cuadricóptero).
  • Radiocontrol.
  • Baterías.

Todas estas partes se pueden conseguir en tiendas como HobbyKingo Helipal y puedes encontrar tutoriales en instructables o diydrones. No es una tarea sencilla, pero vale la pena intentarlo.

Existen procesos más complejos como los que desarrolla Christian con su equipo que involucran redes neuronales para que los drones tengan la capacidad de aprender de su entorno por si solos.

Drones y seguridad 

Actualmente en Estados Unidos hay ciertas regulaciones que no permiten volar un drone comercial en zonas restringidas como aeropuertos o volar a cierta altura.  La ausencia de una legislación acerca de su uso en muchos países es materia oscura aún (de hecho es una de las ventajas para la expansión de la industria en México), de seguro las legislaciones llegarán —lastimosamente—  cuando ocurran accidentes y se hagan públicos, o cuando se desate un gran escándalo sobre privacidad, uso del espacio aéreo o por episodios como el de drones que trafican droga.

Al respecto Christian comenta:

No hay que esperar a que pase algo, nosotros como ciudadanos usuarios de drones debemos  acercarnos a plantear una propuesta a nuestros legisladores ya que muchos de ellos desconocen totalmente del tema. Pero por lo tanto es responsabilidad de los operadores no rebasar los límites de la privacidad y no cometer actos ilícitos con estas herramientas porque cuando esto pase adiós a la libertad de que puedas tener con un drone personal

Christian y su equipo son un gran ejemplo en mi opinión de una empresa que está impulsando una industria no muy común en Latinoamérica, que ayudan a que crezca rápidamente y a que el talento latinoamericano se involucre en uno de los mercados más prometedores de la tecnología actual. Y ahora ¡vean que bonito es Chihuahua! desde los ojos de un drone:

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="480" src="http://www.youtube.com/embed/jisQAlujatA" width="853"></iframe>

 

by Alberto Bustillos at August 21, 2014 03:26 PM

August 20, 2014

Davilac

Facebook prueba un botón Call-to-Action en páginas de empresa

Según informa Facebook en su página de noticias para la sección de negocios, ahora podremos utilizar un botón de llamada a la acción en nuestros anuncios. De esta forma podremos generar más tráfico a nuestra página web, lo que nos ayudará a aumentar nuestras ventas.

Este botón de llamada a la acción nos permitirá escoger la acción más adecuada para nuestro negocio de entre las cinco disponibles: Comprar, Más información, Regístrate, Reservar o Descargar.

No sabemos si esta nueva funcionalidad que Facebook pone a prueba quedará en un experimento o, por el contrario, acabará siendo implantada. Lo que si podemos decir con seguridad es que se trata de una herramienta muy interesante para los administradores de las páginas de empresa, ya que permite dinamizar los contenidos y publicaciones de los negocios a otro nivel.

llamada a la acción Facebook

by Alicia at August 20, 2014 10:32 AM

August 19, 2014

Línea de código

Segundo Webinar del Real Sense App Challenge 2014

developer-pinchSigue en curso el Real Sense App Challenge 2014. Si todavía no tienes clara tu idea para intentar ganar los premios del Real Sense App Challenge 2014 no te preocupes, hoy se celebra el segundo Webinar para poder ayudarte con las ideas.

Ya sabes que en Real Sense App Challenge 2014 están buscando que la gente programando con C++ p C# pueda construir aplicaciones perceptuales, es decir que podamos interactuar con ellas mediante gestos, voz, reconocimiento facial,...

Seguro que se te ocurre una buena idea y puedes optar a los premios que tienen por valor de 1 millón de dolares.

No dejes pasar la oportunidad e inscribete en el Segundo Webinar del Real Sense App Challenge 2014.

Puedes inscribirte al concurso desde aquí.Similar Posts:

La entrada Segundo Webinar del Real Sense App Challenge 2014 aparece primero en Linea de Codigo.

by Víctor Cuervo at August 19, 2014 11:19 PM

August 14, 2014

Maestros del Web (Editorial)

Fedora Conference 2014: software libre para la administración pública, cervezas y un paseo por Praga

Flock tuvo lugar durante cuatro días en la Czech Technical University de Praga. Desde el comienzo me impresionó la nutrida asistencia, tanto de colaboradores como de personas con interés de entrar a la comunidad del software libre y de código abierto: allí  no se excluye a nadie, aunque el evento esté dirigido a un grupo de personas en especial. El primer día estuvo bastante movido con la acreditación, la recolección de camisetas, la oportunidad de conocer  en persona a muchos de los asistentes, a los que ya conocía por su nombre de usuario, pero que gracias a este evento pude ver cara a cara.

Sobre las charlas, una de las más épicas fue “Free and Open Source Software in Europe: Policies & Implementations”, ofrecida por Gijs Hillenius, en la que el periodista explicó el estado actual del software libre en Europa y su adopción en la administración pública de grandes ciudades, en países como Alemania, Inglaterra, España, Italia en donde se está dejando atrás el uso de software privativo.

Czech Technical University de Praga

Esta charla es una muestra de que es posible adoptar software libre y ahorrarse así millones de euros que pueden servir al pueblo para obras públicas, educación, salud. América Latina va por el mismo camino, ya hay algunos países que se suman a la adopción de software libre como Venezuela, Cuba, Argentina y Chile, también en Colombia hay algunos avances desde la administración de su capital, Bogotá, en donde ya empieza a sonar el tema.

En el camino seguramente se irán agregando más países de la región, es importante apoyar estos movimientos y disfrutar de la libertad y las bondades que cualquier software libre le puede ofrecer a una persona, empresa, organización y gobierno, y de las posibilidades de aprendizaje que hay alrededor de estas comunidades centradas en el libre intercambio.

Otras charlas durante los días siguientes estuvieron orientadas al desarrollo, documentación, empaquetamiento y distribución de Fedora y CentOS, también a una emocionante competencia de cervezas, un paseo por Praga, cenas en grupo y todas las posibilidades sociales que permite un evento así, que no se reduce a charlas, talleres y trabajo: a las comunidades les encanta divertirse, ya sea aprendiendo o al son de una buena cerveza.

¿Qué es Fedora?

Fedora es una distribución Linux desarrollada por la comunidad de Fedora Project y esta, a su vez, es financiada por Red Hat, Inc.  Se usa principalmente como sistema operativo para estación de trabajo, pero en el futuro cercano se plantean versiones para servidores y cloud; a partir de esta distribución se deriva la versión comercial de Red Hat para servidores, Red Hat Enterprise Linux (RHEL) y la versión comunitaria CentOS.

El período de publicación de nuevas versiones es de seis meses aproximadamente y actualmente podemos descargar la versión número 20. La comunidad de Fedora tiene colaboradores de todas partes del mundo y participa activamente con otras distribuciones para parches de seguridad, nuevas características de aplicaciones, empaquetamiento —entre otras contribuciones— y Red Hat destina presupuesto para eventos no solo de Fedora, sino también de Flisol, Freedom Software Day, PyCon, Linux Conf, etc.

Praga, cervezas y ladrones imaginarios

Sobre Praga, la puedo catalogar como una ciudad muy linda, el transporte genial, la gente muy amable —aunque no entienda checo—, en la capital, por lo menos, es posible comunicarse en inglés, la cerveza y la comida son muy baratas. Me dijeron que había muchos carteristas, pero no vi ni uno (pero si algún día van, tengan cuidado igual), todo muy tranquilo, en general vale la pena ir,  y si es por el software libre ¡aún más!

Plaza de Wenceslao, en el centro de Praga

by Yohan Graterol at August 14, 2014 10:25 PM

Línea de código

Obtener el título en WordPress

Una de las cosas que haremos cuando estemos construyendo un tema será obtener el título en WordPress de la entrada o página que estemos presentando.

Para poder obtener el título en WordPress vamos apoyarnos en la función:

  1. wp_title();

Antes de utilizar la función wp_title() deberemos de conocer las posibilidades que nos ofrece. Y es que esta función cuenta con 3 parámetros:

  1. wp_title($separador,$mostrar,$posicion);

Si los vemos en detalle:

  • $separador, es el carácter o símbolo que utilizaremos para separar el título. Este podrá ir antes o después del título atendiendo al valor que tenga el parámetro $posicion.
  • $mostrar, es un valor booleando en el cual indicaremos que el contenido se muestre (si utilizamos un true) o si queremos utilizar el contenido como parámetro de una función (si utilizamos false).
  • $posicion, indica la posición en la que que queremos poner el separador del título. Los valores pueden ser LEFT o RIGHT.

De esta forma podemos obtener el título en WordPress de la siguiente forma:

  1. wp_title('|',true,RIGHT);

Así conseguiremos que se muestre el título del contenido seguido del símbolo '|'. Si el contenido se llama 'Mi Página' visualizaremos lo siguiente:

Mi Página|

Y es que podemos concatenar el título del contenido con otra información, por ejemplo con el nombre o descripción del blog.

Así tendríamos el siguiente código:

  1. wp_title('|',true,RIGHT);bloginfo('name');

Lo que nos visualizaría por pantalla será:

Mi Página|Línea de Código

El uso de esta función para obtener el título en WordPress lo encontraremos principalmente en el archivo header.php al generar la etiqueta title, aunque podemos utilizarlo dónde queramos:

  1. <title>wp_title('|',true,RIGHT);bloginfo('name');</title>

Lógicamente el título puede variar atendiendo a muchos criterios: si queremos personalizar cuando sea la página de 404, o cuando sea una entrada el contenido o cuando sea una página,... Podremos complicar la generación del título lo que queramos.

Para estos casos se puede optar, y parece lo más coherente por añadir un filtro sobre la función 'wp_title' y que funcione como nosotros queramos:

  1. add_filter( 'wp_title', 'titulo_personalizado', 10, 2 );

Pero esto será objeto de otro artículo.Similar Posts:

La entrada Obtener el título en WordPress aparece primero en Linea de Codigo.

by Víctor Cuervo at August 14, 2014 06:00 PM

August 13, 2014

Maestros del Web (Editorial)

12 formas de promocionar tu empresa desde el cover de Facebook

Muchas empresas, marcas y personas no se dan cuenta del potencial que tienen sus covers o portadas en las redes sociales, ya sea como vitrina de productos y servicios o, simplemente, como espacio promocional. Anteriormente Facebook prohibía poner call to actions, información de contacto y precios en las portadas. En marzo de 2013 hubo un cambio en su política y permitió  publicar imágenes que tuvieran un 20% de texto, pero este cambio no duró mucho y en julio de 2013 se suprimió la regla del 20%. Ahora hay unos pocos lineamientos para tener en cuenta, por ejemplo, como todas las portadas son públicas no deben tener contenido engañoso o que infrinja derechos de autor.

La portada es una propiedad de todas las empresas que tienen una presencia digital definida, esta completa lista de tips te dará muchas ideas acerca de la forma adecuada de usar este rasgo de tu página o perfil en beneficio de tu marca o empresa.

1. Generar recordación del eslogan

La mayoría de empresas entienden a la perfección la necesidad de difundir su eslogan en medios tradicionales pero aún no parecen tener tan claro que esta práctica es igual de  importante  en redes sociales, por la simple razón de que genera identificación inmediata y afianza el efecto de recordación en tu audiencia.

2. Promover  tendencias

Ser líder de un determinado nicho de mercado tiene que ver, en parte, con marcar la pauta, jalonar tendencias, mostrar qué es lo nuevo para hacer, usar, comer. La portada de Facebook es, sin duda, un lugar privilegiado para mostrar tendencias ligadas a los servicios y productos de tu empresa, un plus que te diferenciará de la competencia en el uso del contenido que creas para tu sitio. Tendencia

3. Generar tráfico en tu página o aplicación

Hacer call to actions dirigidos a generar tráfico y conversiones en tu sitio, en palabras más sencillas: promocionar tu empresa y vender tus productos. 536499_10150830388256560_1066924981_n

4. Usa tu portada de vitrina o showcase de tus servicios y productos

Tu portada es un espacio de publicidad gratuita para tu empresa, algo así como una valla gigantesca que puede ser vista por todos tus seguidores,  ¿por qué no utilizarlo para mostrar tus últimos productos o mejoras de tu servicio?

217304_519794058069235_2136475238_n

5. Hacerse desear

Muchos pensarán que esto solo aplica para las empresas que tienen productos alimenticios, pero se equivocan, pues toda empresa cuyo producto pueda ser adquirido, debe presentar esos productos de forma atractiva, haciendo que su audiencia desee adquirir lo que ellos venden.

6. Promover un actividad o un hashtag

Cuando quieras promover una actividad o causa  través de un hashtag la portada es un lugar inmejorable para empezar a darlo a conocer. 970397_10151620246564288_113461301_n

7. Promocionar tus redes sociales

Las redes sociales son otro medio para que tus clientes te encuentren, si tu interés particular es hacer crecer tus comunidades puedes empezar por llevar a tus seguidores a estos canales mediante su promoción en la portada de Facebook.

10345558_10152522290161609_8827644010637475187_n

8. Destacar celebraciones

Celebrar un milestone o fecha especial puede ser de utilidad  para generar engagement con tu comunidad. Tan simple como si le encuentras provecho a la navidad y das al cover un look con este tema y además promocionas tus productos.

9. Producir nuevos leads

Esto depende de los clientes que se quieran conseguir y las metas de tu empresa. Puedes animar a tus seguidores a que acepten o encuentren más información acerca de la marca en landing pages, página web o canal de YouTube.

1554408_10152156211557415_1323173855_n

10.Inspira a una acción o causa

A las persona les gusta saber que las empresas tienen un lado humano con el cual sentirse identificados, si la tuya tiene alianzas con organizaciones que defienden causas o por sí misma apoya alguna no dudes en darlo a conocer.

Causa

11. Crear sentido de urgencia

Usar colores brillantes, ciertas tipografías o signos de exclamación puede ayudarte a promover un determinado call to action. 1465374_741671362546289_2762176830124995404_n

12. Promueve los eventos de tu empresa

Finalmente recuerda que:

  • Las fotos de portada deben tener 851 píxeles de ancho y 315 píxeles de alto.
  • Si subes una imagen de medidas inferiores a las indicadas se amplía hasta este tamaño, es decir se verá mal.
  • La imagen que subas debe tener al menos 399 píxeles de ancho y 150 píxeles de alto.
  • En el caso de las imágenes que contengan tu logotipo o texto los archivos .png ofrecen un resultado de mejor calidad.
  • Mantén todo simple, que el texto solo sea una frase que incluya un fuerte call to action.
  • Recuerda siempre escribir una descripción en la foto de portada, con un link ligado al call to action, así podrás dirigir el trafico a tu página web.
  • No olvides hacer un A/B testing, para ver cuál de estos tips funciona mejor porque no existe una receta perfecta y es tu tarea encontrar esa mezcla.

Seguir estos tips te ayudará a diversificar el uso de este rasgo de tu fanpage que, como has podido ver, se adapta a muchas necesidades de una marca.

by Sandra Caldas at August 13, 2014 10:06 PM

Línea de código

Primer Webinar del Real Sense App Challenge 2014

developer-pinchSi te ha interesado la idea de poder llevar a cabo tus ideas con programación sobre tecnología perceptual y sobre todo llevarte los premios del Real Sense App Challenge 2014 tienes que saber que hoy montan el primer Webinar sobre el proyecto Real Sense App Challenge 2014.

Es bueno que asistas al primer Webinar sobre el proyecto Real Sense App Challenge 2014 ya que en él se darán las claves sobre cómo enfocar la idea de tu proyecto y así ser uno de los elegidos para entrar dentro de la bolsa de premios del

No dejes la posibilidad y APUNTATE.Similar Posts:

La entrada Primer Webinar del Real Sense App Challenge 2014 aparece primero en Linea de Codigo.

by Víctor Cuervo at August 13, 2014 05:00 AM

August 12, 2014

Línea de código

Nombre y descripción del blog con WordPress

Vamos a empezar una serie de ejemplos relacionados con el desarrollo y programación sobre la plataforma WordPress. Para ello queríamos empezar por uno sencillo, que será como mostrar en pantalla el nombre y descripción del blog con WordPress.

Antes de empezar a explicarlo hay que saber un par de cosas:

  • WordPress es una plataforma semántica para realizar publicaciones de contenidos.
  • La tecnología que sustenta a WordPress es PHP, por lo cual los ejemplos que mostremos de programación en WordPress serán código PHP (aunque en algunos casos también utilizaremos algo de Javascript.

Aunque ya entraremos en detalle de cual es la estructura de ficheros para poder crear un tema sobre WordPress, para este caso en el que vamos a mostrar el nombre y descripción del blog con WordPress basta con que sepas que hay un fichero que es header.php, al cual la plataforma lo llamará cada vez que se ejecute la función:

  1. get_header();

Si queremos mostrar el nombre y descripción del blog con WordPress vamos a apoyarnos en la función:

  1. bloginfo();

Dicha función recibe como parámetro el tipo de información básica que queramos extraer de WordPress, véase el título, la descripción del blog, idioma en el que está instalado WordPress, la versión de WordPress,...

Para poder extraer el nombre y descricipción del blog en WordPress necesitaremos consultar las propiedades 'name' y 'description'.

De esta manera nuestro código fuente quedará así:

  1. echo 'El blog se llama ';
  2. bloginfo('name')
  3. echo '<br>';
  4. echo 'Y su descripción es ';
  5. bloginfo('description');

Como podéis ver, algo muy sencillo.... ¿Te atreves con tu primer tema de WordPress?Similar Posts:

La entrada Nombre y descripción del blog con WordPress aparece primero en Linea de Codigo.

by Víctor Cuervo at August 12, 2014 09:48 PM

August 08, 2014

Programania

¿Scrum o Kanban?

TL; DR: Scrum y Kanban. Se complementan.

Habitualmente cuando participo en una conversación donde se afirman cosas como “yo prefiero Scrum”, pues yo prefiero “Kanban” lo que realmente se suele estar diciendo es “a mí me gusta hacer sprints”, “pues yo prefiero no hacerlos”. Si rascas un poco, resulta que el “equipo kanban” hace retrospectivas y el “equipo scrum” tiene un panel visualizando el Value Stream Map.

Según voy practicando y profundizando en Scrum, Kanban o lo que sea, voy cambiando mi visión sobre en qué consiste exactamente la técnica. Esto me ocurre a todos los niveles y todo el rato. Y me seguirá ocurriendo hasta el fin de los tiempos. En concreto, ahora mismo de Scrum y Kanban pienso lo siguiente:

kanban

scrum

Si eres de los que todavía mantiene peleas internas(o externas) sobre si aplicar Scrum o aplicar Kanban porque piensas que son diferentes sabores del agilismo, que sepas que desde mi punto de vista son totalmente combinables. Sobre como se relacionan o si son combinables, por supuesto, hay mucho escrito:

 

 

by Luis Artola at August 08, 2014 06:23 AM

August 06, 2014

Programania

El problema al escribir

Lo hablaba ayer con David:

  • mientras no sé, es cuando tengo el cerebro a tope y me apetece escribir. Entonces escribo sobre lo que no sé.
  • cuando ya sé, no me da ninguna vidilla escribir. No escribo sobre lo que realmente sé.
  • si escribo cosas complicadas y sesudas, no explico los conceptos en los que baso, y no se entiende.
  • si escribo sobre los conceptos básicos, siento que el post es demasiado básico como para ser útil….

Y así, todo el día… :-P

Mi conclusión es que prefiero escribir, aunque sea artículos tontainas como éste, pero intentar mantener un flujo continuo de artículos que me ayuden a ir rumiando ideas e ir contrastándolas con la gente…

by Luis Artola at August 06, 2014 06:20 AM

August 05, 2014

Yukei

El nuevo PHP

Aunque por mucho tiempo PHP ha sido considerado el patito feo de los lenguajes de programación, lo cierto es que desde que hace aproximadamente un año pudimos confirmar la sospecha de que es por lejos el lenguaje más popular en la web: según cifras de Google, se trata del lenguaje que está tras el 75% de la web.

Pero esta cifra no es la única buena noticia para quienes utilizamos este lenguaje, ya existen varias señales ligadas a su desarrollo y utilización que auguran un futuro cada vez más brillante, al punto que en varios medios se habla del renacer de PHP.

Las mejoras en el lenguaje

En primer lugar cabe mencionar el ritmo incesante de mejoras que se han introducido en el lenguaje desde hace ya varias versiones.

Es cierto que en su versión 4 el modelo de objetos era un parto, pero desde eso ya han pasado 10 años, lo que en tiempo de internet equivale aproximadamente a dos glaciaciones.

Desde la versión 5.3 (publicada hace 5 años) ya existe un soporte completo para funcionalidades tremendamente útiles como namespaces, late static bindings, closures y funciones anónimas. Posteriormente se han agregado otras como traits, generators, sintaxis abreviada para arreglos y el servidor de desarrollo incorporado.

Más allá de poder equiparar las funcionalidades del lenguaje con otros considerados “más serios” o avanzados, lo que resulta verdaderamente importante de estas adiciones es que, en primer lugar, permiten un modelo de objetos realmente completo y acabado, lo que a su vez permite abordar problemas más complejos con menos complejidad en el código e incorporar pequeñas grandes mejoras en la forma de utilizar el lenguaje como el uso de autoloaders. De este modo, propician la utilización de patrones de diseño que constituyen una ayuda importante para pensar la arquitectura de una aplicación desde estrategias validadas como buenas prácticas.

Las nuevas librerías y extensiones

Además de las funcionalidades propias del lenguaje, la introducción de algunas librerías y extensiones ha representado mejoras clave para el trabajo con PHP.

SPL (Standard PHP Library)

Es una “colección de interfaces y clases que están pensadas para solucionar problemas comunes”, lo que quizás inicialmente no suena tan sexy pero al comenzar a utilizarlas comienzan a revelar sus bondades.

Un ejemplo muy sencillo puede ser la interfaz Countable, que permite llamar la función count() sobre un objeto:

class Team implements Countable{
	private $people;
	public function __construct ( array $people ){
		$this->people = $people;
	}
	public function count(){
		return count( $this->people );
	}
}

$front = new Team(['Paola', 'Hugo', 'Basilio', 'Felipe']);
$members = count( $front );
// $members = 4;

Pero donde SPL realmente resulta brillante es en la implementación de las interfaces Traversable e Iterator, que básicamente van a permitir recorrer una colección de objetos con un simple foreach — lo que, por ejemplo, te podría servir para simplificar la forma en que recorres un loop de posts en WordPress.

SPL trae un montón de iteradores predefinidos para una amplia variedad de usos, como directorios o sistemas de archivos, arreglos, arreglos recursivos, etc.

PHP-FPM

Anteriormente, uno de los contratiempos que había que sortear al intentar utilizar un servidor distinto de Apache era la forma de gestionar los procesos de PHP como FastCGI, lo que normalmente significaba inventar la rueda con algún script en bash, cronjobs, etc.

Ahora, toda esa gestión se puede hacer con PHP-FPM, y en lugar de tener que averiguar cómo levantar y mantener arriba los procesos, sólo debes indicar algunos valores de configuración y ejecutar PHP-FPM como servicio.

OPcache

Como PHP es un lenguaje interpretado, cada vez que se ejecuta un script el intérprete debe leer y compilar el código, a menos que cuentes con un bytecode cache que precompila el código en memoria, lo que ahorra un gran esfuerzo de procesamiento.

El módulo de OPcode hace precisamente esto. Antes era posible aplicar esta técnica con algunas extensiones como APC o XCache, pero desde la versión 5.5 de PHP esta extensión es parte de la distribución estándar, lo que significa una mejora significativa de performance.

Por otra parte, la inclusión de esta extensión ha dado impulso a una búsqueda renovada de mejoras de performance, lo que tiene que ver con otros de los puntos que nombro a continuación.

Los estándares

Hace un par de años, los autores de algunos de los frameworks más importantes comenzaron a coordinar un grupo de trabajo en torno a problemas comunes, lo que los gringos llaman finding common ground.

A partir de este acuerdo nació PHP – Framework Interop Group, y a partir de entonces sus acuerdos han dado lugar a una serie de estándares que apuntan fundamentalmente a mejorar la interoperabilidad entre los distintos proyectos, tales como una convención para permitir código plug-and-play (a través de un autoloader), interoperabilidad técnica, una guía de estilo, etc.

En la práctica, esto ha permitido la utilización de distintos paquetes como módulos, por lo que cada proyecto puede dedicarse a aquello con lo que pretende distinguirse mientras que las funcionalidades base son provistas por los módulos de terceros.

Junto con esto, hace sólo algunos días tuvimos la interesante noticia de que el equipo de HHVM publicó un primer borrador para una especificación de lenguaje para PHP, lo que cobra especial relevancia ante el surgimiento de nuevas implementaciones paralelas o más experimentales del lenguaje… tal como, justamente la que hace el equipo de HHVM — más sobre esto más adelante.

Los componentes

Si tuviéramos que juzgar el trabajo de PHP-FIG por sus resultados, uno de sus efectos más profundos ya basta para percatarnos de su relevancia.

La publicación de estándares de interoperabilidad ha preparado el terreno para el surgimiento de Composer, que no ciertamente no es el primer gestor de paquetes para PHP (ya antes existían PECL y PEAR) pero quizás si sea el primero que se define como un gestor de dependencias.

Composer posibilita trabajar de forma muy fácil e inteligente con componentes desarrollados por diversos equipos, y así poder aprovechar los mejores paquetes de cada uno de ellos (o los que más te gusten por su estilo, documentación, comunidad, etc).

Esto disminuye la barrera a la reutilización de código de otros proyectos, y de ese modo no necesitas tener que crear una nueva clase para validar datos de formulario sino elegir entre las muchas que ya existen, y así enfocarte en lo que tu aplicación necesita resolver.

Los servicios

Quizás uno de los impulsos más importantes que ha recibido PHP fue el anuncio de Google sobre su soporte en Google App Engine; no solamente por las cifras de uso del lenguaje sino también porque pone al lenguaje en el mismo plano que otros lenguajes tradicionalmente considerados más “serios”.

Por otra parte, han sido los servicios que permiten aprovechar todas las ventajas de la nube en aplicaciones en PHP, no solamente a nivel de infraestructura-como-servicio sino ya en plataforma-como-servicio, tales como EngineYard, Heroku, Pagoda Box, cloudControl, fortrabbit, etc.

Mención aparte merece Laravel Forge, que en lugar de ofrecer directamente un servicio de hosting, permite gestionar y “orquestar” los recursos de varios proveedores de servicios, tales como Amazon, Rackspace, Digital Ocean y Linode.

Finalmente, cabe mencionar también la gama de hosting especializado en WordPress (que es por lejos, la aplicación en PHP más popular) que han comenzado a multiplicarse y representan una alternativa intermedia entre las posibilidades y complicaciones que da tener tu propio hosting y el grado de gestión y restricciones que tiene algo como WordPress.com (por ejemplo: wpEngine, Synthesis, Kinsta, etc).

El futuro

Para terminar, tres anotaciones sobre cuestiones que aún están en desarrollo y ciertamente van a marcar el futuro de PHP.

Normalización de la librería estándar

En primer lugar, siguiendo con las modificaciones al lenguaje, se ha planteado la posibilidad de poder ordenar profundamente la librería de funciones estándar para mejorar en tres flancos:

  • Reducir la cantidad de funciones definidas en el espacio de nombres global
  • Normalizar los nombres de funciones de acuerdo a un criterio común
  • Eliminar discordancias en orden de argumentos en funciones similares

Una de las propuestas más interesantes en este sentido es transformar los conjuntos de funciones según el tipo de dato en el que trabajan, por ejemplo:

// actualmente
$foo = ['lorem', 'ipsum', 'dolor', '', 'sit', 'amet'];
$filtered = array_filter( $foo );
// $filtered = ['lorem', 'ipsum', 'dolor', 'sit', 'amet'];
$uppercase = array_map('strtoupper', $filtered);
// $uppercase = ['LOREM', 'IPSUM', 'DOLOR', 'SIT', 'AMET'];

// las nuevas versiones harían algo como...
$foo = new Array('lorem', 'ipsum', 'dolor', '', 'sit', 'amet');
$filtered = $foo->filter();
$uppercase = $foo->map('strtoupper');

HHVM, Hack y PHP-NG

Probablemente el proyecto más grande realizado en PHP es Facebook, por ello es que hace años la empresa ha venido haciendo algunos aportes al desarrollo del lenguaje que ciertamente son relevantes.

Primero fue HipHop for PHP, que tomaba código en PHP y lo compilaba en C++ con una mejora de performance considerable, pero que ciertamente se encontraba con algunas limitaciones propias del proceso, particularmente de compatibilidad.

Luego vino HHVM, que es una máquina virtual que compila código en PHP y mediante compilación Just-in-Time (JIT) logra acelerar la ejecución de la aplicación — algo similar, aunque no exactamente lo mismo, a lo que se logra con un bytecode cache.

HHVM tiene como misión poder ejecutar de forma transparente los 20 frameworks en PHP más populares según GitHub, por lo que la compatibilidad es ciertamente una de sus objetivos de diseño más importantes, pero además permite la ejecución de código escrito en Hack, que es un lenguaje derivado de PHP desarrollado por Facebook.

Ante estos desarrollos, el grupo de desarrollo de PHP ha trabajado en una nueva versión del lenguaje temporalmente llamada PHP-NG (por “new generation”) que considera importantes mejoras de performance y prepara el camino para el desarrollo posterior de un compilador JIT.

Los resultados de estos esfuerzos son bastante prometedores en términos de performance, y los primeros benchmarks que comparan estos proyectos ya reportan mejoras significativas.

¿PHP 6 o 7?

Para finalizar un dato más bien anecdótico, que se refiere a la discusión sobre el nombre de la nueva versión mayor de PHP.

Normalmente no habría ninguna discusión respecto a que tras la versión 5 debiese venir la versión 6, pero en el caso de PHP las cosas no son tan sencillas.

La razón es que a pesar de no haber sido publicada oficialmente, sí existe (o existió) una versión 6, que como principal característica traía un soporte nativo completo de Unicode, pero por diversas dificultades este desarrollo naufragó, y muchas de las nuevas funcionalidades del lenguaje que traía esta versión fueron incorporadas a la versión 5.3 (razón por la cual el modelo de objetos tuvo un salto cualitativo en esa versión)… con la excepción del soporte Unicode, por supuesto.

Y aunque esa versión nunca se liberó, técnicamente sí existe e incluso se pueden encontrar algunas publicaciones al respecto.

Finalmente, tras una votación se ha decidido que la próxima versión de PHP sea la número 7, basada en el trabajo desarrollado en PHP-NG.

Más referencias…

Puedes leer más en:

Tags: , , ,

Related posts

The post El nuevo PHP appeared first on yukei.net.

by Felipe Lavín Z. at August 05, 2014 07:50 PM

August 04, 2014

Davilac

España, 4º país con más peticiones de retirada de enlaces a Google

A estas alturas, todos o la mayoría estamos ya informados sobre la normativa referente al derecho al olvido en buscadores. Pues bien, Google ha publicado recientemente un documento bastante extenso con información y estadísticas acerca de las peticiones de retirada de enlaces, respondiendo a un total de 26 preguntas realizadas por reguladores europeos.

Según cuenta la compañía, desde el 18 de julio ha recibido más de 91.000 solicitudes de retirada de enlaces, pidiendo la eliminación de más de 328.000 URLs. Los 6 países que más peticiones han realizado han sido:

  • Francia: 17.500 peticiones, 58.000 URLs.
  • Alemania: 16.500 peticiones, 57.000 URLs.
  • Reino Unido: 12.000 peticiones, 44.000 URLs.
  • España: 8.000 peticiones, 27.000 URLs.
  • Italia: 7.500 peticiones, 28.000 URLs.
  • Holanda: 5.500 peticiones, 21.000 URLs.

Un 53% del total de URLs que se pidieron eliminar han sido finalmente retiradas. Un 32% no fueron eliminadas, mientras que el restante 15% ha exigido a los solicitantes más información.

by Alicia at August 04, 2014 10:07 AM

August 02, 2014

Programania

Por qué no voy a usar Chef (por ahora)

Infrastructure as code, mantener todos los cambios en tus servidores bajo control completo, configurar tus servidores escribiendo recetas, tener tu infraestructura en tu sistema de control de versiones, que tus desarrolladores puedan utilizar una máquina igual que la de producción en su equipo para evitar el “en mi máquina funciona”.
Bien, compro. ¿Donde hay que firmar?. Take my money.
Pero no. Por ahora no.

Te invito a hacerte estas preguntas, que yo me hice demasiado tarde:
-¿Cada cuanto tiempo levantas un servidor nuevo?
Nosotros usamos Amazon AWS, si, es cloud, pero eso no quiere decir que andemos escalando y desescalando nuestra arquitectura cada 15 minutos. Además, cuando necesito un servidor igual que el de producción levanto una imagen del propio servidor de producción. Además nuestras aplicaciones no están preparadas para escalar horizontalmente por ahora, nuestros servidores no son servidores stateless.
-¿Cuanto tiempo te lleva configurar un servidor nuevo?
A día de hoy, un servidor para correr un stack LAMP es relativamente trivial, con mantener el fichero de configuración de Apache en un control de versiones tendrías todo bastante avanzado. Para software mas complejo como stacks Java tras un Tomcat y un Apache la cosa no es mucho mas complicada y si lanzas un producto cada 6 meses puede que escribir la receta te lleve mas tiempo.
-¿Cuanto tiene que cambiar tu equipo de desarrollo para que todo esto funcione correctamente?¿Qué les aporta a tus desarrolladores disponer de un entorno igual al de producción en su máquina? y por último ¿podrian levantar un entorno de esas características en sus máquinas?
Si trabajas con lenguajes interpretados y demás (PHP por ejemplo) es muy bonito, levantas una máquina compartes la carpeta en la que va el código apuntas tu IDE a dicha carpeta y voilá, pero ¿y si trabajas con Java? ¿para debuggear como lo haces? puedes levantar el Tomcat en modo debug o abrir el puerto, pero ya estás empezando a modificar la máquina y no se parecerá tanto a la máquina de producción.
Si tu producto es la conjunción de una serie de productos ¿haces levantar al desarrollador tus API, tu servicio de SSO…?
-¿Cuanto te va a costar formar a la gente suficiente para que esto sea sostenible?
Infrastructure as code es un matrimonio en toda regla, te comprometes estrictamente a gestionar tu infraestructura de esta manera ya que sino las incosistencias te volverán loco (hay textos que sugieren que ni siquiera te proporciones acceso SSH a tus propios servidores para evitar tocar a mano).

A día de hoy, estas barreras no me aportan la suficiente mejora sobre lo que tengo hasta ahora, me supone mas problema mantener bajo control los ficheros de configuración de mi aplicación que el software que instalo en mis máquinas. Me ha resultado muy costoso adaptar toda la infraestructura ya existente a “recetas” que pudiesen crearla desde cero y no solo eso, sinó que los servidores que ya he instalado “a mano” tendrian que entrar en dicho ciclo o bien debería levantarlos en paralelo con las nuevas recetas y hacer el switch, por ahora el beneficio no me justifica el riesgo.

Pero ojo, evidentemente y si tanto se oye hablar de ello, por algo será y he visto muy buenas motivaciones para adoptar estas técnicas y tecnologías.
-Imagina que realizas instalaciones en servidores alojados en las instalaciones de tus clientes (appliance), tener perfectamente controladas las versiones y modificaciones que realizas en todos y cada uno, poder propagar los cambios basados en roles u otras características.
-Necesitas levantar máquinas automáticamente en un proveedor de hosting que no te proporcione características como la creación de imágenes personalizadas para poder escalar horizontalmente.
-Si tu stack tecnológico te lo permite para trabajar en local, en uno de nuestros proyectos el stack encajaba muy bien y con esto hemos proporcionado a los desarrolladores una manera de probar en un servidor con la misma configuración que el de producción todo el producto.

by David González at August 02, 2014 10:14 AM

Mi página web va lenta

IMG_20140802_110438

Repaso en voz alta los diferentes pasos a la hora de servir una web (lo siento pero no soy capaz de dibujar con un ordenador con la misma comodidad que lo hago con papel y boli):

t0: tiempo de envío de la petición desde el navegador al servidor, desde que hacemos click hasta que dicha petición llega al servidor, este factor es ajeno a la web como tal, pero hay que saber identificarlo porque el problema estará en la conexión del usuario y por lo tanto no tendrá que ver con nuestra aplicación directamente.
t1: tiempo de procesado de la petición, primera fase de la petición, recepción de petición, cookies y demás información, procesado de esta, checkeo de la corrección, los factores que pueden influenciar en ella son: código que es demasiado lento o hardware que no soporta el número de peticiones o tipo de peticiones que se reciben.
t2: tiempo para enviar la petición desde el código hasta el sistema de persistencia (generalmente una BBDD). Es habitual que el código y la información no estén en la misma máquina, en ese momento la conectividad entre estas es un punto mas a medir, es un problema de red.
t3: tiempo de procesado de los datos en el sistema de persistencia. ¿Que tipo de consultas hacemos a la BBDD? ¿pedimos sólo lo que necesitamos? ¿está la consulta hecha de la mejor manera? ¿están los datos estructurados de la mejor manera? Si recibo los datos con frecuencia de quince minutos pero solo permito consultarlos por franjas horarias (el datepicker de la interfaz no hila mas fino) ¿tiene sentido almacenar un registro por cada 15 minutos?

timestamp0,16:00,v0
timestamp1,16:15,v1
timestamp2,16:30,v2
timestamp3,16:45,v3

Vs.

timestamp0,16:00,{v0,v1,v2,v3}

En este sencillo ejemplo, en la segunda estructura se “buceará” entre 1/4 del número de registros (extrapolemos el mismo caso para registros minutales o segundales) para obtener la misma información que si se bucease en la primera. Esta decisión está relacionada con las estructuras de la información (inferidas de un entendimiento claro de la solución que queremos dar al cliente), de una consulta correcta al sistema de persistencia y por último del hardware.
t4: devolución de datos al código, aquí entran dos factores, la red, como en el momento del envío de la query y por otro lado el volúmen de datos que se devuelvan (v4), si volvemos al ejemplo del punto t3 el volúmen de datos a transferir será menor. Aquí tendremos que buscar la relación correcta entre lo que cueste conseguir los datos lo mas filtrados posible y el volumen que nos permita transferir el ancho de banda en un tiempo aceptable.
t5: procesado de datos para generar la respuesta, se trata de un problema de código intimamente relacionado con el volumen de datos que haya llegado del sistema de persistencia, habrá ocasiones en las que traer mas datos y procesarlos por código sea mas interesante que traer los datos estrictamente necesarios a costa de haber trasladado demasiada carga al sistema de persistencia, es un problema de código y hardware.
t6: tiempo de devolución de datos, se trata del volumen de información (v6) que se envía al navegador, cuanto menor mejor evidentemente, aquí influye nuestro código y también el ancho de banda.
t7: tiempo de renderizado en el navegador, si enviamos mucha información al navegador en un formato que depués deba ser procesada (una librería de graficado JS a la que servimos listas de puntos) tendremos esa sensación de “la página ha cargado pero no veo nada”.
#: número de consultas al sistema de persistencia que se realizan para poder obtener toda la información del sistema de persistencia, aquí hay que realizar las pertinentes pruebas para cada caso, hay veces que 5 consultas sencillas serán mas rápidas que una consulta compleja (clásicos JOIN en BBDD relacionales que unen tablas de tamaños bestiales para ahorrar hacer unas pocas queries contra tabla única). He marcado este punto en rojo porque aquí hay un problema serio con el código, la utilización de grandes librerias de acceso a datos a veces genera una “niebla” sobre lo que realmente ocurre con nuestra BBDD. Un caso real es el del borrado de todos los hombres de una tabla usuarios que dispone de celda sexo que se realizó obteniendo los id únicos de cada usuario de sexo hombre para realizar el borrado en lugar de un simple borrado por sexo.

by David González at August 02, 2014 09:47 AM