Hora actual

Portada

¡Un mundo de colores! y de luminosidades, contrastes, curvas, gammas…

¡Buenas tardes, queridos lectores!

Hoy, para darles un toque polícromo a vuestras vidas, os traemos un tema muy amplio, curioso, y que observamos a diario sin darnos cuenta de ello muchas veces: el maravilloso mundo del color.

Hay que decir que este tema surge a raíz de mi última adquisición tecnológica, un monitor Samsung LED de 27 pulgadas (concretamente el modelo S27A550H, cuya información podéis encontrar en este enlace). Buscaba un monitor grande, no de gama alta, pero lo suficientemente bueno para poder jugar en condiciones a mis amados videojuegos. Partiendo de la base de que no soy ningún entendido en la materia, sí que he querido realizar una correcta configuración del color de mi pantalla para obtener los mejores resultados posibles y, así, he aprendido un poco más sobre todo lo relativo al color. Por tanto lo que aquí os presentamos es sólo un resumen en el que comentaré una serie de términos muy utilizados cuando trabajamos con colores, que conviene que conozcáis si queréis comprender mejor aspectos más avanzados del tema. Os recomiendo que, para obtener una información más profunda y detallada sobre el tema, visitéis el blog dZoom, del que hemos sacado la mayor parte de información para realizar este artículo.

Así, para empezar, si os encontráis en mi situación y queréis configurar correctamente vuestra pantalla, lo primero que tendréis que aprender es qué es la calibración de color, y qué es perfilar el color. El motivo de toda esta complejidad a la hora de “simplemente mostrar imágenes por pantalla” es que los monitores no pueden ofrecer toda la gama de colores que nuestro ojo puede ver, sino que sus posibilidades están acotadas a un determinado espacio de color fruto de su propia tecnología. Lo que nosotros entendemos por rojo, verde, azul y blanco, no es entendido del mismo modo por todos los monitores. Cada uno tiene su propia respuesta, con sus matices particulares, por lo que si queremos asegurarnos de que estamos viendo (por ejemplo) una fotografía con los mismos colores con que el fotógrafo la captó en su día y decidió guardarla, tendremos que preparar nuestro monitor para ello.

Ejemplo típico de pantalla de calibración

Ejemplo típico de pantalla de calibración

Por tanto, para comenzar a tener buenos resultados, nuestra primera misión será calibrar el monitor. Esto es, ajustar correctamente la luminancia del blanco (su intensidad), el tono del blanco (su temperatura, que trataremos más adelante), el nivel del negro (su profundidad) y la compensación gamma (una curva que trata de neutralizar el efecto del monitor compensando algunos factores, también la trataremos con más detalle posteriormente). Una vez calibrados los valores, podremos comenzar a perfilar el monitor, o sea, configurar la gama de colores que mostrará el monitor, y cómo compondrá dichos colores a partir de los básicos. Al proceso de calibrado y perfilado se le conoce como ajuste del monitor, y es lo que os desglosamos en los siguientes párrafos, mediante la definición de sus principales factores.

Como comentamos, el monitor no puede trabajar con todos los posibles colores existentes en la naturaleza, al igual que nuestro ojo no puede apreciar todas las posibles longitudes de onda de la luz (no podemos ver en ultravioleta e infrarrojos, sólo en el llamado espectro visible). Su abanico de posibilidades está limitado a un conjunto más o menos extenso de colores, conocido como espacio de color, que no es más que una región de un mapa de color… ¿queda más claro así? No hasta que expliquemos qué es un mapa de color, pero no os preocupéis, porque este extraño término hace referencia simplemente a una representación gráfica en forma de ejes en la que podemos ubicar todos los colores (en teoría), y definir un color a través de sus coordenadas en los citados ejes. El mapa de color más conocido es el CIE XYZ (que cumple algunas características curiosas, como que el color blanco se encuentra en las coordenadas 0.333, 0.333, o que los colores complementarios están unidos por una línea imaginaria que atraviesa el blanco). Pues bien, si de este mapa de color nos quedamos con una región específica, estaremos trabajando con un espacio de color. Los espacios de color pueden ser dependientes del dispositivo (o sea, son los que el monitor o impresora o escáner o chisme en general puede manejar, interpretar, ofrecer…) o independientes del dispositivo (que son los estándares fijados por la industria de una u otra forma, para poder tomarlos como referencia a la hora de caracterizar dispositivos). Los espacios de color independientes más conocidos son el sRGB, el Adobe RGB y el ProPhoto RGB (RGB deriva de las iniciales de red, green y blue, o rojo, verde y azul en inglés). Los espacios de color dependientes del dispositivo son los que configuran su gama de colores posibles, y se les suele conocer como “gamut”. Normalmente el espacio de color dependiente se suele expresar como un porcentaje de un espacio de color independiente, por ejemplo podemos decir que un monitor cuyo espacio de color represente el 95% del espacio Adobe RGB es un monitor de gama alta, y bastante caro (en torno a los 1.000 €). Si conocemos el espacio de color que utiliza nuestro monitor, podremos conocer los colores primarios (rojo, verde y azul) que maneja, que vendrán dados por su tono, brillo y saturación, cambiando de una pantalla a otra.

Espacios de color

Espacios de color

Conocidos los posibles colores que puede representar nuestra pantalla, ¿cómo le indicamos qué color es cual? O sea, necesitamos saber qué valor enviar al monitor para que pinte el color del mapa que ocupe las coordenadas X, Y que queramos (que no tiene por qué ser lo que observaremos por pantalla, ya que eso vendrá a su vez afectado por otros factores que veremos, sino que simplemente es lo que nos gustaría que el monitor entienda que queremos que muestre). Pues bien, para ello se suelen usar los perfiles de color, que son ficheros .icc o .icm con información para describir la respuesta de color de un dispositivo, traduciendo para un programa los valores que él entiende a los valores que entiende el monitor.

