miércoles, junio 15, 2016

¿Por que hay tantos Pythons?

Python es asombroso.
Sorprendentemente, esa es una declaración bastante ambigua. ¿A qué me refiero con ‘Python’?, ¿Me refiero a la interfaz abstracta de Python?, ¿Me refiero a CPython, la implementación común de Python (y no confundir con Cython, que son similares en sus nombres)?, ¿O me refiero a algo completamente distinto? Tal vez me esté refiriendo indirectamente a Jython, o IronPython, o PyPy. O tal vez me he ido al extremo y estoy hablando de RPython o RubyPython (los cuales son cosas muy, muy distintas).
Mientras las tecnologías mencionadas anteriormente son llamadas de formas parecidas y referenciadas de la misma manera, algunas de ellas sirven para propósitos completamente distintos (o, al menos, operan de maneras completamente distintas).
A lo largo de mi tiempo trabajando con Python, me topé con toneladas de estas herramientas .*ython. Pero no hasta hace poco me tomé el tiempo de entender qué es lo que son, cómo funcionan y por qué son necesarias (a sus maneras).
En este artículo, voy a empezar desde cero y recorreré varias implementaciones de Python, concluyendo con una introducción detallada a PyPy, el cual creo es el futuro del lenguaje.
Todo empieza con entender que es lo que ‘Python’ realmente es.
Si tienes un buen entendimiento sobre código binario, máquinas virtuales y parecidos, siéntete libre de saltarte esta parte.

“Python es interpretado o compilado?”

Este es un punto común de confusión para principiantes en Python.
La primera cosa que hay que saber es que ‘Python’ es una interfaz. Existe una especificación sobre lo que Python debería hacer y cómo debería comportarse (cómo con cualquier interfaz). Y hay múltiples implementaciones (como en cualquier interfaz).
Lo segundo que hay que saber es que ‘interpretado’ y ‘compilado’ son propiedades de una implementación, no de una interfaz.
Entonces, la pregunta no está realmente bien formada.
¿Python es interpretado o compilado? La pregunta no está realmente bien formada.
Dicho esto, para la implementación más común (CPython: escrito en C, usualmente llamado simplemente ‘Python’, y seguramente lo que estás usando si no tienes idea de lo que estoy hablando), la respuesta es:interpretado, con algunas partes compiladas. CPython compila** el código fuente de Python a *bytecode, y en ese momento interpreta ese bytecode, ejecutándolo sobre la marcha.
Nota: no es una ‘compilación’ en sentido tradicional de la palabra. Normalmente, decimos que ‘compilar’ es tomar el código de alto nivel y convertirlo en código binario. Pero es un tipo de ‘compilación’.
Veamos la respuesta un poco más de cerca, ya que nos permitirá entender algunos de los conceptos que surgirán más adelante en el artículo.

Bytecode vs. código binario

Es muy importante entender la diferencia entre bytecode y código binario (o nativo), tal vez mejor ilustrada con ejemplos:
  • C compila a código binario, que luego es ejecutado directamente en tu procesador. Cada instrucción le indica a tu CPU que mueva cosas alrededor.
  • Java compila a bytecode, que luego es ejecutado en la máquina virtual de Java(Java Virtual Machine, ó JVM), una abstracción de una computadora que ejecuta programas. Cada instrucción es entonces manejada por la JVM, que interactúa con tu computadora.
En términos breves: código binario es más rápido, pero bytecode es más portable y seguro.
El código binario se ve distinto, dependiendo de tu máquina, pero bytecode se ve igual en todas las maquinas. Se podría decir que el código binario está optimizado para tu configuracion.
Volviendo a CPython, el proceso en el conjunto de herramientas sucede de la siguiente manera:
  1. CPython compila tu código Python a bytecode
  2. Ese bytecode es entonces ejecutado en la Máquina Virtual CPython
Los principiantes asumen que Python es compilado a raíz de los archivos .pyc. Hay alguna verdad en esto: el archivo .pyc es bytecode compilado, que es después interpretado. Entonces si haz ejecutado código Python y ya tienes un archivo .pyc disponible, el mismo va a ejecutarse más rápido la segunda vez ya que no necesitará recompilar el bytecode.

