SG #47 https://sg.com.mx/ en El Futuro del Software https://sg.com.mx/revista/47/el-futuro-del-software <span class="field field--name-title field--type-string field--label-hidden">El Futuro del Software</span> <div class="images-container clearfix"> <div class="image-preview clearfix"> <div class="image-wrapper clearfix"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <img src="/sites/default/files/images/Future_Sign_Exit.jpeg" width="1753" height="965" alt="" loading="lazy" typeof="foaf:Image" /> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/user/1" lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="" class="username">sg</a></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 05/25/2015 - 01:15</span> <div class="field field--name-field-numrevista field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Publicado en</h3> <ul class='links field__items'> <li><a href="/revista/47" hreflang="und">SG #47</a></li> </ul> </div> <div class="field field--name-field-seccion field--type-entity-reference field--label-hidden field--entity-reference-target-type-taxonomy-term clearfix"> <ul class='links field__items'> <li><a href="/secci%C3%B3n-revista/tendencias-software" hreflang="und">Tendencias en Software</a></li> </ul> </div> <div class="field field--name-field-autor field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Autor</h3> <ul class='links field__items'> <li><a href="/buzz/autores/luis-daniel-soto-maldonado" hreflang="und">Luis Daniel Soto Maldonado.</a></li> </ul> </div> <div class="text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p dir="ltr">El mercado de “Software empresarial” es enorme, se estima en $317 billones de dólares anuales y tiene el mayor crecimiento porcentual en inversión en Tecnologías de Información [1]. La transformación del modelo “tradicional” al software como servicio (SaaS) ha cambiado los requerimientos, el modelo de negocio y la forma en que la casa de software empaquetado vende y se mercadea.</p><p dir="ltr">No obstante, el cambio al SaaS ha sido mucho más lento que lo anticipado. La infraestructura como servicio abrió las puertas al software tradicional para operar en la nube, y en los meses más recientes dicha migración continúa acelerándose. Aún así, la nube pública, incluyendo a Google, Amazon y Microsoft tiene menos del 15% de la base instalada total de servidores a nivel mundial.</p><p dir="ltr">Aún así, IDC anticipa que para el año 2018 el 50% de las cargas de trabajo de software operarán en la nube pública [2]. ¿Cómo es esto posible?</p><h3 dir="ltr">Mercados de software empresarial</h3><p dir="ltr">Enfoquémonos en el software tradicional. Hoy el adquirir software empresarial no es simple:</p><p dir="ltr">El “Licenciamiento” es complejo, requiere de contratos y acuerdos legales con muchos proveedores. Agregar o reducir servicios sólo puede suceder en ciertos periodos y de forma limitada. Establecer una relación comercial y formas de pago con muchos vendedores es laborioso y difícil de administrar. En algunas ocasiones el software especializado no tiene distribuidores locales.</p><p dir="ltr">Amazon es uno de los jugadores tratando de resolver estos problemas, con un nuevo modelo de menor fricción. Imagine que de la misma forma que se compran productos en el web o contenidos digitales sea posible adquirir software empresarial, utilizarlo por hora y disponer de muchos de los proveedores, en particular todos los de alta calidad que son evaluados por analistas como Gartner o Forrester.</p><p dir="ltr">En el “AWS Marketplace” es posible rentar un software de CRM o uno especializado para administrar Wi-Fi solo por unas horas, usarlo en la nube y luego apagarlo permanentemente. Es posible adquirir un servidor de análisis de datos por mes, ya que la mayoría de proyectos tienen duraciones menores a tres meses y no justifican la compra anual ni “mantenimiento” del mismo. Este marketplace cuenta ya con más de 2,000 productos, con la ventaja para el cliente de que hay un único punto de contacto y atención, y una cuenta de servicios consolidada. Se facilita la evaluación de software como nunca antes.</p><p dir="ltr">Para los vendedores también hay ventajas clave: Vender alrededor del mundo, a grandes compradores y recibir el pago en Estados Unidos mediante la plataforma de comercio electrónico global, hacerse visible a más de un millón de clientes existentes, eliminar los problemas de la distribución física del software.</p><h3 dir="ltr">¿El fin del canal?</h3><p dir="ltr">Algunas empresas de software han invertido 5-10 años en crear una muy amplia red de canales. La nueva realidad es distinta: El Internet llega a los usuarios de negocio y estos van a poder acceder el software empresarial de la misma forma que funciona cualquier “app store” y en muchas ocasiones con nulo o muy poco soporte del departamento de sistemas. Los canales van a tener que enfocarse 100% en servicios de valor agregado, el licenciamiento del producto gradualmente desaparecerá, ya que el software será cada vez más un “producto básico”. La magia del software continuará, pero las reglas cambiarán.</p><p dir="ltr">Desde febrero de este año, estoy dedicado a la nueva misión de simplificar el acceso al software.</p><p dir="ltr">Referencias</p><ol><li dir="ltr"><p dir="ltr">“Gartner Says Worldwide IT Spending on Pace to Grow 2.4 Percent in 2015”. <a href="http://swgu.ru/ps">http://swgu.ru/ps</a></p></li><li dir="ltr"><p dir="ltr">“IDC: Worldwide Cloud Server 2014–2018 Forecast”. &nbsp;<a href="http://swgu.ru/pt">http://swgu.ru/pt</a></p></li><li dir="ltr"><p dir="ltr"><a href="https://aws.amazon.com/marketplace">https://aws.amazon.com/marketplace</a></p></li></ol></div> <div class="text-formatted field field--name-field-autor-bio field--type-text-long field--label-above"> <div class="field__label">Bio</div> <div class="field__item"><p>Luis Daniel Soto (@luisdans @luisdanielsoto) trabaja en Amazon Web Services, enfocado en el desarrollo global de negocios para la Big Data e Inteligencia de negocios. <a href="mailto:sotols@amazon.com">sotols@amazon.com</a></p></div> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> Mon, 25 May 2015 06:15:38 +0000 sg 5891 at https://sg.com.mx https://sg.com.mx/revista/47/el-futuro-del-software#comments KUALI- BEH como extensión de las alfas de ESENCIA (ESSENCE) https://sg.com.mx/revista/47/kuali-beh-como-extension-las-alfas-esencia-essence <span class="field field--name-title field--type-string field--label-hidden">KUALI- BEH como extensión de las alfas de ESENCIA (ESSENCE)</span> <div class="images-container clearfix"> <div class="image-preview clearfix"> <div class="image-wrapper clearfix"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <img src="/sites/default/files/images/03B39329.jpg" width="1008" height="702" alt="" loading="lazy" typeof="foaf:Image" /> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/user/1" lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="" class="username">sg</a></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 05/25/2015 - 01:11</span> <div class="field field--name-field-numrevista field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Publicado en</h3> <ul class='links field__items'> <li><a href="/revista/47" hreflang="und">SG #47</a></li> </ul> </div> <div class="field field--name-field-seccion field--type-entity-reference field--label-hidden field--entity-reference-target-type-taxonomy-term clearfix"> <ul class='links field__items'> <li><a href="/revista/secciones/tejiendo-nuestra-red" hreflang="und">Tejiendo nuestra red</a></li> </ul> </div> <div class="field field--name-field-autor field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Autor</h3> <ul class='links field__items'> <li><a href="/buzz/autores/hanna-oktaba" hreflang="und">Hanna Oktaba</a></li> </ul> </div> <div class="text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p dir="ltr">En la columna anterior les platiqué sobre el concepto de las alfas de Esencia y su posible uso. Mientras se publicaba la revista, me enteré de que en noviembre del año pasado el estándar ESSENCE de OMG superó la prueba como beta 2 y, finalmente, fue publicado en su versión 1.0 [1] con KUALI-BEH incluido. En la sección 6 del documento se pueden apreciar los reconocimientos para la UNAM y todas las organizaciones y personas que nos han apoyado en esta aventura.</p><p dir="ltr">La historia de cómo se gestaba KUALI-BEH y como se “casó” con ESSENCE la pueden encontrar en mis columnas de los años entre 2012 y 2014. En esta ocasión les explicaré cual es el resultado final de la integración de KUALI-BEH a la Esencia.</p><p dir="ltr">KUALI-BEH (buen camino) es una propuesta de conceptos comunes para los proyectos de desarrollo de software, que permiten expresar los métodos y prácticas de las organizaciones, así como su ejecución durante los proyectos. Se compone de dos vistas (fig. 1): estática y operacional.</p><p dir="ltr">&nbsp;</p><p dir="ltr"><img src="https://lh5.googleusercontent.com/FG73VvxCeRwdq-LzA4nhdSDM61EHYTG8ifZbQEy8oWBeMITr13L2C1e7TUjjp-ffUCv6qe1_y2knBgZGhmofBfFKa1A6dCO8JHiTkoB6ePXdbPDUOxr7rZgo8e8ylUs4Tc9QQkMt_w05elnP" alt="" width="567px;" height="282px;" /></p><p dir="ltr">Figura 1. Vista estática y operacional de KUALI-BEH.</p><p dir="ltr">La vista estática permite a los ingenieros de software expresar sus formas de trabajar como métodos compuestos por prácticas, los cuales se resguardan como infraestructura del conocimiento de la organización.</p><p dir="ltr">La vista operacional se relaciona con la realización dinámica de proyectos. Proporciona a los equipos los mecanismos para ejecutar los métodos adaptando sus prácticas al contexto específico del proyecto y a las necesidades de los involucrados.</p><p dir="ltr">Entonces ¿cómo se integró KUALI-BEH a la Esencia? En la entrega anterior de esta columna en SG 46 expliqué qué son los alfas, el concepto básico de la propuesta de Ivar Jacobson y sus colegas. En particular, el área del Esfuerzo/Proyecto tiene tres alfas: Equipo (Team), Forma de Trabajar (Way of Working) y Trabajo (Work). Al analizar estas alfas nos dimos cuenta de que la vista estática de KUALI-BEH tiene que ver con la definición de la forma de trabajar y la vista operacional con el trabajo mismo. A raíz de esta observación, los colaboradores de Jacobson nos propusieron incorporar KUALI-BEH como extensión de los alfas de Way of Working y Work, lo que quedó documentado como Apéndice B (normativo) del estándar.</p><p dir="ltr">En esta ocasión les quiero presentar cómo la vista estática de KUALI-BEH quedó expresada &nbsp;como sub-alfas de Way of Working llamadas Autoría de Práctica (Practice Authoring) y Autoría de Método (Method Authoring).</p><h3 dir="ltr">Autoría de práctica</h3><p dir="ltr">Es una guía definida de trabajo, con un objetivo específico, que asesora en la manera de producir un resultado a partir de una entrada. La guía proporciona un conjunto sistemático y repetitivo de actividades enfocadas en el logro del objetivo de la práctica y del resultado. Se definen los criterios de terminación, asociados al resultado, para determinar si fue logrado el objetivo. Se requieren competencias particulares para realizar las actividades de la guía, opcionalmente apoyadas por el uso de herramientas. Se pueden asociar las medidas seleccionadas para evaluar el desempeño y el logro de los objetivos de la práctica. Las medidas se estiman y se recogen las mediciones durante la ejecución de la práctica.</p><p dir="ltr">La Autoría de Práctica proporciona un marco para que los practicantes definan sus diferentes formas de trabajar. La documentación de la especificación [1], en su anexo B dedicado a KUALI-BEH contiene una plantilla para definir prácticas.</p><p dir="ltr">La Figura 2 muestra los estados por los que pasa la autoría de práctica: Identificada, Expresada, Acordada, En Uso, En Optimización y Consolidada.</p><p dir="ltr"><img src="https://lh4.googleusercontent.com/rlzfGEdh17Co0FDweEBrtHWNRcQAq628Ikujh_rSp_OMyT-cUhAxlxKzaxdrSSK6QL93XTRwFmU-ZJP2Dees3FiXG-QZQPv4PDPnWd2s_z3ubIgKUt19xPZFd7R8o44ppMU15U4" alt="" width="568px;" height="416px;" /></p><p dir="ltr">Figura 2. Los estados de Practice Authoring sub-alfa.</p><p dir="ltr">Su uso es recomendado para las organizaciones que no tienen documentadas las formas de trabajar. Sobre todo, se sugiere que las pequeñas organizaciones intenten ponerse de acuerdo y expresar sus formas de trabajar tácitas, empezando por lo que les parezca más importante, para que empiecen a acumular conocimiento explícito compartido por la organización. Cuando tengan definidas varias prácticas interrelacionadas pueden componerlas en un método.</p><h3 dir="ltr">Autoría de método</h3><p dir="ltr">Un método es una articulación de un conjunto coherente, consistente y completo de las prácticas, con un propósito específico, con el fin de cumplir con las necesidades de los involucrados en condiciones específicas.</p><p dir="ltr">La sub-alfa de Autoría de Método pasa por los siguientes estados: Identificado, Integrado, Bien Formado, En Uso, En Optimización y Consolidado, que se ilustran en la figura 3.</p><p dir="ltr"><img src="https://lh6.googleusercontent.com/B1V9WU2ov0YNza7qtdrJhnvRpcZysS20ay9LZC_pT1Y3U8OH3huCWo6Z2v1iQTrA__xwqMZjrlujuxj6OUxL8vVnPHhKPWGrz_wMEUqu_Y031ouKr9K1pf7AJBbkXjQcEOpfxzw" alt="" width="568px;" height="416px;" /></p><p dir="ltr">Fig 3. Los estados de Method Authoring sub-alfa.</p><p dir="ltr">En nuestra propuesta para la autoría de las prácticas y métodos hay dos puntos que considero son novedosos:</p><ol><li dir="ltr"><p dir="ltr">Proponemos definición de prácticas y métodos (antes llamados procesos) de manera de “abajo hacia arriba” (bottom – up), a partir de las formas tácitas de trabajar, que cada organización tiene. Es decir, primero las prácticas individuales y luego su composición en métodos. Que luego se pueden ir mejorando en función de los acuerdos y necesidades de la propia organización.</p></li><li dir="ltr"><p dir="ltr">El método bien formado (léase proceso) no es un conjunto de prácticas cualquiera, las prácticas tienen que aportar algo al propósito del método (coherente), ser suficientes para lograrlo (completo) y no generar desperdicios en actividades o productos innecesarios (consistente).</p></li></ol><h3 dir="ltr">Conclusión</h3><p dir="ltr">Este es el primer acercamiento a lo que propone KUALI-BEH como parte del nuevo estándar de OMG Esencia. A los interesados les recomiendo revisar el Apéndice B para tener mayor detalle. Con gusto recibo sus comentarios en <a href="http://twitter.com/hannaoktaba">@hannaoktaba</a>.</p><p dir="ltr">Referencias</p><ol><li dir="ltr"><p dir="ltr">ESSENCE: Kernel and Language for&nbsp;Software Engineering Methods 1.0. <a href="http://www.omg.org/spec/Essence/1.0">http://www.omg.org/spec/Essence/1.0</a></p></li></ol></div> <div class="text-formatted field field--name-field-autor-bio field--type-text-long field--label-above"> <div class="field__label">Bio</div> <div class="field__item"><p dir="ltr">La Dra. Hanna Oktaba es profesora de la UNAM y su objetivo principal es generar conocimiento a través de la creación y promoción de estándares. <a href="http://twitter.com/hannaoktaba">@hannaoktaba</a></p></div> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> Mon, 25 May 2015 06:11:13 +0000 sg 5890 at https://sg.com.mx https://sg.com.mx/revista/47/kuali-beh-como-extension-las-alfas-esencia-essence#comments ¿Sabemos qué Necesitan los Emprendedores? https://sg.com.mx/revista/47/sabemos-que-necesitan-los-emprendedores <span class="field field--name-title field--type-string field--label-hidden">¿Sabemos qué Necesitan los Emprendedores?</span> <div class="images-container clearfix"> <div class="image-preview clearfix"> <div class="image-wrapper clearfix"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <img src="/sites/default/files/images/emprendiendo.jpg" width="700" height="467" alt="" loading="lazy" typeof="foaf:Image" /> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/user/1" lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="" class="username">sg</a></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 05/25/2015 - 01:09</span> <div class="field field--name-field-numrevista field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Publicado en</h3> <ul class='links field__items'> <li><a href="/revista/47" hreflang="und">SG #47</a></li> </ul> </div> <div class="field field--name-field-seccion field--type-entity-reference field--label-hidden field--entity-reference-target-type-taxonomy-term clearfix"> <ul class='links field__items'> <li><a href="/revista/secciones/emprendiendo" hreflang="und">Emprendiendo</a></li> </ul> </div> <div class="field field--name-field-autor field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Autor</h3> <ul class='links field__items'> <li><a href="/buzz/autores-sg/andres-bianciotto" hreflang="und">Andrés Bianciotto</a></li> </ul> </div> <div class="text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p dir="ltr"><em>Nota del editor: Este artículo fue originalmente escrito en enero 2015 y por lo tanto se enfoca en “el inicio de año”. Por cuestiones ajenas al autor el artículo se está publicando en mayo, pero se mantiene igual de relevante.</em></p><p dir="ltr">Mientras estás leyendo esta nota, el precio del petróleo nos juega una mala pasada, anuncian otro recorte en Pemex y quizás el tercer recorte federal. Te preguntas ¿en qué mes fue el "Mexican Moment"? y ¿por qué parece tan lejano?</p><p dir="ltr">Aún se escucha el eco de los grandes anuncios sobre reformas y todavía nos agobia el vacío que dejan miles de líneas borradas en archivos de Excel, como un pequeño hipo en la pantalla, mientras se ajustan las previsiones de crecimiento en grandes despachos.</p><p dir="ltr">Muchos ensayan esas frases trilladas que son mitad resignación, mitad refugio. Que así somos, que “puespaquésiyaves”, etc. Otros simplemente se levantan y comienzan otro día de mucho trabajo, paga insuficiente y pocas probabilidades de éxito. Como ayer, como mañana.</p><p dir="ltr">Los emprendedores mexicanos, por necedad o virtud, llevan años librando batallas que harían renunciar a Sísifo. Con un sistema financiero ausente, capital "de riesgo" conservador hasta el paroxismo, educación de otro siglo, burocracia Kafkiana y ni empecemos a hablar de las políticas federales "pro-emprendimiento", estos Quijotes me hacen parafrasear aquella declaración de Jurassic Park: "entrepreneurship finds a way".</p><p dir="ltr">Como contrapartida, ese medio ácido no impide que cada tanto escuchemos de grandes operaciones, como la venta de SinDelantal.mx a Just Eat, por más de 20 millones de dólares según TechCrunch (<a href="http://tcrn.ch/1FS7Y1O">tcrn.ch/1FS7Y1O</a>), o la adquisición de Aventones por BlaBlaCar.</p><p dir="ltr">Por supuesto que estamos lejos de las valuaciones "billonarias" de los Uber, Alibaba y Facebook del mundo, pero que eso no nos opaque la perspectiva: tenemos un nivel más que saludable de energía emprendedora que debemos encauzar y favorecer para establecer éxitos, repetirlos, exportarlos e inspirar a nuevas generaciones a seguir este camino.</p><p dir="ltr">Hoy la "capa" de incubadoras y aceleradoras en México está bien poblada, aunque nunca sobran. Y cualquier proyecto que facture unos cuantos millones por año y tenga un camino claro de crecimiento puede conseguir capital mexicano o extranjero sin mucho peregrinar.</p><p dir="ltr">Hay un vacío entre esos dos pasos, que es el desafío actual: una vez que se monta la startup y se valida el producto durante unos 6 meses de incubación, ¿quién pone 150,000-200,000 dólares para financiar el primer año "serio" de operación de la empresa, hasta que la facturación logre cubrir los gastos?</p><p dir="ltr">Tenemos un grupo de emprendimientos que pasan por más de una incubadora en sus inicios, en una suerte de respirador artificial mientras reúnen fuerzas para dar el salto a la realidad. No solo están absorbiendo recursos que se utilizarían mejor generando nuevas empresas, sino que —aunque es mejor que la muerte— tampoco están en el sustrato correcto para la etapa de vida de la empresa, retrasando su crecimiento por falta de opciones.</p><p dir="ltr">Un candidato más que saludable para tomar una posición fuerte en ese segmento es el mar de family offices que floreció en México a partir de la diáspora de empresarios medianos que salieron del país y establecieron una administración profesional para sus activos. Una vez dado ese paso, y más allá de alguna cuestión sentimental sobre la empresa familiar, las inversiones se evalúan según su mérito propio y proyectos atractivos pueden ser buen destino de capitales que en otra época irían directo a bienes raíces (y algunos aún lo hacen por defecto).</p><p dir="ltr">Ya tuvimos muchos "años de", ya vivimos el año del emprendimiento, el de las incubadoras, el de los eventos, el de las apps. Ya conocemos las estadísticas que indican que son las PyMEs y emprendimientos quienes emplean al grueso de la población activa. Ya descubrimos que ignorándolos no desaparecen.</p><p dir="ltr">Comencemos a mirar seriamente a la materia prima que alimenta y se desdobla en todo lo otro: el loco solitario que un día se pone de pie y dice: "voy a mover esa piedra". Es hora de que preguntemos al emprendedor qué necesita. Es tiempo de hacerle la vida fácil, porque pocas veces tanto futuro depende de tan módica locura.</p></div> <div class="text-formatted field field--name-field-autor-bio field--type-text-long field--label-above"> <div class="field__label">Bio</div> <div class="field__item"><p>Andrés Bianciotto fundó Next.LA, un servicio de hosting especializado en medios digitales y dirige Founder Institute en México, una incubadora de startups con presencia en más de 100 ciudades del mundo. Twitter: @andresb Email:&nbsp;<a href="mailto:andres@next.la">andres@next.la</a></p></div> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> Mon, 25 May 2015 06:09:04 +0000 sg 5889 at https://sg.com.mx https://sg.com.mx/revista/47/sabemos-que-necesitan-los-emprendedores#comments Todo como Servicio con OpenStack https://sg.com.mx/revista/47/todo-como-servicio-openstack <span class="field field--name-title field--type-string field--label-hidden">Todo como Servicio con OpenStack</span> <div class="images-container clearfix"> <div class="image-preview clearfix"> <div class="image-wrapper clearfix"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <img src="/sites/default/files/images/openstack-logo.png" width="640" height="180" alt="" loading="lazy" typeof="foaf:Image" /> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/user/1" lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="" class="username">sg</a></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 05/25/2015 - 01:03</span> <div class="field field--name-field-numrevista field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Publicado en</h3> <ul class='links field__items'> <li><a href="/revista/47" hreflang="und">SG #47</a></li> </ul> </div> <div class="field field--name-field-seccion field--type-entity-reference field--label-hidden field--entity-reference-target-type-taxonomy-term clearfix"> <ul class='links field__items'> <li><a href="/revista/secciones/infraestructura" hreflang="und">Infraestructura</a></li> </ul> </div> <div class="field field--name-field-autor field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Autor</h3> <ul class='links field__items'> <li><a href="/author-speaker/miguel-ngel-barajas" hreflang="und">Miguel Ángel Barajas</a></li> </ul> </div> <div class="text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p dir="ltr">Sin duda, el cómputo en la nube está cambiando la forma en la que consumimos recursos de cómputo. Nos estamos acostumbrando a consumir todo “como servicio”. &nbsp;</p><p dir="ltr">Una de las formas más básicas de consumir recursos como servicio es el denominado Infrastructure as a Service (IaaS) donde básicamente rentamos una máquina virtual conectada a la red y pagamos por el uso de procesamiento, almacenamiento y transferencia de datos. Empresas como Amazon, Microsoft, HP, e IBM ofrecen este servicio.</p><p dir="ltr">Sin embargo, también existen productos y proyectos para que las empresas puedan crear su propia nube. Dentro de estos proyectos, el que más destaca es OpenStack, una plataforma para construir nubes altamente escalables.</p><p dir="ltr">Openstack (<a href="http://openstack.org">http://openstack.org</a>) es un sistema operativo de cómputo en la nube que controla grupos de recursos de cómputo, almacenamiento y redes. Se administra por medio de un panel de control (dashboard) y permite que los mismos usuarios puedan aprovisionar recursos a través de una interfaz web.</p><p dir="ltr">OpenStack es software libre (licencia Apache 2.0) y se construye de forma abierta y colaborativa. Es muy rico en características y altamente configurable, por lo que permite crear soluciones para todo tipo de nubes. Puede controlar múltiples hipervisores y manejadores de virtualización, además de ser compatible con una gran variedad de hardware y software, lo cual nos ayuda a mitigar casos de “vendor lock-in”.</p><h3 dir="ltr">Proyectos de OpenStack</h3><p dir="ltr">OpenStack está organizado en torno a 3 grandes conceptos: cómputo, almacenamiento y red, que a su vez son soportados por varios servicios compartidos.</p><p dir="ltr">Al momento de editar este artículo, está por liberarse la versión Kilo de OpenStack (abril 2015), que incluye los siguientes proyectos:</p><ul><li dir="ltr"><p dir="ltr">Gestión de recursos de cómputo (Nova).</p></li><li dir="ltr"><p dir="ltr">Almacenamiento de objetos (Swift).</p></li><li dir="ltr"><p dir="ltr">Almacenamiento de bloques (Cinder).</p></li><li dir="ltr"><p dir="ltr">Manejo de imágenes (Glance).</p></li><li dir="ltr"><p dir="ltr">Aprovisionamiento de base de datos como servicio (Trove).</p></li><li dir="ltr"><p dir="ltr">Manejo de redes y direcciones IP (Neutron).</p></li><li dir="ltr"><p dir="ltr">Gestión de identidad y SSO (Keystone).</p></li><li dir="ltr"><p dir="ltr">Panel de control (Horizon).</p></li><li dir="ltr"><p dir="ltr">Orquestación de servicios (Heat).</p></li><li dir="ltr"><p dir="ltr">Telemetría, para monitorear el uso de servicios (Ceilometer).</p></li><li dir="ltr"><p dir="ltr">Aprovisionamiento de clusters Map-Reduce para Hadoop y Spark (Sahara).</p></li><li dir="ltr"><p dir="ltr">Aprovisionamiento en “bare metal” (Ironic).</p></li></ul><ul><li dir="ltr"><p dir="ltr">Mensajería entre aplicaciones (Zaqar).</p></li><li dir="ltr"><p dir="ltr">Sistema de archivos compartido (Manila).</p></li><li dir="ltr"><p dir="ltr">DNS como servicio (Designate).</p></li><li dir="ltr"><p dir="ltr">Gestión de llaves secretas (Barbican).</p></li></ul><h3 dir="ltr">Arquitectura</h3><p dir="ltr">La figura 1 muestra un diagrama con un ejemplo de arquitectura común de OpenStack, donde se muestran los principales servicios y cómo interactúan entre sí.</p><p dir="ltr">Aunque a primer vista se ve complicada, en realidad no lo es tanto si nos abstraemos al nivel de los distintos servicios (compute, storage, network, etc). Los programas mantienen su información en una base de datos compartida. La comunicación entre programas se realiza típicamente por medio de APIs y es “stateless”.</p><p dir="ltr">La comunicación directa con el hardware o software a controlar se hace mediante agentes y/o plug-ins específicos del fabricante.</p><p dir="ltr"><img src="https://lh5.googleusercontent.com/FqEA_6DtGW2lM3qTgt0MXJPh97cxFy0JUB3Sn6wL3EFpeLHwIzJyI7WtYtXvg81PzEXO9tcHBMHtHYdRrsWBWCgETyV-oizS-zBkBhuU561c5mLgjdt0FO8NfMPSpYhMXNs7tzo" alt="openstack-fig1.png" width="576px;" height="409px;" /></p><p dir="ltr">Figura 1: Arquitectura de OpenStack</p><h3 dir="ltr">Distribuciones de OpenStack</h3><p dir="ltr">OpenStack sufre del mismo “problema” que GNU/Linux en cuanto a que la configuración, empaquetado e instalación manual es un compleja. Por ello, al igual que GNU/Linux Openstack se distribuye de una manera empaquetada. Es así que los “sospechosos comunes” son los que han creado distribuciones los cuales dan soporte y mantenimiento así como compatibilidad con sus propias distribuciones de GNU/Linux, una lista no extensiva de estas distribuciones de OpenStack son: RDO de RedHat, SUSE Cloud de SUSE, Ubuntu OpenStack, Mirantis.</p><p dir="ltr">También está Devstack, que es un “shellscript” que nos permite hacer un despliegue automatizado de OpenStack en una sola máquina virtual para propósitos de pruebas. Es una excelente forma de jugar un poco con la plataforma y entender un poco más como funciona OpenStack.</p><h3 dir="ltr">Conclusión</h3><p dir="ltr">OpenStack es una excelente opción para aquellas empresas que desean establecer su propia infraestructura de cómputo como servicio. Al ser una plataforma abierta, ayuda a las empresas a evitar el evitar el vendor lock-in, reducir costos y tener mayor control sobre su futuro tecnológico.</p></div> <div class="text-formatted field field--name-field-autor-bio field--type-text-long field--label-above"> <div class="field__label">Bio</div> <div class="field__item"><p dir="ltr">Miguel Ángel Barajas (<a href="http://sg.com.mx/revista/46/twitter.com/gnuowned">@gnuowned</a>) es un Arquitecto Senior de Soluciones especializado en cómputo en la nube. Actualmente colabora con Cisco Systems atendiendo clientes en la región de Latinoamérica.</p></div> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> Mon, 25 May 2015 06:03:32 +0000 sg 5888 at https://sg.com.mx https://sg.com.mx/revista/47/todo-como-servicio-openstack#comments Desarrollo de Apps Cross-Platform con Xamarin.Forms https://sg.com.mx/revista/47/desarrollo-apps-cross-platform-xamarinforms <span class="field field--name-title field--type-string field--label-hidden">Desarrollo de Apps Cross-Platform con Xamarin.Forms</span> <div class="images-container clearfix"> <div class="image-preview clearfix"> <div class="image-wrapper clearfix"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <img src="/sites/default/files/images/xamarin-logo.png" width="1452" height="609" alt="" loading="lazy" typeof="foaf:Image" /> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/user/1" lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="" class="username">sg</a></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 05/25/2015 - 01:00</span> <div class="field field--name-field-numrevista field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Publicado en</h3> <ul class='links field__items'> <li><a href="/revista/47" hreflang="und">SG #47</a></li> </ul> </div> <div class="field field--name-field-seccion field--type-entity-reference field--label-hidden field--entity-reference-target-type-taxonomy-term clearfix"> <ul class='links field__items'> <li><a href="/revista/secciones/tutorial" hreflang="und">Tutorial</a></li> </ul> </div> <div class="field field--name-field-autor field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Autor</h3> <ul class='links field__items'> <li><a href="/buzz/autores-sg/alder-lopez" hreflang="und">Alder López</a></li> </ul> </div> <div class="text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p dir="ltr">Xamarin es una plataforma para desarrollar aplicaciones para plataformas iOS, Android , Windows Phone , Windows Store y Mac usando el lenguaje de programación C#. Cabe aclarar que en este artículo sólo trataremos el desarrollo de Android e iOS por ser las plataformas de terceros. Para Windows Phone o Windows Store, si somos desarrolladores de .NET no se nos complica en lo absoluto, es muy parecido a lo que ya sabemos desarrollar, sólo que con diferentes estándares de desarrollo de la UI (User Interface). Es importante mencionar que Xamarin dispone de una versión para estudiantes, con la que se puede compilar y probar las aplicaciones utilizando Xamarin Studio. Adicionalmente se anunció hace algunos meses la firma de colaboración entre Xamarin y Microsoft, que además de tener un equipo de trabajo dedicado a optimizar y explotar mejor los recursos de las diferentes plataformas, se tendrá disponible desde la versión Visual Studio Community 2015 la Free Xamarin Starter Edition for Visual Studio Users, es decir, podremos compilar, ejecutar y probar las aplicaciones para Android e iOS, por lo que si había duda de qué tan fuerte está Xamarin en el mercado, con los recientes anuncios por parte de ambas compañías vemos una seria consolidación en el mundo de desarrollo de aplicaciones multiplataforma y se despeja la interrogante.</p><p dir="ltr">Xamarin nos da la posibilidad de tener una base de código compartido que contiene entidades de negocio, lógica de negocio, acceso a servicios, etcétera, y simplemente tener código distinto para los detalles de interfaz de usuario para la capa de cliente en cada plataforma. Básicamente es como desarrollar al mismo tiempo para todas las plataformas, por &nbsp;lo que minimizamos tiempos de desarrollo. Por ejemplo, tradicionalmente tenemos que desarrollar la aplicación en Java para Android y en Objective-C para iOS la misma funcionalidad, lo cual es tedioso y repetitivo, con Xamarin podemos reutilizar el código en un 75-85% según fuentes oficiales. Esto no quiere decir que no tengamos que saber detalles de cada plataforma, de hecho lo mejor es conocer al menos conceptos básicos del manejo de recursos, configuraciones, etcétera, ya que al final el proceso es como si estuviéramos desarrollando una aplicación nativa respectivamente, pues se genera una .APK para Android y un .IPA para iOS; y se le debe dar el tratamiento normal a cada una para probar en dispositivos o emuladores para posteriormente publicar. Otro punto importante es que para Android por ejemplo, si tenemos algunos componentes en java podemos utilizarlo por medio de lo que llamamos Java Integration, para hacer un Java Bindings Library (una clase wrapper del tipo en java) para hacer referencia desde C# hacia los archivos .jar; así como también un Java Native Interface (JNI) que permite realizar llamadas a código java corriendo en la JVM (Java Virtual Machine) desde aplicaciones no escritas en java, por lo cual Xamarin.Android utiliza JNI para crear sus bindings en el codigo C#.</p><p dir="ltr">Por ejemplo para Android, al construir el proyecto nos generará el archivo .APK, el cual podremos ejecutar en un emulador, en un dispositivo o incluso en la tienda de google realizando el proceso tradicional.</p><p dir="ltr">La figura 2 ilustra la arquitectura típica de una aplicación Xamarin.</p><p dir="ltr"><img src="https://lh3.googleusercontent.com/sXTHnkkljoiohZrT9-cVUYLPnqHSvCg-_kqVVZk3QThptozZtp71nazpC1ny5onil7LU-r551qJ-ixo4HfoLuTSkhj9c_c59RBE5lP1ogQZSCEzstrQ-hjwoEU-q2qx3XmeBDv8" alt="" width="513px;" height="284px;" /></p><p dir="ltr">Figura 1. Arquitectura de aplicación Xamarin.</p><p dir="ltr">Lo que muestra la figura 1 es que tenemos un proyecto o librería compartida que contiene los componentes de las capas de negocio, servicios y datos. Por otro lado, tenemos distintas aplicaciones para cada tipo de cliente, que utilizan las librerías y componentes nativos de la User Interface de cada plataforma. Las aplicaciones cliente acceden al código compartido para interactuar con las capas de negocio, servicios y datos.</p><p dir="ltr">Para desarrollar las aplicaciones nativas para cada plataforma, Xamarin ofrece dos estrategias:</p><ul><li dir="ltr"><p dir="ltr">La primera es crear aplicaciones específicas para cada plataforma por ejemplo utilizando Xamarin.iOS y Xamarin.Android, dependiendo del caso. Esto permite aprovechar los elementos de UI específicos de cada plataforma y construir así interfaces de usuario avanzadas y personalizadas para cada una.</p></li><li dir="ltr"><p dir="ltr">La segunda estrategia es Xamarin.Forms. Una serie de componentes que permite definir interfaces de usuario para distintas plataformas desde una misma base de código. Xamarin.Forms está orientado a construir aplicaciones con interfaces de usuario sencillas, donde es más importante la capacidad de compartir código que el brindar interfaces de usuario avanzadas y personalizadas para cada plataforma, sin embargo, existe la posibilidad de hacer la personalización de los componentes a cada plataforma heredando nuestro componente básico de Xamarin.Forms a uno que se implementara en el proyecto de iOS y Android , y ahi podemos usar instrucciones típicas (equivalentes en .NET) de Objective-C y Java respectivamente.</p></li></ul><h2 dir="ltr">Primera aplicación Xamarin.Forms</h2><p dir="ltr">A continuación mostraremos cómo se construye una aplicación con Xamarin.Forms. Por ahora solo crearemos para iOS y Android como se mencionó antes. Haremos esto en Visual Studio.</p><ol><li dir="ltr"><p dir="ltr">Visual Studio –&gt; Nuevo Proyecto.</p></li><li dir="ltr"><p dir="ltr">Seleccionamos aplicación en blanco de tipo Xamarin.Forms.Portable.</p></li><li dir="ltr"><p dir="ltr">En el nombre de la solución, escribimos “SG”.</p></li></ol><p dir="ltr">Enseguida tenemos 3 proyectos:</p><p dir="ltr">El primero es SG, un proyecto portable en el que vamos a escribir el código común. En los proyectos SG.Android y SG.iOS vamos a escribir lo requerido por cada plaforma. La figura 2 muestra la estructura generada.</p><p dir="ltr">Figura 2. Estructura del proyecto.<img src="https://lh3.googleusercontent.com/YTI6bZRX8f1at5bTDXSr-W5LNAUUrp010qq8QBKe0GIz3crHylN983O_tsnb6PBNgNQOIEcErc3cuf2_36EJKXGUTMkZbIPNBzw5pvhzThOqTUwrd3UR9ofz1YYoj6OkvZNt2sg" alt="" width="199px;" height="443px;" /></p><p dir="ltr">En el proyecto SG tendremos el programa App.cs cuyo código base se muestra en el listado 1.</p><p dir="ltr"><img src="https://lh5.googleusercontent.com/UND4A2xY0XwHjY7Yrl7oX3WcZbp4unDZVo90GaO-6LkfNQWyL3qynsFpglUqgTEXC7GwaZSI3tMkwqV-3kWQsFS5UFqi3t5wil-gal8oxKqkylxRQdL1y39MhAk3T-bICirOAAQ" alt="" width="486px;" height="334px;" /></p><p dir="ltr">Listado 1. App.cs</p><p dir="ltr">El listado 2 muestra el el código del MainActivity.cs en el proyecto de Android, y el listado 3 muestra AppDelegate.cs para el proyecto iOS.</p><p dir="ltr">&nbsp;</p><p dir="ltr"><img src="https://lh3.googleusercontent.com/Jo1neMuTEUod_IfYL0E22R-3enOIesiRxLcNYpe-AsM0zyjs-upMN8MRe7b0XFL8apkpTZXQxYwrbdpr4GKHxW6_bpytD9RfDIIueENKAaxtuLR998otSFhTwdwWigT2NzqsRAg" alt="" width="664px;" height="359px;" />Listado 2. MainActivity.css</p><p dir="ltr">&nbsp;</p><p dir="ltr"><img src="https://lh5.googleusercontent.com/9ywLT1vTc-cAiP3_L8VCPMhnEmq17BT5vEDUa0H8f_tokezeE1Wuhcs9FjmrJJs0LR6ahDtHSBSTQXdphrtb4KpzwGWJQM8l3jijSK6W2bDiAdTyWd7_PE2zK3fuVYe1Apl2JOQ" alt="" width="664px;" height="367px;" /></p><p dir="ltr">Listado 3. &nbsp;AppDelegate.cs</p><p dir="ltr">&nbsp;</p><p dir="ltr">Notemos que en los proyectos SG.Droid y SG.iOS se tiene la instrucción:</p><p dir="ltr">&nbsp;Xamarin.Forms.Forms.Init(this, bundle);</p><p dir="ltr">Este código inicializa los componentes necesarios para que todo esto funcione.</p><p dir="ltr">Si quisiéramos hacer una forma de captura, por ejemplo un login con usuario/contraseña, incluiríamos un código similar al del listado 4 en nuestro proyecto portable, sin necesidad de tener que mover un dedo sobre el código de iOS &nbsp;y Android. La figura 3 muestra cómo se despliega esta forma tanto en iOS como en Android. Nótese que en cada caso se aplica automáticamente el estilo default de la plataforma correspondiente.</p><p dir="ltr"><img src="https://lh6.googleusercontent.com/4lS_cqXj7VES1zEiJSW3fxcwhFikTjSSDJiKZ86s6AuRt5u7Da6DE-CopAGo0rsgr6n4ngaPPfdql_EkG0v04bcV4Fn7UHjS1mZk1MiHYAUovr3BGXEUpqD5UzykxB5vLVy4dcY" alt="" width="535px;" height="281px;" /></p><p dir="ltr">Listado 4. Forma de login.</p><p dir="ltr"><img src="https://lh5.googleusercontent.com/UCHr55BacZL-m-0n7LzXuznSWcXkbSLAsCjEq6mGExvgm_ym4RgMcASFnggjVCG6EPWS159FQyRimVJ0fpgtPx22e6Uu9g9XmCavyjAcKWz_mAr0Dx8fxb-2E4jVmk613S_e7qQ" alt="" width="139px;" height="223px;" /><img src="https://lh5.googleusercontent.com/bCUqkfMOpxmIDu62DJoEHd5gkJDzsi7N13poBuoYfToVNiRuuR4tqJpoK4RRkhW4fGv_wYYwCIjmYLthSel_rgAr6K_WXnikG1DoGlzvIwOUZtFEsrCOlKiOyLhM9C91bExxeRE" alt="" width="147px;" height="221px;" /></p><p dir="ltr">Figura 3. Ejemplo de pantallas de login.</p><h3 dir="ltr">Inyección de dependencia</h3><p dir="ltr">Un punto importante es que aún en el proyecto Portable podemos especificar un comportamiento diferente para cada plataforma utilizando la directriz #ifdef, por ejemplo &nbsp;#ifdef __ANDROID__ significa que el siguiente código será válido sólo para Android desde el momento de la compilación.</p><p dir="ltr">Una segunda &nbsp;forma es utilizar la clase Device y TargetPlatform, como se muestra en el listado 5.</p><p dir="ltr"><img src="https://lh5.googleusercontent.com/I28bpWmdY-MLzgYloxCGm9wjId_GHnSURMqK_2qzcm3p-WGZrTpYNdBkdf_FoUfIQu_KlGJy7X3DeLvEJY1a4pelIeiKgBD3M7I-WkjjY6dlXTNMyP0IwGBCVrsGabm6PDNOgNs" alt="" width="386px;" height="135px;" /></p><p dir="ltr">Listado 5. Consultar plataforma.</p><p dir="ltr">Una tercera forma es utilizar inyección de dependencias. La forma de lograr esto es que en el proyecto portable definimos las interfaces de nuestras clases, y éstas se implementarán en cada plataforma (iOS y Android para nuestro caso), utilizando DependencyService de Xamarin para instanciar las implementaciones o si se requiere algo mucho más robusto podemos utilizar Unity , TinyIOC, &nbsp;Autofac entre otras que se pueden obtener desde Nuget.</p><p dir="ltr">Las principales clases candidatas a ser implementadas por medio de inyección de dependencias son las que utilizarán recursos propiamente de la plataforma como: acceder a la ruta de la aplicación en el dispositivo móvil para almacenar un archivo, acceso a los recursos de redes, preferencias, &nbsp;creación y acceso a una base de datos de SQLite, preferencias de la aplicación en el dispositivo, personalizar un control como un botón, un grid, procesamiento de una imagen, etcétera.</p><p dir="ltr">DependencyService es el medio por el cual podemos resolver las interfaces cuya implementación se encuentra en cada plataforma. Al utilizar:</p><p dir="ltr">[assembly:Dependency(typeof( Clase))]</p><p dir="ltr">estamos indicando a .Net que esa clase podrá resolverse mediante DependencyService tomando la implementación en la plataforma en ejecución.</p><p dir="ltr">A continuación mostraré un ejemplo para realizar la funcionalidad de localización de recursos para soportar multilenguaje.</p><p dir="ltr">Primero, en el proyecto portable declaramos un interfaz llamado ILocalizeService. El listado 6 muestra el código.</p><p dir="ltr"><img src="https://lh5.googleusercontent.com/0a0JtV2zDTfZob-NkeDg3kY93ZXmyyvIiCSkHXD0XxfLxnjMNp1svmEfxLEF-iTrmmdoDY77EPyEuRVu-jib5a-lXu6t5GZiaiUNjMZDTPUNpmOfz4EI0I4wYQ7CaXZU58LduJE" alt="" width="396px;" height="183px;" /></p><p dir="ltr">Listado 6. Definición de interfaz.</p><p dir="ltr">Lo que sigue es codificar la implementación puntual de esta funcionalidad en cada plataforma. El listado 7 contiene la implementación para Android, y el listado 8 la implementación para iOS.</p><p dir="ltr"><img src="https://lh4.googleusercontent.com/GYMPKvsm6iUz7nS_l-bAp6PU_2SPOYmOLGMDIkI-c_7-jjY59ef-7JUK3yqSGpyJ3o6iSSkRquC9j3xoaVZ75899rIMvhMt2Gn7nIsnZSWp3J0UME0u6huxkIzIZCIw0xR4DcaA" alt="" width="664px;" height="625px;" /></p><p dir="ltr">&nbsp;</p><p dir="ltr">Listado 7. Servicio de localización en Android.</p><p dir="ltr">Teniendo estas implementaciones, basta con poner desde nuestro código portable algo como:</p><p><code dir="ltr">var language = DependencyService.Get&lt;ILocale&gt;().GetCurrent();</code><code dir="ltr"><br /><br /></code></p><h3 dir="ltr">Personalización de controles</h3><p dir="ltr">Otro tema muy importante en Xamarin.Form es que es posible personalizar los controles UI específicos para cada plataforma utilizando Custom Renderers. Esto se realiza mediante la directriz ExportRenderer. A continuación veremos un ejemplo donde personalizamos un control para cada plataforma.</p><p dir="ltr">En nuestro proyecto portable definimos un CustomEntry de la siguiente forma:</p><p><code dir="ltr">public class CustomEntry: Entry { }</code></p><p dir="ltr">Posteriormente, implementamos la personalización de dicho control en Android e iOS. El listado 9 tiene la personalización para Android, y el 10 para iOS.</p><p dir="ltr"><img src="https://lh3.googleusercontent.com/52XVKT2l0PANoZYhmk4V7QVogbdLNTkYsYapDjJgZulNbg0gi_NLDv9ZEbztlM4SFhWnu65ihuv2FwpQsA7zDsahBTB1ev7XWD8ImPs-tjbHlWVJrlcmbxEA3Lvx7gJVqrQoTKs" alt="" width="664px;" height="295px;" /></p><p dir="ltr">Listado 9. CustomEntryRenderer en Android.</p><p dir="ltr"><img src="https://lh4.googleusercontent.com/khgxjq0KthJ9zhTsBNcLzkdOfzPgx17vn8h_tgl3NghtdeC96GlmLOPb2lKNBUEekdtRAP4_r9PTnd8qFYE_oh23BAEENh9ucrvhCEGGLG7tNn06Bjw5Y6FwU7XLh-szhzMgtTw" alt="" width="664px;" height="336px;" /></p><p dir="ltr">Listado 10. CustomEntryRenderer en iOS.</p><p dir="ltr">Analizando el código, podemos darnos cuenta que existen diferencias irreconciliables entre plataformas por la forma en que procesan sus datos y la arquitectura, por lo que es necesario que en funcionalidades como estas desarrollemos el código específico para la plataforma.</p><h3 dir="ltr">Estilos</h3><p dir="ltr">Podemos definir estilos que determinen los aspectos visuales de nuestra interfaz de usuario tales como colores, tipografías, tamaños, etcétera; de tal manera que no estemos redefiniendo dichos estilos en cada pantalla. Para lo cual creamos una clase donde definimos los estilos y de ahí los vamos colocando según se requiera.</p><p dir="ltr">El listado 11 muestra el código de un programa AppStyles.cs que define un estilo para objetos Label. Este código es independiente de la plataforma así que sólo se fija una vez en nuestro proyecto portable.</p><p dir="ltr"><img src="https://lh4.googleusercontent.com/ix_WtmH9TSHPZzdD7aJoejSCybMGcVtV-siRIb3gS0IUqmGqx-5DW_QlD23cS89cCXR1oaTXXyhPWcd0y99j48Q_1I2HJb_6imAq2VAm3Anax42MR1zM--qYAU76GPOA-HPKZ58" alt="" width="664px;" height="352px;" /></p><p dir="ltr">Listado 11. Definición de estilos.</p><p dir="ltr">Entonces cuando creamos un objeto Label, podemos establecer su estilo de la siguiente forma:</p><p><code dir="ltr">var nameLabel = new Label () {<br /> &nbsp;Text = "Name",<br /> &nbsp;Style = AppStyles.LabelStyle<br />};</code></p><p dir="ltr">&nbsp;</p><h3 dir="ltr">Conclusión</h3><p dir="ltr">En este artículo hemos visto cómo por medio de Xamarin.Forms podemos construir aplicaciones móviles que reutilicen elementos de código común para generar aplicaciones nativas para cada plataforma, y también hemos visto algunas formas en que podemos ajustar el comportamiento y estilo de cada plataforma.—</p><p dir="ltr">El código generado durante este tutorial está disponible como un repositorio en: <a href="https://github.com/pacificIT/SG.Xamarin">https://github.com/pacificIT/SG.Xamarin</a></p></div> <div class="text-formatted field field--name-field-autor-bio field--type-text-long field--label-above"> <div class="field__label">Bio</div> <div class="field__item"><p dir="ltr">Alder López es ingeniero de software e investigador en la empresa Advanced Technology Research. Se especializa en el desarrollo de aplicaciones móviles. <a href="https://mx.linkedin.com/in/alder1sismty">https://mx.linkedin.com/in/alder1sismty</a></p></div> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> Mon, 25 May 2015 06:00:31 +0000 sg 5887 at https://sg.com.mx https://sg.com.mx/revista/47/desarrollo-apps-cross-platform-xamarinforms#comments WebRatio Platform: Destácate en la era de los negocios digitales https://sg.com.mx/revista/47/webratio-platform-destacate-la-era-los-negocios-digitales <span class="field field--name-title field--type-string field--label-hidden">WebRatio Platform: Destácate en la era de los negocios digitales</span> <div class="images-container clearfix"> <div class="image-preview clearfix"> <div class="image-wrapper clearfix"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <img src="/sites/default/files/images/publi-foto1.jpg" width="1658" height="680" alt="" loading="lazy" typeof="foaf:Image" /> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/user/1" lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="" class="username">sg</a></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 05/25/2015 - 00:58</span> <div class="field field--name-field-numrevista field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Publicado en</h3> <ul class='links field__items'> <li><a href="/revista/47" hreflang="und">SG #47</a></li> </ul> </div> <div class="field field--name-field-seccion field--type-entity-reference field--label-hidden field--entity-reference-target-type-taxonomy-term clearfix"> <ul class='links field__items'> <li><a href="/seccion-revista/contenido-patrocinado" hreflang="und">Contenido patrocinado</a></li> </ul> </div> <div class="text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p dir="ltr">WebRatio es una plataforma para desarrollar aplicaciones móviles y web innovadoras sin escribir ni una sola línea de código.</p><h3 dir="ltr">Singularidad y Velocidad</h3><p dir="ltr">La revolución digital que vivimos permite a las empresas ofrecer productos y servicios únicos, revolucionando el mercado y respondiendo a las necesidades de los clientes de forma fácil y rápida. Para satisfacer las exigencias de los mercados dinámicos que demandan velocidad y agilidad, las organizaciones de TI deben ver más allá de los métodos de desarrollo tradicional.</p><p dir="ltr">WebRatio ha creado la herramienta de desarrollo ágil: WebRatio Platform, la cual ayuda a los CIOs y desarrolladores a entregar siempre a tiempo sus proyectos. Es una plataforma integrada en Eclipse que permite desarrollar aplicaciones móviles y web de forma visual ahorrando hasta el 80% de los tiempos y los costos en comparación con métodos tradicionales.</p><p dir="ltr"><img src="https://lh4.googleusercontent.com/lIgXGEuJpKvseV7F_RdWmIkOsX-EehXbfFDzOcjydFkcnY2mVZK1pkEGC7J0Yqsd2RAdnEHgFiZKiqfRWBySg4wFtRjLr0eTchuNwAD1YLmbIQh5D0IxOW83LJLnvYVdV9rQr9s" alt="publi-block1.jpg" width="624px;" height="220px;" /></p><h3 dir="ltr">¿Cómo funciona WebRatio?</h3><p dir="ltr">WebRatio es una plataforma visual. El desarrollador diseña el modelo conceptual de la aplicación sea para la definición del front-end, back-end y la integración con otros sistemas. Una vez definido el modelo, WebRatio Platform genera automáticamente todo el código necesario para el funcionamiento de la aplicación. Los usuarios de WebRatio pueden personalizar en cualquier momento las reglas de generación y los componentes de sus proyectos utilizando lenguajes a ellos familiares.</p><p dir="ltr">WebRatio Platform es simple: cada experto tiene una vista dedicada para sus actividades y la plataforma se ocupa de la integración de las distintas partes del proyecto.</p><h3 dir="ltr">Ágil y segura, basada en estándares</h3><p dir="ltr">WebRatio Platform se basa únicamente en estándares sin utilizar lenguajes que aten a los desarrolladores y las empresas al uso de la plataforma (no vendor lock-in). El desarrollador podrá tener acceso al código generado con total libertad de manipularlo.</p><p dir="ltr">Junto a los estándares UML y BPMN, WebRatio Platform soporta IFML (Lenguaje de Modelado de los Flujos de Interacción), una nueva notación para la definición de la UX de la aplicación y que además es un estándar de industria gestionado por el Object Management Group (OMG).</p><p dir="ltr">El código generado por las aplicaciones Web es 100% Java. El front-end de las aplicaciones se vuelve responsivo y dinámico gracias al uso de HTML5, CSS3 y Javascript. Para el back-end se utiliza Java, Spring y Hibernate, también se integra con todas las bases de datos, sistemas gerenciales y otros que ya existan en la empresa.</p><p dir="ltr">Para las aplicaciones móviles se utiliza la arquitectura abierta de Apache Cordova (PhoneGap), junto con Ionic, AngularJS y SQLite para poder definir la aplicación solo una vez y luego liberarla ya sea para Android o iOS.</p><p dir="ltr">La figura 1 muestra este proceso a grandes rasgos.</p><p dir="ltr"><img src="https://lh4.googleusercontent.com/7f2tMuj4IvFqcr-mEKIyl4wmEE1q0ET2SJyYEib4Qcqi9pyYam11SZarQr6-NKbTMDNIII0Tl6199xk5mcbHbvHgaXuFq6QfwDmngwGFEMhmP2Jlzp5-7Hry_eHeeWhqvyOhBJ0" alt="" width="624px;" height="384px;" /></p><p dir="ltr">Figura 1. WebRatio trabaja en base a estándares y evitas lock-in</p><h3 dir="ltr">Aplicaciones para todas las necesidades</h3><p dir="ltr">WebRatio permite no solo crear sistemas para responder a necesidades existentes, sino también construir soluciones innovadoras que ofrezcan nuevas posibilidades. Un ejemplo es el proyecto evenTometers (<a href="http://www.eventometers.com">www.eventometers.com</a>) realizado en conjunto con Fluxedo y Eurotech; es una solución tipo IoT (Internet of Things) para poner a disposición de las empresas sistemas inteligentes que puedan facilitar la recolección, &nbsp;análisis y difusión de datos durante eventos.</p><p dir="ltr">WebRatio está disponible en tres ediciones:</p><ul><li dir="ltr"><p dir="ltr">Community edition (gratuita) para crear aplicaciones sencillas de uso personal.</p></li><li dir="ltr"><p dir="ltr">Professional edition para freelancers y pequeños negocios.</p></li><li dir="ltr"><p dir="ltr">Enterprise edition para empresas grandes y aplicaciones.</p></li></ul><p dir="ltr">Más información en<a href="http://www.webratio.com"> www.webratio.com</a></p><h3 dir="ltr">WebRatio: la empresa</h3><p dir="ltr">WebRatio es una empresa Italiana que opera en Norteamérica, América Latina y Europa. Desde el 2001 WebRatio ofrece sus plataformas de desarrollo para la creación de aplicaciones empresariales móviles y web. En 2013, Gartner nombró a WebRatio como «Cool Vendor». WebRatio es creador original del Interaction Flow Modeling Language (IFML), actualmente estándar de la OMG.</p><p dir="ltr">WebRatio cuenta con una red internacional de partners. En México, las empresas que ya están ofreciendo productos y servicios WebRatio son: Genoco, Innovatedu, 4 Tools Power Systems e IDT Mexicana de Servicios.</p><h3 dir="ltr">Contáctanos</h3><ul><li dir="ltr"><p dir="ltr">Estados Unidos: +1 612 638 2762</p></li><li dir="ltr"><p dir="ltr">Latinoamérica (Ecuador): +593 7 4103 792</p></li></ul><h3 style="text-align: center;" dir="ltr">Estaremos presentes en SG CONFERENCE &amp; EXPO 2015, ¡ven a conocernos!</h3></div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> Mon, 25 May 2015 05:58:00 +0000 sg 5892 at https://sg.com.mx https://sg.com.mx/revista/47/webratio-platform-destacate-la-era-los-negocios-digitales#comments El Supermercado Digital https://sg.com.mx/revista/47/el-supermercado-digital <span class="field field--name-title field--type-string field--label-hidden">El Supermercado Digital</span> <div class="images-container clearfix"> <div class="image-preview clearfix"> <div class="image-wrapper clearfix"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <img src="/sites/default/files/images/principal1-fig1.jpg" width="818" height="551" alt="" loading="lazy" typeof="foaf:Image" /> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/user/1" lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="" class="username">sg</a></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 05/25/2015 - 00:56</span> <div class="field field--name-field-numrevista field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Publicado en</h3> <ul class='links field__items'> <li><a href="/revista/47" hreflang="und">SG #47</a></li> </ul> </div> <div class="field field--name-field-seccion field--type-entity-reference field--label-hidden field--entity-reference-target-type-taxonomy-term clearfix"> <ul class='links field__items'> <li><a href="/buzz/seccion-revista/portada" hreflang="und">En Portada</a></li> </ul> </div> <div class="field field--name-field-autor field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Autor</h3> <ul class='links field__items'> <li><a href="/buzz/autores/pedro-galvan" hreflang="und">Pedro Galván</a></li> </ul> </div> <div class="text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><h2 dir="ltr">Parte 1. El Lechero Digital</h2> <p dir="ltr">Probablemente si hoy le explicaras a tus hijos que en tu infancia había un señor que andaba de casa en casa vendiendo leche, les costaría trabajo imaginarlo. El mundo actual parece estar muy lejos de ese modelo de venta. Sin embargo, en todo el mundo se está viendo un resurgimiento del modelo de entrega a domicilio, pero con la novedad de que está habilitado por tecnología. Los consumidores no sólo están pidiendo por teléfono; cada vez más lo están haciendo desde web o desde apps móviles. En un estudio realizado recientemente por The Nielsen Company, una cuarta parte de los participantes indicaron ya estar comprando despensa vía internet para entrega a domicilio, y 55% indicó estar interesados en hacerlo próximamente. En resumen, el lechero ha vuelto pero ahora es digital.</p> <p dir="ltr">Cada vez más, los comercios están introduciendo modelos de e-commerce que facilitan a los consumidores a comprar en línea los productos que les interesan. Por ejemplo, en 2011, Tesco (Homeplus) introdujo el primer supermercado virtual en una estación del metro de Seúl en Corea del Sur (ver imagen a la cabecera de este artículo). El supermercado consistía en letreros (pósters) en la pared con imágenes de productos que el usuario seleccionaba con una app y al hacer “check-out” se enviaban ese mismo día a su casa. De esta manera, los usuarios aprovechaban su tiempo mientras esperaban a que llegara el metro.</p> <h3>Los compradores están puestos</h3> <p dir="ltr">The Nielsen Company recientemente realizó una encuesta en la que participaron más de 30 mil personas en 60 países para entender el impacto que la tecnología digital tendrá en el escenario de grocery shopping (“comprar la despensa”) del futuro. El reporte “The Future of Grocery” [1] generado a partir de los resultados de la encuesta, muestra cómo los consumidores utilizan la tecnología para comprar y ofrece ideas de cómo los comercios pueden aprovechar esta oportunidad para mejorar la experiencia de sus clientes. Dado que la encuesta se realizó por medio de internet, sólo refleja el comportamiento de personas que ya están activas en línea, y por lo tanto no es representativo de la población en general. Aun así, el estudio sin duda nos permite ver hacia donde van las cosas.</p> <p dir="ltr">13% de los participantes indicaron realizar compras en alguna tienda virtual con entrega a domicilio, y un 12% indicó que realizan órdenes por internet y pasan a recoger su pedido. Más del 50% están interesados en utilizar estas opciones en el futuro.</p> <p dir="ltr">El crecimiento de las ventas en línea se debe en gran parte a que los jóvenes que crecieron con la tecnología digital están alcanzando la madurez y tienen capacidad de compra. Estos consumidores tienen un gran entusiasmo por la tecnología y para ellos comprar vía internet es natural. Por ejemplo, 30% de los millenials (edades de 21 a 34 años) y 28% de la generación Z (15 a 20 años) ya hacen algunas compras de despensa por internet. La figura 1 muestra mayor detalle.</p> <p dir="ltr"><img alt="" src="/sites/default/files/images/stories/sg47/principal1-fig2.png" width="600" /></p> <p dir="ltr">Figura 2. Hábitos de compra en internet por generación.</p> <h3 dir="ltr">¿Qué está pasando localmente?</h3> <p dir="ltr">En México, aunque son todavía pocas las empresas que venden artículos de despensa en línea con entrega a domicilio, sí las hay y se espera que la oferta aumente considerablemente durante los próximos años. Por un lado están las grandes tiendas de supermercados como Superama que lo ofrecen desde hace varios años, pero también han surgido startups para productos de especialidad, o difíciles de conseguir. Un ejemplo es My Coffee Box, un servicio de suscripción online que te envía cada mes a domicilio una dotación de café gourmet sembrado por pequeños productores nacionales. Otro caso es el de Good Express, una tienda en línea de comida saludable (por si no sabes en dónde conseguir esos mazapanes de alga spirulina). Mi Alacena es otro nuevo startup, que busca permitirte comprar productos y alimentos que no hay en tu ciudad y recibirlos &nbsp;en tu domicilio (conforme escribo esto se me antojan unos tamales de elote de la Chata de Culiacán). Si conoces otros casos que quieras compartir de empresas locales que están haciendo e-commerce en nuestra región, por favor coméntalos en la versión online de este artículo en sg.com.mx.</p> <h2 dir="ltr">Parte 2. Mejorando la Experiencia en Tiendas Físicas</h2> <p dir="ltr">La primera parte de este artículo se enfoca en la compra de productos con entrega a domicilio. Es decir, en cómo la tecnología puede ayudar al consumidor a evitar las tiendas físicas.</p> <p dir="ltr">Pero las tiendas físicas (brick and mortar) seguirán predominando, al menos en un futuro cercano. Además del beneficio obvio que ofrecen de poder obtener un producto inmediatamente y sin costos de envío, hay experiencias sensoriales que son prácticamente imposibles de replicar en línea, como por ejemplo el olor de pan recién horneado. De hecho, 61% de los participantes en el estudio de Nielsen previamente mencionado, consideraron que ir al supermercado es una experiencia grata.</p> <p dir="ltr">Así que las tiendas de autoservicio deben buscar cómo aprovechar la tecnología para asegurarse de que la experiencia del consumidor sea grata, eficiente y asegure su retención.</p> <p dir="ltr">Imagina un supermercado en el que al momento de entrar recibes recomendaciones y ofertas personalizadas, donde de antemano puedas saber en qué pasillo y estante está el producto que buscas, donde puedas saber cuándo y en donde se cosechó una fruta, donde no tengas que hacer cola y ni siquiera tengas que sacar tu cartera para pagar. Suena futurista, pero si lo piensas, la tecnología para hacerlo ya existe. Posiblemente sea un caso de “el futuro ya está aquí, pero no está distribuido uniformemente”.</p> <p dir="ltr">Pero la compra vía internet es solamente un aspecto de la transformación digital del autoservicio. Una estrategia digital completa para retail incluye interacción en todos los puntos de la experiencia de compra, desde localizar tiendas, hacer listas, checar precios, investigar productos, pagar, y compartir tu experiencia de compra o uso de un producto con otros (ej. en redes sociales).</p> <p dir="ltr">Todos estos puntos de interacción se dan dentro y fuera de las tiendas, y los consumidores crecientemente utilizan tecnología para simplificar y mejorar el proceso.</p> <p dir="ltr">Insertar estrategias digitales a la experiencia de compra en tiendas físicas todavía es algo novedoso y experimental. Las tiendas de autoservicio tienen mucho camino que recorrer para cubrir aspectos básicos de habilitación digital tales como cupones móviles, apps para listas de compra, y Wi-Fi. Actualmente, sólo un pequeño porcentaje de consumidores en el mundo está utilizando tales capacidades, pero hay un alto interés por hacerlo. Por ejemplo, un 18% reporta utilizar cupones digitales actualmente pero un 65% planea hacerlo próximamente. El caso de las listas de compra en el móvil es similar, con un 15% de uso actual y un 64% de intención futura. 14% indicó utilizar una app de la tienda o de su programa de lealtad para recibir información y ofertas, y un 63% planea usarlas cuando estén disponibles para la tienda de su preferencia. 12% reporta utilizar el Wi-Fi de la tienda para recibir ofertas, y un 11% escanea códigos QR para acceder a mayor información.</p> <p dir="ltr">La figura 3 refleja los porcentajes de uso e interés en las distintas regiones del mundo, para distintas posibilidades que complementen la experiencia digital en una tienda física. Como podemos ver, la región de Asia Pacífico es donde estas capacidades están más instaladas y los consumidores tienen mayor disposición a utilizarlas. En Latinoamérica, aunque el uso actual es bajo, hay bastante entusiasmo por hacerlo en el futuro.</p> <p dir="ltr"><img alt="" src="/sites/default/files/images/stories/sg47/principal1-fig3.png" width="600" /></p> <p dir="ltr">Figura 3. Uso e intención de digitalizar experiencia en tienda.</p> <p dir="ltr">Todas las estadísticas y gráficas presentadas en este artículo se obtuvieron del estudio “The Future of Grocery”, publicado por The Nielsen Company en abril de 2015. Para obtener una copia del reporte, visita <a href="http://swgu.ru/py">http://swgu.ru/py</a></p> </div> <div class="text-formatted field field--name-field-autor-bio field--type-text-long field--label-above"> <div class="field__label">Bio</div> <div class="field__item"><p>Pedro Galván es cofundador y director editorial de SG Software Guru.</p> </div> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> Mon, 25 May 2015 05:56:30 +0000 sg 5875 at https://sg.com.mx https://sg.com.mx/revista/47/el-supermercado-digital#comments Gateways de Pago en Latam https://sg.com.mx/revista/47/gateways-pago-latam <span class="field field--name-title field--type-string field--label-hidden">Gateways de Pago en Latam</span> <div class="images-container clearfix"> <div class="image-preview clearfix"> <div class="image-wrapper clearfix"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <img src="/sites/default/files/images/payment.png" width="900" height="645" alt="" loading="lazy" typeof="foaf:Image" /> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/user/1" lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="" class="username">sg</a></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 05/25/2015 - 00:54</span> <div class="field field--name-field-numrevista field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Publicado en</h3> <ul class='links field__items'> <li><a href="/revista/47" hreflang="und">SG #47</a></li> </ul> </div> <div class="field field--name-field-seccion field--type-entity-reference field--label-hidden field--entity-reference-target-type-taxonomy-term clearfix"> <ul class='links field__items'> <li><a href="/buzz/seccion-revista/portada" hreflang="und">En Portada</a></li> </ul> </div> <div class="field field--name-field-autor field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Autor</h3> <ul class='links field__items'> <li><a href="/buzz/autores/pedro-galvan" hreflang="und">Pedro Galván</a></li> </ul> </div> <div class="text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p dir="ltr">Si estás desarrollando un sitio web o app desde el cual quieres que tus usuarios puedan pagar por un producto o servicio, seguramente requerirás utilizar un gateway de pago. Este tipo de servicios se encargan de operar el cargo a tarjetas de crédito y otros medios (ej. gestionar pagos por medio de tiendas de autoservicio). Sin embargo, ante la variedad de gateways de pago que han surgido en los últimos años en nuestra región, la pregunta es: ¿cuál elegir?</p><p dir="ltr">A continuación comparto un listado con un breve análisis de los gateways disponibles en nuestra región que considero más relevantes.</p><p dir="ltr"><strong>PayPal</strong>. Es el más conocido y utilizado a nivel mundial. Y México no es la excepción, a pesar de que las comisiones que cobra son relativamente altas (4% + $4 pesos por cargos a tarjetas de crédito) además de que ofrece las menores posibilidades de personalización ya que en nuestra región sólo soporta el nivel de servicio PayPal Payments Standard. <a href="http://paypal.com">http://paypal.com</a></p><p dir="ltr"><strong>Conekta</strong>. El retador local. Soporta una gran cantidad de medios de pago como tarjetas de crédito y débito Visa y Mastercard nacionales e internacionales, American Express, pago en tiendas Oxxo, y transferencia bancaria por medio de SPEI. Las comisiones que cobra están en el nivel bajo (para Latinoamérica): no hay costo de instalación, y se cobra una comisión de 2.9% + $2.5 pesos por cada operación con tarjeta Visa o Mastercard; 3.5% + $2.5 en Oxxo y 4.5% + $2.5 con American Express. Expone un API REST, y ofrece scripts de integración client-side en javascript, así como iOS y Android. Del lado del servidor ofrece librerías para Ruby, Python, PHP, y &nbsp;Java. <a href="https://www.conekta.io">https://www.conekta.io</a></p><p dir="ltr"><strong>OpenPay</strong>. Otro retador local. Las características, comisiones y hasta librerías son muy similares a las de Conekta. Podríamos decir que son como gemelos pero nacidos de distintas madres. Una de las diferencias es que en el caso de tiendas de autoservicio, OpenPay no utiliza Oxxo sino otras tiendas como 7 Eleven, Extra, Farmacias Benavides, entre otras. Aunque no tuvimos oportunidad de probar sus librerías de integración, en papel parece ser el ganador de esa categoría por la amplia variedad de lenguajes que soporta, además de que su documentación técnica está muy bien organizada. <a href="http://www.openpay.mx">http://www.openpay.mx</a></p><p dir="ltr"><strong>Compropago</strong>. Solamente soporta pago por medio de tiendas de autoservicio. Sin embargo, la comisión que cobra es la menor para este tipo de pago (2.9% + $3) y soporta una amplia red de tiendas que no solo incluye a los sospechosos comunes como Oxxo, 7 Eleven y Extra, sino también a tiendas Soriana, Chedraui, Elektra, Coppel, entre otras. <a href="https://www.compropago.com">https://www.compropago.com</a></p><p dir="ltr"><strong>Astropay</strong>. Gateway originario del Reino Unido y enfocado en atender países en desarrollo. En el caso de Latinoamérica, soporta transacciones en Argentina, Brasil, Chile, Colombia, México, Perú y Uruguay. Uno de sus distintivos es que su solución tecnológica se basa en el protocolo Ripple, el cual está diseñado especialmente para la interacción entre instituciones financieras. Además del servicio de gateway, Astropay tiene un servicio de tarjeta (Astropay card) que es como una cuenta donde acarreas saldo y con la cual puedes pagar en sitios web que soporten Astropay. <a href="https://merchant.astropay.com">https://merchant.astropay.com</a></p><p dir="ltr"><strong>PayU</strong>. Es lo que antes se conocía como DineroMail, y es una de las empresas pioneras en soportar pagos en tiendas de autoservicio en nuestra región. Las comisiones que cobra están en el mismo rango que Conekta y OpenPay. Entre sus fortalezas está la amplia presencia que tiene a nivel Latinoamérica, soportando transacciones en Argentina, Brasil, Colombia, Chile, México, Panamá y Perú; con una amplia red de tiendas de autoservicio en cada país. <a href="http://www.payu.com">http://www.payu.com</a></p><p dir="ltr"><strong>Mercado Pago</strong>. Es el gateway de pago creado por la empresa Mercado Libre. (No está de más decir que Mercado Libre es un titán del comercio electrónico). Mercado Pago tiene presencia en varios países de nuestra región. Las comisiones son un poco mayores que las del segmento bajo, cobrando 3.79% + $4.00 en el caso de México. <a href="https://www.mercadopago.com">https://www.mercadopago.com</a></p><p dir="ltr"><strong>Stripe</strong>. Es un gateway importante a nivel internacional, sin embargo para Latinoamérica por el momento sólo tiene un beta privado en México que únicamente acepta pagos en pesos mexicanos. <a href="https://stripe.com">https://stripe.com</a></p><p dir="ltr">Opté por no mencionar a los servicios que proveen un lector de tarjeta tales como iZettle, Clip, o Pago Facil, porque a pesar de que algunos ofrecen APIs que se pueden usar como gateway, en realidad están más enfocados a usarse como solución integrada para agregar a tu aplicación. Sí es posible hacerlo, pero no es en lo que destacan.</p><h3 dir="ltr">Conclusión</h3><p dir="ltr">La gran cantidad de proveedores que han surgido en este espacio en los últimos años es prueba del interés que hay por resolver el reto de los pagos digitales en nuestra región. Nos sorprendió gratamente ver a competidores locales que están haciendo un excelente trabajo. Esperamos que esto comience a rendir frutos pronto, mejorando el comercio digital en nuestra región e impactando positivamente las economías de nuestros países.</p><p dir="ltr"><em>Agradezco a Eugenio Perea y Fernando Ramos por la información provista para el desarrollo de este artículo.</em></p></div> <div class="text-formatted field field--name-field-autor-bio field--type-text-long field--label-above"> <div class="field__label">Bio</div> <div class="field__item"><p>Pedro Galván es cofundador y director editorial de SG Software Guru.</p></div> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> Mon, 25 May 2015 05:54:33 +0000 sg 5886 at https://sg.com.mx https://sg.com.mx/revista/47/gateways-pago-latam#comments M-Commerce Usando Bitcoin https://sg.com.mx/revista/47/m-commerce-usando-bitcoin <span class="field field--name-title field--type-string field--label-hidden">M-Commerce Usando Bitcoin</span> <div class="images-container clearfix"> <div class="image-preview clearfix"> <div class="image-wrapper clearfix"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <img src="/sites/default/files/images/bitcoin.jpg" width="700" height="394" alt="" loading="lazy" typeof="foaf:Image" /> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/user/1" lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="" class="username">sg</a></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 05/25/2015 - 00:48</span> <div class="field field--name-field-numrevista field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Publicado en</h3> <ul class='links field__items'> <li><a href="/revista/47" hreflang="und">SG #47</a></li> </ul> </div> <div class="field field--name-field-seccion field--type-entity-reference field--label-hidden field--entity-reference-target-type-taxonomy-term clearfix"> <ul class='links field__items'> <li><a href="/buzz/seccion-revista/portada" hreflang="und">En Portada</a></li> </ul> </div> <div class="field field--name-field-autor field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Autor</h3> <ul class='links field__items'> <li><a href="/buzz/autores-sg/joel-cano" hreflang="und">Joel Cano</a></li> </ul> </div> <div class="text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>La migración hacia la economía móvil será una de las tendencias tecnológicas que veremos consolidarse en 2015. Los servicios como el comercio móvil, la banca móvil y los servicios de billeteras para Bitcoin han hecho que el número de usuarios de teléfonos móviles que realizan transacciones y compran bienes y servicios se incremente de manera rápida.</p><p dir="ltr">Las transacciones bancarias, los pagos de servicios, las compras de productos y servicios se realizan cada vez más usando dispositivos móviles; y éstos a través de aplicaciones que han sido habilitadas con la capacidad de hacer “compra-en” mismas que se conectan a las cuentas de débito o crédito de los usuarios vía sistemas de pago les permiten hoy comprar libros, solicitar taxis o hacer pagos mediante sistemas de banca móvil.</p><p dir="ltr">Desafortunadamente la cantidad de teléfonos inteligentes conectados a internet, así como la penetración del dinero electrónico mediante tarjetas de débito y crédito es limitada. Se estima que existe una penetración de no más de 40% de los servicios financieros en México.</p><p dir="ltr">Otra limitante son los montos de transacción, debido a los altos costos en el uso de estos servicios, y a la posibilidad de rechazo en la adopción por parte de los usuarios, hacen difícil justificar a muchos negocios la posibilidad de ofrecer estos servicios.</p><p dir="ltr">Pero hay una nueva tecnología que podría cambiar esta realidad en el futuro cercano, BlockChain y Bitcoin permiten hacer estas mismas transacciones de una manera completamente digital, eliminando intermediarios y para transacciones de cualquier monto.</p><p dir="ltr">Adopción Bitcoin</p><ul><li dir="ltr"><p dir="ltr">8.5 millones de billeteras.</p></li><li dir="ltr"><p dir="ltr">88 mil comercios.</p></li><li dir="ltr"><p dir="ltr">180 miles de millones USD de ingresos.</p></li><li dir="ltr"><p dir="ltr">374 cajeros automáticos.</p></li><li dir="ltr"><p dir="ltr">3.4 miles de millones USD de capitalización.</p></li><li dir="ltr"><p dir="ltr">14 millones de bitcoins en circulación.</p></li></ul><p dir="ltr">Por ejemplo un usuario puede tener una billetera digital que le permitiría pagar el monto del transporte público, la mensualidad de un auto o incluso el auto completo con la misma forma de moneda.</p><p dir="ltr">La billetera funciona en el teléfono inteligente y conectada a un Exchange puede hacer transacciones de prácticamente cualquier monto de manera sencilla. Sólo se descarga la aplicación de billetera como BlockChain Wallet o Hive por ejemplo, se solicita la dirección pública de la billetera o punto de venta donde se realizará el pago de la compra y listo. Si se necesita comprar o &nbsp;cambiar los Bitcoins que se han recibido, simplemente se crea una cuenta en un Exchange como meXBT y desde ahí es posible comprar o cambiar Bitcoins por pesos o dólares. La cuenta en el Exchange &nbsp;se puede cargar en efectivo o mediante transferencias electrónicas a través de 160 mil tiendas de conveniencia .</p><p dir="ltr">Tambien se pueden enviar los bitcoins a un cajero que tenga la opción de dinero móvil y sin necesidad de una cuenta bancaria retirar efectivo con una solución llamada sendbitcoin.mx mediante el envio de una cuenta instantánea a teléfono celular y con un código de seguridad de cuatro caracteres realizar la operación de manera segura.</p><p dir="ltr">Otras tecnologías que ya están disponibles son por ejemplo “SIM-cards” que habilitan un telefóno celular tradicional o inteligente como una billetera con bitsim.com; y si se están desarrollando aplicaciones móviles para teléfonos inteligentes y se desea integrarles opciones de pago seguras, se puede lograr mediante bitcoin en rivetz.com</p><p dir="ltr">Estas son solo algunas de las posibilidades de conectar los móviles con bitcoin y el blockchain. La verdadera movilidad en el comercio ahora es una realidad.</p><p dir="ltr">La inversión de capital emprendedor en el primer trimestre de 2015 en este nuevo ecosistema es prácticamente igual a la que se realizó en internet en 1995. Esto es sin duda, indicativo del potencial que los inversionistas ven hoy en este tipo de tecnología que promete cambiar la manera en como manejamos el dinero y los valores al igual que sucedió con la información antes y después de internet (ver figura 1).</p><p dir="ltr"><img src="https://lh4.googleusercontent.com/GtWSyKL9vamamQoWB_tnYB9zPQM_Dl8m6zeFoERwGJxBBeSJbflF7jikA7A4eOxHFdN9m77bZxlEdGdwWlV-maGsZDiExeSsBmjiZNMme4K6GVu-XSJH4C6xnca590LxelKyG6o" alt="" width="624px;" height="460px;" /></p><p dir="ltr">Figura 1. Inversión en bitcoin.</p><p dir="ltr">En México meXBT está impulsando soluciones como sendbitcoin.mx que permite que las remesas entre Estados Unidos y México puedan tener un costo y velocidad más conveniente para las personas que necesitan mover dólares americanos a pesos mexicanos. También está impulsando soluciones que puedan convertir los pagos entre empresas pequeñas y medianas al extranjero para que más fácilmente puedan integrarse en las cadenas productivas globales y que los pagos para la importación y exportación de productos y servicios desde México a cualquier parte del mundo sean a través de un simple clic en nuestras computadoras o teléfonos celulares.</p><p dir="ltr">El futuro de los pagos y transferencias de dinero y valores mediante estas nuevas tecnologías está apenas empezando.</p></div> <div class="text-formatted field field--name-field-autor-bio field--type-text-long field--label-above"> <div class="field__label">Bio</div> <div class="field__item"><p dir="ltr">Joel Cano es Director de Operaciones en meXBT, empresa especializada en negocios con criptomonedas.</p></div> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> Mon, 25 May 2015 05:48:34 +0000 sg 5885 at https://sg.com.mx https://sg.com.mx/revista/47/m-commerce-usando-bitcoin#comments El Blockchain y Sus Aplicaciones https://sg.com.mx/revista/47/el-blockchain-y-sus-aplicaciones <span class="field field--name-title field--type-string field--label-hidden">El Blockchain y Sus Aplicaciones</span> <div class="images-container clearfix"> <div class="image-preview clearfix"> <div class="image-wrapper clearfix"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <img src="/sites/default/files/images/blockchain.jpg" width="700" height="467" alt="" loading="lazy" typeof="foaf:Image" /> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/user/1" lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="" class="username">sg</a></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 05/25/2015 - 00:44</span> <div class="field field--name-field-numrevista field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Publicado en</h3> <ul class='links field__items'> <li><a href="/revista/47" hreflang="und">SG #47</a></li> </ul> </div> <div class="field field--name-field-seccion field--type-entity-reference field--label-hidden field--entity-reference-target-type-taxonomy-term clearfix"> <ul class='links field__items'> <li><a href="/buzz/seccion-revista/portada" hreflang="und">En Portada</a></li> </ul> </div> <div class="field field--name-field-autor field--type-entity-reference field--label-inline field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label inline">Autor</h3> <ul class='links field__items'> <li><a href="/buzz/autores/pedro-galvan" hreflang="und">Pedro Galván</a></li> </ul> </div> <div class="text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Hoy en día, una conversación sobre tendencias en comercio que no hable sobre bitcoin, sin duda quedaría incompleta. Ya en este reportaje hablamos sobre bitcoins y la expectativa que hay alrededor de esta criptomoneda, pero ahora quisiera platicar sobre la tecnología que sustenta al bitcoin, es decir el block chain.*</p><p dir="ltr">Conforme escribo este artículo, Nasdaq ha anunciado que comenzará a experimentar con usar el blockchain para registrar transacciones [1]. Pero las aplicaciones del blockchain no se reducen al ámbito financiero. Por ejemplo, la plataforma DemocracyOS está considerando aprovechar esta tecnología para registrar votación ciudadana. El artículo “Block chain 2.0: The renaissance of money” publicado por Wired en enero de este año lo plantea así [2]:</p><p style="padding-left: 30px;" dir="ltr"><em>“Bitcoin, altcoin, dodgecoin … ¿a quién le importan? Lo único que importa es el block chain”.</em></p><p dir="ltr">Así que hay que asegurarnos de entender qué es, cómo funciona y cómo se podría aplicar en otros campos.</p><h3 dir="ltr">Fundamentos</h3><p dir="ltr">El aspecto central sobre el que se basa el diseño del sistema bitcoin es que no hay una autoridad central. Ante esto, se requiere un mecanismo para determinar quién es dueño de qué monedas. Dicho mecanismo debe ser distribuido (repartido entre una red de nodos) y resistente a ataques que quieran alterar su integridad. Este es el rol que juega el blockchain. Es una bitácora donde se registran todas las transacciones de bitcoins que es compartida por todos los nodos que participan en la red bitcoin. En otras palabras, el blockchain es una bitácora transaccional distribuida, y en el caso del bitcoin viene a ser el equivalente a su libro mayor de contabilidad (ledger).</p><p dir="ltr">El blockchain es administrado por la red de nodos del sistema bitcoin. Dichos nodos están continuamente difundiendo transacciones del tipo: el emisor X envía Y bitcoins al receptor Z. Los nodos validan las transacciones, las agregan a su copia del libro de contabilidad, y difunden estas nuevas transacciones a otros nodos. Cada nodo de red tiene su propia copia del blockchain. Aproximadamente cada 10 minutos se crea un nuevo bloque que contiene un grupo de transacciones aceptadas, se agrega el bloque a la cadena, y se envía al resto de los nodos. El proceso de calcular los bloques para irlos agregando a la cadena es lo que se conoce como hacer minería. Es un proceso diseñado para ser computacionalmente intensivo, de tal manera que el número de bloques que se encuentra cada día se mantiene constante.</p><p dir="ltr">El algoritmo blockchain fue inventado específicamente para el sistema Bitcoin, pero se puede aplicar en cualquier otro caso donde se requiera establecer un consenso distribuido en presencia de actores maliciosos o no confiables.</p><h3 dir="ltr">Garantizando la integridad</h3><p dir="ltr">Como su nombre lo indica, el blockchain es una cadena de bloques. La cadena va desde el bloque inicial (génesis) hasta el bloque más reciente. Es así que una copia completa del blockchain contiene todas las transacciones realizadas en un sistema a lo largo de su historia. A partir de esta información, es posible determinar el valor que corresponde a cada dirección del sistema en cualquier punto de la historia.</p><p dir="ltr">Para implementar este encadenamiento, cada nuevo bloque contiene un hash del bloque previo. Esto garantiza un orden cronológico, ya que un bloque nuevo requiere conocer el bloque anterior para poder determinar su hash. Una vez que un bloque es parte de la cadena, todos los bloques subsecuentes tienen rastro de ese bloque, por lo que si quisiéramos alterar un bloque, cambiaría su hash y por lo tanto habría que regenerar todos los bloques subsecuentes, lo cual lo hace impráctico computacionalmente y por lo tanto es un mecanismo de protección para evitar alteración de datos.</p><p dir="ltr">Podremos tener nuestras opiniones sobre el bitcoin y su viabilidad, pero es un hecho que la tecnología blockchain funciona y es efectiva para su propósito. Un blockchain se puede utilizar para firmar digitalmente cualquier tipo de información sensible, sin necesidad de una autoridad central. Esto por ejemplo se puede aplicar en la gestión de contratos, depósitos de garantía, autenticación, etcétera.</p><h3 dir="ltr">Monedas de colores</h3><p dir="ltr">Imaginemos que a nuestros bitcoins les agregamos notas para indicar que en realidad representan cierto activo. Esto es lo que se conoce como monedas coloreadas (colored coins), y es un mecanismo que permite utilizar el blockchain para almacenar y gestionar la propiedad de activos que no son bitcoins. Por ejemplo, podríamos manejar el capital social de una empresa en el blockchain por medio de colorear monedas que representen acciones y repartirlas entre los accionistas. Las acciones entonces se podrían negociar inmediatamente y sin costos de transacción. También podemos representar bienes inmobiliarios como monedas coloreadas. Entonces, puedes poner tu casa en un bitcoin, y transferir la propiedad de tu casa por medio de una simple transacción en la red de bitcoin.</p><p dir="ltr">Colored coins [4] es un servicio para colorear monedas, es decir crear activos digitales sobre la red bitcoin. Así que si quieres te puedes poner romántico(a), poner tu corazón en un bitcoin y transferirselo a tu amado(a).</p><h3 dir="ltr">Contratos inteligentes y dinero programable</h3><p dir="ltr">Uno de los campos de aplicación para el blockchain es el de contratos inteligentes. Esto consiste en crear programas que pueden manejar dinero automáticamente. Al crear un contrato se definen ciertas condiciones o criterios que se deben cumplir, y las acciones (transacciones) que se disparan cuando se cumplen los criterios. Cuando se realiza una transacción entre dos partes, el programa verifica que el producto/servicio se haya satisfecho, y solamente si el criterio se cumple entonces la cantidad de dinero se transmite a la cuenta del proveedor. De esta forma, se obtiene un servicio de depósito de garantía en tiempo real con un costo de operación cercano a cero.</p><p dir="ltr">Si te interesan los contratos inteligentes, te recomiendo que eches un vistazo al proyecto Codius [4]. Es una plataforma open source para hospedar programas inteligentes que administren contratos, criptomonedas u otros activos. Otro proyecto que busca establecer una plataforma para aplicaciones descentralizadas es Ethereum [5], el cual involucra una nueva criptomoneda, un lenguaje de programación y un nuevo navegador diseñado para este protocolo.</p><h3 dir="ltr">Gestión de propiedad intelectual</h3><p dir="ltr">Otra aplicación interesante del blockchain es para compartir y gestionar el uso de propiedad intelectual.</p><p dir="ltr">Por ejemplo, ascribe [6] es un servicio que utiliza el blockchain de bitcoin para permitir a artistas, galerías y coleccionistas registrar, transferir y archivar arte digital. Los artistas registran sus obras en un registro de propiedad intelectual distribuido que es públicamente accesible. Las obras son almacenadas en la nube y acreditadas al artista. Cada versión de la obra recibe un identificador criptográfico único que es inseparable de la versión original.</p><p dir="ltr">El fundador de ascribe comentó recientemente en un artículo publicado en Forbes [7] que un acercamiento similar también sería muy útil para gestionar los derechos de otras obras artísticas, como la música o las películas, permitiendo rastrear su uso y por lo tanto compensar adecuadamente a los dueños de los derechos. Por ejemplo, si eres un artista puedes asignarle los derechos a tu obra a una disquera y monitorear por medio del blockchain las formas en las que la disquera explota tus obras (ventas, licencias, streaming, etcétera). Esto minimizaría la controversia y costos de transacción sobre el pago de regalías. Pero más allá de eso, facilitaría que los artistas pudieran compartir, gestionar y monitorear directamente el uso de sus obras.</p><h3 dir="ltr">Conclusión</h3><p dir="ltr">Nos dirijimos a un mundo de aprendizaje automatizado (machine learning), en el que las computadoras pueden actuar sin necesidad de ser programadas explicitamente. Dicho mundo requiere de la capacidad de asignar recursos de forma rápida y eficiente, sistemas capaces de auto-organizarse y realizar las transacciones. El blockchain parece ser la clave para lograr esto.</p><p dir="ltr">Si te interesa ir a mayor profundidad técnica sobre cómo crear una cadena alternativa del blockchain, la wiki de Bitcoin [8] tiene buena información al respecto.</p><p dir="ltr">[Recuadro]</p><p dir="ltr">Nota sobre nomenclatura. La documentación original del bitcoin utiliza el término “block chain” (dos palabras) para referirse a este mecanismo, ya que a fin de cuentas es eso, una cadena de bloques. Sin embargo, conforme su popularidad y aplicaciones han aumentado, es común referirse a éste como un sustantivo y unir las dos palabras para crear un anglicismo (“el blockchain”). Es por ello que en la mayoría de este artículo he utilizado esta forma, una sola palabra integrada como anglicismo.</p><p dir="ltr">[fin de recuadro]</p><p dir="ltr">Referencias</p><ol><li dir="ltr"><p dir="ltr">“Nasdaq bets on bitcoin’s Blockchain as the future of finance”. The Guardian. <a href="http://swgu.ru/p-">http://swgu.ru/p-</a></p></li><li dir="ltr"><p dir="ltr">“Block chain 2.0: The renaissance of money”. Wired. <a href="http://swgu.ru/p-">http://swgu.ru/p-</a></p></li><li dir="ltr"><p dir="ltr">Colored coins. <a href="http://coloredcoins.org">http://coloredcoins.org</a></p></li><li dir="ltr"><p dir="ltr">Codius. <a href="https://codius.org">https://codius.org</a></p></li><li dir="ltr"><p dir="ltr">Ethereum. <a href="http://ethereum.org">http://ethereum.org</a></p></li><li dir="ltr"><p dir="ltr">ascribe. <a href="https://www.ascribe.io">https://www.ascribe.io</a></p></li><li dir="ltr"><p dir="ltr">“The Bitcoin Blockchain Just Might Save The Music Industry...If Only We Could Understand It”. Forbes. <a href="http://swgu.ru/pz">http://swgu.ru/pz</a></p></li><li dir="ltr"><p dir="ltr">Alternative chain. <a href="https://en.bitcoin.it/wiki/Alternative_chain">https://en.bitcoin.it/wiki/Alternative_chain</a></p></li></ol></div> <div class="text-formatted field field--name-field-autor-bio field--type-text-long field--label-above"> <div class="field__label">Bio</div> <div class="field__item"><p>Pedro Galván es director editorial de SG Software Guru.</p></div> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> Mon, 25 May 2015 05:44:49 +0000 sg 5884 at https://sg.com.mx https://sg.com.mx/revista/47/el-blockchain-y-sus-aplicaciones#comments