Plugin jQuery para recorte de imágenes

El recorte online de imágenes está presente, cada vez, en mayor número de sitios web cuya finalidad es formar comunidades virtuales (redes sociales, páginas de contactos, etc). Consiste en que el usuario sube una fotografía (bien sea suya personal o de un paisaje, u otro contexto) y recorta, en la propia página, una parte de esa foto, que es la que realmente quiere compartir con el resto de la comunidad. Esta técnica empezaron implementándola sitios tan relevantes en Internet como son Facebook y Google, aunque hoy en día se ha extendido como la pólvora. Imagina que tu tienes una fotografía en la que apareces con varios amigos. La subes a un sitio social como foto principal tuya, pero no quieres que aparezcan todos tus amigos, porque te diluyes en la multitud. Con el ratón, seleccionas la parte en la que estás tú, y decides que sólo esa parte es tu foto principal. La página web hace el recorte y te deja lo que tú has elegido. En este artículo veremos cómo hacer esto.

Espacios de nombres en PHP (I). Introducción.

Todos hemos oído hablar alguna vez de los espacios de nombres, o namespaces (ns), en terminología anglosajona. Tal vez en otro contexto (cómo XML, por ejemplo). En PHP constituyen una valiosa herramienta de la que vamos a ocuparnos en estos artículos. En su definición más aceptada, son una forma de encapsular elementos (en el contexto de PHP, estamos hablando de constantes, funciones y clases). Esto nos facilita crear código reutilizable, permitiendo a otros desarrolladores implementar con facilidad nuestras librerías, evitando colisiones de nombres que pudieran surgir con sus propios elementos, y viceversa. Nosotros podemos implementar librerías de terceros, con la misma prerrogativa.

El editor de DataTables (I). Qué es y cómo obtenerlo.

El plugin DataTables, cuyo uso hemos aprendido a lo largo de los artículos anteriores, no sólo nos sirve para mostrar datos tabulares de una manera elegante, y con poco esfuerzo de programación. En esta serie vamos a conocer un complemento que nos va a permitir agregar registros, editarlos o eliminarlos, de una manera cómoda, elegante y con poco trabajo. Después de todo, esa es la filosofía de jQuery: conseguir los mejores resultados con poco código, en poco tiempo, y de modo fiable y sencillo. Cómo nos dice el propio eslogan de jQuery, “Escribe menos, haz más”. El editor de DataTables es un complemento perfecto para agregar a nuestras tablas estas funcionalidades, y no podíamos pasarlo por alto. Si bien es una herramienta de prueba, con una duración de quince días, su licencia no es realmente cara. Para un desarrollador único, el coste es de poco más de 130 euros y, desde luego, te puedo asegurar que merece la pena. Y si no, lee los siguientes artículos, y juzga tú mismo. Y si trabajas en un equipo de desarrolladores, en una empresa, el coste, aunque algo mayor, no es relevante para la economía de una compañía.

ARD01 – Introducción a Arduino

BIENVENIDOS Este texto pretende ser una guía de mis experiencias y las de otras personas en el entorno Arduino. Aunque empezaremos exponiendo algunas bases teoricas y a lo largo del manual haremos referencia a conceptos de programación, el conjunto pretende ser eminentemente práctico, en plan de aprender a hacer las cosas haciéndolas, más que estudiando sobre ellas. Los autores hemos huido de los tecnicismos académicos en la medida de lo posible. Sólo esperamos que disfrutes tanto experimentando y aprendiendo con Arduino como lo hicimos nosotros.

ARD02 – El primer sketch

Vamos a crear un sketch muy simple, que permita que Arduino encienda y apague, de forma intermitente un LED. Un LED es, como seguramente ya sabes, un diodo emisor de luz. Cuando se aplica una tensión continua adecuada, con la polaridad correcta, el LED se enciende. En general, el aspecto de un LED responde al de la figura 2.1. Como puedes ver, uno de los terminales es más largo que el otro. A ese terminal, llamado ánodo, se le aplica el polo positivo de la fuente de tensión. Al otro terminal, el cátodo, se le aplica la masa. Los LED se fabrican en diferentes colores y tamaños, y se venden en tiendas especializadas en electrónica a muy bajo coste (apenas unos céntimos). Dado que Arduino funciona con 5V no podemos conectar, directamente el LED a una salida de la placa, ya que se quemaría. Usaremos una resistencia para absorber el exceso de tensión, de forma que el LED funcione perfectamente. En el Apéndice A algunos conceptos básicos de electrónica, para aquellos que no estéis familiarizados con estas cuestiones. En nuestro caso emplearemos una resistencia de 330 ohmios.  