Maquinas virtuales alternativas: Jython, IronPython, y más

Cómo mencioné anteriormente, Python tiene varias implementaciones. De vuelta, como mencioné antes, la más común es CPython. Ésta es una implementación de Python escrita en C y es considerada la implementación ‘por defecto’.
¿Pero, qué pasa con las alternativas? Una de las más prominentes esJython, una implementación en Java que utiliza la JVM. Mientras CPython produce bytecode para ser corrido en la VM de CPython, Jython produce bytecode de Java para correr en la JVM (esto es lo mismo que es producido cuando se compila un programa en Java).
“¿Por qué usaría alguna vez una implementación alternativa?”, podrías preguntar. Bueno, para empezar, esasdiferentes implementaciones juegan muy bien con diferentes conjuntos de tecnologías.
CPython hace muy fácil el escribir extensiones C para tu código Python porque al final es ejecutado por un intérprete de C. Por otro lado, Jython, facilita trabajar con otros programas en Java: puedes importar cualquier clase de Java sin mayor esfuerzo, evocando y utilizando tus clases Java dentro tus programas Jython. (Nota aparte: si no pensaste en esto detalladamente, es una locura. Estamos en un punto donde puedes mezclar y triturar diferentes lenguajes y compilarlos todos en una misma esencia. Como fue mencionado por Rostin, los programas que mezclan código Fortran y C están desde hace un tiempo. Así que, por supuesto que esto no es algo necesariamente nuevo. Pero sigue siendo genial.)
Cómo ejemplo, esto es código Jython válido:
[Java HotSpot(TM) 64-Bit Server VM (Apple Inc.)] on java1.6.0_51
>>> from java.util import HashSet
>>> s.add("Bar")
>>> s = HashSet(5) >>> s.add("Foo") >>> s
[Foo, Bar]
IronPython es otra implementación popular de Python, escrita enteramente en C# y apuntando a la tecnología .NET. En particular, corre con lo que se podría llamar la Máquina Virtual .NET,Common Language Runtime (CLR)de Microsoft, comparable con la JVM.
Podrías decir que Jython : Java :: IronPython : C#. Corren en sus respectivas VMs, puedes importar clases C# en tu código IronPython y clases Java desde tu código Jython, etc.
Es totalmente posible sobrevivir sin tocar alguna vez una implementación de Python no-CPython. Pero hay ventajas que se obtienen desde el cambio, muchas de ellas son dependientes de la tecnología que uses. ¿Usas muchos lenguajes basados en la JVM? Jython puede ser para tí. ¿Todo lo que haces es sobre la tecnología .NET? Tal vez debas probar IronPython (y tal vez ya lo hayas hecho).
Por cierto: mientras que esto no sería una razón para usar una implementación diferente, nota que estas implementaciones sí difieren en comportamiento más allá de como tratan tu código fuente en Python. Sin embargo, esas diferencias son comúnmente menores, y se disuelven o emergen con el tiempo mientras estas implementaciones se encuentran bajo un activo desarrollo. Por ejemplo, IronPython usa cadenas Unicode por defecto; Sin embargo, CPython, por defecto usa ASCII para versiones 2.x (fallando con un error de codificaciónUnicodeEncodeError para caracteres no-ASCII), pero sí soporta cadenas Unicode por defecto para las versiones 3.x.

Compilación Justo-a-Tiempo: PyPy y el futuro

Por lo tanto, tenemos una implementación de Python escrita en C, una en Java una en C#. El próximo paso lógico: una implementación de Python escrita en… Python. (El lector educado encontrará esta notación levemente engañosa).
Aquí es donde las cosas se ponen confusas. Primero, discutamos sobre compilación Justo-a-Tiempo (Just-in-Time, ó JIT).

JIT: El por qué y el cómo