Otro factor (nombrado anteriormente) con el que jugamos a la hora de establecer los colores lo más cercanos a la realidad posible con nuestro monitor (o con nuestra cámara de fotos) es la temperatura de color. Esta característica nos sirve para definir correctamente el blanco, o lo que nuestro dispositivo debe interpretar como blanco, y se mide en grados Kelvin, como si de una temperatura se tratase. Su importancia radica en que, a lo largo del día, la luz que observamos va cambiando. Determinadas tonalidades del espectro de luz predominan sobre las demás, tiñendo los rayos a su alrededor y afectando a la imagen percibida. Esta alteración se traduce en un desplazamiento en el espectro de color hacia el rojo o hacia el azul. La luz perfecta diurna se sitúa en 5.500 K, y su valor va cambiando según las condiciones atmosféricas, la hora del día, o dependiendo de la existencia de otras fuentes de luz.

Temperatura color

Temperatura color

Las cámaras de fotos digitales suelen incorporar una función llamada “balance de blancos”, que compensa la forma en que la cámara capta la luz, ajustando los niveles de los colores básicos para obtener resultados lo más parecidos al original posibles. El funcionamiento de las cámaras permite seleccionar unas condiciones predefinidas (día nublado, luz de bombilla, fluorescente, soleado, etc.), o bien utilizar un modo de balance automático, que suele ser menos preciso que los modos predefinidos. Dicho modo automático funciona tomando como blanco la zona más brillante de la imagen, y como negro la zona más oscura, de forma que calibra el resto de colores en función a esos valores, tratando de compensar los efectos indeseados de la iluminación. También podemos realizar un balance manual de blancos, sin más que enfocar con nuestra cámara a un objeto de color blanco como un folio, de forma que lo que para nosotros (porque sabemos que es blanco) será un objeto blanco, lo será también para la cámara, con lo que el resto de colores se parecerán más a lo que deberían ser si no existiesen efectos de iluminación añadidos. Hay otros métodos que muchos aficionados a la fotografía utilizan para realizar un balance de blancos manual, como el Expodisc (un accesorio para la cámara fotográfica que puede resultar algo caro si sólo estamos iniciándonos) o la cartulina de tonos de grises. Pero también hay otros métodos caseros más rudimentarios y que a menudo dan buen resultado, como utilizar una tapa de un bote de Pringles de las antiguas (que eran menos transparentes que las de hoy en día), o bien un filtro de café. Si enfocamos a través de estos objetos, la lente recibirá una información lumínica que le permitirá compensar correctamente los diferentes colores, para que después al realizar la fotografía sin el objeto delante podamos obtener resultados de mayor calidad.

Diferentes balances de blancos para distintas temperaturas

Diferentes balances de blancos para distintas temperaturas

Continuando con los parámetros más importantes a tratar, y sin que el orden tenga que ver con su importancia, hablaremos sobre la gamma, que ya hemos nombrado anteriormente. La gamma es un factor de compensación que forma parte de una ecuación cuya curva trata de neutralizar la respuesta no lineal que el monitor introduce a la imagen que queremos mostrar en él, en lo que a luminosidad se refiere. Y es que en las pantallas la luminosidad no depende linealmente del voltaje, sino que sirve una curva exponencial. Ello hace que cuando queremos mostrar un valor de luminosidad media por pantalla, no tengamos que enviar un voltaje medio a la misma, sino más alto. De no corregir este comportamiento, tendríamos que las imágenes que observamos son más oscuras de lo que en realidad deberían ser. Al contrarrestar este comportamiento con la curva de compensación gamma, logramos una relación más lineal entre la entrada y la salida. Los fabricantes incorporan su propia curva gamma a los dispositivos, cuya ecuación exponencial puede resumirse como:

Luminosidad=voltajeG

con un valor G=2.2 habitualmente. Hay quien dice que no debería ser necesario utilizar compensación con los nuevos monitores con conexiones digitales, ya que la información permanece incorrupta desde el ordenador a la pantalla, pero lo cierto es que ajustar el gamma puede producir muy diferentes efectos en lo que observamos, y de hecho suele usarse a menudo en juegos para conseguir una ambientación adecuada al género del que se trate.  La compensación de la gamma suele dejar el valor final (o sea, el resultante de la gamma original del monitor y la gamma de corrección) en aproximadamente G=1.14, pero esto no siempre es así, ya que para una determinada entrada, la salida no siempre puede definirse linealmente (y no hablamos ya sólo de luminosidad, sino de todos los factores que afectan a cómo se ve un pixel en pantalla). La respuesta del monitor presenta irregularidades que hacen que sea necesario aplicar una nueva curva de corrección para obtener una graduación más fina de los colores. A esta curva se le denomina curva de ajuste, y su información se almacena bien en una tabla LUT (Look-Up Table) en la tarjeta gráfica o bien en el monitor (si dispone de LUT). La tabla LUT presenta una serie de equivalencias entre los valores que se desean mostrar y los que hay que enviar al monitor para que los muestre. Cuantos más bits tenga la tabla LUT, más precisión permitirá mostrar en los resultados (no es raro encontrar tablas de 8 ó 10 bits).

Cuadro correspondencias de Gamma. El cuadro que mejor se confunda con el fondo nos da una aproximación del gamma de nuestro monitor.http://upload.wikimedia.org/wikipedia/commons/f/f2/Monitor_gamma.gif

Cuadro correspondencias de Gamma. El cuadro que mejor se confunda con el fondo nos da una aproximación del gamma de nuestro monitor.

