I Fell In Love At The Apple Store

Si pensabas que yo estaba loco, estabas equivocado. He aqui un Apple Fanboy ganando más y más reproducciones de su video en YouTube. Este cuate jura y perjura que no es montaje y efectivamente lo hizo en la Apple Store de Nueva York. Muy buena pero no le gana al sonidito de Rammstein o a la cabrona de Metallica.

Corazón De Cromo


Creo que si en algo estamos de acuerdo es que Internet Explorer es el peor navegador del mundo: falta de cumplimiento de estándares, leeeeeeeeeeeento, a veces algo pesado (seamos sinceros, Firefox se pone más pesado con el uso que IE), en fin como dirian los gringos: It's so crappy.

Al parecer no somos los únicos que estamos hartos del pesimo desempeño de Internet Explorer. En Mountain View California los cuates del famoso buscador han desarrollado un plugin para Internet Explorer de manera que soluciona todas las incompatibilidades del navegador, falta de soporte a estándares y lentitud. Básicamente lo que hace es quitar el motor interno de internet explorer y hacer que corra con el motor de Google Chrome. De esta forma se agiliza bastante el desempeño del navegador de Microsoft y funciona muchisimo mejor.

Ahora bien, ¿porque demonios Google querría mejorar un producto que no es suyo? Basicamente Google dijo: "prefiero instalar el corazón de Chrome en Internet Explorer, en vez de modificar todo mi codigo para que funcione en esa madre". Además con la próxima salida de Google Wave, Google no quiere meterse en problemas de incompatibilidades y demás.

Muy bonito pero la pregunta de siempre ¿a mi como usuario que me importa?. En esta ocasión creo que es bastánte obvio. Seguramente tienes en casa alguna computadora donde se usa Internet Explorer de manera predeterminada, o das soporte a personas que no pueden vivir sin él o no conocen otros navegadores y/o se resisten al cambio. Hazles un favor e instálales el Chrome Frame (que és como se llama esta madre) de manera que mejore su experiencia de usuario con Internet Explorer.

Es importante aclarar que no todos los sitos utilizarían el plugin siempre; a nivel desarrollador debes incluir la siguiente etiqueta en el código de tu sitio para que funcione:

<meta http-equiv="X-UA-Compatible" content="chrome=1">

Aun asi, personalmente he instalado el Chrome Frame y se nota un buen incremento de desempeño. Pruebalo, total si no te convence o no te gusta, lo desinstalas y ya. Descárgalo de aqui.


Bonus: Acabo de encontrar que es posible forzar a que Internet Explorer abra todas las páginas siempre con el motor de Chrome. Para ello hay que escribir las direcciones de la siguiente manera:

cf:http://www.midireccion.com

Qué hueva hacer eso, mejor baja este archivo y modifica el registro de Windows para que sea automático

Courier: La Supuesta Tablet De Microsoft

Luego de que Apple nos dejara sedientos, ansiosos, calientes, insatisfechos de una iTablet comienzan a aparecer más rumores en la blogosfera sobre la aparente nueva tendencia tecnológica para el 2010. Las tablets probablemente sean la nueva fiebre en esta "era de lo tactil" donde ohh si, todos queremos tocar en lugar de escribir (hay veces que es mejor tocar las teclas pero... esto ya es un juego de palabras vulgar).

El rumor más fresco ha aparecido del otro lado de la moneda, ahora con Microsoft. Presuntamente estaria desarrollando un nuevo dispositivo con nombre en clave Courier, cuyo aspecto sería el de un libro abierto con un stylus y soporte multitáctil; y es que si la iTablet seria un iPhone gigante, Courier podría ser un Nintendo DSi gigante.

Aqui está un pequeño demo de cómo seria su funcionalidad aproximada en un momento dado. Un video dice más que 1000 caracteres ASCII:


Probablemente pienses que un stylus a estas alturas es un retroceso en las interfaces multitactiles (yo pienso lo mismo), pero seguro hay personas que no pueden vivir sin su palito (cada quien sus traumas).

Courier luce bastante interesante, ¿será que Apple se esta durmiendo en sus laureles? ¿o solamente estan probando el mercado con el iTouch antes de dar el gran golpe? ¿Prefieres las teclas o tocar o todo junto? ¿Tu que piensas?

El Kernel 2.6.31 De GNU/Linux