ARD03 – Entrada y salida

En el artículo anterior hemos visto como Arduino, una vez programado, controla el LED. Aquí vamos a hacer un montaje muy sencillo, con un comportamiento muy simple, para ilustrar como Arduino puede leer información procedente del exterior, y operar en consecuencia.

ARD04 – PWM

Lo de las salidas digitales está muy bien, y es muy claro de entender: las “cosas” (un LED o lo que sea) están activadas o no lo están. Así de simple. Sin embargo, en ocasiones es necesario obtener salidas analógicas. Por ejemplo, suponte que queremos un LED que esté encendido, pero no del todo, tan brillante. Solo queremos que se encienda con la mitad de su intensidad (o una tercera parte, una cuarta parte, un 80 %….) Esto puede venirnos bien como indicador de otra cosa. Las salidas de Arduino son todas digitales: o están activadas o no lo están. Arduino recurre, para conseguir emular salidas analógicas, a una técnica llamada PWM (Pulse Width Modulation, Modulación de Anchura de Pulso). Observa los pines de salida de tu placa Arduino. Verás que hay varios (en concreto el 3, el 5, el 6, el 9, el 10 y el 11) que tienen el símbolo ~ grabado. Estas salidas se pueden programar, mediante PWM, para comportarse como si fueran analógicas. La técnica de PWM consiste en lo siguiente. Si tu tienes un valor digital 0 (LOW) fijo, la salida de señal en el tiempo es a 0 permanente, como ves en la figura 4.1.

ARD05 – Entradas analógicas

De la misma forma que se pueden obtener salidas analógicas, Arduino también puede detectar entradas analógicas. Una señal analógica de entrada es la proporcionada por un sensor o componente que puede presentar diversos valores de resistencia. Ya no es un pulsador (o interruptor o similar) que sólo admite dos estados (activado o desactivado). Ahora se trata de un elemento que puede ofrecer múltiples valores. El ejemplo más simple es un potenciómetro, o resistencia variable, que se controla a mano. También hay otras resistencias cuyo valor depende de la luz recibida (las llamadas LDR, que pueden actuar como sensores de luz), o de la temperatura (los termistores), etc.

ARD06 – Datos en serie

Ya sabemos que Arduino recibe el sketch que hemos codificado y lo ejecuta, reconociendo entradas o dando salidas de señal a diferentes dispositivos (hasta ahora, hemos usado un LED, pero ya veremos que podemos conectar otros elementos como altavoces, motores, etc). Además, Arduino puede enviar datos en serie a través del puerto USB al ordenador. El IDE de Arduino puede recibir estos datos y mostrárnoslos en una ventana como valores numéricos. Para gestionar este tipo de comunicación empleamos un objeto llamado Serial, que se encarga de la transmisión y presentación de datos. En este artítulo vamos a emplear el mismo circuito que en el anterior, por lo que no hay cambios en la parte hardware.

ARD07 – Calibración manual

El uso de elementos como los potenciómetros o los pulsadores para producir una señal de entrada está muy bien, porque tenemos un control manual directo sobre la entrada pero, en muchísimos casos, se queda corto. En la naturaleza existen parámetros como la temperatura, la luz, la humedad, etc que varían las condiciones de un entorno, y tenemos que poder medirlos con un circuito electrónico. Por ejemplo, podemos querer hacer con nuestro Arduino un equipo que mida la temperatura ambiente, y la refleje en una escala de LED’s. Eso es, justamente, lo que vamos a hacer ahora. Este capítulo nos ayudará a conocer la naturaleza y comportamiento de un sensor térmico, y a programarlo adecuadamente en Arduino. También introduciremos algunos conceptos del lenguaje de programación Arduino y un concepto especialmente interesante cuando se usan sensores: la calibración, para obtener un reflejo real del valor del parámetro medido por el sensor.