Recordemos que el código binario es mucho más rápido que bytecode. Bueno, ¿y si pudiéramos compilar algunas partes de nuestro bytecode y luego correrlo como código nativo? Tendríamos que pagar algún precio al compilar a bytecode (por ej., tiempo), pero si el resultado fuese más rápido, eso sería genial! Esa es la motivación de la compilación JIT, una técnica híbrida que mezcla los beneficios de los interpretadores y los compiladores. En términos básicos, JIT quiere utilizar compilación para acelerar un sistema interpretado.
Por ejemplo, un enfoque común tomado por la compilación JIT:
  1. Identificar bytecode que es ejecutado frecuentemente.
  2. Compilar a código binario.
  3. Almacenar el resultado en memoria caché.
  4. Siempre que el mismo bytecode sea encontrado para ejecutar, en vez de usarlo, ejecutar el código binario precompilado y cosechar los beneficios (por ej., aumentos de velocidad)
De esto se trata PyPy: llevar JIT a Python (mira el Apéndice para ver esfuerzos anteriores). Hay, por supuesto, otros objetivos: PyPy apunta a ser multiplataforma, bajo en consumo de memoria e independiente del conjunto de tecnologías. Pero JIT realmente se vende por si solo. Como promedio de un puñado de pruebas de tiempo, se dice que mejora el rendimiento a un factor de 6.27. Para un mayor análisis, véase este cuadro del PyPy Speed Center:
Like what you're reading?
Get the latest updates first.
No spam. Just great engineering and design posts.

PyPy es difícil de entender

PyPy tiene un gran potencial, y a estas alturas es muy compatible con CPython (así que puede correr Flask, Django, etc.).
Pero hay mucha confusión alrededor de PyPy (véase, por ejemplo, esta propuesta sin sentido para crear unPyPyPy…). En mi opinión, eso es principalmente porque PyPy es actualmente dos cosas:
  1. Un intérprete de Python escrito en RPython (no Python (he mentido antes). RPython es un subconjunto de Python con tipos estáticos. En Python, es “prácticamente imposible” razonar rigurosamente acerca de tipos (¿Por que es tan difícil? Bueno, considera el hecho que:
     x = random.choice([1, "foo"])
    
    sería código Python válido (créditos a Ademan). ¿De qué tipo es x? ¿Cómo podemos razonar acerca de tipos de variables cuando los tipos ni siquiera son estrictamente forzados?). Con RPython, sacrificas algo de flexibilidad, pero a cambio es muchísimo más fácil razonar sobre manejo de memoria y demás, lo cual permite optimizaciones.
  2. Un compilador que compila código RPython para varios objetivos y agrega JIT. La plataforma por defecto es C, por ej., un compilador RPython-a-C, pero también puedes apuntar a JVM y otros.
Únicamente para mayor claridad, me referiré a ellos como PyPy (1) y PyPy (2).
¿Por qué necesitarías esas dos cosas, y por qué bajo el mismo techo? Piénsalo de esta manera: PyPy(1) es un intérprete escrito en RPython. Entonces toma el código Python del usuario y lo compila a bytecode. Pero el interpretador en sí (escrito en RPython) tiene que ser interpretado por otra implementación de Python para poder correr, ¿Verdad?
Bueno, podríamos simplemente usar CPython para correr el intérprete. Pero eso no sería lo suficientemente rápido.
En cambio, la idea es que usemos PyPy(2) (también conocido cómo RPython Toolchain)-Set de herramientas RPython) para compilar al interpretador de PyPy a código que otra plataforma (por ej., C, JVM o CLI) pueda correr en nuestra máquina, agregando también JIT. Es mágico: PyPy agrega dinámicamente JIT a un interpretador, generando su propio compilador! (De vuelta, esto es una locura: estamos compilando un interpretador y agregando otro compilador independiente por separado).
Al final, el resultado es un ejecutable independiente que interpreta el código fuente Python y explota las optimizaciones de JIT. Que es lo que justamente queríamos! Es un gran bocado, pero tal vez este diagrama ayude:
Reiterando, la verdadera belleza de PyPy es que podemos escribir nosotros mismos un puñado de interpretadores Python distintos en RPython sin preocuparnos por JIT (salvo algunas sugerencias). PyPy entonces implementaría JIT por nosotros usando el set de herramientas de RPython/PyPy(2).
De hecho, si nos ponemos aún más abstractos, podrías, teóricamente, escribir un interpretador para cualquierlenguaje, alimentar a PyPy con él, y obtener un JIT para ese lenguaje. Esto es porque PyPy se enfoca en optimizar el interpretador actual, en vez de los detalles del lenguaje que está interpretando.
Podrías, teóricamente, escribir un interpretador para *cualquier* lenguaje, alimentar a PyPy con él, y obtener un JIT para ese lenguaje.
Divagando un poco, me gustaría mencionar que JIT en sí mismo es absolutamente fascinante. Usa una técnica llamada tracing (ó seguimiento), la cual se ejecuta de la siguiente manera:
  1. Correr el interpretador e interpretar todo (sin agregar nada de JIT)
  2. Perfilar levemente el código interpretado.
  3. Identificar operaciones que hayas realizado antes.
  4. Compilar esos pedazos a código binario.
