SG #53 https://sg.com.mx/ en Sistemas Biométricos https://sg.com.mx/revista/53/sistemas-biom-tricos <span class="field field--name-title field--type-string field--label-hidden">Sistemas Biométricos</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/biometricos.png" width="960" height="612" 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/47654" lang="" about="/user/47654" typeof="schema:Person" property="schema:name" datatype="" class="username">ana2lp</a></span> <span class="field field--name-created field--type-created field--label-hidden">Thu, 12/22/2016 - 20: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/53" hreflang="und">SG #53</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="/sgvirtual/speakers/juan-manuel-reyes-medina" hreflang="und">Juan Manuel Reyes Medina</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"><span style="font-size: 13.008px;">Cada vez es más común solicitar información biométrica para realizar trámites. En este artículo explicaremos por qué nos solicitan nuestra biometría y cómo se utiliza dentro de los sistemas.</span></p> <p dir="ltr"><span>Definamos primero qué es una biometría: una biometría se define como una característica física o conductual intrínseca que permite la identidad única de un humano.  Ejemplos de una biometría son: las huellas dactilares, el iris, los rasgos faciales del rostro, la venas de las manos, la palma de la mano, la firma y la voz.</span></p> <p dir="ltr"><span>Veamos algunos casos reales de porqué se tienen que incluir las biometrías dentro de algunos trámites. Pongamos primero el ejemplo de la credencial de elector para votar en México. Anteriormente el Instituto confiaba plenamente en el ciudadano que decía la verdad al llevar sus documento probatorios para obtener su credencial para votar. Después de un tiempo, se empezó a ver que una misma persona obtenía varias credenciales utilizando documentos probatorios apócrifos que le permiten obtenerla derivado que no era posible validar los documentos con la institución que los emitió. Se pierde la confianza en el ciudadano y es necesario tener otro mecanismo en donde se pueda identificar que el ciudadano dice ser quien es. </span></p> <p dir="ltr"><span>Otro ejemplo es el sistema de pensiones mexicano que está estrenando sistema biométrico; hace tiempo algunos de los empleados de las AFOREs, quienes se encargan de atraer a los trabajadores para tener su ahorro hacia su AFORE, utilizaban la documentación del trabajador que le permitía cambiarlo de AFORE sin su consentimiento. La forma de resolver este problema es que si el trabajador va a realizar algún trámite como retiro de ahorros, lo haga de forma confiable utilizando sus biometrías para identificar que es la persona correcta y el empleado de la AFORE tendrá que identificarse con su biometría permitiendo realizar ese trámite para el trabajador.</span></p> <p dir="ltr"><span>¿Ahora bien, cómo se utilizan las biometrías dentro los sistemas? Comencemos por definir </span><span>sistema de enrolamiento</span><span>. Un sistema de enrolamiento es un sistema completo se que se encarga de capturar las biometrías, validarlas, transformarlas y guardarlas para verificaciones posteriores. Este sistema puede variar su arquitectura pero de forma general tiene los siguientes elementos:</span></p> <ul><li dir="ltr"> <p dir="ltr"><span>Dispositivos de captura.</span></p> </li> <li dir="ltr"> <p dir="ltr"><span>Formato de la biometría.</span></p> </li> <li dir="ltr"> <p dir="ltr"><span>Sistema de captura.</span></p> </li> <li dir="ltr"> <p dir="ltr"><span>Formato de envío.</span></p> </li> <li dir="ltr"> <p dir="ltr"><span>Middleware.</span></p> </li> <li dir="ltr"> <p dir="ltr"><span>Motor biométrico.</span></p> </li> <li dir="ltr"> <p dir="ltr"><span>Sistema de adjudicación.</span></p> </li> </ul><p dir="ltr"><span>A continuación los describo.</span></p> <h3 dir="ltr"><span>Dispositivos de captura</span></h3> <p dir="ltr"><span>Como su nombre lo indica, son aparatos electrónicos que pueden capturar alguna de las biometrías de una persona. Por ejemplo, la mayoría conocemos los escaners para huellas digitales. Existe una gran diversidad de dispositivos para atender distintas necesidades y presupuestos. Existen dispositivos para tomar iris, huellas, rasgos faciales y cada uno de ellos captura la biometría y la convierte en un determinado formato binario. Típicamente estos dispositivos exponen APIs que nos permite consumir la información capturada en nuestros sistemas.</span></p> <h3 dir="ltr"><span>Formato de la biometría</span></h3> <p dir="ltr"><span>Como ya mencionamos, los dispositivo capturan la biometría y la convierten en un formato binario. Por ejemplo, el formato de las huellas más usado es el WSQ (Wavelet Scalar Quantization) que fue desarrollado por el FBI [1] y el NIST (National Institute of Standards and Technology).</span></p> <h3 dir="ltr"><span>Sistema de captura</span></h3> <p dir="ltr"><span>Es una aplicación de software que permite a un operador registrar la información biométrica capturada. Este elemento es de los más importantes dentro del sistema de enrolamiento ya que en esta aplicación definimos reglas de validación que podemos aplicar a las biometrías. Esto es necesario porque si queremos que nuestro sistema sea confiable, entonces las biometrías registradas deben tener la calidad suficiente para poder distinguirlas de las de otra persona. La única oportunidad de tomarle las biometrías a una persona es cuando la tienes presente, entonces el operador debe aprovechar al máximo que tiene a la persona frente a él y con la ayuda del sistema de captura debe tratar de tomar lo mejor posible la biometría.</span></p> <p><span>Como ejemplo de esto veamos el caso de la validación de las huellas dactilares, que es una de las biometrías más utilizadas al dia de hoy en diversos sistemas biométricos. Existen diversos modelos de captores de huella que pueden capturar desde una huella, dos huellas o hasta capturar 4 huellas de una sola toma. Todos estos dispositivos tienen la cualidad que están estandarizados con algo que se denomina FAP (</span><span>Fingerprint Acquisition Profile</span><span>), que son perfiles de adquisición de huellas. Estos perfiles, determinan diferentes características de la toma de la huella como son: resolución de la imagen, área de captura del dispositivo, el tipo de dispositivo, algoritmo de compresión, nivel de compresión, etc. La tabla 1 muestra valores para distintos niveles de FAP.</span><br /><br /><br />  </p> <div dir="ltr"> <table><colgroup><col width="112" /><col width="71" /><col width="73" /><col width="82" /><col width="72" /><col width="75" /><col width="88" /><col width="97" /></colgroup><tbody><tr><td> <p dir="ltr"><span>Característica</span></p> </td> <td> <p dir="ltr"><span>FAP 10</span></p> </td> <td> <p dir="ltr"><span>FAP 20</span></p> </td> <td> <p dir="ltr"><span>FAP 30</span></p> </td> <td> <p dir="ltr"><span>FAP 40</span></p> </td> <td> <p dir="ltr"><span>FAP 45</span></p> </td> <td> <p dir="ltr"><span>FAP 50</span></p> </td> <td> <p dir="ltr"><span>FAP 60</span></p> </td> </tr><tr><td> <p dir="ltr"><span>Resolución de la imagen</span></p> </td> <td> <p dir="ltr"><span>500 PPP</span></p> <p dir="ltr"><span>± 10 PPP (±2%)</span></p> </td> <td> <p dir="ltr"><span>500 PPP</span></p> <p dir="ltr"><span>± 10 PPP (±2%)</span></p> </td> <td> <p dir="ltr"><span>500 PPP</span></p> <p dir="ltr"><span>± 10 PPP (±2%)</span></p> </td> <td> <p dir="ltr"><span>500 PPP</span></p> <p dir="ltr"><span>± 10 PPP (±2%)</span></p> </td> <td> <p dir="ltr"><span>500 PPP</span></p> <p dir="ltr"><span>± 5 PPP (±1%)</span></p> </td> <td> <p dir="ltr"><span>500 PPP</span></p> <p dir="ltr"><span>± 5 PPP (±1%)</span></p> </td> <td> <p dir="ltr"><span>500 PPP</span></p> <p dir="ltr"><span>± 5 PPP (±1%)</span></p> </td> </tr><tr><td> <p dir="ltr"><span>Área mínima de captura (pulgadas)</span></p> </td> <td> <p dir="ltr"><span>0.5</span><span>de ancho</span><span>por 0.65</span><span>de</span><span>alto</span></p> </td> <td> <p dir="ltr"><span>0.6 de ancho por 0.8 de alto</span></p> </td> <td> <p dir="ltr"><span>0.8 de ancho por 1.0 de alto</span></p> </td> <td> <p dir="ltr"><span>1.6 de ancho por 1.5 de alto</span></p> </td> <td> <p dir="ltr"><span>1.6 de ancho por 1.5 de alto</span></p> </td> <td> <p dir="ltr"><span>3.2 de ancho por 2.0 de alto</span></p> </td> <td> <p dir="ltr"><span>3.2 de ancho por 3 de alto</span></p> </td> </tr><tr><td> <p dir="ltr"><span>Tipo de dispositivo (referencia)</span></p> </td> <td> <p dir="ltr"><span>Unidactilar</span></p> </td> <td> <p dir="ltr"><span>Unidactilar</span></p> </td> <td> <p dir="ltr"><span>Unidactilar</span></p> </td> <td> <p dir="ltr"><span>Bidactilar</span></p> </td> <td> <p dir="ltr"><span>Bidactilar</span></p> </td> <td> <p dir="ltr"><span>Bidactilar</span></p> <p dir="ltr"><span>Decadactilar</span></p> </td> <td> <p dir="ltr"><span>Decadactilar</span></p> </td> </tr><tr><td> <p dir="ltr"><span>Algoritmo de compresión</span></p> </td> <td> <p dir="ltr"><span>WSQ 2.0 o superior</span></p> </td> <td> <p dir="ltr"><span>WSQ 2.0 o superior</span></p> </td> <td> <p dir="ltr"><span>WSQ 2.0 o superior</span></p> </td> <td> <p dir="ltr"><span>WSQ 2.0 o superior</span></p> </td> <td> <p dir="ltr"><span>WSQ 2.0 o superior</span></p> </td> <td> <p dir="ltr"><span>WSQ 3.1 o superior</span></p> </td> <td> <p dir="ltr"><span>WSQ 3.1 o superior</span></p> </td> </tr><tr><td> <p dir="ltr"><span>Nivel de compresión</span></p> </td> <td> <p dir="ltr"><span>10:1</span></p> </td> <td> <p dir="ltr"><span>10:1</span></p> </td> <td> <p dir="ltr"><span>10:1</span></p> </td> <td> <p dir="ltr"><span>15:1</span></p> </td> <td> <p dir="ltr"><span>15:1</span></p> </td> <td> <p dir="ltr"><span>15:1</span></p> </td> <td> <p dir="ltr"><span>15:1</span></p> </td> </tr><tr><td> <p dir="ltr"><span>Certificación del dispositivo</span></p> </td> <td> <p dir="ltr"><span>PIV</span></p> </td> <td> <p dir="ltr"><span>PIV</span></p> </td> <td> <p dir="ltr"><span>PIV</span></p> </td> <td> <p dir="ltr"><span>PIV</span></p> </td> <td> <p dir="ltr"><span>Apéndice F</span></p> </td> <td> <p dir="ltr"><span>Apéndice F</span></p> </td> <td> <p dir="ltr"><span>Apéndice F</span></p> </td> </tr></tbody></table></div> <p><span><span> </span></span></p> <p dir="ltr"><span>Si queremos que nuestro sistema de enrolamiento biométrico de huellas sea los mas fiable posible, la recomendación de la mayoría de los proveedores de motores biométricos, es que se utilice en dispositivos el estándar del apéndice F (el cual es el estándar  FBI IAFIS IQS CJIS-RS-0010: V7). Si checamos en la tabla los dispositivos con FAP 45 o superior son los que cumplen con este estándar. Como breviario cultural, el INE utiliza dispositivos decadactilares (4-4-2) que cumplen con este estándar y toman las diez huellas en 3 pasos tomando primero 4 huellas de la mano derecha, 4 dedos de la mano derecha y al ultimo los dos pulgares.</span></p> <p dir="ltr"><span>Entonces con el simple hecho de utilizar un dispositivo de buena calidad, ya podremos tener una buena toma de una huella, pero aun no es suficiente. Hay más parámetros que podemos mover en los dispositivos para que la huella contenga más elementos biométricos, tales como las minucias o la calidad de la huella (NFIQ) que nos permitan asegurar más la unicidad de las huellas. En este punto todo parece que con comprar buenos dispositivos ya todo nuestro sistema de enrolamiento va a funcionar, ¡qué gran error!. Por ahi supe de un proyecto de renombre que tenían super captores de biometrías, pero no tenían la idea de como hacer un sistema de enrolamiento biométrico.</span></p> <p dir="ltr"><span>En este orden de ideas, el sistema de captura es el encargado de interactuar con los dispositivos modificando los diversos parámetros para obtener la mejor toma posible de la biometría. Estos sistemas de captura pueden ser desde aplicaciones de escritorio, hasta aplicaciones móviles.</span></p> <p dir="ltr"><span>Para finalizar el sistema de captura, hay una recomendación más que es muy, pero muy importante. Puedes tener un buen dispositivo y un buen software de captura, pero nada eso funciona sin la capacitación del operador. Es importante capacitar al operador con las mejores prácticas para que aprenda a tomar las biometrías, ya que en ocasiones las personas a las que se les tomará la biometría no saben como poner, por ejemplo, los dedos en un captor de huella. Una mala toma de la biometría produce que se tenga que hacer regresar a la persona y eso en ocasiones es muy costoso.</span></p> <h3 dir="ltr"><span>Formato de envío </span></h3> <p dir="ltr"><span>Cuando se captura la biometría, los datos biográficos y de negocio en un sistema de enrolamiento es muy común que se tengan que enviar a algún sistema remoto para su procesamiento. Esto es, porque el verdadero procesamiento de la biometría se encuentra en un lugar central o distribuido; dependiendo la arquitectura derivada que se tiene que validar / cotejar con las millones de biometrías que se tienen capturadas de las demás personas. Para el envío de los datos, es necesario tener un formato que nos permita enviar las biometrías con sus datos intrínsecos y además los datos de negocio. Si el requerimiento de nuestro sistema biométrico no necesita la capacidad de comunicarse con algún otro sistema biométrico, nosotros bien podemos crear nuestro propio formato de envío que puede ir desde XML a JSON. Pero en el caso que tengamos que seguir los estándares de los sistemas biométricos o queramos interactuar con otros sistemas, es necesario ajustarse al formato ANSI/NIST-ITL 1-2011: Update 2015 que está regido por el NIST. Este formato es en realidad un XML que tiene todo el soporte para el envío de cualquier biometría con sus datos intrínsecos y es lo suficientemente flexible para que podamos enviar información propia de negocio.</span></p> <h3 dir="ltr"><span>Middleware</span></h3> <p dir="ltr"><span>Este elemento es en realidad un sistema que se encarga de procesar las peticiones de enrolamiento que envía el sistema de captura; sus tareas son almacenar la información, validar las reglas de negocio y llevar la auditoría de todo lo que pasa con la petición de enrolamiento para determinar si este último procede o no y enviar la respuesta a quien corresponda. Este sistema interactúa de forma directa con el motor biométrico de tal forma que, lo que determine el motor biométrico determinará si procede o no el enrolamiento.</span></p> <h3 dir="ltr"><span>Motor biométrico </span></h3> <p dir="ltr"><span>Este elemento es la piedra angular de nuestro sistema de enrolamiento y es un sistema que se encarga de validar y convertir las biometrías para poder procesarlas y poder realizar operaciones sobre ellas. Si nuestro requerimiento es que debemos tener personas no repetidas, y las biometrías serán nuestro elemento para identificarlas, entonces están de acuerdo en que tenemos que tener una base de datos con la cual podamos comparar cuando llegue una biometría nueva para que no se inserte una repetida o evitar que alguien haga fraude.  </span></p> <p dir="ltr"><span>Existen diversos proveedores de motores biométricos, los cuales tienen sus algoritmos secretos para tratar alguna de las biometrías y darnos la seguridad que el resultado de la búsqueda sea lo más certero y que nuestra base de biometrías esté libre de duplicados. Entre las empresas líderes en este segmento están NEC, 3M, Morpho y Neurotechnology.</span></p> <p dir="ltr"><span>Cada una tiene ventajas y desventajas con respecto al software que utiliza y la infraestructura que requiere pero al final digamos que hacen lo mismo; aquí mucho depende de la inversión que se quiera hacer y los requerimientos, ya que no son nada baratos y el precio depende mucho de qué tan rápido se requiere que responda y la cantidad de biometrías sobre las cuales tiene que trabajar.</span></p> <p dir="ltr"><span>El INE tiene aproximadamente unas 80 millones de personas con sus huellas (10 huellas) y su captura facial. Anteriormente era una de las bases biométricas más grandes del mundo, aunque ahora India nos ha superado. </span></p> <p dir="ltr"><span>Estos motores biométricos están basados fuertemente en infraestructura ya que, por ejemplo para hacer una comparación con 50 millones de huellas se requieren unos 30 servidores con cientos de GB de memoria RAM para que la búsqueda responda en menos de 3 minutos. Por su parte, 3M tiene una propuesta interesante en donde reduce dramáticamente el número de servidores con unas tarjetas especiales que tienen el propósito de realizar las comparaciones en un solo servidor.</span></p> <p dir="ltr"><span>Estos motores a grandes rasgos lo que hacen es convertir la biometría en un formato propietario (algo que le denominan template) el cual construyen a partir de las características intrínsecas de la biometría, por ejemplo, en el caso de las huellas se toman las minucias como base, suben a memoria los templates distribuidos en los diferentes servidores y con un software realizan las comparaciones de forma paralela en todos los servidores. Es importante mencionar que las comparaciones se basan mucho en estadística de qué tanto se parecen las biometrías y existen parámetros que se pueden calibrar para tener un equilibrio entre lo que se rechaza y lo que se acepta. </span></p> <p dir="ltr"><span>Los dos parámetros más importantes son el FAR (False Acceptance Rate) y el FRR (False Rejection Rate). El FAR mide la posibilidad de que el sistema acepte por error un acceso por un usuario no autorizado. En contraparte, el FRR mide la posibilidad de que un sistema rechace por error un acceso por un usuario autorizado. </span></p> <p dir="ltr"><span>Estos dos parámetros definen el umbral con el cual se rechazará o aceptará la biometría dependiendo de la similitud. Calibrar estos parámetros es una de las actividades más importantes y complicadas al implementar sistemas biométricos. Debe haber un equilibrio entre ambas ya que si le das más peso a una podrías estar rechazando los enrolamientos, derivado a que es muy alto el valor de precisión o en su defecto podrías estar aceptando enrolamientos duplicados (ver figura 1). </span></p> <p dir="ltr"><span><img alt="Figura 1" data-entity-type="file" data-entity-uuid="51e1078b-b758-4422-a938-feed62ea38d7" src="/sites/default/files/inline-images/biometria-fig1.png" width="612" height="461" loading="lazy" /></span></p> <p dir="ltr"><span>Figura 1. Equilibrio de falsas aceptaciones y rechazos</span></p> <p dir="ltr"><span>Afortunadamente para nosotros, los proveedores de los servicios nos proponen los valores para estos parámetros, pero obviamente son referencia ya que esos valores son tomados de proyectos en los que han participado y no necesariamente son proyectos nacionales, entonces al final siempre tenemos que tropicalizarlos y hacerles el ajuste (tuning) correspondientes. Este ajuste es muy difícil de hacer cuando vas a empezar a enrolar desde cero y no tienes huellas con que probar, ya que para eso requieres un universo de huellas considerable (100,000 aproximadamente) que te permita probar y determinar una tasa baja de rechazos. Es uno de los problemas con los que te encuentras porque, ¿de donde sacas 100,000 huellas para probar?. Existen bases de datos de huellas públicas pero solo son 5,000 entonces solo puede probar con ese universo.</span></p> <p dir="ltr"><span>Estos motores biométricos por lo general exponen servicios que son independientes de la tecnología y la infraestructura para poder integrarlos con el middleware. Se pueden integrar a través de web services de tipo SOAP y REST o alguna API propietario en algún lenguaje específico.</span></p> <p dir="ltr"><span>Ahora bien, para poder enrolar a una persona con sus biometrías es necesario que le asignemos un identificador de negocio que nos permita saber desde nuestro ámbito de negocio a quién pertenecen esas biometrías. Una vez definido este identificador podemos pasar a explicar los servicios que exponen los motores biométricos.  Cada proveedor varía el conjunto de servicios que expone, pero estos son los más comunes:</span></p> <ul><li dir="ltr"> <p dir="ltr"><span>Servicio de enrolamiento</span><span>. Se encarga de insertar las biometrías en la base de datos. Primero hace una búsqueda sobre todas las biometrías existentes, si no hay coincidencias las inserta y las asocia con el identificador de negocio. En caso de que encuentre coincidencias rechaza la inserción y regresa los identificadores de las personas con las cuales hizo coincidencia.</span></p> </li> <li dir="ltr"> <p dir="ltr"><span>Servicio de búsqueda</span><span>. Hace una búsqueda sobre todas las biometrías existentes y regresa los identificadores de las personas con las cuales hizo coincidencia.</span></p> </li> <li dir="ltr"> <p dir="ltr"><span>Servicio de inserción</span><span>. Inserta las biometrías dentro de la base de datos sin ninguna validación. </span></p> </li> <li dir="ltr"> <p dir="ltr"><span>Servicio de verificación</span><span>. Se encarga de verificar que las biometrías de una persona coincidan con las biometrías que se enrolaron previamente. En este servicio se hace otra toma de las biometrías de una persona y se compara contra las huellas que se enrolaron previamente; el servicio nos regresa solamente un MATCH o NO MATCH que nos dice si la persona es realmente o no la que dice ser.</span></p> </li> <li dir="ltr"> <p dir="ltr"><span>Servicio de borrado:</span><span>  Se encarga de eliminar una biometría de la base de datos a partir del identificador de negocio.</span></p> </li> </ul><p dir="ltr"><span>La respuesta de estos servicios puede ser síncrona o asíncrona. Los servicios de enrolamiento y búsqueda son los que más frecuentemente son asíncronos por el tiempo que demoran. Este es un punto importante porque debemos considerarlo cuando se hace la integración con el middleware.</span></p> <p dir="ltr"><span>Ya tenemos la descripción completa de nuestro sistema de enrolamiento, ahora veamos cómo se utiliza en la realidad. El primer paso dentro del flujo del negocio de las empresas o entidades gubernamentales es generar una base de datos de identidades, en donde tengamos a una persona asociada a una identidad de negocio con cada una de sus biometrías, esto con la finalidad de poder identificarla en un segundo momento con una nueva toma de su biometría. Por ejemplo, cuando vamos a solicitar una nueva credencial de elector o hacemos un movimiento de nuestra Afore nos pedirán nuestras biometrías para realizar un enrolamiento de las mismas. </span></p> <p dir="ltr"><span>El sistema de enrolamiento será capaz de encontrar si alguna persona intenta volver a enrolarse con alguna identidad apócrifa apoyado por la búsqueda en la base de datos biométrica. En cuanto se tenga un enrolamiento válido será posible identificar a una persona por sus biometrías en un segundo paso. Por ejemplo, si un trabajador quiere hacer algún trámite con su afore solo tiene que poner alguno de sus dedos para poder verificar su identidad, esto lo  hace el servicio de verificación del motor biométrico que se describió anteriormente, como ya se tiene el identificador de negocio del trabajador y la toma de la huella, se comparara con las huellas que se tienen de su enrolamiento previo y el motor biométrico determinará si es la persona que dice ser.</span></p> <p dir="ltr"><span>Hasta este punto hemos descrito el camino feliz de un enrolamiento, ahora veamos las diferentes situaciones de casos excepcionales que son comunes en un sistema de identificación biométrica.</span></p> <p dir="ltr"><span>¿Qué pasa si las personas que vamos a enrolar no tienen las biometrías con las cuales se está enrolando? Por ejemplo, si se están enrolando las huellas y la persona no tiene manos, ¿qué se hace?. O si las huellas de la persona están tan desgastadas que no pueden ser leídas por el lector de huellas. O si una persona tiene lesionada las dos manos y no pueden ser leídas tampoco. Este tipo de situaciones se deben de considerar dentro de nuestro sistema desde el principio para ver cómo se deben manejar. En el caso de la persona que tiene las manos lesionadas, algun dia le tendrán que sanar, entonces se deberá de considerar un servicio de actualización de huellas que permita actualizar las de esta persona cuando esté sana para que se pueda identificar con su huella posteriormente.</span></p> <p dir="ltr"><span>Como ya había comentado la comparación biométrica no es del todo exacta, se basa mucho en estadística, es altamente probable que cuando una persona envía sus biometrías y se busquen en toda la base se encuentren coincidencias con otras personas que no necesariamente son la misma persona. A esto se le denomina </span><span>falso positivo</span><span> y se incrementa fuertemente cuanto más grande es la base de datos biométrica.</span></p> <h3 dir="ltr"><span>Sistema de adjudicación</span></h3> <p dir="ltr"><span>¿Cómo determinamos si esas coincidencias son un intento de fraude o realmente si es otra persona con las biometrías muy parecidas?. Bueno, aquí es donde entra en acción el último elemento del sistema de enrolamiento: el sistema de adjudicación. Este se encarga de resolver casos donde un operador compara la información de la persona que se quiere enrolar contra la información de las personas que se encontraron como coincidencias.</span></p> <p dir="ltr"><span>Aquí mucho depende de qué información se tiene, pero anticipándonos a esta situación se recomienda evaluar desde un principio si es necesario incluir distintos datos biométricos en nuestro sistema de enrolamiento, con la finalidad de tener más elementos que permitan al operador tomar una decisión. Esta decisión afecta significativamente el presupuesto del proyecto, ya que por cada tipo de información biométrica necesitamos adquirir e integrar los dispositivos al sistema. Además, se necesita tener un motor biométrico por cada tipo de biometría para poder obtener los resultados numéricos de similitud de cada una y unificar los resultados para tomar un decisión. </span></p> <p dir="ltr"><span>Un sistema de adjudicación puede ser tan simple o tan complejo dependiendo de la implicación legal que tiene su resultado. Podemos tener un sistema que solo muestre las huellas que se capturaron y que un perito determine si las huellas son las mismas o no. O podemos tener por ejemplo el caso de la credencial de elector en donde el INE toma las huellas, la foto y la firma; entonces su sistema de adjudicación puede tener hasta 3 biometrías para que un operador pueda tener la decisión de adjudicación.  </span></p> <p dir="ltr"><span>Una vez que se tiene la respuesta del sistema de adjudicación, si es un intento de fraude o si es una persona diferente, es necesario que el sistema de enrolamiento tenga un flujo alterno para estos casos y como la primera vez que lo intentó enrolar no fue posible, debe hacerlo de otro modo. Recordemos que la primera vez usó el servicio de enrol que hace la búsqueda en toda la base biométrica, luego entonces no puede usar este servicio, en su lugar usa el servicio de inserción que introduce las biometrías sin realizar la búsqueda. </span></p> <h3 dir="ltr"><span>Conclusión</span></h3> <p dir="ltr"><span>El presente artículo ha buscado brindar un panorama general sobre los principales componentes y aspectos a considerar en el desarrollo de un sistema de información para gestionar información biométrica. Esperamos les pueda aportar valor a la hora de implementar alguno.</span></p> <p dir="ltr"><span>Referencias</span></p> <ol><li dir="ltr"> <p dir="ltr"><span>FBI Biometrics Specifications. </span><span><a href="https://www.fbibiospecs.cjis.gov/">https://www.fbibiospecs.cjis.gov</a></span></p> </li> </ol><p><br /><br />  </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><span>Juan Manuel Reyes Medina es actualmente CIO de SynergyJ, empresa dedicada a la capacitación de tecnologías JVM. Es desarrollador de software desde hace 18 años, emprendedor desde hace algunos años e instructor de tecnologías y frameworks de JVM. Ha participado en proyectos en el sector privado y gobierno y dirigió dos proyectos exitosos de integración de sistemas biométricos que se encuentran actualmente en operación.</span></p> </div> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> <div class="field field--name-field-tags field--type-entity-reference field--label-above field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label">Tags</h3> <ul class='links field__items'> <li><a href="/buzz/tags/sistemas-biom-tricos" hreflang="und">Sistemas biométricos</a></li> </ul> </div> Fri, 23 Dec 2016 02:03:00 +0000 ana2lp 6942 at https://sg.com.mx https://sg.com.mx/revista/53/sistemas-biom-tricos#comments La prueba de software y los special purpose languages https://sg.com.mx/revista/54/la-prueba-software-y-los-special-purpose-languages-0 <span class="field field--name-title field--type-string field--label-hidden">La prueba de software y los special purpose languages</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/programming.jpg" width="960" height="640" 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/47654" lang="" about="/user/47654" typeof="schema:Person" property="schema:name" datatype="" class="username">ana2lp</a></span> <span class="field field--name-created field--type-created field--label-hidden">Thu, 12/22/2016 - 19: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/53" hreflang="und">SG #53</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/prueba-software" hreflang="und">Prueba de 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-vinicio-leon-carrillo" hreflang="und">Luis Vinicio León Carrillo</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">Parte 5.</p> <p dir="ltr">En números anteriores hemos venido estudiando los lenguajes formales para tener herramientas que nos permitan hacer más eficiente el desarrollo de software. Permítanme en este número hacer una digresión para abordar brevemente el tema principal de este número, que considero podría serles de utilidad en el futuro próximo; prometo no entrar en detalle más allá de lo estrictamente necesario.</p> <p>El tema “Lenguaje” es muy profundo y de muy largo alcance (y, debo confesar, es una de mis más profundas pasiones).</p> <p dir="ltr">“Lenguaje” está fuertemente vinculado con “Aprendizaje” e “Inteligencia” (por cierto, durante la Segunda Guerra Mundial se utilizaron exitosamente exámenes de lenguaje para seleccionar posibles oficiales entre soldados rasos).</p> <p dir="ltr">Hay quien ha llegado a escribir &nbsp;“… el universo es lenguaje, y el lenguaje es universo.”, &nbsp;una frase de profundo alcance.</p> <p>En un número anterior comentamos que sólo hasta que aprendió sobre funciones recursivas, el científico C.A.R. Hoare pudo expresar su método de ordenamiento llamado “QuickSort”. &nbsp;Eso evidencía que los constructos de un lenguaje de computación pueden limitarnos para expresar lo que tenemos en mente (al menos inicialmente). Pero, ¿acaso no ocurre lo mismo con nuestras habilidades lingüísticas, iniciando con nuestra lengua materna?</p> <p>A lo largo del tiempo se han enunciado diversas “promesas” sobre las capacidades de una computadora para procesar lenguaje natural. Algunas capacidades sencillas ya pueden verse hoy en día comercialmente: hay asistentes personales que nos pueden ayudar a &nbsp;realizar reservaciones en un Hotel, o “chatbots” para dar soporte.</p> <p>Otras capacidades más sofisticadas han quedado pendientes. Quizás estemos cerca de ver algunas de ellas comercialmente. Hace algunas semanas asistí a unos eventos de la IBM relacionados con “computación cognitiva”:</p> <ul> <li dir="ltr"> <p dir="ltr">Pude ver cómo un robot humanoide con varios grados de libertad obedecía instrucciones en Inglés medianamente complejas, a través de una conexión con Watson.</p> </li> <li dir="ltr"> <p dir="ltr">Me tocó ver la descripción de un producto para dar soporte de primer nivel, para el que, luego de recolectar 3,000 preguntas, se diseñaron 300 como “intended questions”, que se utilizan como llaves primarias en una base de datos para encontrar las respuestas correspondientes; si el usuario comenta que no recibió la respuesta adecuada, entonces pasa a comunicarse con un humano; se mencionó una “tasa de éxito” es de entre 30% y 70%.</p> </li> <li dir="ltr"> <p dir="ltr">Nos hablaron de un proyecto con el cual Watson podría apoyar a vendedores sugiriendo una propuesta de &nbsp;venta, partiendo de un análisis de patrones de compra del cliente, de su historial de compras, de sus “sentimientos” en las redes sociales, y de noticias sobre él en fechas recientes.</p> </li> </ul> <p>Pero, hablando de aplicaciones que implican una interacción en lenguaje natural muy sofisiticada, a qué nos referimos cuando decimos que una computadora “entiende” el Español por ejemplo? &nbsp;&nbsp;&nbsp;A que la máquina sea “inteligente”, que pueda “pensar”?</p> <p>Como una primera aproximación para responder esas preguntas, ya en 1950 Alan Turing sugirió reemplazar la pregunta “¿Pueden las máquinas pensar?” por “¿Puede una máquina tener un buen desempeño en el ‘Juego de la Imitación’?”, juego que consistía en que un humano interrogaba de manera remota a un hombre y a una mujer que se encontraban en otro cuarto para determinar cuál respuesta había sido dada por el hombre y cuál por la mujer.</p> <p>Si las computadoras pudieran entender nuestros idiomas tan bien como lo hace una persona promedio, podrían comprender muchísimo de lo que hay escrito en internet, así es que podríamos hablar con ellas sobre una inmensa cantidad de temas, y entonces, en muchos casos, sería difícil distinguir si estamos “hablando” con una máquina o con un ser humano muy inteligente y cultivado.</p> <p>(Por cierto: si las computadoras entendieran bien lo que dices y escribes en tus redes sociales y tus correos, entonces una buena cantidad de organizaciones podrían saber más de tu vida de los últimos meses que tus seres queridos más allegados. &nbsp;:-) &nbsp;)</p> <p>El que las computadoras entiendan el lenguaje natural puede tener muchísimas aplicaciones, no solo relativamente “sencillas” como las que mencionamos, sino otras de mucho mayor impacto. En los sistemas e-Learning, por ejemplo, podríamos tener “instructores” que jamás se desesperarían y que podrían enseñar a muchísimas personas, democratizando el conocimiento, y generando más oportunidades para todos; especialmente para los principiantes.</p> <p>Tenemos 50 años diseñando lenguajes de programación para comunicarnos con las computadoras. Cabe preguntarse: ¿por qué no desarrollar también lenguajes naturales para comunicarnos con ellas? &nbsp; &nbsp;</p> <p dir="ltr">Ya hay antecedentes de ese trabajo; echémosle un ojo.</p> <h3>Lenguajes “naturales artificiales”</h3> <p dir="ltr">Llamamos “lenguajes naturales” a aquellos que son o fueron utilizados por una comunidad de seres humanos para comunicarse (como el Español, Inglés, Ruso, Latín, Arameo, etc.). A aquellos lenguajes naturales que son o fueron utilizados por una comunidad pero que fueron desarrollados artificialmente los llamamos “Lenguajes Planificados” (como los que se muestran más adelante).</p> <p>Se considera que la historia de los Lenguajes Planificados comienza en el siglo XVII, con los trabajos de Descartes y de Leibniz.</p> <p dir="ltr">Estos tipos de lenguajes parten de una clasificación de conceptos y construyen sistemas interconectados ordenados alrededor de conceptos fundamentales.</p> <p>Después de esos trabajos se desarrollaron otros Lenguajes Planificados, en relativamente diferentes momentos y países, y partiendo de principios distintos:</p> <ul> <li dir="ltr"> <p dir="ltr">Los llamados lenguajes “a priori” o “esquemáticos” o “meta-lenguajes”, que no incorporan características/construcciones de lenguajes naturales (al menos no intencionalmente), y que tienen una estructura altamente esquematizada, regular y lógica.</p> </li> </ul> <p dir="ltr">Este tipo de lenguajes fueron dominantes durante varios siglos, pero en las primeras décadas del siglo pasado sufrieron un rápido declive. Por otro lado, los que se describen enseguida ganaron un rápido crecimiento.</p> <ul> <li dir="ltr"> <p dir="ltr">Los llamados lenguajes “a posteriori” o “naturalistas” que decididamente toman características de los lenguajes naturales (por ejemplo, la irregularidad tanto en la composición de las palabras y frases, como en declinaciones y conjugaciones), y que renuncian a esquemas y clasificaciones dadas a priori.</p> </li> </ul> <p dir="ltr">Una clase particular de estos lenguajes son los llamados “pseudo-lenguajes”, que mezclan elementos de lenguajes naturales como raíces y declinaciones (originales o modificadas) con elementos desarrollados artificialmente.</p> <ul> <li dir="ltr"> <p dir="ltr">Los lenguajes naturales simplificados (“sean” vivos como el Español, el Ruso, Chino o “muertos” como el Latín y el Arameo), en los que los mecanismos de “construcción” del lenguaje en cuestión (conjugaciones, declinaciones, constitución de frases, etc.) son simplificados sistemáticamente (por ejemplo, haciendo regulares verbos que son originalmente irregulares).</p> </li> </ul> <p>&nbsp;</p> <p dir="ltr">En la siguiente tabla mostramos algunos de estos Lenguajes Planificados:&nbsp;</p> <div dir="ltr"> <table> <colgroup> <col width="161" /> <col width="170" /> <col width="161" /> <col width="170" /> </colgroup> <tbody> <tr> <td> <p dir="ltr"><strong>Lenguajes “a priori” o “meta-lenguajes”</strong></p> </td> <td> <p dir="ltr"><strong>Lenguajes “a posteriori” o “naturalistas”</strong></p> </td> <td> <p dir="ltr"><strong>Lenguajes “a posteriori” &nbsp;“pseudo-lenguajes”</strong></p> </td> <td> <p dir="ltr"><strong>Lenguajes naturales simplificados</strong></p> </td> </tr> <tr> <td><br /> <br /> <br /> <br /> <br /> <br /> &nbsp; <p dir="ltr">Beobi (1920, Rusia)</p> &nbsp; <p dir="ltr">Suma (1943, EEUU)</p> <br /> <br /> <br /> &nbsp; <p dir="ltr">Unilingua (1965, Francia)</p> </td> <td><br /> <br /> <br /> &nbsp; <p dir="ltr">Semi-Latin (1910, Austria)</p> <br /> <br /> <br /> &nbsp; <p dir="ltr">Romanid (1956, Hungría)</p> </td> <td> <p dir="ltr">Volapük (1879, Alemania)</p> <p dir="ltr">Esperanto (1887, Polonia)</p> <p dir="ltr">Dilpok (1898, Francia)</p> &nbsp; <p dir="ltr">Novesperanto (1910, Suiza)</p> <br /> <br /> <br /> &nbsp; <p dir="ltr">Intal (1956, Alemania)</p> &nbsp; <p dir="ltr">Malfalsito (1963, Francia)</p> </td> <td><br /> <br /> &nbsp; <p dir="ltr">Tutonish (1902, EEUU)</p> &nbsp; <p dir="ltr">Simplo (1911, Italia)</p> &nbsp; <p dir="ltr">Anglic (1930, Suecia)</p> <p dir="ltr">Basic (1935, Gran Bretaña)</p> </td> </tr> </tbody> </table> </div> <p>&nbsp;</p> <p dir="ltr">Dos de los Lenguajes Planificados más relevantes son:&nbsp;</p> <ol> <li dir="ltr"> <p dir="ltr">Volapük</p> </li> </ol> <p dir="ltr">Fue desarrollado en Alemania por Johann Martin Schleyer, publicado en 1879, pensado para que lo usara la élite educada. Fue el primer Lenguaje Planificado en pasar de la teoría (sin una comunidad que usara el lenguaje) a la práctica (una comunidad amplia que lo usara y enriqueciera).</p> <p dir="ltr">Luego de 10 años de su publicación, ya existían 283 Organizaciones de “Volapukistas”, 25 diarios en ese idioma, muchos libros de enseñanza traducidos a 25 lenguajes; así como una Academia de la Lenguaje, que por cierto no era muy abierta a aceptar o desarrollar reformas al lenguaje, lo cual, aunado a que el autor veía al lenguaje como algo de su propiedad, originó un gran debilitamiento del “Volapukismo”.</p> <ol start="2"> <li dir="ltr"> <p dir="ltr">Esperanto</p> </li> </ol> <p dir="ltr">Esperanto significa “un esperanzado” o “alguien que espera”, lo que da idea inicial sobre su autor, quien realizó las primeras publicaciones sobre el lenguaje bajo el seudónimo de “Dr. Esperanto”.</p> <p dir="ltr">Su verdadero nombre era Lazarus Ludvig Zamenhof. De origen judío, nació en 1859 en Bialystok (hoy Polonia), en donde confluían rusos, polacos, alemanes y judíos; él vivía en un área socieconómicamente deprimida.</p> <p dir="ltr">Zamenhof hablaba Ruso en casa y Polaco en la calle; en la preparatoria se distinguió en Alemán y Francés, así como en Latín y Griego; con su padre profundizó en el Hebreo.</p> <p dir="ltr">Estudió medicina en Varsovia, y luego se especializó en Oftalmología.</p> <p dir="ltr">Zamenhof era un humanista idealista que, viviendo en Europa pocos años antes de la Primera Guerra Mundial, quería con su “Lenguaje Universal” unir a la humanidad. Murió en 1917 pobre, en buena medida por sus inversiones en el desarrollo del Esperanto (publicaciones, viajes, actividades, etc.).</p> <p dir="ltr">A diferencia de Schleyer con Volapük, Zamenhof no se apropió del Esperanto. Esperaba que el lenguaje contribuyera a una democratización del saber y la cultura, y a conectar las masas a nivel internacional sin necesidad de la élite educada.</p> <p dir="ltr">Sabía que su “Lenguaje Universal” podía generar un movimiento social, y realizó también trabajos para desarrollar una “Religión Universal”.</p> <p>&nbsp;</p> <p dir="ltr">Zamenhof diseñó Esperanto buscando que…</p> <ul> <li dir="ltr"> <p dir="ltr">fuera tan fácil de asimilar, que cualquiera pudiera aprenderlo jugando;</p> </li> <li dir="ltr"> <p dir="ltr">pudiera ser usado rápidamente por un aprendiz, gracias a su estructura simple y lógica;</p> </li> <li dir="ltr"> <p dir="ltr">fuera usado por las masas. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p> </li> </ul> <p>&nbsp;</p> <p dir="ltr">Objetivos que alcanzó gracias a que en Esperanto:</p> <ul> <li dir="ltr"> <p dir="ltr">el vocabulario fue tomado de varios lenguajes naturales vivos;</p> </li> <li dir="ltr"> <p dir="ltr">la derivación y la flexión son regulares y estructuradas;</p> </li> <li dir="ltr"> <p dir="ltr">a cada letra le corresponde un solo sonido, y el vocalismo se limita a las 5 vocales;</p> </li> <li dir="ltr"> <p dir="ltr">las raíces de las palabras se tomaron en un 75% de las lenguas romances –especialmente el Latín (del que fueron escogidas por su internacionalidad, de manera que un ruso entendiera inmediatamente un 40%) y del Francés–, 20% de las lenguas germánicas, y el 5% restante del Griego, Hebreo, el Árabe, el Japonés, y las lenguas Eslavas;</p> </li> <li dir="ltr"> <p dir="ltr">se buscó una pronunciación con máxima internacionalidad.</p> </li> </ul> <p>Todo lo anterior originó que el Esperanto ganara mucha aceptación: la primera de las muchas publicaciones sobre el lenguaje fue “Linguo Internatia” en 1887; en 1905, en Francia, 668 personas de 20 países participaron en el primer Congreso Mundial; hasta antes de 1914 se realizaron unos 8 congresos. Sin embargo, en ese desarrollo se cruzaron las dos grandes guerras, y todas las consecuencias de las mismas debilitaron mucho ese movimiento.</p> <h3 dir="ltr">Lingüística Computacional</h3> <p dir="ltr">Aún cuando la idea de desarrollar un Lenguaje Planificado que tenga la estructura adecuada como para hacer práctica la comunicación de un humano con un sistema de cómputo es “nice”, y viable en principio, eso no es lo que finalmente se busca; entre otras cosas porque los humanos tendríamos que aprender otro lenguaje natural, lo cual es una limitante, aún en nuestras sociedades modernas. Lo que se desea es entendernos con ella libremente en nuestra propia lengua. &nbsp;Eso nos empuja a ver las cosas desde una perspectiva más amplia: la Lingüística Computacional.</p> <p>La Lingüística Computacional es un campo interdisciplinario que comprende secciones de lingüística tradicional y teórica, lexicografía, psicología del lenguaje, filosofía analítica y lógica, procesamiento de texto, bases de datos, así como procesamiento de lenguaje hablado y escrito.</p> <p>La computación numérica ha sido el enfoque predominante desde el nacimiento de las computadoras. En él, la comprensión del lenguaje natural ha estado restringida fundamentalmente al usuario: cuando uno quiere encontrar fragmentos relevantes en un texto largo relacionados con “problemas con autos rojos durante el periodo entre 1990 y 2000”, la palabra “rojos” es tratada sólo como un signo por la computadora, no con el significado que tiene para nosotros; si la computadora entendiera &nbsp;no solo el significado de “rojos”, sino de la frase completa, nos mostraría también textos que incluyeran las frases “década de los 90s”, y “sedanes/automóviles/coches tintos”, entre otras.</p> <p dir="ltr">Técnicamente dicho: en los sistema de cómputo actuales, el query anterior tiene una alta Precision (esto es: de los textos que son mostrados, el porcentaje que sí son relevantes) &nbsp;pero tiene un bajo Recall (de todos los posibles textos relevantes, el porcentaje que representa los que sí son mostrados).</p> <p>La llamada “Nouvelle Artificial Intelligece” no hace el típico procesamiento simbólico de la “traditional Artificial Intelligence” usando “computadoras numéricas”, sino que se enfoca al procesamiento de significado usando “Agentes Autónomos” (robots). La Lingüística Computacional hace uso de este tipo de tecnología.</p> <p>El objetivo de la Lingüística Computacional es desarrollar componentes tecnológicos, que llamaremos “agentes cognitivos autónomos” (robots), con los que el humano pueda comunicarse libremente en natural lenguaje. Esto cual requiere del modelado de procedimientos y estados cognitivos, para lo cual es necesario tanto un modelo del hablante como del oyente.</p> <p dir="ltr">Para efectos del desarrollo de un agente cognitivo autónomo, uno podría considerar como…</p> <ol> <li dir="ltr"> <p dir="ltr">“Prototipo Básico de Comunicación” el discurso que se presenta entre dos partes, “cara a cara”, hablando de objetos concretos, y en su ambiente inmediato.</p> </li> <li dir="ltr"> <p dir="ltr">“Componentes de Comunicación Básica”…</p> </li> </ol> <ul> <li dir="ltr"> <p dir="ltr">La especificación del medioambiente de la tarea a realizar (a la representación interna actual del medioambiente se le suele llamar “Contexto” del agente).</p> </li> <li dir="ltr"> <p dir="ltr">La estructura del agente cognitivo, que representa su “cognición”; los datos que recibe (por ejemplo de sensores), que constituyen su “percepción”; y la clasificación de los mismos que se considera su “reconocimiento”.</p> </li> <li dir="ltr"> <p dir="ltr">La especificación del lenguaje en el cual se lleva a cabo la comunicación, que debería los siguientes elementos:</p> </li> </ul> <ol> <li dir="ltr"> <p dir="ltr">Fonética: para facilitar la automatización de los procesos de articulación, acústicos y auditivos del habla.</p> </li> <li dir="ltr"> <p dir="ltr">Léxico: en el cual tengamos por ejemplo, para cada concepto, sus hipónimos e hiperónimos, que nos permitan entender mejor el input recibido por el agente para generar un output de mejor calidad.</p> </li> <li dir="ltr"> <p dir="ltr">Morfología: que nos facilite el análisis de las palabras del input y obtener sus constituyentes para eventualmente expandirlas antes de generar el output del agente.</p> </li> <li dir="ltr"> <p dir="ltr">Sintaxis: que nos permita detectar si las estructuras en el input son correctas y generar las equivalentes en el output.</p> </li> <li dir="ltr"> <p dir="ltr">Semántica: que nos permita por ejemplo entender frases con negaciones y detectar frases que tienen significados equivalentes.</p> </li> <li dir="ltr"> <p dir="ltr">Pragmática: que nos permita entender el significado de frases genéricas como “aspectos revisados en la última junta” en contextos particulares.</p> </li> </ol> <p dir="ltr">Para ilustrar algunos de los elementos anteriores tomemos el caso de la traducción automática. A lo largo del tiempo se han desarrollado diferentes enfoques:</p> <ul> <li dir="ltr"> <p dir="ltr">Traducción directa (50’s - 60’s): utilizando diccionarios, prácticamente se traducía palabra por palabra (o cuando mucho, utilizando su morfología), evadiendo el análisis del significado, pero buscando preservar los significados y proporcionar traducciones sintácticamente aceptables.</p> </li> <li dir="ltr"> <p dir="ltr">El enfoque “de Transferencia”, en el que se realiza un análisis léxico, sintáctico y morfológico del texto y se construye una representación del mismo; luego, utilizado esa representación y un diccionario que incluya aspectos sintácticos y morfológicos, se hace la traducción. Es un mejor enfoque que el anterior, pero aún no se entiende el significado del input, lo que generará problemas cuando:</p> </li> </ul> <ul> <li dir="ltr"> <p dir="ltr">un verbo en el lenguaje fuente (“to be” en Inglés) tiene dos traducciones en el lenguaje destino (“ser” y “estar” en Español), o</p> </li> <li dir="ltr"> <p dir="ltr">un pronombre en el lenguaje fuente (“they” en Inglés) tiene dos traducciones en el lenguaje destino (“ellas” y “ellos” en Español).</p> </li> </ul> <ul> <li dir="ltr"> <p dir="ltr">El enfoque ‘Interlingua’, en el cual, además del análisis léxico, sintáctico y morfológico, se realizan también el semántico y el pragmático, y se construye una “representación interlingüística” (por ejemplo, en Esperanto) rica en elementos para permitir generar una traducción de alta calidad.</p> </li> <li dir="ltr"> <p dir="ltr">Se han desarrollado también soluciones parciales como los “Restricted Languages”, que son lenguajes naturales simplificados altamente esquematizados y enfocados a un dominio específico, permitiendo con ello realizar traducciones de muy alta calidad.</p> </li> </ul> <p>&nbsp;</p> <p dir="ltr">(Después de lo anterior, qué no podría preguntarse uno: si el agente me entendiera a mí en Español y a ti en Alemán, en realidad “entendería” los dos idiomas; ¿por qué no habría de funcionar como nuestro traductor?)</p> <h3>El aspecto formal</h3> <p dir="ltr">Aún cuando en nuestra primera columna mencionamos un enfoque sobre lenguajes formales llamado Sistemas Lindenmayer (proveniente de la Biología), dado nuestro interés en encontrar mecanismos para eficientar el desarrollo de software, en números posteriores estudiamos los lenguajes formales utilizando principalmente los trabajos sobre gramáticas del lingüista Noam Chomsky, las cuales se conocen como Gramáticas Estructuradas por Frase, y en un número reciente presentamos una jerarquía de las mismas. Se presume que, en esa jerarquía, los lenguajes naturales se encuentran en la clase de los Lenguajes Sensibles al Contexto.</p> <p dir="ltr">En realidad, las Gramáticas Estructuradas por Frase son un tipo particular de las llamadas Gramáticas Generativas, que son sistemas (“recursivos”) de reglas provenientes del trabajo en la Lógica Matemática.</p> <p dir="ltr">Algunos de los enfoques más relevantes que han sido utilizados para abordar las Gramáticas Generativas son:</p> <ol> <li dir="ltr"> <p dir="ltr">Gramáticas Categóricas (“C-Grammars”): desarrolladas inicialmente en 1929 por el polaco Lesniesvsky. Aplicadas al los natural lenguajes por primera vez por Bar-Hillel en 1953.</p> </li> <li dir="ltr"> <p dir="ltr">Gramáticas Estructuradas por Frase (PS-Grammars): basadas en los “Rewrite Systems” de Emil Post desarrollados en 1936, que fueron aplicadas a los lenguajes naturales por primera vez por Chomsky en 1957.</p> </li> <li dir="ltr"> <p dir="ltr">Gramáticas Asociativas-por-la-Izquierda (Left-Assotiative-Grammars): desarrolladas en 1985 por Roland Hausser especialmente para procesar lenguajes naturales.</p> </li> </ol> <p dir="ltr">Los dos primeros enfoques presentan el problema de que los recursos requeridos (tiempo y memoria) para hacer el procesamiento de lenguajes naturales son demasiado grandes como para llevarlos a la práctica. El tercero muestra algunas bondades al respecto.</p> <p dir="ltr">Formalmente, una Gramática-LA (del Inglés Left-Associative Grammar, LAG) es una séptupla de la forma:</p> <p>〈 W, C, LX, CO, RP, SI , SF 〉 &nbsp;&nbsp;&nbsp;donde&nbsp;</p> <p>W&nbsp;es un conjunto finito de llamadas Word surfaces;&nbsp;</p> <p>C es un conjunto finito de Category segments ;</p> <p dir="ltr">L⊃ &nbsp;( W×C<sup>+ </sup>) es un conjunto finito conteniendo el Lexico) ;</p> <p dir="ltr">CO= ( co<sub>1</sub>, …, co<sub>n-1 </sub>) es una secuencia finita de funciones recursivas totales (entiéndase “programas”) de (C<sup>* </sup>×C<sup>+</sup>) a (C<sup>* </sup>∪{⊥}) &nbsp;llamadas Categorial Operations ;</p> <p dir="ltr">RP= ( rp<sub>1</sub>, …, rp<sub>n-1 </sub>) es una secuencia finita ( igualmente larga que CO ) de subconjuntos de n &nbsp;( donde n = { i | 0 ≤ i &lt; n} ) &nbsp;llamada Rule Packages ;</p> <p dir="ltr">S<sub>I</sub>= { ( c<sub>s1</sub> &nbsp;&nbsp;rp<sub>s1 </sub>) … ( c<sub>sk </sub>&nbsp;&nbsp;rp<sub>sk </sub>) } es un conjunto finito de eStados Initiales, donde cada c∈C+ y cada rp es un subconjunto de n llamado paquete de reglas de inicio;</p> <p dir="ltr">S<sub>F</sub>= { ( c<sub>f1</sub> &nbsp;&nbsp;rp<sub>f1 </sub>) … ( c<sub>fk </sub>&nbsp;&nbsp;rp<sub>fk </sub>) } es un conjunto finito de eStados Finales , donde cada c∈C<sup>*</sup> y cada rp ∈RP .</p> <p>&nbsp;</p> <p dir="ltr">Así como con las Gramáticas Estructuradas por Frase de Chomsky que estudiamos, &nbsp;en el conjunto de lenguajes generados por Gramáticas-LA también tenemos subclases:</p> <ul> <li dir="ltr"> <p dir="ltr">Las Gramáticas-LAgenerales, o A-LAGs, corresponden a la definición de arriba.</p> </li> <li dir="ltr"> <p dir="ltr">Las Gramáticas-LA limitadas (Bounded) linealmente, o B-LAGs (LAGs), son la subclase de las A-LAGs en las cuales la longitud de las categorías está limitada linealmente con respecto a la longitud de la cadena de entrada.</p> </li> <li dir="ltr"> <p dir="ltr">Las Gramáticas-LA limitadas por una Constante, o C-LAGs, son la subclase de las B-LAGs en las cuales la cantidad de cálculos requerida por operaciones categóricas individuales está limitada por una constante.</p> </li> </ul> <p dir="ltr">Dentro de estas C-LAGs tenemos las subclases de C3-LAGs , C2-LAGs , y C1-LAGs .</p> <p>&nbsp;</p> <p dir="ltr">La siguiente es la relación de las LAGs con la Jerarquía de Chomsky (incluimos algunos aspectos de rendimiento, que eventualmente abordaremos en números posteriores).</p> <p dir="ltr">El conjunto de Gramáticas-LA…</p> <ul> <li dir="ltr"> <p dir="ltr">generales o A-LAGs, aceptan y generan todos los Lenguajes Recursivos (o “Decidibles”), algo relevante, pues como vimos en un número anterior, en la Jerarquía de Chomsky no había un tipo de Gramática que definiera este tipo de lenguajes.</p> </li> <li dir="ltr"> <p dir="ltr">bounded o B-LAGs, aceptan y generan todos los Lenguajes Sensibles al Contexto (LSC).</p> </li> <li dir="ltr"> <p dir="ltr">constant o C-LAGs, constan de 3 subclases:</p> </li> </ul> <ul> <li dir="ltr"> <p dir="ltr">C3-LAGs contiene los Lenguajes Libres de Contexto (LLC) más complejos y algunos LSC que son “NP-Complete” (la clase de problemas para los cuales no se han descubierto algoritmos eficientes que los resuelvan, y se piensan que no existen). Para procesar estos lenguajes se requiere tanto tiempo que los vuelve prohibitivos en la práctica (técnicamente requieren “tiempo polinomial”, lo que significa que pueden procesarse en un tiempo expresado como un polinomio de grado ≥ 2 en función de la cantidad de datos de entrada).</p> </li> <li dir="ltr"> <p dir="ltr">C2-LAGs contiene varios LLC “no-deterministas” (su procesamiento implica backtracking) y varios LSC simples. Para procesarlos también se requiere tiempo polinomial.</p> </li> <li dir="ltr"> <p dir="ltr">C1-LAGs contiene todos los LLC “deterministas” (no requieren backtracking para procesarlos) y varios LSC simples. Su procesamiento sólo requiere tiempo lineal, lo que los vuelve muy útiles en la práctica.</p> </li> </ul> <p dir="ltr">Se piensa que en esta jerarquía, los lenguajes naturales están dentro de la clase C1-LAG, lo cual significaría que su procesamiento puede realizarse de manera práctica, aún con altos volúmenes de input.</p> <p dir="ltr">Ojalá y tengamos pronto una C1-LAG para el Español, que nos permita desarrollar verdaderos sistemas cognitivos y entendernos con las computadoras en nuestra lengua materna! &nbsp;</p> <p dir="ltr">Sistemas que nos hagan buenas traducciones, nos ayuden en el trabajo, y de paso, ¡ayuden a los niños con su tarea! &nbsp;:-)))) &nbsp;</p> <p dir="ltr">(¿Ven ahora por qué decimos que la Lingüística Computacional es de largo alcance? &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:-))) &nbsp;)</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><span>Luis Vinicio León Carrillo es Director General y co-fundador de e-Quallity. Fue profesor-investigador en la universidad ITESO. Realizó estudios de posgrado en Alemania, durante los cuales abordó temas relacionados con la prueba de software y los métodos y lenguajes formales.</span></p> </div> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> <div class="field field--name-field-tags field--type-entity-reference field--label-above field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label">Tags</h3> <ul class='links field__items'> <li><a href="/tags/lenguajes" hreflang="und">lenguajes</a></li> </ul> </div> Fri, 23 Dec 2016 01:54:50 +0000 ana2lp 6941 at https://sg.com.mx https://sg.com.mx/revista/54/la-prueba-software-y-los-special-purpose-languages-0#comments El Caso de PHP y los Salarios https://sg.com.mx/revista/53/el-caso-php-y-los-salarios <span class="field field--name-title field--type-string field--label-hidden">El Caso de PHP y los Salarios</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/php_salarios.jpg" width="654" height="720" 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/47654" lang="" about="/user/47654" typeof="schema:Person" property="schema:name" datatype="" class="username">ana2lp</a></span> <span class="field field--name-created field--type-created field--label-hidden">Thu, 12/22/2016 - 19:35</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/53" hreflang="und">SG #53</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/columna-invitada" hreflang="und">Columna invitada</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="/sgvirtual/speakers/basilio-brice-o" hreflang="und">Basilio Briceño</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"><span style="font-size: 13.008px;">Como programador uno se pregunta ¿en qué lenguaje debo invertir mi tiempo? es cierto que no existe el lenguaje perfecto y que la elección usualmente es basada en preferencias personales o en el tipo de problema a resolver, sin embargo, existe otro punto a tomar en cuenta: el financiero, o en términos simples, ¿en qué lenguaje debo especializarme para ser mejor pagado?</span></p><p dir="ltr"><span>Y es donde nos preguntamos ¿por qué muchos empleadores pagan más a programadores especializados en ciertos lenguajes que en otros? ¿qué es más importante a ser tomado en cuenta a la hora de establecer tabuladores salariales: la experiencia del programador, lo complejo de la tarea a realizar, o el lenguaje de programación a usar? Si se contrata a un carpintero, no se le contrata debido a que utiliza martillos Stanley o destornilladores Craftsman, se le contrata porque sabe hacer bien su trabajo y da resultados. Si lo mismo aplícase a los programadores, entonces ¿por qué muchas empresas en México aún insisten en pagar tarifas basadas en el lenguaje de programación?</span></p><p dir="ltr"><span>Y ¿qué tiene que ver PHP en lo anterior? pues resulta que es uno de los lenguajes con el que los programadores salen más afectados en términos financieros. PHP es un lenguaje interpretado fácil de aprender, flexible y se puede desarrollar con él en tiempos muy cortos, además es genial para utilizarse como pegamento entre aplicaciones. Siendo así, ¿por qué es prácticamente considerado inferior?</span></p><p dir="ltr"><span>Técnicamente el lenguaje nació para desarrollo web, fue creciendo y adaptándose a las necesidades de los desarrolladores. Muchos desarrolladores expertos en otros lenguajes lo critican por haberse vuelto popular muy rápido sin tener una base tan sólida y reglas estrictas como en los lenguajes de uso general, solo que en su afán por establecer que PHP está mal olvidan no fue planeado como un lenguaje de uso general, sino para facilitar el desarrollo web.</span></p><p dir="ltr"><span>Entonces ¿PHP es técnicamente inferior? No, el motivo por el que es criticado está principalmente basado en un círculo vicioso generado por los programadores novatos. ¿Cómo es esto?, cuando un novato generalmente no presta atención en la calidad de sus entregables, se enfoca únicamente en terminar lo que le piden sin añadir ningún valor agregado a su trabajo, ¿el resultado? programas en estilo código spaghetti, estructuras mal aplicadas, carencia de optimizacion, entradas de datos inseguras, y un sinfín de “características” más.</span></p><p dir="ltr"><span>Lo anterior obviamente repercutirá en el desempeño del programa y en el costo de mantenerlo. Sin embargo, curiosamente el enfoque no es dirigido hacía el programador novato, sino sobre el lenguaje.</span></p><p dir="ltr"><span>Así entonces mientras más novato el programador peor calidad de código, ante inferior calidad más desconfianza se genera en el lenguaje, al existir desconfianza en el lenguaje menor es la apuesta en términos salariales, a menores salarios los programadores con experiencia y enfoque en la calidad se interesan menos en el lenguaje, a menor cantidad de programadores con experiencia mayor contratación de programadores novatos, a mayor cantidad de programadores novatos peor calidad de código y de ese modo el ciclo va degradando el valor salarial sobre el uso del lenguaje.</span></p><p dir="ltr"><span>Por si fuera poco, el programador novato llega a creer que lo que hace es todo lo que se puede hacer con PHP, incluso hay quienes colocan en su currículo el adjetivo “experto en PHP” o “nivel avanzado en PHP”, y al considerarse a sí mismos expertos no se esfuerzan en aprender más, ni en mejorar la calidad de su trabajo. Sin embargo más allá de sólo exponer el problema ¿cómo se pudiera convertir el círculo vicioso en uno virtuoso?</span></p><p dir="ltr"><span>Mientras mayor calidad y valor agregado ofrezca el programador, mejores resultados verá el empleador, a mejores resultados el empleador debe ofrecer un mejor salario, con mejores salarios en el mercado, más programadores con experiencia y enfoque en calidad se verán interesados, así como los programadores novatos en mejorar la calidad de su trabajo para llegar obtener dichos salarios, a mayor cantidad de programadores con experiencia, mayor calidad en el código y mayor valor agregado, y de ese modo el ciclo va enriqueciendo la calidad de los entregables y el valor salarial.</span></p><p dir="ltr"><span>Un buen punto de arranque para comenzar a cambiar el ciclo es reconocer en donde se encuentra actualmente el programador y fijar metas para mejorar. Basado en lo anterior surgió en el grupo de programadores de “PHP México” una iniciativa para definir un tabulador sencillo basado en los conocimientos y capacidades de los programadores, lo presento a continuación.</span></p><ul><li dir="ltr"><p dir="ltr"><span>Novato. Generalmente escribe PHP, SQL y HTML/JS/CSS en el mismo archivo y acostumbra a copiar y pegar cualquier cosa que se encuentra en internet que parecer hacer lo que se le pidió entregar y que según dicen los foros es la solución.</span><span><br class="kix-line-break" /><br class="kix-line-break" /></span></p></li><li dir="ltr"><p dir="ltr"><span>Aprendiz. Ha aceptado que necesita mejorar y decide aprender mejores prácticas y aplicarlas. Consulta en foros no para buscar codigo para copiar y pegar, sino para analizarlo y pregunta después de haber investigado por cuenta propia.</span><span><br class="kix-line-break" /><br class="kix-line-break" /></span></p></li><li dir="ltr"><p dir="ltr"><span>Junior. Sabe qué son los patrones de diseño y los utiliza, entiende qué es MVC, REST, CRUD, ORM, SQL Injection, XSS, I/O Sanitization, etcétera, y usa estas y otras técnicas, así como mejores prácticas; es excelente aprendiendo y usando APIs de terceros.</span><span><br class="kix-line-break" /><br class="kix-line-break" /></span></p></li><li dir="ltr"><p dir="ltr"><span>Senior. Es capaz de desarrollar sus propias herramientas y APIs; es consciente de cómo funciona PHP internamente, está sumamente interesado en el desempeño de las aplicaciones más allá de su facilidad de desarrollo; no está satisfecho con el funcionamiento de todas las herramientas y APIs de terceros tal cual vienen y siempre busca innovar y crear cosas que mejoren el desempeño, faciliten su trabajo y la velocidad de sus entregables; contribuye con código en diferentes proyectos y comunidades; entiende la frase “PHP es el frontend de su backend”.</span><span><br class="kix-line-break" /><br class="kix-line-break" /></span></p></li><li dir="ltr"><p dir="ltr"><span>Master. Es capaz de desarrollar sus propias extensiones para PHP en C, contribuye a PECL y normalmente se dedica a mejorar el desempeño de aplicaciones de alto rendimiento. Conoce bien el lenguaje Hack, su origen y diferencias respecto a PHP.</span><span><br class="kix-line-break" /><br class="kix-line-break" /></span></p></li><li dir="ltr"><p dir="ltr"><span>Core. Contribuye al desarrollo del core de PHP o el motor de Zend; contribuye en algunas extensiones y herramientas públicas; es un ponente frecuente en conferencias internacionales y es usual ver su nombre en PECL y en los créditos en cambios de versión de PHP.</span></p></li></ul><p dir="ltr"><span>Respecto de los salarios, estos pueden variar dependiendo la zona, los siguientes son sugeridos con base a los costos de vida de las principales ciudades de México en Diciembre de 2016:</span></p><ul><li dir="ltr"><p dir="ltr"><span>Novato - hasta 10 mil pesos.</span></p></li><li dir="ltr"><p dir="ltr"><span>Aprendiz - de 10 a 18 mil pesos.</span></p></li><li dir="ltr"><p dir="ltr"><span>Junior - de 18 a 30 mil pesos.</span></p></li><li dir="ltr"><p dir="ltr"><span>Senior - de 30 a 50 mil pesos.</span></p></li><li dir="ltr"><p dir="ltr"><span>Master - de 50 mil en adelante.</span></p></li></ul><p dir="ltr"><span>Ahora bien, no todo recae en el programador. El empleador debe ser consciente de este tabulador y aplicarlo o mejorarlo con base a los resultados de sus programadores, así como participar en la implementación de medidas que contribuyan a la mejora continua de las habilidades de sus programadores. De hacerse así es muy probable que se logren mejorar la calidad del software desarrollado con PHP y que se incrementen los beneficios mutuos.</span></p><p><span>&nbsp;</span></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><span>Basilio ha contribuido por más de 15 años con diversas organizaciones como desarrollador, líder técnico, administrador de sistemas, líder de operaciones web, Jefe de Departamento, entre otras responsabilidades. Desde hace 4 años colabora con empresas de venta al detalle en Estados Unidos como GAP, Kohls, LVMH, entre otras automatizando procesos para reducir el tiempo de liberación al mercado de soluciones de comercio electrónico bajo un esquema DevOps utilizando diversas herramientas de integración y entrega continuas.</span></p></div> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> <div class="field field--name-field-tags field--type-entity-reference field--label-above field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label">Tags</h3> <ul class='links field__items'> <li><a href="/buzz/tags/php" hreflang="und">PHP</a></li> <li><a href="/tags/salarios" hreflang="und">salarios</a></li> </ul> </div> Fri, 23 Dec 2016 01:35:01 +0000 ana2lp 6940 at https://sg.com.mx https://sg.com.mx/revista/53/el-caso-php-y-los-salarios#comments 5 Puntos Clave Para Construir una Comunidad en Línea https://sg.com.mx/revista/53/5-puntos-clave-para-construir-una-comunidad-l-nea <span class="field field--name-title field--type-string field--label-hidden">5 Puntos Clave Para Construir una Comunidad en Línea</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/comunidad_linea.jpg" width="960" height="720" 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/47654" lang="" about="/user/47654" typeof="schema:Person" property="schema:name" datatype="" class="username">ana2lp</a></span> <span class="field field--name-created field--type-created field--label-hidden">Thu, 12/22/2016 - 19:23</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/53" hreflang="und">SG #53</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/columna-invitada" hreflang="und">Columna invitada</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="/sgvirtual/speakers/juan-lombana" hreflang="und">Juan Lombana</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"><span style="font-size: 13.008px;">Crear una comunidad en línea desde cero es todo un reto. La buena noticia es que si estás en la etapa del inicio puedes construirla de la manera correcta desde un principio.</span></p><p dir="ltr"><span>Mi nombre es Juan Lombana y fui parte del equipo responsable de crear la comunidad en línea de Google Partners para varios países de Latinoamérica. Aunque esta tarea nos llevó mucho tiempo y esfuerzo, terminamos por construir una comunidad gigantesca.</span></p><p dir="ltr"><span>Al usar el adjetivo “gigantesca” para referirme a la comunidad de Google Partners, no únicamente me refiero a su tamaño por número de miembros, sino que a las muchas interacciones entre estos miembros, que en mi opinión, son el punto más importante sobre una comunidad.</span></p><p dir="ltr"><span>Así que después de esta grata experiencia comparto aquí los que considero son 5 puntos clave para construir una comunidad en línea.</span></p><h3 dir="ltr"><span>Define tu identidad con la comunidad</span></h3><p dir="ltr"><span>El primer punto que necesitas entender es: ¿Quién serás tú en esa comunidad? Puedes ser identificado como una marca o usar un acercamiento más personal y escribir en nombre de ti mismo. Me parece que la primera opción es mucho mejor para grandes marcas y la segunda para expertos en determinados temas.</span></p><h3 dir="ltr"><span>Enfócate en ayudar</span></h3><p dir="ltr"><span>La gran mayoría de las personas que están construyendo una comunidad en línea lo hacen con el fin de crecer su negocio, lo sé, lo sé. Sin embargo tienes que pensar en tu comunidad como una manera de ayudar a la gente, cuando los ayudes sin pedirles nada a cambio, algunos te comprarán y algunos no lo harán, pero lo importante es que estarás ahí para ellos de manera incondicional. </span></p><p dir="ltr"><span>Las comunidades son para ayudar, no para vender. Si quieres hacer alguna actividad de marketing que esté orientada a ventas, el SEO o el SEM son una mejor opción para ti.</span></p><h3 dir="ltr"><span>Se proactivo, no reactivo</span></h3><p dir="ltr"><span>Seguramente tú mismo sigues alguna página o eres miembro de alguna comunidad en línea. A cualquier persona le gusta seguir páginas que publican contenido interesante, responden rápido a los comentarios y usan cada aspecto de las redes como las encuestas, concursos y diferentes tipos de contenido.</span></p><p dir="ltr"><span>Si quieres construir una comunidad que participe y esté altamente enganchada, tú tienes que ser el primero en poner ese ejemplo. </span></p><h3 dir="ltr"><span>Sé original</span></h3><p dir="ltr"><span>Cualquier persona, de verdad cualquiera, puede abrir una página de Facebook y compartir contenido que viene de otras fuentes, o usar Twitter únicamente para retwittear. Ese tipo de estrategia no te va a llevar muy lejos a la hora de crear una comunidad, no añade valor y te convierte en un ladrón de ideas.</span></p><p dir="ltr"><span>Para realmente añadir valor tienes que compartir contenido que nadie más haya compartido nunca, contenido producido por ti, con esto no quiero decir que este contenido tiene que ser de compleja producción, simplemente original. </span></p><h3 dir="ltr"><span>La agenda es la reina</span></h3><p dir="ltr"><span>Aunque la frase original es “El contenido es rey” realmente pienso que lo segundo más importante es tener un plan de contenidos y fechas. Al hacer esto siempre estás interactuando con tu comunidad y además lo haces de manera que las personas se acostumbran a la frecuencia con la que compartes contenido, ya sea una vez al día, a la semana o al mes…una agenda crea orden para ti y para todos los que son parte de la comunidad.</span></p><p dir="ltr"><span>Necesitas tener un plan de al menos un mes de contenido antes de abrir tu comunidad, siempre es bueno tener un equipo con reservas.</span></p><h3 dir="ltr"><span>Conclusión</span></h3><p dir="ltr"><span>Si bien, estos cinco puntos te deberían ayudar bastante a la hora de crear tu comunidad en línea, me encantaría advertirte que esto requiere mucho más dedicación de lo que parece.</span></p><p dir="ltr"><span>Tienes que estar muy comprometido con la meta y el motivo de esta comunidad por un largo tiempo y ser sumamente paciente, asegúrate de que tu agenda te permite este tiempo.</span></p><p dir="ltr"><span>Por otro lado, si realmente estás comprometido, no dejes que nada ni nadie te detenga ya que cuando logras crear una comunidad enganchada en línea, el sentimiento es invaluable.</span></p><p dir="ltr"><span>Si tienes alguna pregunta, por favor contáctame en </span><a href="https://twitter.com/Juan_Lombana"><span>@Juan_Lombana</span></a><span>.</span></p><p dir="ltr">&nbsp;</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><span>Juan Lombana (@juan_lombana) es Google Expert en Marketing y Google Regional Trainer para México y escribe en su blog sobre marketing digital Mercatitlán.&nbsp;</span><a href="http://www.mercatitlan.com">www.mercatitlan.com</a></p></div> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> <div class="field field--name-field-tags field--type-entity-reference field--label-above field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label">Tags</h3> <ul class='links field__items'> <li><a href="/buzz/tags/comunidad" hreflang="und">Comunidad</a></li> </ul> </div> Fri, 23 Dec 2016 01:23:21 +0000 ana2lp 6939 at https://sg.com.mx https://sg.com.mx/revista/53/5-puntos-clave-para-construir-una-comunidad-l-nea#comments Cuatro Maneras en que la Inteligencia Artificial Cambiará Prácticamente Todo https://sg.com.mx/revista/53/cuatro-maneras-que-la-inteligencia-artificial-cambiar-pr-cticamente-todo <span class="field field--name-title field--type-string field--label-hidden">Cuatro Maneras en que la Inteligencia Artificial Cambiará Prácticamente Todo</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/robot-507811_960_720.jpg" width="960" height="678" 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/47654" lang="" about="/user/47654" typeof="schema:Person" property="schema:name" datatype="" class="username">ana2lp</a></span> <span class="field field--name-created field--type-created field--label-hidden">Thu, 12/22/2016 - 19: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/53" hreflang="und">SG #53</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="/sgvirtual/speakers/enrique-orteg-n" hreflang="und">Enrique Ortegó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"><span style="font-size: 13.008px;">La película Volver al Futuro predijo de manera acertada muchas cosas que el día de hoy son realidad. Y aunque nos faltan algunas, hoy podemos contar con autos que se conducen solos, robots, y bots que responden preguntas de manera humana, recomendaciones inteligentes sobre cuando dejar un lugar para llegar a tiempo al otro tomando en cuenta el clima y el tráfico.</span></p> <p dir="ltr"><span>Muchas de las marcas que utilizamos en nuestro día nos conocen perfectamente bien y nos dan recomendaciones proactivamente. &nbsp;Google predice tus palabras en la barra de búsqueda, Facebook te ofrece noticias personalizadas, Amazon conoce todas tus preferencias detalles de compra (desde libros hasta artículos personales), Netflix es capaz de inventar géneros completamente nuevos de acuerdo a tus preferencias (sin importar que tan nostálgicas sean).</span></p> <p dir="ltr"><span>Todas esas tecnologías están impulsadas por la inteligencia artificial (IA): sistemas complejos que logran procesar y analizar todos los datos que nuestra sociedad genera y almacena. Estos sistemas son capaces de aprender, responder y predecir en base a la cantidad más grande de datos en la historia, y la cual solo seguirá creciendo.</span></p> <p dir="ltr"><span>No fue fácil llegar hasta aquí. Como lo comenta el artículo del New York Times “Artificial Intelligence Swarms Silicon Valley on Wings and Wheels” [1] , el interés en la IA en los años 80 dio lugar a un pequeño boom. Sin embargo, debido a que carecía de un uso viable para los negocios, se produjo el “invierno de la IA”. Hoy, la mayor cantidad de datos y el inmenso poder de procesamiento han hecho posible la IA —esta vez en serio. Como resultado, las inversiones en IA están en auge. Como menciona The Times:</span></p> <p dir="ltr"><span>“El financiamiento para empresas emergentes de IA ha aumentado más del cuádruple a $681 millones de dólares en el 2015, de $145 millones de dólares en el 2011, según la compañía de investigación de mercado CB Insights. La compañía estima que las nuevas inversiones llegarán a $1,200 millones de dólares este año, lo que representa un incremento de 76% respecto al año pasado”. </span></p> <p><span>Actualmente existen muchos usos para esta tecnología, pero creo que estamos solo rascando la superficie sobre el potencial impacto que puede tener en nuestras vidas. &nbsp;La combinación de la conectividad a internet y la propagación de dispositivos móviles resulta en miles de millones de aparatos conectados que se pueden beneficiar de la IA, al servicio de la humanidad. &nbsp;<span> </span></span></p> <p dir="ltr"><span>Nuestra vida está a punto de cambiar de una manera muy rápida. Estas son cuatro maneras en que la IA lo cambiará todo:</span></p> <h4 dir="ltr"><span>1. El Internet de las Cosas</span></h4> <p dir="ltr"><span>¿Has notado cómo las computadoras son cada vez más pequeñas y, a la vez, más inteligentes? También son más baratas. Hoy en día, hay una computadora dentro de cualquier cosa con un botón de encendido/apagado. Todos estos nuevos dispositivos inteligentes —desde tostadores hasta cepillos dentales, termostatos, focos y automóviles— se conectan en red y se comunican entre sí, con las empresas y con los consumidores. ¿Por qué no habría tu auto de avisarle a tu casa que estás por llegar para que tu casa le diga al horno que se precaliente a la temperatura adecuada para ese pescado que ya sabe que acabas de comprar porque lo compraste con tu teléfono, y tu teléfono se lo informó? Detrás de cada dispositivo hay un cliente, y la próxima generación de clientes esperamos una experiencia conectada e inteligente. Nos referimos a muchas cosas conectadas: 6,000 millones de cosas que, afirma Gartner, requerirán soporte en el 2018. Esos miles de millones de cosas conectadas significan volúmenes gigantescos de datos de clientes. Las empresas necesitan ser inteligentes en cuanto a la manera en que recopilan, digieren y aplican esos datos, que son el alma del Internet de las Cosas… siempre y cuando se puedan utilizar en forma adecuada y al servicio del cliente.</span></p> <h4 dir="ltr"><span>2. Datos y análisis inteligente</span></h4> <p dir="ltr"><span>Se está produciendo una brecha enorme entre las compañías y los clientes. De todos los datos que los clientes crean, menos del 1% se analizan, de ahí que el 77% de los clientes afirmen que no sienten que las empresas con las que interactúan tienen una relación con ellos. Existen tantas maneras de leer los datos y tantas conclusiones a las cuales llegar sobre los hábitos y las preferencias de los clientes, y, sin embargo, la mayoría de esas posibles perspectivas se quedan a medio camino porque las empresas no dan prioridad al análisis de esos datos. Las nuevas herramientas revelan perspectivas útiles sobre el cliente. Esas perspectivas existen a lo largo de un espectro de inteligencia: las herramientas más básicas requieren que extraigas información de ellas, mientras que las herramientas más inteligentes te entregan información y anticipan lo que quieres saber. Para éstas últimas utilizamos el aprendizaje automático.</span></p> <h4 dir="ltr"><span>3. Aprendizaje automático</span></h4> <p dir="ltr"><span>Con el aprendizaje automático, los sistemas de cómputo pueden tomar todos esos datos del cliente y complementarlos, a fin de operar no sólo con lo que se ha programado, sino también para adaptarse a los cambios. Los algoritmos se adaptan a los datos, lo que les permite desarrollar conductas previamente no programadas. Aprender a leer y reconocer el contexto significa que un asistente digital podría escanear los mensajes de correo electrónico y extraer lo que necesitas saber. Inherente a ese aprendizaje es la capacidad de realizar predicciones sobre el comportamiento futuro, conocer al cliente de manera más íntima y ser no nada más proactivo, incluso prescriptivo. &nbsp;</span></p> <h4 dir="ltr"><span>4. Predicción</span></h4> <p dir="ltr"><span>Los datos masivos y el análisis producen patrones, y cuando las máquinas más inteligentes son capaces de leer patrones y aprender de ellos, pueden descifrar lo que sigue, deducir en lugar de asumir, y concluir en lugar de adivinar. La promesa de un “asistente digital” no es la voz robótica que responde tus preguntas sobre el clima y los horarios de cine, sino que sabe tus patrones, aprende de ellos y nos recuerda que salgamos en ese momento para romper nuestro récord de llegar dos minutos tarde el 80% del tiempo. El sistema necesita alimentarse, y de ahí partirán máquinas más inteligentes, dispositivos conectados y la capacidad de predecir nuestras necesidades y deseos. Entre más información de calidad proporcionemos al sistema, mayor será su inteligencia y capacidad de servirnos.</span></p> <p dir="ltr"><span>En todas esas áreas, la IA nos ayudará a trabajar de manera más eficiente, al igual que nos permite etiquetar a gente en una foto de Facebook. El “invierno de la IA” no volverá a repetirse, y las compañías de todos tamaños se beneficiarán de ella. &nbsp;Desde mi punto de vista, en el caso de la Inteligencia Artificial (IA) el invierno no está por llegar, sino que el invierno ya acabó. </span></p> <p dir="ltr"><span>Referencias</span></p> <p dir="ltr"><a href="http://mobile.nytimes.com/2016/07/18/technology/on-wheels-and-wings-artificial-intelligence-swarms-silicon-valley.html?_r=0"><span>http://mobile.nytimes.com/2016/07/18/technology/on-wheels-and-wings-artificial-intelligence-swarms-silicon-valley.html?_r=0</span></a></p> <p dir="ltr">&nbsp;</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><span>Enrique&nbsp;Ortegón es director de la región Hispanoamérica y Caribe en Salesforce.</span></p> </div> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> <div class="field field--name-field-tags field--type-entity-reference field--label-above field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label">Tags</h3> <ul class='links field__items'> <li><a href="/buzz/tags/inteligencia-artificial" hreflang="und">Inteligencia Artificial</a></li> </ul> </div> Fri, 23 Dec 2016 01:15:20 +0000 ana2lp 6938 at https://sg.com.mx https://sg.com.mx/revista/53/cuatro-maneras-que-la-inteligencia-artificial-cambiar-pr-cticamente-todo#comments Radar SG53 https://sg.com.mx/revista/53/radar-sg53 <span class="field field--name-title field--type-string field--label-hidden">Radar SG53</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/radar_1.png" width="850" height="512" 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">Thu, 12/22/2016 - 19:01</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/53" hreflang="und">SG #53</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/lo-que-viene" hreflang="und">Lo que viene</a></li> </ul> </div> <div class="text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><h3 dir="ltr">Visual Studio Mobile Center</h3><p dir="ltr">Durante su evento para desarrolladores Connect(); 2016, Microsoft realizó una gran cantidad de anuncios y lanzamientos. Algunos fueron sobre nuevas versiones de productos (C# 7, Visual Studio 2017), otros sobre la disponibilidad en otros sistemas operativos de herramientas tradicionalmente para Windows (ej. Visual Studio para Mac, SQL Server para Linux), y otros tantos sobre nuevas herramientas.</p><p dir="ltr">De las nuevas herramientas, una que nos llama la atención es Visual Studio Mobile Center. Esta herramienta provee un conjunto de servicios en la nube para construir y gestionar aplicaciones móviles. Entre las capacidades que incluye están: construir (build) aplicaciones automáticamente con cada pull request, testing automatizado en dispositivos reales, distribución automática de nuevas versiones a usuarios beta, monitoreo de la aplicación en tiempo de ejecución para detectar fallas, analytics de uso de tus apps, backend as a service (BaaS) con servicios como autenticación de usuarios, almacenamiento y sincronización de datos offline. Visual Studio Mobile Center actualmente soporta apps iOS y Android hechas con Swift, Objective-C, Java, Xamarin y React Native.</p><h3 dir="ltr">&nbsp;</h3><h3 dir="ltr">AWS Greengrass</h3><p dir="ltr">Amazon Web Services lanzó Greengrass, una tecnología que permite que dispositivos IoT puedan operar localmente servicios de cómputo distribuido, mensajería y cacheo de datos de forma segura y sin estar conectados a internet.</p><p dir="ltr">Greengrass opera bajo la idea de tener grupos de dispositivos IoT, dentro de los cuales hay un dispositivo central y múltiples dispositivos satélite. El dispositivo central ejecuta un componente de software llamado Greengrass Core, que es un motor de ejecución de AWS Lambda, y opera como proxy hacia los servicios en la nube de AWS para proveer capacidades como almacenamiento de datos a largo plazo y gestión remota de los dispositivos. Los dispositivos satélite utilizan el IoT Device SDK —un conjunto de librerías en C++—, para comunicarse con el dispositivo central e invocar sus servicios. Todo está diseñado para operar de manera offline, y solamente el dispositivo central necesitaría conectarse a Internet ocasionalmente para sincronizar.</p><p dir="ltr">Greengrass se puede configurar para filtrar los datos recibidos de los dispositivos satélite y solamente transmitir a la nube aquellos que nos interesen. Greengrass gestiona la autenticación y toda la comunicación entre dispositivos y hacia la nube está cifrada. AWS Greengrass todavía no está disponible al público en general pero puedes solicitar acceso a la edición previa.</p><p dir="ltr"><a href="https://aws.amazon.com/greengrass">https://aws.amazon.com/greengrass</a></p><p dir="ltr">&nbsp;</p><h3>Netflix Conductor</h3><p dir="ltr">Conductor es un orquestador de microservicios que Netflix recientemente ha hecho disponible como software libre. Conductor fue desarrollado internamente en Netflix y es utilizado para ejecutar procesos de negocio de forma automatizada y distribuida. Conductor gestiona la ejecución de flujos de trabajo (workflow) que son definidos utilizando un lenguaje de dominio específico (DSL) basado en JSON.</p><p dir="ltr">Uno de los componentes centrales de Conductor es un servicio de máquina de estados llamado Decider, que opera una cola distribuida para gestionar las tareas. La comunicación se realiza por medio de APIs sobre HTTP. Conforme se van dando eventos en el flujo de trabajo, Decider combina la definición del workflow con el estado actual de ejecución para identificar el estado siguiente, programar la ejecución de la tarea y actualizar el estatus.</p><p dir="ltr">Así que si estás considerando implementar una solución costosa de BPM para tu empresa, tal vez valga la pena echarle el ojo a Conductor.</p><p dir="ltr"><a href="https://netflix.github.io/conductor/">https://netflix.github.io/conductor</a></p><p dir="ltr">&nbsp;</p><h3 dir="ltr">Android Things</h3><p dir="ltr">Google ha lanzado Android Things, un sistema operativo para dispositivos IoT que permite a los desarrolladores aprovechar las herramientas y servicios del ecosistema Android para construir aplicaciones IoT.</p><p dir="ltr">Además de las APIs de Android y librerías para acceder servicios de Google, el nuevo sistema operativo contiene una nueva librería llamada Things Support Library, la cual tiene dos APIs importantes: Peripheral I/O API para interactuar con sensores, y User Driver API para extender la funcionalidad de los dispositivos.</p><p dir="ltr">Una de las ventajas principales de Android Things es la integración con el ecosistema Android, permitiendo utilizar los mismos lenguajes, APIs, herramientas y servicios que los desarrolladores ya utilizan para construir aplicaciones móviles Android.</p><p dir="ltr">A la par del lanzamiento de Android Things, se han hecho mejoras a Google Weave, una plataforma y protocolo para comunicación entre dispositivos IoT.</p><p dir="ltr"><a href="https://developer.android.com/things">https://developer.android.com/things</a></p></div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> Fri, 23 Dec 2016 01:01:21 +0000 sg 6937 at https://sg.com.mx https://sg.com.mx/revista/53/radar-sg53#comments Primero el internet de las cosas ¿Y luego? https://sg.com.mx/revista/53/primero-el-internet-las-cosas-y-luego <span class="field field--name-title field--type-string field--label-hidden">Primero el internet de las cosas ¿Y luego?</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/tree-200795_960_720.jpg" width="960" height="678" 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/47654" lang="" about="/user/47654" typeof="schema:Person" property="schema:name" datatype="" class="username">ana2lp</a></span> <span class="field field--name-created field--type-created field--label-hidden">Thu, 12/22/2016 - 18:51</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/53" hreflang="und">SG #53</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/amin-espinoza" hreflang="und">Amin Espinoza</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"><span style="font-size: 13.008px;">Llevo ya un par de años hablando en todo foro que me es posible acerca del Internet de las Cosas (IoT) y he aprendido tres grandes lecciones.</span></p><p dir="ltr"><span>La primera, a todo el mundo le encanta hablar del tema, decir que es el futuro de procesos, que te permitirá ahorrar mucho al automatizar las cosas y todo eso. La realidad es que pocas son las empresas que han demostrado un interés real y lo han llevado a la práctica. Una vez que lo han hecho se dieron cuenta de que el proceso es mucho más complejo de lo que se muestra en la teoría, pero al lograr implementar una solución adecuada si hay un enorme margen de ganancia principalmente en tiempo y en incremento de productividad. De hecho, el mercado en este segmento en México es prácticamente nulo permitiendo una oportunidad fantástica oportunidad para abrir una nueva línea de negocio para muchas compañías.</span></p><p dir="ltr"><span>La segunda es que debemos aprender a diferenciar conceptos, es sumamente fácil diluir las palabras “maker”, “domótica”, “electrónica” e IoT, cada disciplina tiene sus retos propios y un común denominador que te permitirá moverte entre todas ellas sin una gran complejidad. La diferencia radica en los fines, si tu intención es construir una máquina dedicada a una función exclusiva o si quieres ir más allá al recolectar información. En el caso del Internet de las Cosas hay dos grandes fines, la automatización de procesos y el monitoreo remoto.</span></p><p dir="ltr"><span>La tercera y más importante. El Internet de las cosas ha permitido la creación de un perfil híbrido de gran especialidad y con un conjunto de habilidades que permiten llegar al fin esperado. Cuando una persona desea especializarse en IoT debe aprender de electrónica, infraestructura y desarrollo de software. Estas tres áreas pueden implicar por ellas mismas una especialidad sin problema de hecho, debes considerar esto para cualquier escenario que tengas en mente, primero como unificarlas en un solo propósito para comenzar a generar un perfil único, altamente especializado en este tipo de soluciones y que con cierta práctica puede implementar una mejora en virtualmente cada proceso de nuestras vidas, desde el simple hecho de despertar hasta la optimización de cada segundo de nuestro tiempo. Ya después extenderlo a un equipo único que te permita escalar tus proyectos a niveles mucho más altos.</span></p><p dir="ltr"><span>Así que tomando como base estos tres grandes aprendizajes puedo sugerirte tener presente los siguientes datos:</span></p><p dir="ltr"><span>El Internet de las Cosas llegó para quedarse y eso es fácil de notar, no solo a nivel consumidores en donde ahora puedes medir tu ruta recorrida, tu peso, la calidad del funcionamiento de tu auto y muchas cosas más, sino que el mayor nicho de mercado es ver a otras compañías que apreciarán mucho las implementaciones que la tendencia puede dar para evitar pérdidas y acelerar el acceso a la información. La estimación apunta a que un 70% de los proyectos está orientado al modo de negocio “</span><span>Business to business”.</span></p><p dir="ltr"><span>Para el 2020 se tiene estimado un mercado de 1 billón de dólares originados a partir de este tipo de soluciones entre retail y soluciones B2B.</span></p><p dir="ltr"><span>El internet de las cosas es solo la puerta de entrada para nuevas tendencias tecnológicas inspiradas en el enorme manejo de datos obtenidos, después de terminar con el proyecto IoT necesitarás agregar en tu equipo a un analista de Big Data que te permita aprovechar cada bit que tengas almacenado ¡Es sorprendente la cantidad de cosas que podrás controlar e incluso predecir gracias a la mezcla de IoT y Big Data!</span></p><p dir="ltr"><span>Así que no te quedes con este artículo únicamente, comienza a buscar más del tema, nota su enorme crecimiento y popularización con muchas empresas y comienza a buscar ese perfil tan particular que te dará una ventaja descomunal a nivel profesional.</span></p><p><span>&nbsp;</span></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><span>Amín Espinoza es Senior Technical Evangelist en Microsoft México.</span></p></div> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> <div class="field field--name-field-tags field--type-entity-reference field--label-above field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label">Tags</h3> <ul class='links field__items'> <li><a href="/tags/iot" hreflang="und">IoT</a></li> </ul> </div> Fri, 23 Dec 2016 00:51:26 +0000 ana2lp 6936 at https://sg.com.mx https://sg.com.mx/revista/53/primero-el-internet-las-cosas-y-luego#comments Mejores Empresas para Trabajar 2016 https://sg.com.mx/revista/53/mejores-empresas-para-trabajar-2016 <span class="field field--name-title field--type-string field--label-hidden">Mejores Empresas para Trabajar 2016</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/motorcycle-race.jpg" width="1305" height="650" 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/47654" lang="" about="/user/47654" typeof="schema:Person" property="schema:name" datatype="" class="username">ana2lp</a></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 12/19/2016 - 19:51</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/53" hreflang="und">SG #53</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/carrera" hreflang="und">Carrera</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 un mundo dirigido por software, contar con desarrolladores talentosos es una capacidad clave para las empresas. Ante esto, en los últimos años hemos atestiguado un boom de reclutadores especializados en TI. Las empresas están genuinamente interesadas en atraer al mejor talento tecnológico posible. En principio, esto se consigue ofreciendo una compensación económica atractiva, y para eso está el estudio de salarios de SG. Pero más allá del dinero, hay muchos otros factores que interesan a los profesionistas de software, y en base a los que evalúan una empresa donde colaborar.</p><p dir="ltr">Como ya es costumbre en estudio de salarios de Software Guru, cerramos con la lista de empresas mejor evaluadas por sus colaboradores. Esta lista se genera a partir de las respuestas de las personas que contestan la encuesta de salarios SG. Para la edición de cierre 2016 contamos con la participación de 1,623 personas, en su gran mayoría en México. Al contestar la encuesta, los participantes tienen la opción de indicar la empresa donde laboran, y evalúan su satisfacción laboral en cada uno de los siguientes rubros:</p><ul><li dir="ltr"><p dir="ltr">El trabajo que realizo es un buen reto intelectual.</p></li><li dir="ltr"><p dir="ltr">Trabajo con gente muy capaz, de la que aprendo.</p></li><li dir="ltr"><p dir="ltr">La empresa me apoya para capacitarme.</p></li><li dir="ltr"><p dir="ltr">La empresa ofrece facilidades para participar en eventos de la industria.</p></li><li dir="ltr"><p dir="ltr">Sé hacia donde voy con esta empresa, confío en que puedo crecer mucho en ella.</p></li><li dir="ltr"><p dir="ltr">Mi trabajo me ayuda a vincularme con personas fuera de mi empresa.</p></li><li dir="ltr"><p dir="ltr">Cuento con el equipo y herramientas (hardware y software) adecuado para realizar mi trabajo.</p></li><li dir="ltr"><p dir="ltr">La empresa tiene finanzas estables y paga puntualmente.</p></li><li dir="ltr"><p dir="ltr">Me agrada mi estación e inmobiliario de trabajo (oficina, escritorio, silla, etcétera).</p></li><li dir="ltr"><p dir="ltr">Estoy satisfecho(a) con la ubicación donde se encuentra la empresa/oficina.</p></li><li dir="ltr"><p dir="ltr">Me gustan las opciones que tengo para comer.</p></li><li dir="ltr"><p dir="ltr">Estoy satisfecho(a) con el horario de trabajo (o flexibilidad).</p></li><li dir="ltr"><p dir="ltr">Me siento valorado(a) por mis superiores.</p></li><li dir="ltr"><p dir="ltr">Laborar en esta empresa me facilita estar saludable.</p></li></ul><p dir="ltr">Con esto se obtiene una calificación total de parte de cada participante y luego se promedian las evaluaciones de participantes de la misma empresa para obtener la evaluación de cada empresa.</p><p dir="ltr">Cabe mencionar que previamente analizamos los datos para filtrar y descartar posibles casos de fraude. Adicionalmente, solamente tomamos en cuenta a empresas de donde obtuvimos respuestas de un mínimo de 5 participantes distintos. Así que si tu empresa no aparece, puede ser porque o no fue lo suficientemente bien evaluada, o no se recibieron suficientes evaluaciones de personal de esa empresa.</p><h3 dir="ltr">Ganadores</h3><p dir="ltr">Presentamos la lista de las 20 mejores empresas para trabajar de acuerdo a los participantes en la encuesta de salarios SG 2016. La lista está ordenada de acuerdo al ranking obtenido.</p><ol><li dir="ltr"><p dir="ltr">Base22</p></li><li dir="ltr"><p dir="ltr">Segundamano</p></li><li dir="ltr"><p dir="ltr">Nearsoft</p></li><li dir="ltr"><p dir="ltr">Michelada.io</p></li><li dir="ltr"><p dir="ltr">Magmalabs</p></li><li dir="ltr"><p dir="ltr">Tacit Knowledge</p></li><li dir="ltr"><p dir="ltr">Unosquare</p></li><li dir="ltr"><p dir="ltr">Tiempo Development</p></li><li dir="ltr"><p dir="ltr">Globant</p></li><li dir="ltr"><p dir="ltr">Oracle (Mexico Development Center)</p></li><li dir="ltr"><p dir="ltr">IDS Comercial</p></li><li dir="ltr"><p dir="ltr">DS Indigo</p></li><li dir="ltr"><p dir="ltr">Scio Consulting</p></li><li dir="ltr"><p dir="ltr">IBM</p></li><li dir="ltr"><p dir="ltr">InnovaWeb</p></li><li dir="ltr"><p dir="ltr">DW Software</p></li><li dir="ltr"><p dir="ltr">Los Xamarinos</p></li><li dir="ltr"><p dir="ltr">Extend Solutions</p></li><li dir="ltr"><p dir="ltr">Softtek</p></li><li dir="ltr"><p dir="ltr">Praxis</p></li></ol><p dir="ltr">Reconocemos la labor de estas empresas para generar condiciones para que sus colaboradores estén satisfechos y puedan desarrollar su potencial al máximo.</p><p dir="ltr">Invitamos a todas las empresas que quieran aparecer en este ranking el próximo año a que se ocupen en mejorar la satisfacción de sus empleados y en noviembre de 2017 se aseguren de invitarlos a que contesten el estudio de salarios de SG.</p></div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> Tue, 20 Dec 2016 01:51:09 +0000 ana2lp 6933 at https://sg.com.mx https://sg.com.mx/revista/53/mejores-empresas-para-trabajar-2016#comments Entrevista con Ernesto Quiñones https://sg.com.mx/revista/53/entrevista-ernesto-qui-ones <span class="field field--name-title field--type-string field--label-hidden">Entrevista con Ernesto Quiñones</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/peru.gif" width="500" height="334" 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/47654" lang="" about="/user/47654" typeof="schema:Person" property="schema:name" datatype="" class="username">ana2lp</a></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 12/19/2016 - 13:24</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/53" hreflang="und">SG #53</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/industria" hreflang="und">Industria</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"><span style="font-size: 13.008px;">Ernesto Quiñones es Presidente del Cluster Lima Tech, que es una iniciativa público-privada que busca fortalecer la Industria de Tecnologías de Información y Comunicación en Lima, Perú. El cluster Lima Tech está conformado por más de 35 empresas e instituciones que incluyen empresas de tecnología, instituciones académicas, instituciones públicas y grandes empresas.</span></p><p dir="ltr"><strong>¿Cuáles consideras que son las áreas de especialidad de la industria de software en Perú?</strong></p><p dir="ltr"><span>Perú siempre se ha destacado por ser muy bueno en el nicho de factoría de software especializada, no la genérica; tenemos mucho expertise en verticales de negocios muy importantes como las finanzas, por ejemplo, sin embargo sabemos que el modelo de factory es bueno pero no lo más deseable.</span></p><p dir="ltr"><strong>¿Como industria, cuál consideras que es su principal reto para el año 2017?</strong></p><p dir="ltr"><span>El gran reto es llegar a consensuar la estrategia común del sector. Esto debe involucrar al estado, academia y empresa, se ve complicado pero no imposible, estoy seguro que lo lograremos.</span></p><p dir="ltr"><strong>¿Ha favorecido el teletrabajo en la atracción de proyectos y exportación de talento?</strong></p><p dir="ltr"><span>Sí, como mejora de la economía. Mucho dinero ingresa por este concepto gracias a la gran cantidad de talento individual que ahora desarrolla software para empresas como Google y Facebook, pero no como mejora estratégica del sector. Se ha generado una economía de freelancers que todos sabemos será muy complicado que escale para darle solidez a la industria.</span></p><p dir="ltr"><span>Sobre el teletrabajo contratado localmente por empresas; ha mejorado los costos de las empresas muy poco, ya que se han transmitido las cargas sociales a estas contrataciones.</span></p><p dir="ltr"><strong>¿De dónde surge el talento? ¿Cuáles son las principales universidades que generan egresados para sector TI?</strong></p><p dir="ltr"><span>En Lima tenemos la suerte de contar con profesionales de todo el país, por lo cual tenemos muy bien identificadas la calidad de los profesionales que año a año egresan de las universidades. Por supuesto que podemos asegurar que el talento principal que más nos agrada proviene de nuestros afiliados y asociados académicos, entre ellos la Universidad San Martín, La Pontificia Universidad Católica, La Universidad Nacional de ingeniería, La Universidad Garcilazo de la Vega, el Instituto Tecnológico Iberotec y Avansys, pero obviamente a nivel nacional tenemos muchos más centros académicos de calidad con los cuales ya estamos empezando a trabajar.</span></p><p dir="ltr"><strong>¿Cuáles son los principales obstáculos para el crecimiento de la Industria de Software Peruana?</strong></p><p dir="ltr"><span>Tenemos varios frentes que atacar. Quizás los tres principales son: mejora de capacidades comerciales de los asociados; visión de largo plazo armonizada con acciones de corto plazo; aumentar y facilitar fuentes de financiamiento para proyectos de tecnología, refiriéndose a industria establecida no el ecosistema de subvenciones que ahora existe.</span></p><p dir="ltr"><strong>¿De qué forma ha impactado la Ley N° 30309 (Ley que promueve la investigación científica, desarrollo e innovación tecnológica) en el crecimiento de la industria local de software?</strong></p><p dir="ltr"><span>Aún no existen cifras oficiales del impacto. Pocas empresas se han acogido a los beneficios de esta ley, especialmente por la burocracia que tiene detrás para lograr acceder a los financiamientos, sin embargo sabemos que esto está en revisión para llegar a una sana simplificación.</span></p><p dir="ltr"><strong>A un año del surgimiento de la iniciativa “Cluster LimaTech”, ¿qué impacto ha tenido en la Industria del Software Peruana?</strong></p><p dir="ltr"><span>Debo precisar que aunque la iniciativa entró a funcionar oficialmente en diciembre del 2015, apenas en junio del 2016 nos encontrábamos institucionalizados, tanto que por fin pudimos ir a elecciones formalmente. El impacto en este corto tiempo ha sido muy positivo, hemos logrado articular esfuerzos con muchos actores de la industria, alinear intereses y empezar el desarrollo comercial del cluster, aún no podemos medir el impacto cuantitativamente, pero todo indica que es positivo.</span></p><p dir="ltr"><strong>¿Cómo están incentivando la colaboración entre empresas del cluster?</strong></p><p dir="ltr"><span>La colaboración es fundamental para nosotros, sin ello el cluster no tendría sentido. La fuente principal de incentivo para la colaboración son los negocios, una regla fundamental que tenemos es que al menos dos empresas unidas deben participar de las iniciativas comerciales, ello facilita que de forma natural la gente logre unirse.</span></p><p dir="ltr"><strong>¿Cuál sería la estrategia que el Cluster LimaTech debiera seguir para continuar consolidándose como institución y brindar más impulso a la Industria del Software en los próximos años?</strong></p><p dir="ltr"><span>Mi opinión personal es que debemos, y lo vamos a hacer, organizar la industria nacional para hacerla más competitiva a nivel internacional y empezar a conquistar nuevos mercados. </span></p><p><span>&nbsp;</span></p></div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> Mon, 19 Dec 2016 19:24:25 +0000 ana2lp 6932 at https://sg.com.mx https://sg.com.mx/revista/53/entrevista-ernesto-qui-ones#comments Pasar de Profesional de TI a CDO https://sg.com.mx/revista/53/pasar-profesional-ti-cdo <span class="field field--name-title field--type-string field--label-hidden">Pasar de Profesional de TI a CDO</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/trail.jpg" width="3264" height="2040" 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/47654" lang="" about="/user/47654" typeof="schema:Person" property="schema:name" datatype="" class="username">ana2lp</a></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 12/19/2016 - 13:18</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/53" hreflang="und">SG #53</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/carrera" hreflang="und">Carrera</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="/sgvirtual/speakers/ar-stides-palma" hreflang="und">Arístides Palma</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"><span>El avance actual de la tecnología ha obligado a las empresas y a sus directivos a dejar atrás la percepción de que la tecnología de información queda acotada a un área o departamento. Es gracias a esto que muchas empresas ofrecen salarios llamativos a los profesionistas de TI, pero a la vez la formación y el perfil que se solicita tiende a ser más global e involucrar distintas disciplinas.</span></p><p dir="ltr"><span>Tradicionalmente, la máxima aspiración para un profesionista de TI dentro de un corporativo ha sido llegar a ser el director de sistemas (Chief Information Officer, CIO). Sin embargo, ante la ola de transformación digital que están viviendo la mayoría de los corporativos, para el profesional de TI las oportunidades económicas y por tanto laborales ya lo ubican más allá de aspirar a ser un CIO; la tendencia ahora es convertirlo en CDO (Chief Digital Officer), quien ahora tiene un perfil más amplio, no solamente informático. </span></p><p dir="ltr"><span>Por ejemplo, las organizaciones en la actualidad deben hacer uso del big data, convirtiéndolo en el activo más importante de la empresa, siendo usado por la gente de ventas, mercadotecnia y comunicación, ya sea para dar seguimiento a sus clientes, captar nuevos prospectos de compradores, analizar los mensajes que hablan de las marcas y evitar una crisis de reputación. Asimismo, mediante estos datos las empresas de manufactura pueden analizar de mejor manera las épocas de mayor venta de determinados productos y así tener el control de existencias suficientes en stock, para solicitar la materia prima necesaria. </span></p><p dir="ltr"><span>Para encontrar a un CDO, en la mayoría de los casos las empresas no necesitan echar mano de gente externa, ya que lo más común es que las personas más adecuadas ya estén dentro de sus organizaciones, pues son quienes conocen las entrañas de la empresa. Las empresas deben considerar a los recursos humanos con que cuentan, sin importar el área de la que vengan; lo que es importante, es que sean capaces de entender los datos y la información que arrojan sus diversos sistemas y puedan explotarlos para generar mayor rentabilidad en la empresa.</span></p><p dir="ltr"><span>En nuestra empresa hemos notado que el perfil 100% tecnológico ha ido cambiando, pues cada vez es más común encontrar profesionales de TI capaces de vender, planear y operar estrategias de marketing basadas en análisis de big data, o analizar datos de producción para identificar oportunidades de mejora. En general estos profesionales tienen una mayor apertura a trabajar con otras áreas, teniendo una amplia cultura que puede abarcar distintos dominios: contabilidad, finanzas, mercadotecnia, logística, ingeniería industrial; &nbsp;con una visión más estratégica dentro de la organización, convirtiéndolo en un activo muy importante para la empresa que a su vez termina por mejorar su remuneración económica.</span></p><p dir="ltr"><span>La visión de estos profesionistas debe estar fuertemente enfocada a resultados, y de acuerdo con las necesidades que vaya encontrando en su camino irá creando o adecuando la tecnología que reditúe en beneficio del negocio, así como capacitar a cada uno de los integrantes de la organización, desde las áreas de ventas, administrativas, mercadotecnia y TI para que se logren cada una de las metas del equipo.</span></p><p dir="ltr"><span>Ese es el perfil del profesional que buscan las empresas. ¿Parece difícil? Puede ser, pero en la actualidad tanto el experto como la empresa deben adecuarse a esas necesidades para crecer de manera conjunta y sobresalir.</span></p><p><span>&nbsp;</span></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><span id="docs-internal-guid-0bb46b2a-1882-b6cb-6221-367575530681"><span>El Ingeniero Arístides Palma es fundador y Director General de Zafiro Software, empresa dedicada a diseñar, desarrollar e implementar avanzadas soluciones de administración y planeación de recursos empresariales, análisis de datos y business intelligence para una amplia variedad de empresas de diversos giros y tamaños, ayudándolos a alcanzar su máximo potencial de negocios.</span></span></p></div> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> </section> <div class="field field--name-field-tags field--type-entity-reference field--label-above field--entity-reference-target-type-taxonomy-term clearfix"> <h3 class="field__label">Tags</h3> <ul class='links field__items'> <li><a href="/buzz/tags/tecnolog-la-informaci-n" hreflang="und">Tecnologías de la Información</a></li> <li><a href="/buzz/tags/cdo" hreflang="und">CDO</a></li> </ul> </div> Mon, 19 Dec 2016 19:18:07 +0000 ana2lp 6931 at https://sg.com.mx https://sg.com.mx/revista/53/pasar-profesional-ti-cdo#comments