rmbelfiore
Usuario (Argentina)
Hola! Hace poquito hice una investigación sobre muchas características de los navegadores y quería compartirlo con ustedes. Espero que les sea de utilidad Qué navegadores voy a comparar Google Chrome 25 Antepenúltima versión estable, lo utiliza el 44.2% Firefox 19 Anteúltima versión estable, lo utiliza el 19% Internet Explorer 10 Última versión estable, lo utiliza el 2.3% La evaulación pretende puntuar a los navegadores según su compatibilidad con las nuevas tecnologías empleadas en el desarrollo de aplicaciones web y con la multiplicidad de plataformas, para así realizar una predicción sobre el futuro de los mismos. La elección de las versiones se debe, en el caso de Google Chrome y Firefox, a que estas son las versiones más utilizadas en el mundo y a las escasas modificaciones que se han realizado en versiones posteriores. La elección de la última versión de IE, si bien a la fecha de la estadística no era muy utilizado, se debe a su creciente difusión en los últimos meses y a que la nueva versión presenta cambios muy relevantes. Si tomáramos cualquier otra versión de IE, perdería la batalla antes de empezar! Aclaraciones sobre notación La ponderación de cada aspecto se encuentra en el rango de 0 a 100 según su importancia. La justificación de cada ponderación se encuentra detallada en las páginas siguientes. En algunos casos, la evaluación de una determinado aspecto puede incluir más de un valor como resultado, eso puede verse en la planilla de cálculo de valoraciones. Estos resultados no necesariamente se encuentran entre 0 y 100 (aunque en general sí porque se trata de porcentajes). En caso de no pertenecer a este rango, se calcula un valor que sí pertenezca proporcionalmente (por ejemplo, si la escala es de 0 a 500, se multiplica por 1/5). El puntaje total de cada aspecto surge del promedio de estos subtotales (que se encuentran entre 0 y 100). El total indicado al lado de cada categoría es la suma de estos totales. Qué parámetros tener en cuenta Compatibilidad con tecnologías HTML5 El soporte de esta versión del lenguaje de markup fundamental para desarrollar sitios web es, quizás, el factor más importante a la hora de evaluar un navegador en la actualidad. Su máxima ponderación se debe a este motivo. Para evaluar la compatibilidad de un navegador con HTML5 se deben tener en cuenta las caracterísitcas de la tecnología que el mismo soporta correctamente. Para ello existen muchas evaluaciones en internet, la más conocida es HTML5 Test, también consideraremos el test de Can I use? que evalúa algunas funcionalidades especiales y una evaluación del soporte HTML5 en teléfonos móviles. CSS3 La nueva versión de HTML viene asociada a esta nueva versión del lenguaje para definir hojas de estilos. Par evaluar la compatibilidad con CSS3, usaremos CSS3 Test y el test de Can I use?. SVG y JavaScript El uso de imágenes vectoriales aumentó significativamente en los últimos años, para evaluar esta compatibilidad también usaremos el test de Can I use?. Lo mismo para la compatibilidad con determinadas features de JavaScript que suelen tener dificultades para ser soportadas. Compatibilidad con plataformas Soporte (Funcionalidades full, parcial, no compatible) Evaluaremos el soporte de cada navegador para los sistemas operativos más comunes. El valor depende estrictamente de si existe o no versión para dicho sistema, por lo que puede ser: • 0 si no existe versión para el SO. • 50 si existió pero está discontinuada. • 90 si existe versión pero su compatibilidad no es completa. • 100 si posee todas sus funcionalidades. Rendimiento Este valor surgirá del sitio Speed Battle, sitio que evalúa el rendimiento de cada navegador en los distintos Sistemas Operativos en función de la utilización de memoria y la velocidad de renderizado, entre otros. Sistemas Operativos La elección de los Sistemas Operativos y su ponderación se basa en el porcentaje de dispositivos que lo utilizan a nivel mundial al día 14 de abril de 2013, según el sitio gemiusRanking. La ponderación sigue las siguientes reglas: Se multiplica por dos el porcentaje indicado en el ranking (porque la compatibilidad con distintos Sistemas Operativos debe ser de similar importancia con respecto a la compatibilidad con tecnologías). Si se trata de la última versión del Sistema Operativo ó de su única versión, el valor de su porcentaje se multiplica por 10 (en el primer caso, porque es altamente probable que su uso aumente con el tiempo; en el segundo, porque el hecho de que un sistema sea relativamente poco utilizado no implica que no debe pensarse en absoluto en compatibilidad con él). Tendencia en el tiempo Evolución por años Este aspecto hace referencia al atraso relativo que tiene un navegador con respecto de los otros, es decir, cuánto tiempo después que los otros alcanza un soporte “decente” para una determinada tecnología muy utilizada. El valor de la celda corresponde a la cantidad de meses que hace desde que se logró esta compatibilidad. Los parámetros elegidos hacen referencia a la compatibilidad con HTML4 y 5 y JavaScript, pero podrían elegirse muchos otros. Utilización en el mundo Este criterio busca resaltar la tendencia de crecimiento del navegador en los úlitmos años. Para ello, se toma en cuenta el porcentaje de usuarios en el año 2010 y 2013. Una última columna corresponde a la resta de ambos valores multiplicada por 3/2, y busca aumentar el puntaje si el crecimiento fue positivo y disminuirlo si fue negativo. Así estaríamos considerando la cantidad de usuarios que tiene actualmente y la relación de esta cantidad con la de años anteriores en un mismo valor. Rendimiento Rendimiento general Este criterio hace referencia al rendimiento general del navegador. Se calculará como el promedio de rendimiento en todas las plataformas evaluadas. Además, incluimos dos tests que evalúan el consumo de memoria en Windows 7 (ya que es el Sistema Operativo más usado) para una sola tab abierta y para múltiples. Velocidad de navegación Para evaluar la velocidad de navegación, se tendrán en cuenta los siguientes criterios: • JavaScript performance, evaluada por dos tests: Suspider y Kraker. Criterios de comparación (planilla) Resultados para Google Chrome Resultados para Mozilla Firefox Resultados para Internet Explorer Comparación por categorías Análisis + Conclusiones Compatibilidad con tecnologías Google Chrome gana ampliamente en este aspecto, sobre todo en la compatibilidad con HTML5, que como se dijo antes, resulta uno de los factores más importantes a la hora de evaluar el futuro de un navegador. Además, se ve que es por lejos el navegador con mejor crecimiento en el tiempo (de hecho es el único que aumentó su uso en los últimos años, tanto Firefox como IE han disminuido en este aspecto) y junto a Firefox está a la cabeza en la rapidez para adaptarse a las nuevas tecnologías. Internet Explorer siempre ha ido muy por detrás, sus versiones 6, 7 y 8 no soportaban totalmente HTML4 y CSS2. Su última versión incorpora grandes mejoras, pero aún así se ve que no logra alcanzar a sus competidores en cuanto a compatibilidad, por un márgen muy amplio. Compatibilidad con plataformas Firefox gana en este aspecto, si bien Google Chrome tiene soporte para todos los Sistemas Operativos evaluados menos para WP7, los tests reflejan que el funcionamiento del primero es levemente mejor, sobre todo en distintas versiones de Windows. De nuevo, Internet Explorer 10 se queda atrás en este criterio, ya que sólo tiene soporte para versiones de Windows (de hecho, la versión full de IE10 sólo funciona en Windows 8, también lanzaron una versión retrocompatible hasta Windows XP) y una versión nativa para WP7. El peor indicio para el futuro de Microsoft en el mercado de los navegadores es que Mozilla Firefox obtuvo mejor rendimiento evaluado en la última versión de su propio SO, Windows 8. Tendencia en el tiempo El criterio de “Evolución por años” muestra claramente cómo Google Chrome y Mozilla Firefox siempre han superado a Internet Explorer a la hora de proveer soporte para nuevas tecnologías, incluso cuando su lanzamiento al mercado fue posterior. Desde siempre los famosos IE6 e IE7 han sido un dolor de cabeza para los desarrolladores web, debido a su deficiente compatibilidad con HTML y CSS, lenguajes de markup y hojas de estilo básicos para el funcionamiento de cualquier sitio. Por otro lado, las tendencias en cuanto a utilización en el mundo son bastante claras. Tanto IE como Firefox (más allá de que IE tiene menor cantidad de usuarios y de que su decrecimiento proviene de hace mucho tiempo) han perdido muchísimos usuarios en los últimos años, que prácticamente en su totalidad ahora eligen el navegador de Google. En 3 años el uso de Chrome en el mundo aumentó casi un 40%, mientras que el uso de Firefox disminuyó un 18% y el de IE un 21%. Rendimiento En este aspecto hallamos el punto débil de Chrome con respecto a Firefox. Evaluando Internet Explorer, el primer test sobre rendimiento de JavaScript arrojó buenos resultados, pero el segundo todo lo contrario y en mucho mayor medida. Los tests de uso de memoria dejan ver un aspecto muy importante que Google Chrome debería mejorar, del que Internet Explorer se encargó en su última versión (aunque sin alcanzar a Chrome y Firefox), ya que anteriormente estaba muy por detrás de los demás. Se conocen determinados plugins para Firefox que producen un memory leak, pero el alcance de este trabajo se limita a considerar las funcionalidades básicas de cada navegador. Luego de evaluados todos los criterios, la mejor puntuación pertenece a Google Chrome, con un cercano segundo lugar de Firefox y un abismo entre ambos e IE, incluso considerando todas las optimizaciones de su última versión. El éxito de Google Chrome evaluando su compatibilidad con distintas tecnologías y plataformas, además de su clara tendencia al crecimiento durante los últimos años permite predecir que seguirá siendo el navegador elegido por más de la mitad de los usuarios de internet a nivel mundial al menos por muchos años más. Probablemente en algún momento Google deberá preocuparse por mejorar un poco la administración de recursos del sistema, pero debido a la evolución de las computadoras puede que este no sea un aspecto tan importante. Con respecto a Firefox, si bien su claro decaimiento en el uso parecería anticipar lo contrario, todavía mantiene una evolución en cuanto a compatibilidad con tecnologías y plataformas y el mejor rendimiento general de los tres. Sin un error de Google o una gran mejora por parte de sus desarrolladores, probablemente este navegador siga perdiendo usuarios como en los últimos años; pero difícilmente llegue al bajo porcentaje que posee IE debido a su interesante cantidad de plug-ins y a su buen rendimiento general. La predicción para Internet Explorer está clara: sin un milagro, los usuarios de Windows seguirán prefiriendo utilizarlo sólo para descargar otros navegadores recién instalado el sistema ¡No era un mito que IE es malísimo! Tus comentarios son más que bienvenidos
Ojalá les sirva, es un informe que redacté yo misma, me llevó mucho trabajo. (No hay mucho de esto en la web en español) Un microprocesador es un circuito constituido por miles o millones de transistores integrados de tamaño micro. El primer microprocesador fue el Intel 4004, pero en este trabajo analizaremos la estructura del Intel 8088, ya que todos los CPU actuales son similares a este. Es el chip principal que integra una computadora, también llamado CPU (Unidad Central de Proceso). Es quién se encarga de ejecutar instrucciones y procesar datos, aplicando sobre ellos operaciones lógicas o aritméticas, tales como sumar y comparar. Su velocidad de procesamiento (o la cantidad de operaciones que puede realizar por segundo) se mide en Megahertz (MHz) o Gigahertz (GHz). Está ubicado en el socket de la placa madre, y se comunica con otras placas o dispositivos por medio de buses de datos. Interiormente, está diagramado en bloques. Diagrama en bloques 1. Registros de propósito general (AX, BX, CX y DX ) y registros índice (SP, BP, SI, DI). 2. Registros de segmento (CS, DS, SS, ES) y el registro apuntador de instrucciones (IP). 3. Sumador de direcciones. 4. Bus de direcciones. 5. Queue o cola de instrucciones. 6. Unidad de ejecución (EU). 7. Lógica del control del bus. 8. Bus de datos de la ALU. 9. ALU (Unidad Aritmético-Lógica). 10. Bus de direcciones. 11. Bus de datos. 12. Bus de control. F: No está numerada, pero son los registros de bandera (Flags). Registros de propósito general: Guardan datos y/o direcciones , según la operación que se esté realizando. Se dividen en AX, BX, CX y DX; cada uno definido según la función que desarrolle. AX: Es el registro acumulador, utilizado para operaciones de entrada/salida y la mayor parte de la aritmética. BX: Es el registro base, y puede ser utilizado para realizar un direccionamiento indexado. También se puede emplear para cálculos. CX: El registro CX es conocido como el registro contador. Puede contener un valor para controlar el número de veces que un ciclo se repite o un valor para corrimiento de bits. DX: El registro DX es el registro de datos. Algunas operaciones de entrada/salida requieren su pulso. Registros índice: Son usados para modificar direcciones del operando durante la ejecución de un programa de computadora. El registro índice es típicamente usado para hacer operaciones de vectores y arrays. Todos son de 16 bits. Registro SP: (Apuntador de pila) Está asociado con el registro SS y proporciona un valor de desplazamiento que se refiere a la palabra actual que está siendo procesada en la pila. Registro BP: (Apuntador base) Facilita la referencia de parámetros, los cuales son datos y direcciones transmitidos vía la pila. Registro SI: (Registro índice fuente) Es requerido por algunas operaciones con cadenas de caracteres. El SI está asociado con el registro DS. Registro DI: (Registro índice destino) Es requerido por algunas operaciones con strings. El DI está asociado con el registro ES. Registros de segmento: Se utilizan para referenciar áreas de memoria. Un registro de segmento tiene 16bits de longitud. Registro CS: Esta dirección de segmento, más un valor de desplazamiento en el registro apuntador de instrucción (IP), indica la dirección de una instrucción que es buscada para su ejecución. Registro DS: La dirección inicial de un segmento de datos de programa es almacenada en el registro DS. Esta dirección, más un valor de desplazamiento en una instrucción, genera una referencia a la localidad de un byte específico en el segmento de datos. Registro SS: El registro SS permite la colocación en memoria de una pila, para almacenamiento temporal de direcciones y datos. Esta dirección de segmento, más un valor de desplazamiento en el registro del apuntador de la pila (SP), indica la palabra actual en la pila que está siendo direccionada. Registro ES: Algunas operaciones con cadenas de caracteres utilizan el registro extra de segmento para manejar el direccionamiento de memoria. El registro ES está asociado con el registro DI. Registro apuntador de instrucciones: IP: Tiene 16 bits, contiene el desplazamiento de dirección de la siguiente instrucción que se ejecuta. El registro IP está asociado con el registro CS, ya que indica la instrucción actual dentro del segmento de código que se está ejecutando actualmente. Sumador de direcciones: Realiza la suma necesaria para el direccionamiento indexado, implementamos en la CPU un sumador dedicado sólo a esta tarea, de esta forma no usamos tiempo de la ALU. Bus de direcciones: Es un canal del microprocesador donde se establece la dirección de memoria del dato en tránsito. El bus de dirección consiste en el conjunto de líneas eléctricas necesarias para establecer una dirección. Queue o cola de instrucciones: Es una pila donde las instrucciones son almacenadas antes de que la unidad de ejecución las ejecute. Unidad de ejecución (EU): Este elemento del microprocesador es el que se encarga de ejecutar las instrucciones. La unidad de ejecución comprende el conjunto de registros de propósito general, el registro de banderas y la unidad aritmético-lógica. Bus de datos de la ALU: Es el encargado de transportar los datos entre las distintas partes del microprocesador. El 8088 utiliza un bus de 8bits. ALU: La unidad Aritmético-Lógica es un circuito digital que calcula operaciones aritméticas (suma, resta, multiplicación y división ) y operaciones lógicas (comparación). Es, quizás, la pieza más importante del microprocesador. Flags (Registros de bandera o estado): Son registros de 16 bits, de los cuales nueve sirven para indicar el estado actual de la máquina y el resultado del procesamiento. Este estado, por lo general cambia después de cualquier operación aritmética o lógica. OF (desbordamiento): Indica desbordamiento del bit de mayor orden después de una operación aritmética de números con signo. DF (dirección): Controla la selección de incremento o decremento de los registros SI o DI en las operaciones con cadenas de caracteres (strings). IF (interrupción): Indica que una interrupción externa sea procesada o ignorada. TF (trampa): Permite la operación del procesador en modo de depuración (paso a paso). SF (signo): Contiene el signo resultante de una operación aritmética. ZF (cero): Indica el resultado de una operación aritmética o de comparación (0 si el resultado es diferente de cero y 1 si el resultado igual a cero). AF (acarreo auxiliar): Contiene un acarreo externo en un dato de 8 bits, para aritmética especializada. PF (paridad): Indica si el resultado es par o impar en una operación de datos de ocho bits. CF (acarreo): Contiene el acarreo de los bits de mayor orden después de una operación aritmética; también almacena el contenido del último bit en una operación de corrimiento o de rotación. Ciclo de instrucción Para saber qué es un ciclo de búsqueda y uno de ejecución, es necesario saber qué es un ciclo de instrucción. Un ciclo de instrucción, también llamado fetch-and-execute (búsqueda y ejecución) es el período que tarda un microprocesador en ejecutar una instrucción. Se divide en dos etapas: Ciclo de búsqueda y ciclo de ejecución. Las instrucciones se clasifican, según su función, en: - Instrucciones de transferencia de datos. - Instrucciones de cálculo. - Instrucciones de transferencia del control del programa. - Instrucciones de control. Ciclo de búsqueda Búsqueda de la instrucción: Lo primero que realiza el microprocesador en un ciclo de instrucción, es buscar la instrucción en la memoria principal (RAM). El registro apuntador de instrucciones, tiene almacenada la dirección de la próxima instrucción a ejecutar. Cuando la instrucción fue hallada, el microprocesador pasa la instrucción de la memoria principal a través del bus de datos al Registro de Datos de Memoria (MDR). A continuación, lo registrado allí es colocado en el Registro de Instrucción Actual (CIR), un circuito que guarda la instrucción temporalmente de manera que pueda ser decodificada y ejecutada. Decodificación de la instrucción: La segunda y última acción comprendida en el ciclo de búsqueda es decodificar la instrucción. El dato es enviado a una Unidad de Decodificación, que decodifica la instrucción que se va a ejecutar. Es decir, el decodificador traduce la instrucción para saber, justamente, qué instrucción es. Ciclo de ejecución Ejecución de la instrucción: Una vez que la unidad de decodificación sabe cuál es el significado de la instrucción leída de memoria, se lo comunica a la Unidad de Ejecución. Esta unidad será la encargada de consumar la ejecución y para ello activará las señales necesarias y en un orden determinado. Es decir, es la encargada de dar las órdenes necesarias a las diversas partes del microprocesador para poder ejecutar cada una de las instrucciones. Almacenamiento de los resultados: La última acción que se realiza en el ciclo de instrucción, es el almacenamiento de los resultados. El resultado generado por la operación es almacenado en la memoria principal (RAM) o enviado a un dispositivo de salida, según la instrucción. Basándose en los resultados de la operación, el contador de programa se incrementa para apuntar a la siguiente instrucción o se actualiza con una dirección diferente donde la próxima instrucción será recogida. Pentium Historia: El 19 de octubre de 1992, Intel anunció que la quinta generación de su línea de procesadores llevaría el nombre Pentium, en vez de 586 u 80586, como se esperaba. Esta fue una estrategia de la empresa para poder registrar la marca y así poder distinguir el nombre de sus procesadores del de sus competidores. Los microprocesadores Pentium conservan la estructura básica de un Intel 8086. El primer Pentium se lanzó al mercado el 22 de marzo de 1993, con velocidades de 60 y 66MHz. Aunque contaba con graves problemas de regulación de temperatura y tenía un fallo en la unidad matemática, fue vendido por mucho dinero. Luego del primer Pentium, se lanzaron versiones de 90, 100, 75, 120, 133, 150, 166 y 200MHz, aproximadamente en ese orden. En 1995 se lanzó Pentium Pro, una versión diferente y mejorada del Pentium clásico para 32 bits. Este micro tenía un núcleo más depurado, incluía una unidad matemática aún más rápida y, sobre todo, tenía la caché de segundo nivel en el encapsulado del chip. En 1996, Pentium lanzó su línea MMX (Agregaron un juego de instrucciones multimedia muy importante), sólo tres meses antes de lanzar los microprocesadores Pentium II, en 1997. El Pentium II era muy similar al Pentium I. Se comercializó en versiones que funcionaban a una frecuencia de reloj de entre 166 y 450MHz. La velocidad de bus era originalmente de 66MHz, pero en las versiones a partir de los 333MHz se aumentó a 100MHz. En 1998 lanzó Xeon, una familia de microprocesadores para servidores PC y Macintosh. En 1999, Intel lanzó Pentium III, versión que resultó ser muy similar a Pentium II. En el año 2000, fue lanzado Pentium 4. Es el primer microprocesador con un diseño completamente nuevo desde el Pentium Pro (1995). Alcanzó los 3,8GHz de velocidad. En 2004 se creó Pentium D, una línea de procesadores que eran, básicamente, dos Pentium 4 en un mismo encapsulado. La línea Pentium 4 fue sustituida por la línea Core Duo, El mismo, dispone de dos núcleos de ejecución, lo cual hace de este procesador especial para las aplicaciones de subprocesos múltiples y para multitarea. Luego, en 2006 se lanzaron los Core 2 Duo. Tecnología HT HT significa “Hyper Threading”, es una tecnología desarrollada y patentada por Intel, que permite simular varios procesadores lógicos dentro de un único procesador físico. Así se logra una mejoría en el rendimiento del procesador, que según Intel puede alcanzar un 30%. De todos modos, las aplicaciones que pretendan aprovechar la capacidad de esta tecnología deben haber sido programadas para utilizar múltiples hilos, de lo contrario no se conseguirá el paralelismo en la ejecución que se pretende. Resumiendo, HT le hace creer al usuario mediante el sistema operativo que tiene dos o más microprocesadores (Siempre y cuando el software lo soporte) cuando en realidad tiene montado un solo microprocesador. Simula una placa madre con doble microprocesador. Esta tecnología ya fue implementada en los microprocesadores Atom, Core i3, Core i5, core i7, Itanium, Pentium 4 y Xenon. Conclusiones Es interesante comentar cuáles son las mejoras de Pentium con respecto al Intel 8086: A partir del Intel 80286, los procesadores incorporaron el modo protegido (a diferencia del modo real que se utilizaba anteriormente), en el que se adquiere capacidad de proceso multitarea y almacenamiento en memoria virtual. Esta es una diferencia muy importante entre el 8086 y Pentium. La línea Pentium, a diferencia del Intel 8086, incorporó la unidad de punto flotante al microprocesador. Anteriormente, existían chips llamados coprocesadores que debían agregarse al procesador principal para poder utilizar esta unidad. Por ejemplo, el coprocesador matemático del Intel 8086 se llamaba Intel 8087. Sin embargo, este método se utilizó por primera vez en el Intel 80486. La línea Pentium incorporó caché interna, a diferencia del 8086 que no incluía. Trabaja con tecnologías de 64bits, a diferencia del 8086 que trabaja con 16bits. Pentium tiene más cantidad de registros, como, por ejemplo el registro extendido de bandera. Y evidentemente, el Pentium es mucho más conveniente ya que alcanza una mayor velocidad de procesamiento y de transferencia de datos. Referencias Wikipedia, la enciclopedia libre: “Intel 8086 y 8088” http://es.wikipedia.org/wiki/Intel_8086_y_8088#Esquema Wikipedia, la enciclopedia libre: “Ciclo de instrucción” http://es.wikipedia.org/wiki/Ciclo_de_instrucci%C3%B3n Wikipedia, la enciclopedia libre: “Intel Pentium” http://es.wikipedia.org/wiki/Intel_Pentium Wikipedia, la enciclopedia libre: “Hyper Threading” http://es.wikipedia.org/wiki/HyperThreading Monografías http://www.monografias.com/trabajos37/el-microprocesador/el-microprocesador.shtml#unidad Alipso http://www.alipso.com/monografias/2941_tema13/ MiTecnológico http://www.mitecnologico.com/Main/DecodificacionDeUnaInstruccion http://www.mitecnologico.com/Main/CicloEjecucionDeUnaInstruccion Universidad Tecnológica Nacional – Apunte | Arquitectura http://www.frm.utn.edu.ar/arquitectura/unidad5.pdf Comentar es Agradecer
Una empresa de nombre Innovega revelará la versión final de su tecnología llamada iOptik, que competirá directamente con las gafas inteligentes Glass de Google. Pero, ¿qué ofrece el iOptik más allá de lo que ya hace Glass? Pues según la empresa, esta promete un sistema que combina un lente de contacto, junto a unas gafas, para crear un sistema de pantallas tridimensionales que son proyectadas directamente a la retina de tu ojos. Para lograrlo, el lente de contacto funciona como una enfocador de la imagen, mientras que la imagen en si es generada por las gafas y enviadas directamente a los lentes de contacto. Más allá de esto no sabemos más detalles, pero la empresa supuestamente presentará su invento en evento CES 2014 a inicios de año. Los dejo con este video del año pasado de la empresa que consiste de dos partes. En la primera, muestran casos hipotéticos de como será esta tecnología en el futuro, y en la segunda parte muestran video real grabado desde el mismo iOptik. Genial!