Siguiendo la línea de lo comentado hasta ahora a la hora de realizar la calibración del monitor, hay otros dos aspectos que requerirán nuestra atención: el ajuste del punto blanco y el ajuste del punto negro. Para comprenderlos, debemos definir algunos términos:

  • Por una parte, hay que conocer qué es la luminosidad o luminancia del blanco. Se mide en cd/m2 (donde cd es la abreviatura de candelas), y nos informa de la intensidad que toma el monitor para representar el color blanco. Nos interesará que sea un valor lo más bajo posible (en monitores de buena calidad, estará entre 60 y 90 cd/m2, y en pantallas de portátiles de calidad puede superar 115 cd/m2).
  • Por otra parte, también aquí influye la temperatura de color. Normalmente resulta que para obtener un blanco lo más neutro posible, tendremos que elegir temperaturas tirando a frías. Se suele utilizar a menudo el valor de 6.500 K para obtener buenos resultados.
  • Además, también es muy importante la luminosidad del negro, que se mide en las mismas unidades que la del blanco, y que de nuevo nos interesa que sea el menor valor posible (menores de 0’5 cd/m2 si es posible). Esta magnitud cambia enormemente dependiendo de la tecnología con que esté hecho nuestro monitor (CRT, TFT, LED…).

Asociado a estos conceptos de luminosidad, está el archiconocido contraste. El contraste se define como la relación entre la luminosidad del blanco y la del negro. Nos interesa un monitor que tenga un gran contraste, pero no a costa de conseguir una gran luminosidad del blanco (que puede llegar a dañor nuestros ojos tras un uso prolongado), sino gracias a tener negros muy poco luminosos y blancos lo suficientemente bajos para obtener buenos resultados. Volviendo al ejemplo del monitor que he adquirido, presenta un brillo según sus especificaciones de 300 cd/m2, lo cual le deja totalmente fuera de la gama de monitores profesionales, porque utiliza demasiada luminosidad del blanco para obtener una buena relación de contraste.

Merece la pena comentar que, más allá de usar nuestro “ojo clínico” para tratar de encontrar los mejores valores de los parámetros que hemos comentado hasta ahora, hay una serie de ayudas técnicas y determinados dispositivos que facilitan esta tarea (y que sin duda tendremos que usar si queremos lograr resultados cuasi-profesionales, por ejemplo si nos dedicamos a la fotografía). Se trata de los colorímetros, que son herramientas capaces de identificar el color y el matiz para realizar mediciones objetivas de los mismos y así poder configurar nuestro monitor de manera óptima. Normalmente consisten en un pequeño dispositivo (del tamaño del ratón) que se sitúa pegado a la pantalla para captar el color que ésta emite, y en ocasiones también cuentan con una especie de chasis que se coloca en torno al monitor para aislarlo lumínicamente del entorno. Así, realizando diferentes pruebas, el colorímetro y su software asociado pueden saber, para un determinado estímulo, qué salida está ofreciendo el monitor, de forma que caracteriza con gran precisión sus parámetros. Sería algo así como: “Dime lo que muestras cuando te digo que muestres esto, y te diré cómo eres”.

Colorimetro

Colorimetro

Si calibramos y perfilamos nuestro monitor, identificamos su espacio de color, conseguimos un perfil de color adecuado para el programa que estemos usando, ajustamos correctamente su temperatura de color, configuramos adecuadamente su gamma, su curva de ajuste, su punto blanco y su punto negro, ajustamos su luminosidad y su contraste (quizá con la ayuda de un colorímetro), y trabajamos con imágenes con un balance de blancos adecuado, podremos disfrutar de una imagen que no podrá compararse con las que nos ofrecen las pantallas que no han pasado por este proceso. Puede resultar complicado, largo o engorroso, pero en realidad cuando nos familiarizamos con estos conceptos veremos que todo está relacionado, y que un poco de tiempo invertido en dichos ajustes nos proporcionará una experiencia de usuario mucho más rica y, lo más importante, ¡nos permitirá poder ver Átomos y Bits en todo su esplendor!  :)

¡Hasta pronto!

Ideas básicas para programar aplicaciones para dispositivos con Jailbreak

¡Buenas tardes, estimados lectores!

Es probable que entre vosotros (dada la temática de nuestro blog) se encuentren lectores a los que les gustaría programar aplicaciones iOS para iPhone, iPod o iPad que tengan hecho el Jailbreak. Si es así, en este post os ofreceremos las ideas básicas para que sepáis al menos por dónde empezar, y qué podéis esperar encontraros.

Si decidís embarcaros en este complicado viaje, hay varias nociones que sería interesante que conozcáis antes de comenzar con el desarrollo de aplicaciones de este tipo. En primer lugar, es altamente recomendable tener algunas nociones básicas de los lenguajes C / Objective-C. Además, conviene tener un ordenador con MacOS (si bien no es imprescindible) con la versión del SDK (el kit de desarrollo) para la que queramos programar, y si queremos usarlo, necesitaremos tener Xcode instalado. Con estos elementos y algunos manuales, podemos empezar a intentar programar algo con sentido. El problema es precisamente que existen pocos repositorios de información donde vayamos a poder encontrar ayuda sobre el tema.

Para aquellos con menos conocimientos sobre el tema, Xcode es el programa proporcionado por Apple para desarrollar aplicaciones para iOS. Este software nos ofrece un entorno de programación “amigable”, muy gráfico, y con multitud de ayudas visuales que facilitan la edición del código. También incluye el Interface Builder (que hasta la versión 4 de Xcode era un programa aparte, pero ahora ambos elementos están integrados en una sola interfaz) que permite, gráficamente, diseñar el aspecto de nuestra aplicación mediante vistas, botones, sliders, menús de selección, textos, etc. El hecho de contar con Interface Builder nos ahorrara muchas horas de trabajo, más cuanto más vistosa sea nuestra interfaz de usuario. Si queremos desarrollar aplicaciones para AppStore, tendremos que usar Xcode y necesitaremos un Mac, o bien podremos instalar una máquina virtual de Mac en nuestro PC mediante herramientas como VMWare o utilizar otros métodos más peregrinos (como el hackintosh). Si tenéis un ordenador medianamente potente, la opción de la máquina virtual suele funcionar bien. El problema es que a menudo la máquina se queda congelada si no la usáis durante unos minutos (es decir, si cambiáis al sistema operativo anfitrión, Windows por ejemplo, al volver a la máquina virtual pasados unos minutos es probable que encontréis que no responde). Si esto ocurre, basta con reiniciar la máquina virtual, aunque perderéis todo el trabajo que no tengáis guardado.