Para más información, este documento es altamente accesible y muy interesante.
Para ir concluyendo: usamos el compilador RPython-a-C de PyPy (u otra plataforma) para compilar el interpretador implementado RPython de PyPy.

Concluyendo

¿Por qué es tan genial? ¿Por qué vale la pena perseguir esta idea tan loca? Creo que Alex Gaynor lo describió muy bien en su blog: “[PyPy es el futuro] porque ofrece mejor velocidad, más flexibilidad y es una mejor plataforma para el crecimiento de Python.”
En resumen:

Apéndice: Otros nombres que tal vez hayas oído

  • Python 3000 (Py3k): nombre alternativo para Python 3.0, un mayor, compatible-con-versiones-anterioreslanzamiento de Python que alcanzó la escena en 2008. El equipo de Py3k predijo que llevaría alrededor decinco anos para que esta versión sea completamente adoptada. Y mientras que la mayoría (cuidado: se dice que es anecdótico) de los desarrolladores de Python siguen usando Python 2.x, la conciencia de Py3k entre la gente está incrementándose.
  • Cython: un super set de Python que incluye bindings (ó enlaces)para llamar funciones de C.
    • Objetivo: permitirte escribir extensiones en C para tu código Python
    • Además te permite agregar tipos de variables estáticos a tu código Python, permitiéndole que sea compilado y alcanzar rendimiento parecido al de C.
    • Es similar a PyPy, pero no es lo mismo. En este caso, estás forzado a escribir el código del usuario antes de pasarlo al compilador. Con PyPy, escribes simplemente código Python, y el compilador maneja cualquier optimización.
  • Numba: : un “compilador especializado justo-a-tiempo” que agrega JIT a código Python anotado. En términos más básicos, le das algunas indicaciones y acelera partes de tu código. Numa viene como parte de la distribución Anaconda,un set de paquetes para manejo y análisis de datos.
  • IPython: muy diferente a todo lo que hemos discutido hasta ahora. Es un ambiente de procesamiento para Python. Interactivo y con soporte para herramientas gráficas y experiencia de navegador, etc.

Enlaces de lenguaje

  • RubyPython: un puente entre las máquinas virtuales de Ruby y Python. Permite embeber código de Python dentro de tu código de Ruby. Defines donde Python comienza y termina, y RubyPython calcula los datos entre las VMs.
  • PyObjc: enlaces de lenguaje entre Python y Objetive-C, actuando como un puente entre ellos. Prácticamente, eso significa que puedes utilizar librerías de Objective-C (incluyendo todo lo que necesitas para crear aplicaciones de OS X) desde tu código Python, y módulos de Python desde tu código Objective-C. En este caso, es conveniente que CPython esté escrito en C, el cual es un subconjunto de Objective-C.
  • PyQt: mientras PyObjc te ofrece una interfaz para los componentes gráficos de OS X, PyQt hace lo mismo para el framework de QT, permitiendote crear completas interfaces gráficas, acceso a bases de datos SQL, etc. Otra herramienta dirigida a traer la simplicidad de Python a otros frameworks.