Hola taringueros! Como fanática de los tests on-line, siempre me la paso buscando algunos que valgan la pena, que realmente hagan preguntas no triviales y expongan resultados en forma interesante. Durante toda esta búsqueda hice muchos tests, y vengo a recomendar los mejores tres que hice alguna vez. Si te gustan los tests como a mí, este post es para vos! Primer puesto: Personal DNA Link: http://personaldna.com/ Este test es simplemente genial. Cuando lo encontré se lo recomendé a todos mis amigos, las preguntas y los resultados son muy interesantes. Excede el típico test aburrido de las 100 preguntas "De acuerdo", "En desacuerdo". Está en inglés, pero no creo que eso sea problema para nadie, de última, existe el traductor. En mi opinión, el mejor! Segundo puesto: The Political Compass Link: http://www.politicalcompass.org/ Editado: Les dejo el link en español de The Political Compass (La brújula política): http://www.politicalcompass.org/es/ Este test evalúa tu tendencia política en dos "coordenadas" o aspectos, económico y social. El resultado del test se grafica en ejes cartesianos y podés ver cuáles serían las coordenadas de algunas personalidades famosas para compararlas con las tuyas. Está en español, pero te aconsejo que lo hagas en inglés porque la traducción no es la mejor. Lo hice unas 3 o 4 veces cada 6 meses, porque me parece súper interesante ver cómo tu forma de pensar respecto a la política va variando a lo largo de tu vida. Tercer puesto: FPT Link: http://www.16personalities.com/free-personality-test Otro test muy interesante cuyas preguntas no son triviales. Hay mucha información para leer sobre el tipo de personalidad que te corresponde al finalizar el test. Espero que les guste. Diviértanse y compartan sus resultados y opiniones Saludos!