Enviado por: tavohm

Hola a todos, en esta ocasión quiero comentarles sobre la nueva versión del kernel del pingüino, más concreta mente la 2.6.31, de manera muy general para aquellos que no lo sepan y que espero sean pocos eh, el kernel de Linux se puede definir como el corazón de este sistema operativo. Con la serie 2.6 del kernel, el sistema de numeración así como el modelo de desarrollo han cambiado. Las versiones han pasado a numerarse con 4 dígitos y no existen versiones de producción y desarrollo.

Las versiones del núcleo se numeran hoy en día con 4 dígitos, de la siguiente forma AA.BB.CC.DD donde:

  • AA: Indica la serie/versión principal del núcleo.

  • BB: Indica la revisión principal del núcleo. Números pares e impares no tienen ningún significado hoy en día.

  • CC: Indica nuevas revisiones menores del núcleo. Cambia cuando nuevas características y drivers son soportados.

  • DD: Este dígito cambia cuando se corrigen fallos de programación o fallos de seguridad dentro de una revisión.

  • Es con esto que nos damos cuenta que esta nueva versión es una revisión, pues se han añadido nuevas características y soporte de nuevos dispositivos, pero eso ¿en que me beneficia? bueno, pues las mejoras que contiene son nada mas y nada menos que el soporte nativo para USB 3.0!! (con una tasa de transferencia 10 veces mayor al USB 2.0) si, si, lo se...y ¿de donde sacamos dispositivos con ese estándar?

    Al momento no hay, sin embargo no tardaran en aparecer y para nuestra buena fortuna el sistema del pingüino soportará este estándar y esto es posible gracias a la hacker (vaya, una chica que desarrolló el driver, curioso no?) Sarah Sharp empleada nada más y nada menos que de uno de los grandes...Intel, el driver en cuestión es el xHCI (Extensible Host Controller Interface)


    Sharp también dice que está trabajando para asegurarse que distribuciones populares como Ubuntu y Red Hat incorporen el driver xHCI, aunque los usuarios avanzados siempre podrán compilarlo por sí mismos.


    ¿Y cual es la otra mejora? Ah, es simple e interesante pues es un cambio que mejorará el rendimiento en los escritorios gráficos con condiciones de poca memoria. Básicamente lo que se hizo fue cambiar la forma en que se decide qué parte de la memoria se debe mover a disco (swap).

    En el esquema tradicional, la memoria usada por el código se considera como equivalente a la usada por los datos a la hora de copiarlas al disco cuando la memoria es insuficiente. Esto provoca que las aplicaciones detengan temporalmente su ejecución cuando el código que necesitan se encuentra en disco. Para evitar este problema, el código ejecutable tendrá una marca especial para que el sistema operativo haga lo posible por mantenerlo siempre en memoria, sin llevarlo a disco.


    El cambio es bastante pequeño, pero los resultados son interesantes..En pruebas realizadas se detectó que en un escritorio corriendo OpenOffice, Firefox y el entorno GNOME con 512 MB, la necesidad de copiar segmentos de memoria desde el disco a RAM se redujo a la mitad, mientras que la cantidad de segmentos que se trajeron desde el disco se redujo a sólo un tercio.

    Ya está publicado en forma oficial la versión 2.6.31 del kernel de Linux. En esta entrega también se incluye el soporte para Kernel Mode Setting en tarjetas de video basadas en los chips R5xx de ATI, con miras a agregar este soporte a los chips R6xx/R7xx en el próximo release. Este soporte se complementa con el desarrollo del resto de la infraestructura necesaria para que los chips de ATI queden soportados completamente con código abierto.

    Por si esto pareciera poco, también agrega el soporte del nuevo hardware gráfico de Intel (Clarkdale & Arrandale) del cual se tuvo conocimiento al ver los cambios que Intel realizaba en el driver de video para su hardware en X.org

    ¿Y La iTablet+ Apá?


    Poco a poco disminuye la fiebre causada por la mas reciente keynote de Apple, luego de superar los impulsos del momento y con la cabeza más fria ya podemos analizar que nos trajo el regreso de Steve a la compañia de la manzana.

    El rumor de la cámara era muy fuerte y ahí si se cumplió pero probablemente no de la forma que se esperaba, ya que todos esperábamos la inclusión de éste dispositivo en el iTouch y no en el iNano. Y hablando del iNano, la radio FM agradó a varias personas pero muchos dijimos: ¿como es posible que la camara grabe video y fotos no? Segun Steve: "Una camara de fotos decente necesita un chip más grande que el de la actual camara del iNano, por lo que no cabe en el dispositivo". Probablemente tenga razón, pero apoco ¿en el iTouch tampoco cabe? De hecho de acuerdo con éste enlace, el iTouch tiene espacio suficiente para incluir una cámara (¿en un futuro?). Quien sabe, tendremos que esperar.

    Desde el punto de vista del consumidor fue una buena keynote, trayendo rebajas de precios con expansiones de memoria y capacidad, además de agregados como en el iNano. Desde el punto de vista de los que esperabamos algo más fue un poco decepcionante, como que nos dejaron a medias segun las expectativas. Por ejemplo apostabamos por la cámara en el iTouch en vez del nano, o quizas una nueva versión del iTouch, o hasta la mismísima iTablet, un dispositivo que básicamente sería un iPhone de 10 pulgadas y vendria a ser la apuesta de Apple en el mercado de las ultraportátiles pero nada, nos quedamos como novias de rancho.


    Personalmente me pareció decepcionante el regreso de Jobs a la compañia; para la magnitud de productos presentados y su ansiado regreso fue poco. Quizas lo esperabamos con un nuevo dispositivo innovador o bien si el evento iba a ser menor (como al parecer lo fue) no debió presentarse, no se, el regreso de Jobs parecia ser un boom total pero definitivamente no lo fue.

    En resumen, del lado del consumidor normal las mejoras valieron la pena. Se golpea menos fuerte el bolsillo, o al menos se obtienen productos más capaces por el mismo precio. Del lado de los anormales, se esperaba un poco más. Más de alguno esperábamos ver a Steve diciendo: "Hola, soy Steve Jobs y sigo vivo. Esta es la iTablet y aquí tienen el iTouch con cámara además de toda la discografía de los Beatles". No me veas asi, soñar no cuesta nada.

    El 9 Del 9 Del 2009


    Esta fue la fecha elegida por los de Cupertino para lanzar su actualización de productos. El evento en esta ocasión fue meramente musical, mostrando en cuestion de software actualización de iTunes como suite multimedios completa ahora en su versión nueve con soporte para gestionar las apps del iTouch/iPhone, iTunes LP y soporte tambien para Facebook y Twitter, actualizacion de la iTunes Store que actualmente es la tienda de musica digital número 1 en el planeta, nuevos juegos para el iPhone / iTouch tales como Assassin's Creed 2, Riddim Ribbon, Nova y Madden NFL. Pero vámonos al hardware que es lo relevante de este evento.


    El iPod Classic aumenta su capacidad hasta 160GB y tiene un costo de $3889 varos mexicanos...ehm... si; eso es todo -_-!.

    El iPod Shuffle baja un poco de precio y presenta nuevos colores, por los siguientes precios:

  • 2GB - $949

  • 4GB - $1249

  • Para el iTouch desaparece el modelo de 16GB y los precios actuales bajan, con el fin de dar lugar al nuevo modelo de 64GB quedando los precios de la siguiente manera (esto en varitos mexicanos):

  • 8GB - $3099

  • 32GB - $4699

  • 64GB - $6189

  • En el caso de 32 y 64GB los audifonos tienen control remoto y microfono, además de que el aparato en si está hecho con el hardware del iPhone 3Gs, es decir se desempeña más rapido y tiene el sistema operativo iPhoneOS 3.1


    El iPod Nano en su quinta versión incluye cámara de video (literalmente de video, ya que NO saca fotos), radio FM, altavoz y nuevos colores metálicos. El costo queda asi:

  • 8GB - $2349

  • 16GB - $2849


  • En el siguiente articulo viene el análisis de éste evento.

    Snow Leopard: Grand Central Dispatch


    Oh! que tiempos aquellos cuando comprabas un procesador y se lo andabas presumiendo a tus cuates (el procesador): “mira mi procesador, es Pentium III a poco más de 700 MHz, a las pocas semanas salía Pentium 4 y tu frustración no podía ser mayor. Con cada nueva versión más y más megahertz o incluso gigahertz de frecuencia de reloj, y asi hasta que llegó el momento que físicamente no se pudo mas.

    Seguramente habrás notado que de un tiempo para acá, los procesadores no han aumentado sus frecuencias mucho que digamos, lo más que recuerdo es un procesador Core 2 Quad a 3.06GHz; sin embargo aumentar el número de núcleos parecer ser la tendencia, ya que al aumentar la velocidad del reloj se genera más calor y hay mas consumo de energía (lo cual preocupa a los usuarios móviles). Esto significa menos horas chateando sin requerir de un cargador.

    Iniciamos con 2 nucleos, actualmente el estándar es 4. Para los mas exigentes, léase gamers existe una cosa brutal llamada Core i7 o bien AMD Phenom del lado de la competencia. A lo que voy es que actualmente los limites físicos han impedido hacer procesadores más rápidos, y en su lugar se han ido agregando más núcleos.


    El problema aquí es que los sistemas operativos actuales no aprovechan del todo los núcleos de los procesadores, por la misma razón expuesta en el articulo anterior: el computo paralelo. Si eres programador sabrás que programar una aplicación multiproceso, multitarea o multithreaded como dicen los gringos, es una tarea no muy fácil que digamos. Esto ha generado a lo largo de la historia grandes problemas que han sido motivo de estudio en asignaturas de sistemas operativos por ejemplo, si estudiaste sistemas recordarás los interbloqueos entre procesos o deadlocks, condiciones de carrera y otros dolores de cabeza al respecto.

    Para los cuates, una aplicación multitarea debe dividirse en varios threads a bajo nivel. Un thread básicamente es una porción de código que se ejecuta de manera independiente al resto del programa. Lo difícil es cuando 2+ threads intentan usar un recurso al mismo tiempo y bueno… esto parece un libro de Tanenbaum, mejor hablemos del leopardo.

    Snow Leopard presenta una nueva tecnología (¿cuantas veces he escrito eso?) que intenta exprimir hasta la ultima gota de procesamiento de tu pequeño juguete, y es llamada Grand Central Dispatch. Su objetivo es liberar al programador del rollo necesario para gestionar los threads de sus aplicaciones, de manera que en el código solamente indique cuales líneas van a ejecutarse dentro de un thread y listo, el felino hace el resto.

    Blah, blah, blah. Pero a mi como usuario final ¿para que me sirve eso? Como mencionaba en el articulo anterior, si una aplicación no está segmentada en threads, aunque tengas un procesador de 8 nucleos, tu programa correrá de manera secuencial casi igual que si no tuviera threads. Al segmentar el código, cada nucleo puede procesar una parte distinta del código logrando mayor rapidez y eficiencia de ejecución.


    De esta forma, si todas las aplicaciones de Snow Leopard van a ser migradas a Grand Central Dispatch, teóricamente el desempeño debe ser brutal, pues GCD va un paso más alla en la gestión de threads. Normalmente si tu aplicación está segmentada digamos en 15 threads, todos están ocupando espacio en memoria, pero en el caso de GCD libera los recursos de los que no se están ejecutando, es decir, tu Mac no se alenta por procesos ociosos.

    Grand Central Dispatch es una tecnología única en su tipo, que permitirá un desempeño tremendo del sistema operativo, haciendo que las aplicaciones sean sumamente responsivas y rápidas. Otra idea genial por parte de los de Cupertino.

    Bonus: Con este articulo termina el análisis de Snow Leopard en su semana de lanzamiento. Como ves es una actualización que “por fuera” no notarás grandes cambios, pero por dentro ya conoces cuales son los cambios que se vienen. Es cierto que el proceso de migración de aplicaciones a este top 3 de tecnologías llevará algo de tiempo, pero solo nos queda esperar a que los desarrolladores se pongan las pilas. Imagina cualquier aplicación corriendo en modo 64 bits, con graficos y cálculos apoyados por OpenCL y segmentado en N-threads gestionados por Grand Central Dispatch…… Excitante, sencillamente, excitante…

    Snow Leopard: OpenCL


    Open Computing Language es un tandem formado por un lenguaje de programación y una API (Application Programming Interface), que están basados en el paralelismo a nivel de datos y de tareas, cuya finalidad es distribuir las cargas de trabajo entre la CPU y la GPU. What the fuck was all that shit????

    Para los cuates CPU es Central Processing Unit (no mi estimado n00b, CPU no es la cajota donde metes los cds que está al lado de tu monitor) y GPU es Graphics Processing Unit; pero ya fue suficiente verborrea técnica, vamos con un poco de historia. A finales de la decada de los 80 y principios de los 90 salian al mercado los primeros juegos para computadora, los cuales debido a las limitantes de hardware no eran muy vistosos que digamos (aun asi, nos tenian pegados a la computadora por horas), ¿quien no recuerda Space Invaders o el primer Need For Speed?. Pronto, los desarrolladores quisieron incluir mucho más realismo a sus creaciones y el procesador por si solo no alcanzaba para procesar (valga la expresion) tantos calculos necesarios para el renderizado de poligonos y texturas en la pantalla, lo cual ha llevado a crear juegos tan exigentes de hardware como los que hay en la actualidad.


    De esta manera nacieron las tarjetas gráficas o tarjetas de video, como un ayudante de la CPU, la cual basicamente se encargaria de realizar los calculos relativos a las aplicaciones tridimensionales, librando a la CPU de estas tareas y ocupandolo en el procesamiento del resto de actividades, tales como gestionar el teclado, mover el mouse, atender los servicios/daemons del sistema operativo, etc. En la actualidad la labor de la GPU no ha cambiado tanto desde entonces, si no juegas mucho o editas video muy seguido, probablemente tu GPU está siendo desperdiciada, si acaso renderizando las transaparencias de la interfaz AERO o Aqua o los efectos de Compiz Fusion; pero en general no realiza mucho trabajo. Todo esto hasta ahora.


    OpenCL presenta una tecnologia bastante interesante la cual en pocas palabras intenta hacer que la GPU tenga poco tiempo de ocio y no sea utilizada solamente en aplicaciones 3D. Es decir, cuando no se este jugando (por ejemplo) y estes realizando tareas ofimaticas la idea es que la GPU ayude al procesador y entre los 2 realicen el procesamiento de manera paralela, agilizando drásticamente el desempeño del sistema. Si tomamos en cuenta el poder de calculo de una GPU actual, de un madral de FLOPS (Floating Point Operations Per Second), aunado al desempeño de un procesador multinucleo, en teoria el sistema debe andar pero en chinga.


    Nuevamente el problema actual es que las aplicaciones deben estar programadas para soportar este tipo de procesamiento (más informacion sobre computo paralelo en el proximo articulo de esta serie), y para ello Apple ha incluido en Snow Leopard la API que mencionaba. Su intención es que no todo el código de las aplicaciones tenga que reescribirse sino solamente una parte, esto con el fin de que el sistema operativo pueda decidir qué segmento de codigo se ejecuta en la CPU y qué segmento en la GPU.

    OpenCL es un estandar abierto para programación en paralelo muy interesante. Esperemos que pronto los desarrolladores migren sus aplicaciones a este paradigma y finalmente se puedan exprimir los componentes de hardware como se debe.

    Snow Leopard: 64 Bits


    Mucho se ha hablado de los procesadores, arquitecturas y buses de 64 bits. Suena bien, en computacion más es mejor pero ¿para que diantres me sirve como usuario un procesador o arquitectura de 64 bits?

    La caracteristica mas notable es la eficiencia. Piensa en un procesador de 64 bits como una carretera de 8 carriles en lugar de 4; probablemente los autos no circulan más rapido pero pasan más autos por segundo (qué claridad de explicación, seguramente nunca te habian explicado 64 bits de esa forma).

    Otra característica son las limitantes de la memoria RAM. 32 bits alcanzan para direccionar un espacio de aproximadamente 4GB de RAM (no voy a hacer las cuentas ahora, consigue una calculadora binaria y hazlo tu mismo). Si tienes 4GB o más de memoria RAM en tu computadora y haz instalado un sistema operativo de 32 bits (digamos Windows) notarás que no reconoce toda tu RAM y te marca entre 3.3 y 3.7 GB de RAM (y te sentiste robado); he aqui el ejemplo del problema de direccionamiento. Por cierto con 64 bits, el límite de memoria RAM es de 16 billones de gigabytes, es decir es decir 16 exabytes. Suena exagerado, pero si hace 5 años alguien te decia que tendría 4GB de RAM en su computadora le preguntabas si estaba drogado

    Es importante aclarar que aun si tu sistema está corriendo en modo 64 bits, si las aplicaciones no están programadas en 64 bits, de poco te sirve. En el caso de Snow Leopard, la transición se está realizando paulatinamente. Las aplicaciones que aun son de 32 bits son:

    • iTunes

    • Grapher

    • Front Row

    • DVD Player

    Las aplicaciónes que ya están en 64 bits son:

    • Finder

    • Dock

    • Mail

    • TextEdit

    • Safari

    • iChat

    • Address Book

    • Dashhboard

    • Help Viewer

    • Installer

    • Terminal

    • Calculator

    • y todo lo demás

    Snow leopard es capaz de correr en modo 32 bits o 64 bits, pero uno a la vez, ya que en tiempo de ejecución un proceso pertenece solamente a uno de estos 2 modos y carga codigo de bibliotecas, plugins, etc. unicamente de ese tipo.


    Snow Leopard por defecto arranca en modo 32 bits, de hecho no cualquier Mac puede arrancar en modo 64 bits. Las macs compatibles son:


    Si tu Mac es compatible, para entrar en modo de 64 bits al momento del arranque mantén presionadas las teclas 6 y 4 (qué creativo este truco). Para volver al modo 32 bits... exacto, manten presionadas las teclas 3 y 2.

    Como ves, el tema de 64 bits es muy extenso pero en general se resume en eficiencia de procesamiento e incremento de los límites de cálculo del sistema ya sea para direccionar memoria RAM o bien para que el kernel trabaje mas cómodamente.

    Opera 10 Turbocharged


    Ayer martes salió la versión definitiva del navegador más infravalorado del mundo (como alguna vez lo comenté) nuevamente innovando en características como ya es costumbre de éste equipo de desarrollo noruego. Alguien en alguna ocasión decía: "si quieres saber qué características van a traer las próximas versiones de los navegadores, instala la versión actual de Opera". Opera tuvo un periodo larguísimo de desarrollo para poder lograr esta versión, pero considero que valió la pena.

    Nueva interfaz: Mejor diseñada, visualmente más atractiva y con nuevo logo. No me digas que éstas cosas no te interesan.

    Opera Turbo: Es un modo que permite compactar la información que se envía entre el cliente y el servidor de manera que se mejore el desempeño en conexiones lentas.

    Reubicación de la barra de pestañas: Es posible colocarla en cualquiera de los cuatro extremos de la pantalla, muy util sobre todo a los lados en pantallas widescreen. Esta característica probablemente sea pirateada por Firefox en un futuro.


    Previsualización de pestañas: Si antes ya tenia previsualización al hacer Ctrl+Tab (lo cual Firefox también está pensando piratear) o bien al pasar el mouse sobre las pestañas, ahora es posible hacer más grande la barra de pestañas para obtener una previsualización ahi mismo.

    Presto 2.2: Nuevo motor de renderizado mucho más rápido que Opera 9. Lo he probado en Windows 7 y creeme que va rapidísimo.

    Mejora de Speed Dial: La cual fue pirateada descaradamente por Google Chrome y luego por Safari 4.


    Mejora de Opera Link: Esta característica es la ley. Sirve para sincronizar en la nube tus favoritos e historial. Por cierto Google esta trabajando para piratearla proximamente en Chrome.

    Además del resto de caracteristicas como Cliente de Correo, Chat IRC, Lector de Feeds RSS, Gestos del Mouse, Manejo por Voz, Cliente de BitTorrent, Sesiones de Navegación, Zoom Completo, Widgets, Varita Mágica para gestión de contraseñas (ésta última también es la ley, sobre todo para los que tenemos que autenticarnos en 10 sitios diariamente)... en fin.

    Si tienes problemas con flash, instala la última versión de Adobe Flash Player para que Opera muestre correctamente éste tipo de animaciones. También te sugiero cambiar la opción que viene por defecto para la carga de las páginas de "Dibujar luego de un segundo" a "Dibujar inmediatamente".


    Opera es un muy buen navegador con muchas características bastante interesantes incluidas de fábrica (Firefox fans: estamos hablando del navegador recien instalado sin extensiones) que vale la pena probar, personalmente me parece excelente, lástima que no tenga la cuota de mercado de los demás navegadores. Lo puedes descargar desde http://www.opera.com/browser.