Frameworks JavaScript

  • pyjs (Pyjamas): un framework para crear aplicaciones web y de escritorio en Python. Incluye un compilador Python-a-Javascript, un conjunto de widgets, y algunas herramientas más.
  • Brython: una máquina virtual de Python escrita en JavaScript para permitir que el código de Py3k sea ejecutado en navegadores.

Contenido traducido por Pablo Fabregat, miembro de TransBunko, un mercado de traducciones técnicas.

Fuente: https://www.toptal.com/python/por-que-hay-tantos-pythons/es

Saludos Ing. Alex Taya

viernes, enero 29, 2016

Descargas para Windows

 http://windows.microsoft.com/es-xl/windows/downloads

Link ==> http://windows.microsoft.com/es-xl/windows/downloads

Ing. Alex Taya

Saludos.

Veeam Explorer para microsoft ‪Sql‬ Server te da rápido, operación recuperación a nivel de bases de datos sql.

 http://go.veeam.com/microsoft-sql-server-explorer.html

Veeam Explorer para microsoft ‪#‎sql‬ server te da rápido, operación recuperación a nivel de bases de datos sql. Con diario de transacciones de agente de respaldo y replay, usted puede restaurar sus bases de datos sql para un punto preciso en el tiempo, lograr bajo el tiempo de recuperación y punto objetivos.

Link ==> http://go.veeam.com/microsoft-sql-server-explorer.html

Ing. Alex Taya

Saludos.

Blinda tus redes sociales con estos tips

Al utilizar las redes sociales, lamentablemente siempre se esta en riesgo. Pocos de ellos son muy graves, pero siempre es una buena idea estar al tanto de estos para estar siempre del lado seguro. Probablemente dirás que a los perfiles de redes sociales de los ricos y famosos son los que mas hackean, y en cierta parte tienes razón, pero si en un futuro no muy lejano ves que tu perfil se esta siendo cada vez mas popular e influyente, entonces es hora de que consideres aumentar la seguridad del mismo.
redes sociales
mediante estos consejos podrás mantener seguros tus perfiles en las redes sociales, las cuales son amadas por unos y odiadas por otros:
– Ejecute un análisis de virus / malware de redes sociales: En la actualidad hay algunos programas anti-virus y anti-malware que ofrecen la opción de ejecutar lo publicado en su muro de Facebook por ejemplo. Los productos Norton ofrece un servicio que escanea todos los mensajes en el muro en busca de algun posible virus, malware o enlaces a sitios Web malintencionados. Hará hincapié en los mensajes, comentarios o enlaces que este considere sospechoso y que considere deberían de ser eliminados.
– Contraseñas mas complejas: Esto puede hacerse en de muchas maneras. Pero podrías empezar con aumentar el tamaño del password, a por lo menos ocho caracteres de longitud. Las contraseñas que se componen de palabras reales son una mala idea, por lo que te sugerimos utilizar combinaciones de letras y números, así como también caracteres especiales.
Pues tan solo no basta con que el password tenga 8 caracteres de longitud como mínimo, también se podrían combinar dos palabras, como “PerroLoros”. En algunas redes sociales, no importa si utiliza letras mayúsculas o no. Si tienes un perfil en una donde se permita utilizar letras mayúsculas en las claves, entonces no dudes en implementarlas para aumentar la seguridad y la complejidad de tu contraseña.
redes sociales
– No incluir información personal en las preguntas/respuestas secretas: Las preguntas de seguridad son bastantes útiles al momento de recuperar una cuenta con la que se halla tenido problemas o para garantizar tu identidad al momento de un tramite delicado con tu perfil, pero también pueden ser un arma de doble filo, ya que, por ejemplo, una pregunta de seguridad de uso común (aunque algo vieja) es el nombre de soltera de tu madre. Sin embargo, en las redes sociales como Facebook, es probable que tengas tu mama como un miembro de la familia. Entonces la gente puede buscar el perfil de tu madre y encontrar su nombre de soltera fácilmente.
Como pudimos ver, no todo depende de que tan compleja sea o no la contraseña de acceso a tu cuenta, también hay herramientas que te permitirán escanear en tiempo real tu perfil, pudiendo detectar cualquier anomalía o comportamiento anómalo.
¿Ya aseguraste todos tus perfiles?
Ing. Alex Taya
Saludos.