Pantalla de Xcode

Pantalla de Xcode

Si somos curiosos, es probable que nos preguntemos por qué surge la necesidad de utilizar otras técnicas diferentes para desarrollar aplicaciones para iOS con jailbreak. ¿Por qué no pueden ser todas aplicaciones normales como las que encontramos en AppStore? Pues bien, la respuesta se encuentra en la propia filosofía de Apple: para la compañía de la manzana, lo principal y más importante, el motivo vital de toda su obra, es la optimización de la experiencia de usuario. Esto quiere decir que no nos van a permitir programar aplicaciones de cualquier tipo, sino que “limitan” sus funcionalidades evitando ciertos comportamientos que pudieran hacer empeorar la experiencia de uso, o comprometer en cualquier aspecto la integridad de los datos, la privacidad del usuario, información delicada del terminal, etc. Bien, aclarado esto, ¿cómo decide Apple qué aplicaciones pueden ser aptas para el App Store y cuáles no? Comprobando qué API‘s y qué métodos utiliza: hay determinadas clases que son privadas y otras son públicas. E incluso dentro de las públicas, hay determinados métodos que son privados. Cuando Apple detecta que estamos utilizando alguno de éstos métodos, rechaza nuestra aplicación y no nos permite subirla a AppStore.

En este punto, si queremos distribuir nuestra aplicación tendremos que buscar mercados alternativos para ella, como puede ser Cydia. Ahora bien, ¿cómo podemos acceder a métodos y clases privados de Apple, si no los conocemos? Mediante una técnica que se conoce como “dump“. Esta idea consiste en volcar los frameworks que tenemos embebidos en nuestro SDK de forma que podamos entrar a ellos y navegar para estudiar sus clases, sus controladores, qué parámetros recogen y qué parámetros pasan, etc. Para profundizar en este tema, recomendamos que leáis el artículo Dump Public and Private iOS Frameworks de Conor Burgess. En él, se explica cómo utilizar un script que el propio Conor ha desarrollado, y que con ayuda de la herramienta class-dump nos permite tener accesible todos los frameworks del SDK. Además necesitaremos otros dos ficheros (substrate.h y libsubstrate.dylib) que el script utiliza para el parcheo de los frameworks. Una vez seguidos los pasos que el script de volcado requiere (simplemente un par de líneas de comandos), todos los archivos de cabeceras para el SDK habrán quedado volcados, parcheados y unidos. Es importante señalar que esto no interferirá en absoluto con el correcto funcionamiento de nuestro Xcode, aclaración imporante en el supuesto de que queramos desarrollar posteriormente otras aplicaciones válidas para AppStore, en cuyo caso no tendremos ningún problema.

De acuerdo, en este punto ya tenemos disponibles todos los métodos, incluidos aquellos que Apple no quiere que veamos. Ahora, el siguiente paso lógico será comenzar a desarrollar nuestra aplicación. Ésta evidentemente es la parte más complicada, no sólo porque tendremos que pelearnos con el código, sino porque para muchas de las cosas que querremos hacer, no podremos utilizar Xcode e Interface Builder de la manera clásica. En su lugar, necesitaremos otro “entorno de desarrollo”, más adaptado a aplicaciones para jailbreak: el conocido Theos y Logos. Una vez instalado Theos, ejecutaremos el NIC (New Instance Creator), que nos preguntará qué tipo de programa queremos comenzar a desarrollar: podremos elegir entre una aplicación, una librería, un grupo de preferencias, una herramienta o un tweak.

Pantalla de Theos

Pantalla de Theos

Después de seleccionar el tipo de programa, y tras asignarle un nombre, un autor, etc., obtendremos todas las plantillas necesarias creadas sobre las que podremos comenzar a programar. A modo de referencia y para que os sirva de ejemplo, programas como LockInfo, Activator, SBSettings, etc., son todos librerías dinámicas (dylib), en vez de aplicaciones como tal. Por su parte, Logos nos ayudará cuando compilemos nuestro desarrollo, al convertir la sintaxis simple de Theos en el complejo lenguaje de Mobile Substrate, del que hablaremos a continuación.

Para finalizar esta mini-guía, es imperativo comentar brevemente una de las características fundamentales en las aplicaciones para terminales con jailbreak: la inyección de código. Una vez que tenemos nuestros frameworks disponibles, nuestro Theos instalado, y creada nuestra plantilla sobre la que trabajar, necesitaremos de alguna forma (y sobre todo si estamos programando alguna librería dinámica o algún tweak) poder interferir en la ejecución normal del código de Apple en el dispositivo. Para ello, tendremos que conocer el funcionamiento de Mobile Substrate. Esta capa  es un componente requerido por multitud de programas (como SBSettings, Winterboard, Five Icon Dock…) , y fue desarrollada por Saurik. Su forma de actuar es montar librerías cuando carga el Springboard, de forma que pueda inyectar su código en las aplicaciones que lo ejecutan. Esto es lo que se conoce como “hook“, o sea, situar anzuelos en el código en los que nosotros podremos insertar el nuestro propio para engancharlo. Por otra parte, Mobile Substrate nos protege de posibles cuelgues del terminal, poniéndolo en una especie de modo “a prueba de fallos” en caso de que haya algún error en el Springboard.