Este post está orientado a personas que no saben nada de nada de desarrollo web ni de programación en general. Según mi experiencia personal, cuando uno empieza a aprender algo lo más importante es tener una visión general, para luego elegir mejor. ¿A quién no le ha pasado que cada vez que hace algo una persona con más conocimiento le explica que eso no se hace así, que ya es viejo, que ahora hay algo mejor, etcétera? Evidentemente todo se trata de investigar, pero a veces entender el funcionamiento general de algo es lo más difícil y aprender cosas particulares resulta más fácil. El contenido es propio, lo redacté yo y lo publiqué en mi blog, aclaro para los desconfiados Espero que les sea de utilidad! El funcionamiento de un sitio web se basa en el modelo cliente-servidor. La arquitectura cliente-servidor es un modelo en el que un programa ejecutándose en un cliente realiza peticiones de datos a un servidor, que le responde. Un servidor web, físicamente, es una computadora conectada constantemente a Internet, y allí se alberga el sitio web que luego es solicitado por los clientes web. Los clientes web son los navegadores (como Chrome o Mozilla Firefox) de los usuarios que quieren visitar el sitio. La siguiente imagen explica muy simplificadamente el funcionamiento de un modelo cliente-servidor web, pasando por alto muchos detalles que exceden a la temática de este post. Cuando un usuario escribe una dirección (http://google.com/, por ejemplo) en el navegador, éste realiza una petición al servidor correspondiente. El servidor web, al ser una computadora casi como cualquier otra, tiene una estructura de directorios y archivos. Algo que es muy importante que comprendas es que el servidor web le responderá al cliente con el archivo que esté en el path correspondiente a lo que hay escrito después de la dirección que identifica al dominio. Si después del dominio no hay nada, entonces el servidor buscará el archivo index (index.php, index.htm, index.jsp, index.aspx, etcétera). Igual, hay excepciones, porque en general los desarrolladores personalizamos las direcciones para que sean más amigables con el usuario. ACLARACIÓN: Asumo que a medida que leas el post irás visitando al menos los links indicados, ya que los mismos constituyen conocimientos previos para poder continuar. 1. Contratar un servidor web Como ya sabemos, para poder desarrollar un sitio necesitás un lugar donde hostearlo, es decir, un servidor web. El alojamiento web se alquila mensualmente, hay varios proveedores en Argentina, podés encontrarlos buscando en Google. Hay servidores gratuitos, pero si pretendés desarrollar un sitio profesional debés estar realmente convencido de que funcionará continuamente. También existe la opción de instalar un servidor web local, es decir en tu propia computadora, lo que será útil para hacer pruebas, pero no te brindará la posibilidad de que otros usuarios ingresen a tu sitio. Hay muchos tutoriales en internet sobre cómo hacer eso, por ejemplo este para Windows y este para Ubuntu. 2. Registrar un dominio El siguiente paso para que funcione un sitio web es registrar un dominio. Si querés registrar tu dominio gratuito .com.ar deberías dirigirte a NIC Argentina, institución que regula las asignaciones de dominios en nuestro país. Si querés registrar un dominio internacional, como .com o .net, deberías dirigirte a una empresa que venda dominios internacionales, como Dattatec, que los ofrece a $54 pesos argentinos por año. Asegurate de que el nombre de dominio elegido sea el más adecuado para tu sitio y sobre todo que sea fácil de recordar. 3. Aprender HTML HTML es un lenguaje de markup (NO un lenguaje de programación) que permite describir hipertexto, es decir, texto presentado de forma estructurada, con enlaces que conducen a otros documentos relacionados y elementos multimedia, entre otras cosas. HTML deriva de XML (eXtensible Markup Language), un lenguaje que permite estructurar información a través de un sistema de marcas y contenido. Los clientes web interpretan el HTML que reciben del servidor cuando éste responde a su petición. Las dos versiones utilizadas actualmente son HTML4 y la reciente HTML5. HTML5 incorpora algunas reglas que sobreescriben a otras de HTML4, por lo que te recomiendo que investigues sobre la nueva versión además de aprender HTML básico, para que tus sitios vayan a la par de los nuevos estándares. Muchos tutoriales de HTML en internet se limitan a listar la inmensa cantidad de tags que el lenguaje posee, lo cual probablemente provoque que sientas que el desarrollo web es de lo más aburrido. Lo más importante, y esto no aplica sólo para HTML, es que sepas cómo funciona y qué te permite hacer la tecnología con la que vas a trabajar. Si recordás o no los nombres de sus funciones, librerías, tags y propiedades tiene poca importancia, porque todo eso lo aprenderás a medida que lo utilices. Y mientras no lo aprendas, podrás recurrir a la documentación. Quizás este sería un buen comienzo. 4. Aprender CSS CSS es un lenguaje usado para definir hojas de estilo en un documento estructurado escrito en HTML. Al igual que HTML, recientemente se lanzó una nueva versión, CSS3, que incorpora nuevas posibilidades para la definición de estilos y depreca otras utilizadas en CSS2. El funcionamiento de CSS es muy simple, se basa en la definición de selectores de elementos HTML (se pueden seleccionar por casi cualquiera de sus atributos) y la asignación de estilos (color de texto, tipografía, color de fondo, borde, margen, ancho, alto, posición, alineación del texto, etcétera) a cada uno de ellos. Si bien HTML permite definir algunos estilos y además embeber el CSS en el atributo style, es altamente recomendable separar la hoja de estilos de los archivos HTML. Analizaremos por qué unos items más adelante. Una vez comprendido esto, queda investigar qué posibilidades ofrece CSS, podés hacerlo echando un vistazo a W3C Schools. También te invito a que eches un vistazo a Bootstrap. 5. Elegir un framework de cliente (opcional) Lo que hemos visto hasta ahora permite que el usuario vea el contenido que se quiere mostrar, pero la interacción que el mismo permite es mínima, limitándose a clicks en links y botones. Existe un lenguaje de programación interpretado, llamado JavaScript, que permite dinamismo en el cliente de una aplicación web. Dinamismo significa interacción entre el usuario y el sitio web. El intérprete de JavaScript forma parte de casi todos los navegadores modernos, ya que este lenguaje se ejecuta en el cliente y no en el servidor. Con JavaScript pueden manejarse eventos, que representan acciones que el usuario realiza, como clickear un link o pasar el mouse sobre una imagen. Una vez que hayas investigado más sobre JavaScript y conozcas más o menos cómo funciona (lo cual no te parecerá muy simpático), considerarás la posibilidad de utilizar un framework que hará más cómodo tu trabajo con el lenguaje. El framework más conocido (y el que personalmente recomiendo) para JavaScript se llama jQuery, pero también existen otros como Prototype y Yahoo UI. 6. Elegir un lenguaje de servidor Ya contamos con un sitio que muestra contenido en forma dinámica y más o menos interactiva, pero éste se limita simplemente a mostrar contenido. Ahora supongamos que queremos que este sitio tenga alguna utilidad, como por ejemplo permitir a los usuarios dejar su opinión y luego mostrarlas todas y además mostrar cuántas opiniones hemos recibido en total. Creamos un formulario HTML, le pedimos al usuario que nos cuente su opinión y... ¿Dónde almacenamos la información que el usuario nos brindó? Lógicamente debemos almacenarla en nuestro servidor. Cuando un usuario quiera ver las opiniones de los demás debemos recurrir al lugar de nuestro servidor donde hemos almacenado las opiniones. En general este lugar es una base de datos (si no sabés lo que es, te recomiendo que lo busques en Google), aunque también podrían ser archivos de texto. Ahora bien, necesitamos algún lenguaje de programación que se ejecute/compile en el servidor y que se encargue de recopilar toda esta información, contar la cantidad de comentarios que se han dejado y le envíe toda esta información al cliente. Este tipo de lenguajes se conocen como lenguajes de servidor. Hay muchos, como PHP, Java, Python, ASP.NET y PERL, podés elegir el que te resulte más cómodo, mi recomendación es que comiences con PHP. El código PHP puede embeberse en los documentos HTML. Cuando el cliente pida el archivo HTML, el servidor ejecutará el código PHP contenido entre las tags y lo reemplazará por el contenido HTML que corresponda. Una vez hecho esto, enviará el archivo conteniendo HTML puro (y JavaScript) al cliente. El cliente nunca se enterará de que el HTML que recibió fue producto de un script PHP en el servidor, porque PHP es un lenguaje de servidor. 7. Elegir un motor de bases de datos Supongamos que ya sabés lo que es una base de datos, porque ya lo deberías haber leído en el item anterior. Existen distintos motores de bases de datos, como MySQL, Oracle y SQL Server. MySQL es el que mejor trabaja con PHP, es gratuito, el más utilizado en bases de datos pequeñas y medianas y viene en WAMP (aplicación de servidor que quizás instalaste en tu computadora en el punto 1), así que lo recomiendo ampliamente. MySQL es un motor de bases de datos que utiliza SQL, un lenguaje que permite realizar consultas a la base de datos. Podrías comenzar leyendo este tutorial. Una vez que sepas como realizar consultas a una base de datos, deberías también saber que desde PHP podés realizar consultas utilizando la función mysql_query, previamente establecida la conexión a la base de datos. 8. Definir cómo se establecerá la comunicación entre el cliente y el servidor Un evento realizado en el cliente (por ejemplo un click) podría desencadenar una conexión con el servidor donde se requiera determinada información. Como quien se encargará de procesar y enviar esta información es el servidor, y cuando el HTML llega al cliente ya el lenguaje de servidor ha realizado todo su trabajo, para poder visualizar esta información en el cliente es necesario volver a cargar la página, lo que suele resultar incómodo para el usuario. Existe una alternativa a esta situación y consiste en utilizar AJAX (Asynchronous JavaScript And XML), técnica que permite realizar un pedido al servidor y obtener una respuesta de éste sin tener que recargar la página, utilizando JavaScript, claro. Si leés un poco y comprendés como funciona, verás que realizar una request AJAX con jQuery resulta muy sencillo y conllevará a grandes beneficios para la interactividad de tu sitio. Cuando termines de leer este post y quieras dejar un comentario, verás que será mostrado inmediatamente debajo del formulario para escribir. Cuando presionas el botón 'Enviar', el cliente realiza una request AJAX al servidor que inserta tu comentario en la base de datos y devuelve el contenido insertado, para luego agregarlo a la página utilizando JavaScript. 9. Tomar medidas de seguridad básicas Existen diversos métodos que permiten vulnerar la seguridad de un sitio web, y la efectividad de los mismos depende de cuánto se haya preocupado el desarrollador por cubrir estos riesgos. Hay algunas cosas que deberías hacer: - Cuando pidas a un usuario que ingrese información en un formulario, por ejemplo su nombre, que luego formará parte de una consulta SQL, siempre debés 'escapar' el contenido que llegó desde el cliente una vez esté en el servidor. Existe una función en PHP llamada mysql_real_escape_string que permite realizar esto. Supogamos que solicitás a un usuario que ingrese su DNI. En el servidor PHP, al DNI que ingresó lo llamás $dni. Ahora realizarás una query del estilo: SELECT * FROM Persona WHERE dni=$dni; El DNI que esa persona ingresó, es 38390850 DELETE FROM Persona Ahora realizarás la query SELECT * FROM Persona WHERE dni=38390850; DELETE FROM Persona; Lo que borrará TODOS los registros de la tabla Persona. Este ataque es conocido como SQL Injection. - Si realizás un sitio donde los usuarios deban loguearse con un usuario y contraseña, deberías leer sobre MD5 y tokens de seguridad. En este link encontrarás una lista de los ataques más frecuentes. 10. Definir tus objetivos y la estructura de tu sitio Ahora que ya sabes cuáles son las posibilidades que ofrecen las tecnologías que elegiste, deberías definir qué es lo que querés lograr de ellas, haciendo bocetos del maquetado en papel y diagramas para la estructura de tus datos. Además de hacer estos bocetos, deberías tomar algunas decisiones con respecto a tu aplicación web: - Debés definir si tu aplicación va a ser más o menos dinámica o estática, teniendo en cuenta la interactividad que quieras generar entre el usuario y el sitio web. Por ejemplo, si estás interesado en lograr animaciones y respuestas a eventos de mouse o teclado, probablemente deberías usar jQuery para lograr una mejor experiencia de usuario. - Es necesario definir la estructura de tu aplicación, es decir, cuáles van a ser las fuentes de información, dónde va a estar la lógica y dónde va a estar la vista (lo que el usuario visualice). Podés leer más sobre esto en este artículo de Wikipedia. Podrías decir, por ejemplo, que la fuente de información de tu sitio será una base de datos MySQL, que la lógica estará en PHP, que harás la interacción entre el cliente y el servidor con AJAX y jQuery y la vista con HTML5, CSS3 y jQuery. Te preguntarás, ¿y esto qué implica? Esto significa que el único lugar donde almacenarás datos es en la base de datos. Esto implica que si necesitás hacer cálculos o procesar datos, probablemente lo harás en PHP del lado del servidor. Esto significa que no usarás PHP embebido en el HTML ya que PHP no puede intervenir en la vista de tu sitio web, porque toda información que llegue desde PHP debe ser recibida por JavaScript utilizando AJAX. Obviamente este no es el único modelo posible. 11. Definir convenciones y prácticas (sé prolijo) Este es el paso más importante, porque definirá si sos un desarrollador que se conforma con que algo funcione o uno que apunta a la excelencia, de esos que piensan que «Si algo está simplemente 'bien', no está bien todavía». Probablemente tu primer sitio no sea excelente, pero reflejará qué intención tenías cuando lo estabas desarrollando. Las cosas que voy a listar a continuación son aquellas que, según mi criterio, contribuyen a la excelencia de un desarrollador web: - Si no querés que tu sitio esté formado por un archivo constituído por un conjunto de caracteres dispuestos aleatoriamente, sería importante que procures dividir tu código en todos los archivos que sean necesarios, cada uno de ellos correctamente nombrados y almacenados en directorios medianamente organizados. Por ejemplo, sería bueno que crees carpetas tales como 'scripts', 'images', 'css', 'ajax', etcétera. - Procurá que los nombres de tus variables, IDs, clases y tablas en la base de datos respeten algún estándar. No importa mucho cuál, aunque sea uno tuyo propio, que al menos respeten uno. No llames a un ID 'registerFormulario', si todos tus nombres están en español deberías llamarlo 'formularioDeRegistro' y si están todos en inglés 'registerForm', o algo del estilo. Si elegiste 'registerForm' y ahora existen 2 formularios más, asignar una clase 'registerForm' para todos sería mucho más correcto que simplemente ponerles 'registerForm', 'registerForm1', 'registerForm2', y esto sería mejor que 'registerForm', 'RegisterForm', 'registerFORM'. Con prudencia es suficiente, siempre intentá hacer estas cosas de la mejor forma posible, y si es necesario cambiá aquellos nombres que hayan quedado fuera de los estándares que definiste previamente. - Evitá usar cosas que están deprecadas, sobre todo si vas a usarlas para hacer algo para lo que no fueron creadas. En otras palabras, no uses tablas, frames o iframes al menos que sea estrictamente necesario. - Mejor no uses Flash, y si lo usás, usalo menos de lo necesario (solamente para jueguitos y cosas que un humano no pueda hacer con JavaScript). - No hagas el sitio más pesado de lo mínimo que podría pesar. No olvides que cada vez que un usuario ingrese a tu sitio deberá descargar todo el contenido que hayas subido a él, y que probablemente le molestará que uses más ancho de banda que el que merece lo que tenés para mostrar. - No molestes al usuario haciendo cosas como cambiarle el tamaño de la ventana, abrir popus, crear sitios con exceso de publicidad, no permitirle volver atrás u obligarlo a escuchar una música horrible que no puede detener al menos que cierre la pestaña. - Hacé que tu sitio sea lo más compatible posible, no olvides que será visitado por todo tipo de personas. Es importante definir qué tipo de personas excluirás de la posibilidad de visualizar tu sitio, y lo mejor para vos probablemente será que este grupo sea lo más reducido posible. Algunas cosas que deberías tener en cuenta para lograr una mayor compatibilidad son: la resolución de pantalla, la utilización de tecnologías no estándar, no olvidar que muchos usuarios se conectarán desde un teléfono y no olvidar que existe IE. Bueno, un poquito podrías olvidarlo, quizás sea bueno para tu salud mental olvidar que todavía existen personas que usan IE6. - Si te enterás que tu sitio tiene un defecto, solucionalo de inmediato y de la mejor forma posible, o al menos intentá que el usuario no tenga que perder su tiempo luchando contra él hasta que poseas el tiempo necesario. 12. Algunos tips que deberías tener en cuenta para mejorar tu sitio - Personalizar los paths. En uno de los ítems anteriores, mencioné que con frecuencia los desarrolladores modificamos el path original de una página para que sea más amigable con el usuario. Sería bueno que lo hagas, y si bien hay muchas formas, quizás para tu primer sitio lo más cómo sea modificar el archivo .htaccess. No es difícil, podés buscar en Google cómo hacerlo. - No olvides que los buscadores le dan prioridad a las cabeceras o títulos a la hora de indexar, con prioridad decreciente desde h; hasta h6. Para que tu sitio esté bien diseñado conceptualmente, debes respetar la función de cada etiqueta HTML. - Siempre que coloques un link externo en tu sitio, será conveniente que se abra en una pestaña nueva para que los usuarios no se vayan de tu sitio cuando no quieren hacerlo o cuando les da igual si irse o no. Esto podés hacerlo colocando el atributo target="blank" a las tags a. - No olvides que excepto que especifiques una tag de descripción en el head, lo que aparecerá en Google como resumen de tu sitio será lo primero que se encuentre en él. - Existe una herramienta muy útil en Google Chrome, podés usarla haciendo click con el botón derecho del mouse sobre casi cualquier parte de la página y clickeand en 'Inspeccionar elemento'. El monitor del chrome incluye muchas herramientas que te serán de increíble utilidad, ya que permite editar el HTML y los estilos CSS desde el mismo navegador, para que puedas hacer tests de diseño con una rapidez máxima, permite monitorear el tráfico de recursos utilizados por el sitio e incluye una consola de JavaScript, entre otras cosas. 13. Comenzar Una vez que leiste todo los pasos anteriores, los tutoriales suficientes e hiciste una cantidad considerable de sitios de prueba básicos, estás en condiciones de emprender el desarrollo de tu sitio. 14. Google Analytics Incluí Google Analytics. Así vas a conocer muchas estadísticas de tu sitio. 15. Validar W3C Validá W3C. Si tengo que dar una opinión, diría que una vez que valides W3C, podés empezar a considerar los puntos siguientes. Si tu sitio no pasa el test, entonces hay algo que no estás usando bien. 16. Tests en distintas plataformas Probá tu sitio en mútiples navegadores, diferentes resoluciones de pantalla y dispositivos móviles. No olvides que existe público muy diverso. Te dejo un link a las estadísticas de uso de navegadores de W3C Schools, uno a las estadísticas de resoluciones de pantalla y otro a las estadísticas de uso de dispositivos móviles. 17. Tests de usabilidad Pedile a gente de todo tipo, amigos, familiares, comapañeros de trabajo, etcétera, que intenten usar tu sitio. Considerá su opinión y observalos cuando intenten usarlo para identificar posibles deficiencias. 18. Bugfixing Solucioná todos los problemas detectados en los dos ítems anteriores. Realizá arreglos todas las veces que sea necesario. 19. Mantenimiento Nunca dejes de realizar el mantenimiento que tu sitio requiera.

Importante: Este post está redactado por mí, no es una copia de otro artículo ya existente en la web, no denuncies antes de leer. Este post está dirigido a todos aquellos usuarios que quieran iniciarse en el mundo Free Software y Open Source, conociendo, como base, un S.O. con estas características tal y como lo es Linux. La idea no es que muchos usuarios partidarios de Windows lo critiquen, en tal caso lean (o no) el artículo pero hagan críticas constructivas. Por otra parte, si no hay ganas de leer todo, para eso están las negritas. ¿Qué es GNU/Linux? GNU/Linux es un sistema operativo libre, portable, multitarea, multiplataforma y multiusuario basado en un núcleo denominado Linux, que utiliza herramientas del Proyecto GNU (GNU is Not Unix). El Proyecto GNU fue iniciado por Richard Stallman en 1983, con el objetivo de crear un sistema operativo totalmente libre y compatible con Unix. Éste sistema está compuesto por muchas piezas individuales de software, que componen un sistema operativo con la estructura de Unix. GNU tiene licencia GPL (General Public License). En 1985, Richard Stallman fundó la FSF (Free Software Fundation) con el objetivo de difundir el uso del software libre y dar cobertura legal y económica al desarrollo del Proyecto GNU. Es importante destacar que la FSF fue la creadora de la primera versión de licencia GPL, en 1989. Esta asociación, además, estableció la definición del término free software, sosteniendo que un software para ser libre debía reunir las siguientes condiciones: - Ser libre para ejecutar el programa con cualquier propósito. - Tener acceso al código fuente y poder modificarlo según las necesidades del usuario. - Tener libertad para redistribuir copias. - Tener libertad para distribuir versiones modificadas del programa. En 1998 un grupo de integrantes de la comunidad de software libre, fundaron la OSI (Open Source Initiative), con el objetivo de promover el uso de la nomenclatura open source. GNU por sí solo no es un sistema operativo completo, porque no contiene un núcleo para alojar recursos e interactuar con el hardware. Su núcleo está en desarrollo y se llama Hurd, pero todavía no está lo suficientemente difundido. Por eso, usualmente se utilizan herramientas GNU con el núcleo Linux. Linux es un núcleo de sistema operativo con licencia GPL, desarrollado por Linus Torvalds en 1991. Está escrito en lenguaje C, con algunas partes de código en Assembler. A lo largo de su evolución ha tenido muchas contribuciones: La comunidad Minix contribuyó con ideas para el núcleo Linux, poco tiempo después de su creación. Aportaron a este proyecto empresas como Red Hat, IBM, Novell, Intel, Oracle y SGI; además de miles de usuarios informáticos de todo el mundo. ¿Qué ventajas tiene GNU/Linux sobre Windows? Para empezar, los virus atacan más a Windows por diversas razones, aunque tal vez las principales sean dos: Windows tiene muchos security holes (agujeros de seguridad) y es muy lento a la hora de lanzar parches. Obviamente nadie habla de que Linux sea inmune, pero es menos probable que tenga errores de seguridad y es muy veloz a la hora de solucionarlos. ¿Por qué Linux es muy veloz a la hora de solucionar problemas? Porque la velocidad evolutiva de un free software nunca se podrá comparar con la de un software no libre. Linux recibe el apoyo de miles de programadores a nivel mundial, que trabajan para la evolución informática con un espíritu colaborativo. En cambio, empresas como Microsoft son lentas a la hora de actualizar e innovar, obligando a demás compañías y usuarios a evolucionar alrededor suyo, ya que los únicos métodos que tienen para detectar y solucionar sus problemas son sus propias ideas. Linux fue creado por y para una comunidad, entonces todas sus actualizaciones las realiza teniendo en cuenta como primer punto qué es lo que la comunidad necesita, por lo que siempre tendrá una mejor aceptación del usuario. ¿Quién querrá reportar a Microsoft un problema en el software? O aún, ¿Quién creerá que va a ser tenido en cuenta? Pensémonos frente a una computadora con Windows tratando de solucionar un error. Como no existe una “Comunidad Microsoft”, debemos recurrir a la ayuda de Windows. Entonces, las posibilidades que tendremos para solucionar ese problema serán escasas, y si Microsoft no lo detectó antes, entonces no lo podremos solucionar. En Linux, quienes responderán a nuestra consulta serán otros usuarios que estarán totalmente dispuestos a investigar por nosotros. Todos los usuarios tienen acceso al código fuente de Linux, por lo que podrán modificarlo según lo que necesiten. También es una clara ventaja, por supuesto, el hecho de que Linux es un software gratuito. Linux está notablemente optimizado y se sigue optimizando todo el tiempo, por lo que es mucho más estable y rápido que otros sistemas operativos. Linux es compatible con una gran variedad de entornos gráficos. Antes se podría haber planteado un sistema operativo difícil de usar, no compatible con los conocimientos de un usuario estándar, pero eso ya quedó en el pasado. Los entornos de escritorio GNOME y KDE compatibles con Linux son tan fáciles de utilizar como el de Windows. Además, ofrecen una gran cantidad de opciones para modificarlos a conveniencia del usuario. Linux domina ampliamente el mercado de servidores, ya que es mucho más eficiente que Windows para estas tareas, fácil de configurar, más rápido y seguro. Con respecto a la interoperabilidad de Linux, no queda más que decir después de esta cita: dijo:“Windows trabaja muy bien con Windows, qué digo bien, trabaja excelentemente, incluso se podría decir que es bastante fácil. El problema llega a suceder cuando tratas de usar Windows con otros sistemas y sin usar software de terceros, eso es imposible. Linux trabaja muy bien con todo: Mac, Windows, Solaris, otras distros y un gran etcétera. Ahora hablemos de un tema que nos toca a todos, lo divertido que es tratar de abrir un documento en .docx con algo que no sea Microsoft Word 2007 o más moderno, por qué no usar OpenOffice.org que puede guardar o abrir documentos en casi cualquier formato, o VLC, que puede interpretar hasta copto antiguo.” Fuente: http://identidadgeek.com/ Linux es multiplataforma. Es decir, todas las versiones de Linux se pueden correr en un procesador de 200 MHz con calidad, cuando la última versión de Windows requiere 1 GHz como mínimo. Linux tiene una mejor administración de memoria que Windows. Por otra parte, hay miles de programas libres para Linux, eficientes, que realizan diversas tareas y disponibles en internet. Para todas las aplicaciones elementales de Windows, existe una alternativa open source, por lo que eso ya no es un problema. Por ejemplo, Mozilla Firefox es una alternativa para Internet Explorer ó Mplayer es una alternativa para Windows Media Player. ¿Qué distro de Linux podría descagar? Acá algunos ejemplos: Mandriva: Distribución de Linux desarrollada por la empresa francesa Mandriva. Está destinado tanto a usuarios principiantes como expertos. Su primer lanzamiento fue en 1998 y utiliza como interfaz gráfica KDE y GNOME. Ubuntu: Distribución de GNU/Linux basada en Debian GNU/Linux. Es un sistema estable y compatible con un usuario estándar, quizás el más parecido en cuanto a entornos gráficos a Windows. La primera versión de Ubuntu fue lanzada en octubre del 2004. SuSE: Es una de las distribuciones de Linux más sencillas de instalar y administrar, debido a que cuenta con muchos asistentes gráficos. Vixta: Es una distribución de GNU/Linux. Su objetivo es simular el entorno gráfico ofrecido por Windows Vista, Aero, con el objetivo de atraer a usuarios de Microsoft para que se incorporen en el uso de Linux. Fuentes: Wikipedia, la enciclopedia libre [http://es.wikipedia.org, http://en.wikipedia.org] Monografías.com [http://monografías.com] “El rincón de Linux” [http://linux-es.org] Ubuntu Linux [http://ubuntu.com, http://ubuntu-es.org] Taringa! [http://taringa.net] Debian [http://debian.org] El sistema operativo GNU [http://gnu.org] Foro Identidad geek [http://identidadgeek.com/] “PHP y MySQL, Tecnologías para el desarrollo de aplicaciones web”, editorial Díaz de Santos, España, 2005

Hola Acá les dejo 4 recetas vegetarianas súper fáciles que hago con frecuencia, las fotos son mías, de como quedan realmente. Espero que les gusten! Tartamelette de arvejas, tomate, queso y albahaca Ingredientes: - 1 tapa para tarta - 1 lata de arvejas - 2 tomates redondos - 3 huevos - Albahaca fresca a gusto - 200g de queso blando Pasos: 1) Mezclar las arvejas, el tomate cortado en cubos escurrido, los huevos y la albahaca picada en un bol. 2) Poner la masa en una fuente para horno / asadera previamente aceitada. 3) Agregar el relleno. 4) Cubrir con queso cortado en tiras. 5) Muy fácil! Al horno! Tarta de calabaza y espinaca Ingredientes: - 1 tapa de tarta - 1/2 calabaza grande - 1 atado de de espinaca - 1 cebolla - 2 huevos - Aceite de oliva - Ají molido a gusto - 200g de queso blando Pasos: 1) Hervir la calabaza cortada en trozos, idealmente al vapor, si se sumerge en agua cocinar con cáscara para que no se desintegre. Escurrir bien. Hacer un puré y dejar enfriar. Si el puré es muy blando porque tiene mucha agua, es preferible agregarle uno de los huevos para dar consistencia, sino la masa se humedece en exceso durante la cocción y se rompe. 2) Saltar cebolla cortada en cubitos con un poco de aceite de oliva en una sartén hasta que quede transparente. 3) Cortar las hojas de espinaca en tiras y mezclarla con la cebolla, los 2 huevos y el ají molido. 4) Poner la masa en una fuente para horno / asadera previamente aceitada. 5) Distribuir el puré de calabaza sobre la masa de manera uniforme. 6) Agregar la espinaca. 7) Doblar la masa un poco para que contenga al relleno. 8 ) Al horno! 9) Cuando la masa se empiece a dorar, agregar el queso cortado en tiras. Fusilloni integral capresse Ingredientes (para 1 persona): - 1/4kg (o menos) de Fusilloni integral (Estas pastas geniales son orgánicas, hechas con avena y cereales y se compran en el BA Market , pero también se puede usar cualquier otra, obvio) - 100g de tomates cherry - 125ml de salsa de tomate - Albahaca - Queso duro o semiduro para rallar - Aceite de oliva Ensalada capresse Ingredientes (para 1 persona): - 1/4kg de tomates cherry - 200g de queso port salut - Albahaca - Aceite de oliva Yapa: Mi invento, mi desayuno preferido! - Yogurth de frutilla - Cereales tipo Zucaritas - Arándanos
![[Fácil] Calzone de arroz yamaní integral](https://storage.posteamelo.com/assets-adonis/assets/2018/06/19/big2v5-aDPScosNw3r.webp)
Hola taringueros! Les dejo una receta vegetariana súper fácil que cené hoy, para los que me pidieron más recetas, pero ahora fotoreceta! Calzone de arroz yamaní Ingredientes (para 2) Una tapa de tarta chica 1/2 tomate 1 cebolla chica 1/2 ají colorado chico 5 aceitunas o su equivalente en aceitunas fileteadas 150g de arroz yamaní integral (se compra en las dietéticas/casas naturistas, para más info sobre dónde comprar escríbanme ) 50g de queso port salut Pimentón Albahaca fresca o disecada Un poquito de azúcar Sal (opcional) Aceite de oliva (opcional) Paso 0: Antes de comenzar la receta, herví el arroz yamaní en una cacerola con un poquito de aceite de oliva (también puede hervirse sin aceite si lo revolvés para que no se pegue). Paso 1: Cortar el ají, el tomate y la cebolla en cubitos. Si tus aceitunas no están fileteadas, también cortalas en rodajitas. Paso 2: Reahogar la cebolla en una sartén con un poquito de azúcar para que pierda el ácido (hasta que quede semitransparente). Tip: La cebolla se puede reahogar en una sartén con agua, no es necesario utilizar aceite. Paso 3: Mezclar el tomate, el ají, la cebolla y las aceitunas. Agregar los condimentos. Paso 4: Agregar el arroz yamaní ya frío a la preparación. Paso 5: Cortar el queso en cubitos, agregarlo y mezclar todo. Paso 6: Armar el calzone como si fuese una empanada gigante (lo es!). Pinchar un poquito la masa para que no se reviente. Paso 7: A horno medio en una fuente con un poquito de aceite para que no se pegue, y listo! A comer