Lo mejor y lo peor de los principales navegadores para celular

Aunque en los dispositivos móviles es común utilizar aplicaciones para realizar casi cualquier cosa, en ocasiones también necesitamos navegar en internet para realizar tareas específicas como abrir una página web o descargar un archivo.
Pero, ¿cuál elijo? Esta es la pregunta que se hacen millones de usuarios de internet.
Google acaba de anunciar que el suyo, Chrome será actualizado para mejorar de manera sensible la velocidad con que trabaja: un nuevo algoritmo hará que comprima los datos hasta en un 26% más rápido.
¿Y no es eso lo que prometen todos? Parecen iguales pero es sorprendente las cosas que los diferencian así como los pro y contras de cada opción.
BBC Mundo compara cinco de los principales navegadores del mundoutilizados en los smartphones.

1. Mozilla Firefox

MozillaImage copyright
Image captionFirefox fue lanzado en 2005.
Firefox fue el primero en desafiar el dominio de Internet Explorer de Microsoft. No tardó en copar un 8% del mercado. Por la sencillez, estabilidad y el gran número de posibilidades que ofrece, el navegador de Mozilla se ha convertido en uno de los más utilizados.
Hay una versión para Linux, Mac, Windows y Android.
  • Sus puntos fuertes: destaca en la sincronización de marcadores y pestañas entre dispositivos, su traductor de páginas web, su modo para ahorrar datos y su modo incógnito para navegar de forma privada.
  • Sus puntos débiles: no existe una versión para iOS ni Windows Phone. No dispone de una versión de 64 bits. Si bien es el que más cantidad de complementos y plugins dispone, utilizar muchos impacta muchísimo en su rendimiento.

2. Google Chrome

ChromeImage copyrightGetty
Image captionEs el navegador más utilizado del planeta.
Es el navegador favorito del mundo. Desarrollado por Google, Chrome es funcional, claro y sencillo.
Está disponible gratuitamente bajo condiciones de servicio específicas. Tiene versiones de Windows, Mac, Linux, Android e iOS.
  • Sus puntos fuertes: es completo y que cuenta con paneles de inicio personalizables, sincronización entre dispositivos, modo incógnito, sesión para invitados, guardar páginas como PDF, complementos y un mercado de aplicaciones para instalar aplicaciones y juegos web. Una característica que puede ser útil con algunos sitios web es el "ahorro de datos" de Chrome. Google se encarga de precargar los sitios y comprimirlos antes de enviarlos a tu smartphone. Eso puede hacer más veloz la conexión y también generar ahorros en los planes de datos de tu teléfono.
  • Sus puntos débiles: no existe una versión para Windows Phone, por lo que los usuarios de esa plataforma no disponen de sus pestañas y preferencias en el móvil. Es el navegador que más recursos de hardware consume. Requiere una cuenta de Google para configurar la sincronización por lo que no podemos utilizarlo sin tener Gmail.

3. Dolphin

DolphinImage copyright
Image captionFue uno de los primeros navegadores alternativos para las plataformas Android1 que introdujo soporte multitáctil.
Dolphin es considerado como uno de los más potentes navegadores para Android, pero no es tan conocido como Mozilla o Chrome.
  • Sus puntos fuertes: ha sido elogiado por su funcionalidad gestual, rapidez y uso sencillo en iOS y en Android. La clave de Dolphin es la inclusión de Flash en él, no siendo necesario instalar ninguna otra cosa, más allá que un complemento al navegador llamado Dolphin JetPack. El navegador en general es muy rápido y se puede sincronizar con tus navegadores del PC, aunque no se utilice el mismo programa que en el smartphone.
  • Sus puntos débiles: sin el complemento Dolphin JetPack se convierte en uno de los que más demora en cargar las páginas web.