Resumiendo, como veis, el proceso para comenzar a desarrollar aplicaciones de este tipo requiere una cierta preparación, unas buenas dosis de paciencia y una visión general del proceso que estamos siguiendo. A pesar de que no hay mucha información (especialmente en castellano) al respecto, en el servidor de IRC irc.saurik.com, canal #theos, podréis recibir más ayuda especializada y concreta para cada aspecto en particular. Lo que aquí os presentamos son sólo unos primeros pasos, que esperamos os resulten útiles para saber dónde podéis buscar más información, y qué información podéis buscar.

Si alguno de vosotros se anima, y esta breve introducción le ayuda a desarrollar alguna aplicación, hacédnoslo saber. ¡Estaremos encantados de hablar de ella en Átomos y Bits! :)

Y así es como funciona el ADSL!

Buenos días estimados lectores.

En esta calurosa tarde de verano, os traigo un post que quizá no aporte muchas novedades a algunos de vosotros, pero que probablemente resultará al menos curioso para muchos otros.

A menudo, estamos tan acostumbrados a las tecnologías que utilizamos a diario, que no reparamos en la ingeniería y los avances que subyacen y que nos han permitido poder disfrutar de dichas tecnologías.

El caso concreto del ADSL es muy interesante ya que, por ejemplo, en la carrera de Ingeniería de Telecomunicación puede verse desde multitud de puntos de vista (tantos como especialidades tiene la carrera), esto es, desde la perspectiva de la electrónica base que lo soporta, desde la de las comunicaciones, teoría de la señal, modulaciones, cifrados, compresión, etc, y desde el punto de vista de la telemática que hace uso del enlace ADSL. Por tanto, aunque aquí os contaremos solo las bases del funcionamiento de esta tecnología, podéis profundizar en ella tanto como queráis, porque podría escribirse todo un libro sobre ella (de hecho, se escriben libros sólo sobre ella…). Entremos en materia.

El ADSL debe sus siglas a las palabras Asymmetric Digital Suscriber Line (línea de abonado digital asimétrica, para que nos entendamos). Y su propio nombre ya nos da algunas pistas de su funcionamiento. Se trata de una tecnología de acceso a Internet, que se da sobre los hilos convencionales de cobre que todos tenemos en casa. Estos hilos de cobre, conocidos habitualmente como el “par de cobre“, unen nuestra casa desde el PTR (punto de terminación de red, que sería el punto a partir del cual la instalación deja de depender del operador como tal, o sea, de este punto hacia dentro de nuestra casa, la instalación es cosa nuestra, en teoría) con la central  local de nuestra área. Este cable consiste en dos hilos de cobre aislados, trenzados entre sí (para evitar acoplamientos indeseados y no funcionar como una antena, básicamente), muy extendido hace unos años dado su bajo coste, y su buena respuesta en frecuencias entre los 300Hz y 3’4KHz, y por tanto, muy convenientes para la comunicación vocal (humana), cuyo rango de inteligibilidad se encuentra entre frecuencias de 1 KHz a 4 KHz. Posteriormente, como se ha podido ir comprobando, hemos aprovechado dicho par para frecuencias incluso superiores a 1MHz (el cable de cobre debería funcionar bien hasta los 6 MHz aproximadamente).

Red básica de ADSL

