viernes, 20 de diciembre de 2013

¿Cómo funcionan las páginas Web?

A diario utilizamos servicios como Facebook, Twitter, Google, muchas otras aplicaciones en línea que no solamente nos sirven información, son aplicaciones totalmente interactivas que nos permiten hacer todo tipo de cosas, ¿porque podemos acceder rápidamente a ellas y cuando descargamos algo la velocidad de descarga es muy lenta?, la clave está en los navegadores web (Firefox, Chrome o Explorer) y los lenguajes de programación que éstos interpretan.

Existen muchos lenguajes de programación para navegadores, pero los más utilizados actualmente son HTML5, CSS3, JavaScript y PHP. No son los únicos, y no es que sean los mejores, simplemente que son los más utilizados y plataformas como Facebook los utilizan para sus funciones. Estos lenguajes son estandarizados, y los navegadores los interpretan con variaciones, aunque mínimas, por eso si hay diferencia entre uno y otro navegador más allá de la banda ancha y el acceso a internet (que por supuesto, es la otra variable en la ecuación).

¿Cómo es posible?, Pues la magia está en los navegadores. Cuando accesamos a un servidor web, éste nos envia cierta información como videos o imágenes, pero también actualmente podemos acceder a todo tipo de formularios y sistemas en línea que nos permiten desde pagar deudas hasta comunicarnos, darnos de alta, comprar cosas, entre otros.

Estas aplicaciones están creadas en un lenguaje de programación de los mencionados arriba, en realidad las aplicaciones web no son iguales que los paquetes o programas que utilizamos localmente en Windows, Linux o Mac, más bien, son un grupo de instrucciones remotas que nuestro navegador interpreta de manera local. En otras palabras, cuando visitamos una página web nuestro navegador descarga estos grupos de instrucciones y las interpreta, es como si alguien nos diera la instrucción de cómo construir algo, pero por teléfono. No es que la persona nos mande el objeto por el teléfono, sino que nos dice cómo construirlo nosotros mismos, algo así funciona el internet.

Por ese motivo, una página de internet se muestra diferente en cada navegador, y los desarrolladores Web deben saber cómo trabajar con cada uno de ellos. Con Chrome, Firefox y Opera no hay mucho problema porque están basados en códigos libres y estandarizados, mientras que Internet Explorer y Safari si tienen algunas diferencias y de ahí que ciertas páginas sólo se visualizan correctamente en ciertos navegadores. También es la explicación de porque cuando nuestro internet está fallando, las páginas se muestran a medias o con errores. Lo que sucede es que estos códigos e instrucciones de conexión a los servidores llegan de forma parcial y de ahí que se produzcan errores.

Por este motivo los navegadores consumen tantos recursos de RAM y CPU. Muchos usuarios me
dicen que la máquina se les ralentiza y "sólo están usando Internet", cuando hoy en dia estar en aplicaciones como Facebook o Twitter es lo mismo que estar ejecutando un programa de Windows, son muchas instrucciones que tu navegador debe entender y procesar. Lo ideal, por lo tanto, es mantener nuestros navegadores actualizados y tener cuidado con las páginas que visitamos en Internet. No porque no descargamos cosas significa que estemos protegidos, pues siempre se pueden encontrar códigos maliciosos en muchas páginas web.

viernes, 13 de diciembre de 2013

Curso para aprender programación PHP

Como ingeniero en electrónica los lenguajes de alto nivel, y los estilos de programación visual no son de mucho interés profesional. PHP, MySQL o HTML no son precisamente los lenguajes más utilizados por la electrónica para programar dispositivos, pero no dejan de ser lenguajes muy utilizados a nivel mundial y tener nociones de ellos no es mala idea. 

Vagando en Internet me encontré con este curso de una página de nombre bextlan.com, el profesor se llama Jonathan Mirsha y se trata de PHP, aunque también tiene JavaScript y HTML5, con algo de MySQL. Nada mal.


Lo mejor es verlo en YouTube porque se trata de un playlist con muchas lecciones sobre cosas que hacer usando PHP.

A favor tiene que es un curso muy práctico, entras a "la acción" desde las primeras lecciones, una de las cosas más nefastas de aprender un nuevo lenguaje de programación mediante cursos online es que todo se limita a declarar variables, sumar una variable más otra, imprimimos el resultado... En este curso, pasas a la acción desde el principio y eso ayuda a que no sea infumable y aburrido.

En contra, gente con poca experiencia en la programación puede encontrarse con muchas dificultades al seguirlo. Sobre todo con cosas como errores de sintaxis y algunos otros detalles que no son fáciles de distinguir para gente con poca experiencia en esto. En mi caso he pasado algunos problemas, pero años de programar en lenguajes como Assembler y C me han ayudado a que no sea difícil, quizá el curso no es para gente totalmente nueva en programación.

jueves, 5 de diciembre de 2013

Porque el plan de Amazon para usar drones no es factible... todavía.

Hay muchas razones por las que el servicio Prime Air de Amazon está muy lejos de ser realidad, y se ve complicado que dicho servicio realmente esté listo en el 2015. La idea de pequeños robots circulando el espacio aéreo suena a ciencia ficción, porque hasta la fecha, eso es. Antes de poner en marcha una innovación tan ambiciosa sin que se caiga estrepitosamente (como ya les sucedió a otros inventos en el pasado) se necesita despejar muchas variables en la ecuación y la tecnología actual aún no tiene las respuestas.