4. Safari

SafariImage copyright
Image captionSafari apareció en 2003 cuando Apple decidió remover de su plataforma la edición de Internet Explorer que Microsoft desarrollaba para los usuarios de OS X.
Este navegador de Apple crece cada día más en el mercado.
Si bien está lejos de ocupar el primer lugar en lo que a exploradores web respecta, posee muchas características rescatables que lo hacen digno de estar incluido en la lista de los mejores navegadores.
  • Sus puntos fuertes: sincronización completamente automática entre dispositivos, sin intervención del usuario. Es el navegador que mejor uso de CPU y memoria realiza en las Mac, por lo que es muy difícil que se ponga lento o deje de responder. Es el único con soporte para iCloud y Apple, y se ha destacado en el desarrollo de un motor para JavaScript que logra sea el más rápido entre las opciones disponibles para OS X.
  • Sus puntos débiles: solo está disponible para computadoras y dispositivos de Apple. Si bien permite instalar extensiones el desarrollo de las mismas es muy escaso por lo que no tiene varias de las funcionalidades incluidas en Chrome o Firefox. Apple no permite personalizar el navegador por lo que no es posible elegir temas, colores o disposición de la interfaz (a excepción de algunos íconos).

5. Opera/Opera Mini

OperaImage copyright
Image captionTiene buenas versiones para los smartphones, según expertos.
Uno de los pioneros de la web. Apareció en 1995 junto a Internet Explorer y fue también uno de los primeros en disponer una versión para móviles (Opera Mini). Actualmente cuenta con más de 350 millones de usuarios según una publicación de su desarrollador en diciembre de 2014.
  • Sus puntos fuertes: Basado en Chrome es un navegador algo básico que incluye navegación privada, una sección para descubrir noticias y su famoso modo todo terreno basado en Opera Turbo para reducir los datos de navegación.
  • Sus puntos débiles: instalar complementos reduce significativamente la velocidad del producto, haciendo su uso imposible en equipos de bajo desempeño. Su motor en numerosas oportunidades falla al cargar ciertos sitios web, causando que la página se muestre en blanco. No cuenta con una versión de código abierto.

Fuente: ==> http://www.bbc.com/mundo/noticias/2016/01/160121_tecnologia_navegadores_pros_contras_il
Ing. Alex Taya
Saludos.

Cómo generar electricidad con cartón, lápiz y teflón