Red básica de ADSL (Fuente: http://www.ayuda-internet.net/)

Sobre el par de cobre, vamos pues a transmitir información digital mediante señales eléctricas analógicas, y para ello vamos a necesitar un módem (modulador/demodulador). Pero, ¿en qué se diferencia un módem ADSL de los módems de 9600 bps que usábamos hace unos años? Pues fundamentalmente, en que dichos módems trabajaban en la banda de frecuencias vocales, y por tanto la velocidad disponible estaba muy limitada por trabajarse con anchos de banda tan pequeños. Además, conectarse a Internet impedía poder usar simultáneamente la línea para llamar por teléfono, con lo que en casa nos quedábamos incomunicados, o eso decían nuestros padres. El ADSL, por su parte, aplica una modulación en una banda de frecuencia superior a la que utilizan las comunicaciones vocales, reservando además un rango para el enlace ascendente y otro para el descendente, además de dejar libre la zona de frecuencias vocales (si bien para garantizar el mejor funcionamiento posible y las mínimas interferencias, se nos suelen proporcionar  microfiltros paso-bajo que conectamos al teléfono para asegurarnos que no interferimos en otros rangos de frecuencia, y viceversa).  Los rangos reservados para el enlace ascendente y descendente son diferentes, porque se concibió la red de forma que los usuarios tuvieran mayor capacidad de descarga que de subida de información. De ahí el apellido de asimétrica que tiene nuestra conexión a Internet. A continuación, podéis observar una gráfica del rango de frecuencias que se manejan en el ADSL tradicional:

Bandas de frecuencia en el ADSL tradicional

Bandas de frecuencia en el ADSL tradicional (Fuente: Wikipedia)

En la imagen, en rojo vemos la banda de frecuencias vocales, en verde el canal de subida y en azul el canal de bajada.

Sin embargo, insaciables de nosotros, estos anchos de banda y sus velocidades de transferencias asociadas, pronto se nos quedaron pequeños. Así nació el ADSL2/2+, que duplica el ancho de banda máximo utilizable hasta la frecuencia de 2’2MHz. Esto nos ofrece teóricamente unas velocidades de descarga en torno a 24Mbps, frente a los 8Mbps que nos ofrecía el ADSL normal. Para realizar esta proeza tecnológica (los padres del par de cobre nunca habrían imaginado que podría enviarse tal cantidad de información sobre dicho medio… fijaos si no en Imagenio), el ADSL2+ se sirve de una mayor eficiencia de modulación/codificación (utiliza modulazión de amplitud en cuadratura QAM con constelaciones de 1 bit, y codificación Trellis), además de unos algoritmos de tratamiento de señal mejorados con respecto al ADSL tradicional. Como os comenté en la introducción, el tema del ADSL es todo un mundo, así que os invito a que leáis algunos artículos sobre tratamiento digital de señales, teoría de la señal, codificación y modulación, para conocer un poco más en qué consisten todos estos extraños términos.

Otra mejora introducida desde el ADSL2 fue la posibilidad de cambiar dinámicamente la tasa de transferencia de datos entre el usuario y la central. Esto era un problema en el ADSL 1, ya que la alta diafonía que se registraba en el canal causaba muchos errores de transmisión y limitaba la calidad de la comunicación. ADSL 2 por su parte puede ajustar la velocidad, y reaccionar a la relación señal/ruido que observa en el medio.

En cuanto al funcionamiento en sí del ADSL, debemos saber que nuestro módem ADSL está conectado con un equipo en la central de nuestro proveedor, llamado DSLAM, que consiste en una serie de nodos ATU-C a los que se conectan (nos conectamos) los usuarios. El DSLAM agrega multitud de conexiones y las gestiona, sincronizándose con nuestro módem ADSL, entre otras cosas para establecer una tasa de transferencia adecuada y otros parámetros de la conexión. Además, el DSLAM envía el tráfico de voz a la central de conmutación para su tratamiento. Desde el DSLAM hacía “arriba” en la red, podemos considerar que se sigue una política jerárquica, que va agrupando conexiones de usuarios en enlaces cada vez de mayor capacidad, llegando a grandes enlaces troncales internacionales. Al ser una red de conmutación de paquetes, se obtiene una gran eficiencia, ya que generalmente (al menos ha sido así hasta los últimos años, en los que las descargas de grandes ficheros desde Internet se han hecho más habituales entre los usuarios) el tráfico generado/enviado por/hacia los usuarios tiene un comportamiento de ráfagas, por lo que no es habitual que un usuario esté utilizando la conexión permanentemente, mientras que los paquetes de otros usuarios sí lo hacen; así se comparte el canal más eficientemente (al contrario de lo que ocurre con una llamada telefónica tradicional sobre una red de conmutación de circuitos, en la que cuando marcamos el número de teléfono de otra persona, aunque no hablemos, tenemos reservado el canal hasta que uno de los dos interlocutores finalice la conexión).

 

Ejemplo de DSLAM en una central

Ejemplo de DSLAM en una central (Fuente: http://dougonipcomm.com/)

Pero toda esta tecnología y avance tiene sus inconvenientes. Y es que, aunque el ADSL2 nos permita trabajar con canales de peores características, y aunque intenten minimizarse los errores producidos en la transmisión sin sacrificar en la medida de lo posible velocidad y prestaciones, las conexiones tienen unos límites más allá de los cuáles se hace inviable manejar esas tasas binarias. Para empezar, es necesario que el par de cobre tenga una cierta calidad, tanto en lo que respecta al ruido como a la atenuación debida a la distancia hasta la central. A partir de los 5 kilómetros aproximadamente, ya tendremos un servicio de bastante mala calidad. Y viceversa: entre los 500 metros y 1 kilómetro de la central, obtendremos la máxima velocidad porque la atenuación será prácticamente inexistente. Podéis ver una gráfica resumen a continuación:

 

Distancia/Velocidad de las conexiones ADSL

Distancia/Velocidad de las conexiones ADSL (Fuente: http://www.supernerd.com.au/)

Bueno, queridos lectores, esto ha sido una brevísima introducción a la tecnología ADSL. De aquí podríamos derivar a hablar sobre TCP/IP , UDP, puertos, LAN’s, backbones y multitud de temas que de una u otra forma están relacionados con el ADSL. ¡Pero tenemos que dejar asuntos para otros días!

Hasta entonces, ¡podéis seguir usando (muchos de vosotros) vuestra conexión ADSL para acceder a páginas tan interesantes como Átomos y Bits!

¡Hasta pronto!

 

 

 

MataProcesos 1.0

¡Buenos días, queridos lectores!

Hoy os traemos un breve (pero a la vez útil) post, que esperamos sea de vuestro interés.

¿Cuántos de vosotros estáis hartos de tener multitud de procesos activos en el sistema, totalmente prescindibles, que no hacen más que ralentizar vuestro ordenador y poneros de los nervios? A nosotros también nos pasa. Concretamente, yo estaba harto de tener que cerrar un montón de procesos cada vez que voy a jugar al Battlefield Bad Company 2, para poder disfrutar al máximo de la experiencia de juego.

Por eso, hemos creado un pequeño script batch que os permitirá cerrar de golpe los procesos que no os interesen, para liberar memoria y procesador, y poder usarlos como mejor os convenga :)

MataProcesos 1.0

MataProcesos 1.0

Se trata del MataProcesos 1.0, que podéis descargar pinchando en este enlace. El funcionamiento es muy sencillo:

  • Tenemos dos archivos, el script en sí y un fichero de texto llamado ProcesosAmigos.txt
  • En el fichero de texto, escribiremos los nombres de los procesos que NO QUEREMOS CERRAR, esto es, todos aquellos procesos que son necesarios para el correcto funcionamiento de nuestro sistema, y que variarán de un usuario a otro dependiendo de vuestra configuración (por ejemplo, el explorer.exe, el svchost.exe, winlogon.exe, etc). Escribiremos un nombre en cada línea del fichero, tan simple como eso.
  • Por otra parte, el script recopilará la lista de procesos que tenemos abiertos en ese momento, e irá comprobando uno por uno si cada proceso está en la lista de procesos amigos. Si está en la lista, lo ignorará, y si no está en la lista, lo cerrará.
  • Por último, obtendremos un resumen de los procesos ignorados, cerrados, y los que han dado algún error.

Resumen MataProcesos

Resumen MataProcesos

Observaciones importantes a tener en cuenta:

  • Ambos archivos deben estar en la misma carpeta física (en vuestro escritorio, en c:\, o donde prefiráis).
  • El script intentará cerrar los procesos forzando dicho cierre. No nos hacemos responsables de los datos que perdáis si, por ejemplo, estáis escribiendo un comentario en nuestra web y cerráis el proceso del navegador, o estáis retocando una foto y cerráis vuestro editor gráfico… ¡Guardad siempre vuestro trabajo abierto! :)
  • La lista de aplicaciones amigas tenéis que adaptarla a vuestro caso particular. Mi recomendación (el briconsejo del día) es que vayáis a MS-DOS (escribiendo “cmd” en el cuadro “Ejecutar” de vuestro menú de inicio), y una vez ahí, escribáis “tasklist” (sin las comillas…). Así obtendréis una lista de las tareas que tenéis abiertas en ese momento. Si pulsáis con el botón derecho, y pincháis “Marcar”, podéis seleccionar la columna de los nombres de los procesos, copiarla al portapapeles, y luego ir al fichero ProcesosAmigos.txt y pegarla (así no tendréis que escribirlos uno por uno). Después, podéis ir eliminando de dicha lista los procesos que no os interese “salvar” de la matanza de tareas. Y para ello, podéis ir al administrador de tareas de Windows y comprobar qué hace cada proceso.
  • Después de ejecutado el script y matados los procesos, seguramente hayáis matado alguno que el sistema considera importante, y muy probablemente segundos después de haberlos matado, se volverán a lanzar automáticamente. Por eso, no os extrañéis si volvéis a ejecutar el script y de nuevo encontráis un montón de procesos a matar.
  • Os recomiendo que, sea cual sea la lista de procesos que queréis salvar, añadáis a la lista los procesos “cmd.exe” y “tasklist.exe”, para la correcta ejecución del script, además de las tareas que utilice vuestro antivirus/firewall/antispyware, etc.
  • Podéis editar a vuestro gusto el script, y modificarlo como queráis, añadirle mejoras, personalizarlo, etc. Estaremos encantados de que nos contéis lo que hayáis hecho con él. La moraleja de todo esto es que si no encuentras algo que haga lo que estás buscando, créalo tú mismo.

¡Esperamos que esta pequeña aportación os resulte interesante! Así podréis hacer que vuestro ordenador funcione aún mejor cuando visitéis Átomos y Bits :)