Para empezar, las máquinas no tienen inteligencia ni creatividad. Mucha gente cree que una computadora realmente posee inteligencia, y eso es una falacia. La máquina es tan lista como su programador lo decida, y nada más. Los robots y las computadoras sólo hacen cálculos en base a un conjunto de entradas y "deciden" en base al algoritmo de su programación, claro, pueden ejecutar esas decisiones en milésimas de segundo, y pueden leer simultáneamente un conjunto enorme de datos que llegan desde los sensores (una computadora si puede manejar y textear), pero no son capaces de decidir nada que no esté en el algoritmo.
Un ser humano no es tan rápido, pero posee memoria, experiencia previa, instinto, reflejos y creatividad. Estas habilidades son fundamentales cuando se trata de enfrentar un problema desconocido, como por ejemplo un desvio en una ruta, un problema con el vehículo o cualquier otra cosa que suceda de forma inesperada. Las máquinas son mejores haciendo lo que sea repetitivo, pero no igualan al humano en capacidad de improvisación. 


En otras palabras, para que un robot pueda completar una tarea se deben cubrir prácticamente todos los posibles inconvenientes que puedan surgir. Si lo trasladamos al problema actual, los ingenieros que desarrollen el sistema de entregas de Amazon deberían empezar primero con un area muy delimitada, donde se puedan abarcar todos los posibles inconvenientes de antemano. 

Además, Estados Unidos actualmente no permite el uso de UAVs en su espacio aéreo civil, salvo algunas excepciones en áreas rurales y poblados pequeños. Un vehículo debe estar supervisado por un humano todo el tiempo, y no desde un punto remoto, sino que la ley estadounidense indica que el operador debe tener a la vista al vehículo en todo momento. Por supuesto, la ley puede cambiar, pero para que esto ocurra, la tecnología debe estar desarrollada plenamente, y el control automático de vehículos aéreos todavía está en investigación. 

Por ejemplo, actualmente existe una serie de protocolos y reglas que los pilotos deben seguir en el espacio aéreo en Estados Unidos. Al divisar a otra aeronave, se deben tomar acciones evasivas y medidas de precaución para evitar colisiones. Aunque parezca sencillo que una máquina haga lo mismo, el algoritmo de programación debe ser muy explicito dependiendo de cada posible caso (UAVs en peligro de colisión) y no puede ser cosa de una empresa, sino una estandarización que sea seguida en, por lo menos, todo el país.

Amazon pretende acelerar estas cuestiones legales, aunque el gobierno de EU no pienza hacer nada hasta que la tecnología esté desarrollada, por lo cuál tendría que ser la empresa la que gestione ese desarrollo. Para ello deberá internarse en mundo del hardware, lo cuál no es sencillo. Otros gigantes del software han tratado de dar ese paso, pero primero tuvieron que experimentar con dispositivos más sencillos antes de apostar a lo grande a inventar, o finalizar una tecnología en desarrollo.

Por estos motivos, tener pequeños robots voladores no está tan cercano como los comerciales de Amazon nos quieren indicar. La verdad es que hasta el momento no es más que una estrategia de publicidad y de marketing, más allá de algo serio. A eso se le suma todas las quejas y críticas que el gobierno de EU enfrenta por espionaje, con lo cual pequeños vehículos armados de cámaras que captan todo, y a todos, tampoco suena muy agradable para muchos. 

Amazon planea usar drones para entregar paquetes

Amazon es uno de los portales de comercio en línea más importantes del mundo. Sus servicios abarcan cualquier cantidad de productos, físicos o en formato digital (como el contenido multimedia), nacido hace pocos años, el portal es hoy uno de los más reconocidos del mundo y compite contra otros gigantes del software como Google o Facebook.

Como tal, es obvio que pretenden innovar y que buscan alternativas para atraer a más clientes frecuentes. Uno de los problemas históricos del comercio en línea es el tiempo de entrega: ordenas algo y no puedes tenerlo de inmediato. Debes esperar a que tu orden sea procesada, el pago sea recibido, y el envío sea mandado. Ya no digamos los 15 o más dias que se tarda el "standard shipment" en enviarte tu producto. Por ese motivo la gente no busca en portales de comercio en línea las cosas que necesita día a día, ni productos como ropa, accesorios o cualquier cosa que se necesite de forma rápida, y se limitan a comprar cosas exóticas u ofertas en productos que no son urgentes.

Por ese motivo, Amazon planea implementar un sistema de entregas utilizando drones UAV (unmanned aereal vehicle), vehículos no tripulados, autodirigidos que puedan servir como pequeñas gruas y enviar con ellos paquetes de menos de 2.5KG. Jeff Bezos, CEO de Amazon, habla de manera muy entusiasta al asegurar que la empresa estaría utilizando los UAV en el 2015, y como es de suponerse, causaría una revolución absoluta en el comercio mundial. ¿Que tal si pudieramos ordenar y recibir cualquier cosa desde casa? Aunque el ritual que significa "ir de compras" no desaparecería (como el servicio a domicilio nunca eliminó el ritual de ir al restaurante) si suponemos que cambiaría muchas cosas.

Para muestra, un video de cómo se supone que funcionaría esta novedosa tecnología:


PERO...