¿Qué sería capaz de hacer MacGyver –famoso por su habilidad para improvisar cualquier artilugio– con cartón, teflón y un lápiz? No lo sabemos, pero Xiao-Sheng Zhang, un estudiante de postdoctorado de la Escuela Politécnica Federal de Lausana (EPFL), hizo una planta de energía casera que funciona tan bien como dos pilas del tipo AA.
El dispositivo fue presentado en una conferencia mundial sobre micro y nano sistemas en Shanghai.
¿Cómo se construye?
Cuando dos aisladores como el papel y el teflón entran en contacto, ganan o pierden electrones. El sistema se compone de dos pequeñas tarjetas, donde un lado de cada tarjeta está cubierta de lápiz. El carbono del lápiz sirve como el electrodo.
Cómo generar electricidad con cartón, lápiz y teflón
Para construir una pequeña planta generadora de electricidad sólo hacen falta algunos elementos caseros.
El teflón se aplica en el lado limpio de una de las tarjetas. A continuación, se unen de manera que no se puedan tocar, dando al sistema una configuración que hace que sea eléctricamente neutro.
Una vez unidas las tarjetas, hacen una especie de sándwich: dos capas de carbono en el exterior, luego dos capas de papel, y una capa de teflón en el medio.
Al presionar hacia abajo el sistema con el dedo, los dos aisladores entran en contacto. Esto crea una carga diferencial: positivo para el papel y negativo para el teflón.
Para aumentar la producción del dispositivo, Xiao-Sheng Zhang, utilizó una lija.
Al presionar con firmeza el papel de lija contra las tarjetas les da una superficie rugosa. Esto aumenta el área de contacto, que a su vez mejora en seis veces la salida del sistema.
Si se presiona las tarjetas con el dedo a una velocidad de 1,5 veces por segundo, por un corto período de tiempo, el condensador lanzará la misma cantidad de voltaje que dos pilas AA.
TENG
Este tipo de sistema es bastante prometedor, ya que se puede construir con artículos de uso diario.
La investigación sobre el uso de la electricidad estática para generar energía, apodada TENG, se inició en el año 2012. Los expertos coinciden que puede ser muy útil en el campo de la medicina.
Cómo generar electricidad con cartón, lápiz y teflón
El carbono del lápiz sirve como el electrodo.
Al parecer, ya se están probando sensores de papel de coste muy bajo para diversos fines de diagnóstico, lo que sería especialmente práctico para los países en desarrollo.
El sistema de Xiao-Sheng Zhang podría representar el siguiente paso, ya que eliminaría la necesidad de utilizar baterías convencionales.
Otra ventaja es que no genera residuos, ya que simplemente puede ser incinerado o dejado para que se descomponga de forma natural.
Ing. Alex Taya
Saludos.

¿Por qué proteger tu privacidad de datos en Internet?

"Las actualizaciones rutinarias son un modo simple y fácil para ayudar a mantener la seguridad en la Web, ya que un software caduco puede tener vulnerabilidades y agujeros de seguridad que pueden ser fácilmente explotados", recomienda Mozilla.
La compañía se encuentra desarrollando una páginas que contendrá instrucciones de como actualizar todo el software en Windows, Mac, Android y iOS.
Según los especialistas, los principales blancos de los hackers son la banca móvil, con más de 5 ciberataques por segundo. Y un reciente informa de Cisco reveló que el 40% de empresas se sienten vulnerables ante ciberataques.
Recientemente, Sonia Córdova, gerente de Territorio de RSA para Perú, Chile y Bolivia de la división de ciberseguridad de EMC, los fraudes informáticos han evolucionado, pues ahora “son bandas organizadas las que ejecutan los ataques, lo que debe ponernos en alerta”.
En ese sentido, Mozilla presentará Lean Data Practices, una página que busca equilibrar las necesidades de las empresas a entender a sus clientes y los derechos de los consumidores para mantener su información privada. Lean Data Practices pide a los líderes empresariales preguntarse si todos los datos que están recogiendo de sus usuarios son realmente necesarios.
Ataques a dispositivos móviles
Los dispositivos móviles como smartphones y tables se han convertido en uno de los principales blancos de los hackers. 
Según Kaspersky Lab, los países de América Latina sufren 20 intentos de ataques en línea por segundo y el 90% de ellos son contra dispositivos con el sistema operativo Android, que usan aplicaciones especialmente creadas apra robar contraseñas y hasta dinero.
El Perú -agregan- sufre más de 4 millones de intentos de hackeo por año, principalmente a trapes de correos electrónicos, por ello se recomienda que los usuarios verifiquen la procedencia y de sospechas, llamar al banco o empresa que brinda el servicio.
Sin embargo, el sistema operativo iOS, de Apple, no se escapa a esta tendencia y, si bien solo registra el 10% de ataques, se ha identificado un crecimiento de ataques diseñados especialmente para esta plataforma. Ello sucedió recientemente cuando el portal WeipTech reveló 225.000 cuentas de iCloud robadas de Apple.
Fuente: El Comercio/Mozilla ==> http://elcomercio.pe/tecnologia/actualidad/que-proteger-tu-privacidad-datos-internet-noticia-1874724?flsm=1
Ing. Alex Taya
Saludos.

¿Qué es un Algoritmo?

Más información ==>  https://m.facebook.com/story.php?story_fbid=779713015547334&id=332220556963251