¡Hasta pronto!

Tomando el pulso (electromagnético) a la tecnología

Buenos días, queridos lectores.
Hoy os traemos un artículo mitad teoría, mitad práctica.

Hace relativamente poco (antes de verano), cambié de casa, y salí un poco de la ciudad buscando algo de tranquilidad, y evidentemente precios más baratos de alquiler :)
Pues bien, aunque la zona donde vivo ahora es bastante más tranquila que la anterior, me ha tocado el típico vecino que disfruta reventándose los tímpanos con decibelios inhumanos de música. Eso, sumado a que las paredes de estos edificios son más parecidas a cartón que a ladrillo, me llevó a comenzar a buscar formas “alternativas”  de acabar con mi sufrimiento. Descartando en aquel momento el asesinato y la conversación, lo uno por ilegal y lo otro por poco efectivo, empecé a interesarme por el mundo de los pulsos electromagnéticos o PEM.

Los PEM comenzaron a estudiarse en la década de los 60, cuando el 9 de julio de 1962, los Estados Unidos estaban llevando a cabo una serie de pruebas nucleares en plena carrera  armamentística. Una de estas pruebas (con nombre en clave Starfish Prime) consistió en la detonación a 400km sobre la isla de  Johnston de una bomba atómica de 1,44 megatones propulsada por un cohete Thor. Resultado: volatilizaron dos satélites americanos, uno ruso, y se registraron daños en Hawai a más de 800 millas de distancia de la detonación. 300 farolas del alumbrado urbano se fundieron, cientos de alarmas antirobo y de incendios se dispararon (aunque no llegaron vibraciones hasta estos puntos) y se quemó el enlace interinsular por microondas de una compañía telefónica.

Resplandor de la operación Starfish Prime visto desde Honolulu

Resplandor de la operación Starfish Prime visto desde Honolulu

Después, los rusos quisieron unirse a la fiesta, y mediante el proyecto K-3, detonaron el 22 de octubre de 1962 cinco cargas de hasta 300 kilotones, a 290 kilómetros de altitud. Consiguieron incendiar la central eléctrica de Karaganda, y dejaron fuera de servicio 1.500 km de cables eléctricos subterráneos entre Astana y Almaty.

La explicación para estos fenómenos no es otra que la radiación emitida por las explosiones nucleares (aunque en la naturaleza podemos encontrar los pulsos electromagnéticos también asociados a tormentas, por ejemplo). Al efectuarse las detonaciones, se libera una enorme cantidad de energía en forma de rayos gamma y rayos X. La radiación gamma es altamente penetrante, e interactúa irradiando la materia, inluido el propio aire. Así, crea un campo electromagnético al ionizar el aire, que puede abarcar miles de kilómetros cuadrados. Este campo eléctrico, induce corrientes en los componentes electrónicos, que los saturan y pueden llegar a destruirlos por completo, como así ocurre.

Efectos del pulso

Efectos del pulso

La industria militar vio inmediatamente las posibles aplicaciones de esta tecnología, para inutilizar los equipos electrónicos de sus enemigos, sus defensas, sus armas y sus  infraestructuras básicas. De esta forma surgió la idea del HEMP, o ataque de pulso electromagnético de gran altitud. Este ataque, también conocido como la Bomba Arco Iris (por las auroras que crea en el cielo, al interactuar la radiación de la bomba con la ionosfera terrestre), puede cubrir todo un continente, causando un caos completo tanto civil como militar,  destruyendo las comunicaciones, el abastecimiento de agua, de electricidad, y en consecuencia cualquier tipo de infraestructura que los habitantes de un país/continente necesitan para sobrevivir.

Para llevar a cabo este tipo de ataque, es necesario una bomba termonuclear de potencia en torno al megatón, detonada a una altitud entre los 300 y 500 km sobre el área que se quiere atacar. Según un estudio de la IEEE, la mayor parte de los componentes electrónicos presentan fallos cuando se les aplican campos electromagnéticos de 1.000 voltios/metro, y son destruidos cuando el campo ronda los 4.000 voltios/metro. Teniendo en cuenta que un ataque HEMP puede generar en torno a 50.000 voltios/metro, podemos imaginarnos el efecto que tendría sobre los componentes electrónicos que todos utilizamos a diario.

El pulso electromagnético nuclear presenta tres componentes:

  • El pulso E1, que es el más peligroso ya que genera voltajes muy intensos y rápidos, con lo que destruye instantáneamente todo tipo de material eléctrico/electrónico.
  • El pulso E2, como los producidos por los rayos durante una tormenta, y contra los que es mucho más sencillo protegerse aislando los componentes electrónicos adecuadamente.
  • El pulso E3, similar a los producidos durante las tormentas geomagnéticas por llamaradas solares. Es una componente más lenta, provocada por el calor de la detonación, seguido de la restauración del campo magnético que vuelve a si estado inicial. Suele afectar a conductores largos.

También vale la pena comentar que el HEMP no afectaría igual a cualquier zona del planeta en que se le detonase, porque su efecto depende de las líneas de campo del campo magnético terrestre. Así, el pulso sería más débil cerca del ecuador, y más intenso en latitudes intermedias (como las de Europa, Estados Unidos, Japón, China, gran parte de Rusia…), que  precisamente son las áreas más desarrolladas tecnológicamente, con lo que su mayor impacto sería doble, porque las consecuencias serían mucho mayores.

En cuanto al impacto sobre las personas, se supone que un PEM no debería afectar en principio directamente a la salud, ya que su duración es tan corta que no tendría efectos nocivos sobre el cuerpo humano. Tampoco debería influir el hecho de que en el cerebro se transmitan señales eléctricas, porque dichas señales son “electroquímicas”, y su transmisión depende de la polarización y la diferencia de potencial entre membranas de las células (así, la corriente que se genera es mucho más lenta que la que circula por un cable; estaríamos hablando de en torno a 100 m/s). Pero sobre esto, he leido opiniones diferentes y encontradas, por lo que no pondría la mano en el fuego diciendo que el PEM no tiene efectos nocivos directos sobre la salud.

Después de esta reseña histórica, pasamos a la parte práctica. ¿Cómo podemos generar nuestro proprio PEM para destruir hipotéticamente la cadena musical de nuestro vecino? Pues bien, la cosa no es tan sencilla. Después de leer sobre el tema, he encontrado opiniones de todo tipo.

Algunas personas afirman que puede construirse un PEM con un emisor de radiofrecuencia de gran potencia como los que utilizan los radioaficionados, convenientemente modificado, utilizando el generador para hacer circular en muy poco tiempo una gran corriente por una bobina que genere el pulso, y posteriormente, guiando dicho pulso según nuestra conveniencia. ¿Inconvenientes? Pues aparte de que es peligroso para nuestra integridad, te puedes quedar sin emisor, ni televisión, ni móvil, ni ordenador… y entonces, ¿cómo leerías Átomos y Bits? Así que lo descartamos.

Otra opción que encontré fue realizarlo a partir de un microondas, pero esto es si cabe más peligroso aún, ya que manipular el magnetrón de un microondas no es tarea fácil: puedes sufrir graves quemaduras, y su radiación puede descalcificar tus huesos,  producirte daños internos, etc. Aún así, hay personas a las que no les importa correr estos riesgos, y una de estas personas ha conseguido realizar una pistola de microondas (que pesa sólo 8 kilos) a la que ha bautizado como “The POWERLABS Microwave Gun”. Os invito a que le echéis un vistazo en la web del creador en cuestión.

Pistola de microondas

Pistola de microondas

En otros foros, leí que para hacer nuestro PEM en miniatura de prueba, podemos simplemente descargar el flash de una cámara fotográfica a través de una bobina. Básicamente, la idea es esa: al tener una variación muy rápida de la corriente que circula por una bobina, ésta generará un campo electromagnético mayor. Aún así, dudo mucho que su efecto sea medianamente perceptible. Haría falta una gran cantidad de corriente liberada muy rápidamente (por tanto, probablemente se necesiten también grandes condensadores) que circule a través de una bobina sin quemarla… ¿alguno de vosotros lo ha probado?

Por último, conseguí encontrar (y no he vuelto a localizar la página de donde lo saqué) un esquema para fabricar nuestro PEM casero, pero ante el desconocimiento de si se trata de una farsa o no, no me he decidido a montarlo. Aunque os lo adjunto a continuación, por si alguno de vosotros tiene un espíritu inquieto y se atreve con el juguetito. Como veréis, hay una breve descripción del mismo, un listado de componentes, y una serie de esquemas no muy complicados para desarrollarlo.

Pulso 1ª página

Pulso 1ª página

Pulso 2ª página

Pulso 2ª página

Pulso 3ª página

Pulso 3ª página

Pulso 4ª página

Pulso 4ª página

Pulso 5ª página

Pulso 5ª página

Desde Átomos y Bits os invitamos a que si tenéis curiosidad, desarrolléis el circuito, y nos contéis si funciona o no, pero esperamos que lo hagáis con fines responsables y no  bélico/agresivo/criminales :)

Bueno, esto es todo por hoy. Esperamos que el artículo os haya resultado interesante, y haya despertado vuestra curiosidad sobre el tema. ¡Hasta pronto!

PD: ¿Que qué pasó al final con mi vecino? Bueno… ¿conocéis esta serie de televisión? :)