A hint for Android smartphone makers

Almost every day on my Google Reader's collection of feeds I read rumors or facts about new Android handsets. Almost always the things have a ridiculous amount of CPU power (for a phone) more RAM memory and higher resolution screens. None of which excites me even a bit.

I used to change my phone every 6-8 months. When the iPhone 3G was released, I was excited to see how nice the interface and potential was with the app store, compared to my Nokia 6630. But it was too limited, too closed and too slow. Then I got the HTC Dream, the first Android phone. Even if it was butt-ugly I loved the openness and features of the phone. But it was also slow. Then, I got a Nexus One phone and not only it was physically beautiful and nice, it was also fast. In the Nexus One, apps open almost instantly and interactions with apps (menus, buttons, screen change) are also damn fast. This was at the start of 2010. Since then, a lot of new smartphones have hit the market but not a single one of them have excited me enough to change my Nexus. So as of date, I've keept my Nexus for 18 months, while in the past I would usually have changed two or three times during this period.

The reason is that the new phones doesn't offer any value for me are mostly:

  • Bigger screens: it is a phone and I really think that the Nexus 3.7'' is a reasonable limit for a phone screen. 4'' could make it, but no more.

  • Better screen resolution: which is not much of an improvement on a 3.7'' screen.

  • More cores, higher CPU cycles, more RAM: my Nexus is pretty fast with current Android versions (thanks Google for not WindowVista-izing the OS), and I don't feel a need for more RAM memory. Probably people playing 3D games on the phone will appreciate the difference, but I don't play games on the phone.

  • More megapixels in the camera: more megapixels are not more quality.

  • 4G: which currently doesn't works here in Europe.

What I would like to see on new phones:

  • Picoprojector: I want to show my friends/coworkers the latest lolcat video or that awesome Call of Duty match I uploaded to youtube on the wall. I want to see films on divx on my hotel room. I want to show that car show photo album without having 8 heads over my phone. These projectors doesn't need to be very high resolution of produce a huge screen on the wall.

  • More battery time: instead of releasing a phone with 4 cores a graphic accelerator and a huge resolution, release phone with the power and resolution of the Nexus but with 3 or 4 days of autonomy. It's a pain on the a** having to charge the phone mid-day, and all new phones are the same.

  • Frontal camera: Skype, Google talk, etc support or will support videocalling. Ok, some new Android phones have this, but it on itself not enough for me to change.

  • Digital TV receiver: Phones capable of receiving digital TV have been available for years (I saw one imported from China in 2008). Combined with a picoprojector could let you have a TV anywhere.

Sometimes it looks like phone makers are waiting for Apple to innovate and then make copycat of the new Apple's features and tagging their phones "iPhone killers". Sorry, they are not killers, they are copiers at most and now that Apple is mostly there with Android on OS features (notifications, multitasking, etc) Android makers could take a big hit if a new iPhone includes some real hardware innovation.

Compartir/Guardar/Bookmark

Mi vimrc a octubre de 2010

Pincha para ver mi última versión del vimrc comentado.
Continua dentro; pincha para leerlo completo (1135 palabras)

Ubuntu Linux 10.04 (64bits) on a Sony Vaio VPCEB2X5E

Other names for the model (for Google): VPC EB 2X5E VPCEB 2X5E

Specs

  • CPU: i5 2.40Ghz
  • RAM: 6GB
  • GPU: ATI MobileRadeon HD5650 with 1GB RAM
  • Hard Disk: 320GB 5400 RPM
  • Screen: 15.4''

Things that worked

  • Ubuntu installed fast and flawlessly, including the Windows 7 partition resizing. If you want to get more space you can delete the second partition (the one marked as "Windows Vista") because is the Sony recovery partition (and on this laptop takes a lot of space).

  • Once installed, I run the propietary driver installation program (is somewhere under Menu->Administration) and it installed the ATI fglrx drivers. A reboot later, I was on a fully 3D accelerated desktop with compiz and the effects automatically enabled. No "beta driver" watermark was shown, no graphical glitches were found and the accelerated effects all work beautifully. Good job on AMD/ATI on this one.

  • The integrated webcam worked perfectly out of the box (tested with Skype), without needing to install anything. Finally I can show my penguin on Chatroulette!

  • No network or WIFI problems.

  • Suspend and hibernate work perfectly. Everything is restored when the computer wakes up.

  • HDMI output works perfectly with my Samsung TV, but if you want to hear anything on the TV you must remember to select HDMI as audio output: click on the sound icon on the taskbar, click on "Sound Settings" under the volume control, choose the "Output" tab and finally select "Redwoord HDMI Audio [Radeon 5600 Series]".

  • Of the Fn functions the volume/mute keys work (but see below about sound), as does the suspend and the keys for alternating the output (HDMI/monitor/both) and but the ones for the screen brightness one don't. No problem, since I can changue the gamma of the monitor with xgamma anyway.

Things that didn't work (with a fix)

  • The Fn functions for the screen brightness doesn't work.

The only other problem I found is that the sound didn't work. After a five minutes Google search I found an easy solution; just follow these steps on a terminal:

  1. wget http://ftp//ftp.kernel.org/pub/linux/kernel/people/tiwai/misc/hda-verb/hda-verb-0.3.tar.gz
  2. tar xf hda-verb-0.3.tar.gz
  3. cd hda-verb-0.3
  4. make
  5. sudo cp hda-verb /usr/bin
  6. sudo gedit /etc/rc.local
  7. Add the following line before exit 0 : /usr/bin/hda-verb /dev/snd/hwC0D0 0x19 SET_PIN_WIDGET_CONTROL 0x22
  8. Save and reboot (or run "sudo /usr/bin/hda-verb /dev/snd/hwC0D0 0x19 SET_PIN_WIDGET_CONTROL 0x22" to avoid rebooting)

In order to enable the sound after suspend do:

  • sudo gedit /etc/pm/sleep.d/15_sound
  • Put this content:

    #!/bin/sh

    case "$1" in resume) /home/juanjux/bin/hda-verb /dev/snd/hwC0D0 0x19 SET_PIN_WIDGET_CONTROL 0x22 ;; esac

  • Save
  • Run on a terminal: sudo chmod +x /etc/pm/sleep.d/15_sound

It seem that this problem has already been fixed on recent kernel versions so maybe you won't need to do it.

Some tuning

I found the screen gamma was to high on the LCD, so testing with the "xgamma" command I found that the setting 0.60 ("xgamma -gamma 0.60") was perfect for me, so I made it permanent adding these lines to /etc/X11/xorg.conf (edit the file as root with sudo):

Section "Monitor"
    Identifier  "Generic Monitor"
    Option   "DPMS"
    Gamma    0.6
EndSection

Conclusion

This is a perfect machine to run Linux in.

Compartir/Guardar/Bookmark

Mini revisión de Android 2.2 "Froyo" en el Nexus One

Pues nada, ya tengo la versión rooteada que hay por ahí, iba a hacer una revisión cojonuda del tema, pero como me duele un poco la cabeza haré ésta.

Sobre el JIT y las distintas optimizaciones, la verdad es que va muy bien, pero antes también iba bien en cuanto a velocidad y multitarea, así que en eso no hay mucha diferencia y no puedo decir que el JIT haya cambiado mi vida; también es verdad que no uso juegos. Tampoco noto una diferencia extrema con respecto a que el navegador tenga el motor javascript V8; lo mismo, sigue funcionando bien aunque sí que vi que monstruos como el Google Wave cargan mejor.

El Flash funciona y funciona correctamente; se pueden ver vídeos de Vimeo, Gametrailers y demás sin problemas, y los juegos chorras flash que he probado lo mismo. Lo único que jode un poco es cuando cargas una mierdapágina que tiene mucho Flash empotrado para anuncios y tonterías (tipo ElMundo o similar) porque se ralentiza mucho la carga. Por suerte se puede configurar para que cargue bajo demanda (tocando) que es como lo he puesto.

Lo que si me ha gustado mucho, como desarrollador, es que las aplicaciones cuando petan tienen la opción de mandar el stack trace al desarrollador, que luego te sale en tu página del Market. A mi me han llegado ya 3 que me han servido para arreglar un bug. Eso va a hacer que las aplicaciones del Market mejoren mucho, pues antes si no podías reproducir el bug tenías que decirle al usuario que se instalase el alogcat y te mandase un volcado, y muchos usuarios simplemente pasan (no están tan interesados por el programa como para ponerse a hacer eso) y otros se lían.

Otra cosa que me ha gustado es lo de poder cambiar el idioma del teclado (y del corrector) al vuelo porque yo a veces escribo en castellano o en inglés, según la web o el email. También lo de sincronizar opciones en "la nube" (o sea, en servidores de Google en idioma no-pedante), me va a venir muy bien porque reinstalo con frecuencia para probar firmwares.

La cosa de envíar pushes al móvil es útil para mandarte páginas con la extensión de Chrome, aunque tampoco es una gran diferencia con respecto a enviarte un email a ti mismo y pinchar el link. Imagino que los desarrolladores le darán usos útiles en el futuro, aunque pudiendo en Android tener programas que se levanten con alarmas o se ejecuten como servicio no es tan útil como en un iPhone.

Estaría bien que el reconocimiento de voz para escribir en campos de texto lo traiga en español, con mi inglés lo que digo generalmente no tiene nada que ver con lo que escribe, a veces escribe cosas bastante divertidas, el otro día se me saltaron los lagrimones cuando le dije algo y lo transcribió como "Ride the lady for the fun".

Lo demás, hotspot WIFI, instalar cosas en la SD, más memoria activada, software de cámara mejorado y kernel más nuevo lo tenía ya el Cyanogen que venía usando (y que volveré a usar en cuanto haga una versión basada en 2.2).

Está claro que Google y el resto de desarrolladores que contribuyen a Android van como una locomotora, en sólo año y medio han metido muchísimas mejoras y la competencia, iPhone, Maemo, Windows Mobile 7, y WebOS van a tener que sudar sangre para pillarles. RIM no lo pongo como competencia porque siempre fue un zurullo a pesar de lo cual vende como churros, en ese caso Google y los demás tendrían que hacer un genocidio con los clientes de RIM para ganarles o cambiar el target para orientarse hacia cierto tipo de usuario que no da más de si, cosa que tampoco les conviene.

Compartir/Guardar/Bookmark

Vim: explicación de ventanas, pestañas y buffers

[Pincha aquí para ver otros artículos sobre Vim]

Cuando uno empieza a usar el potentísimo editor de texto Vim y consigue pasar de esa primera fase en la que nos horrorizamos de que todo sea tan distinto y poco intuitivo a la segunda fase en la que entendemos la filosofía de trabajo del editor (y es resto de editores nos empiezan a parecer poco intuitivos), es aún posible que nos líemos un poco con los conceptos de Vim de vista, ventana, buffer y pestaña.

Vamos a ver que es cada cosa y cómo suelen usarlas los usuarios avanzados de Vim, pero antes de explicarlo pongo un dibujito muy mono (pincha para ampliarlo mucho, es grande pero ocupa poco):

  • Vista: La vista en Vim es lo que vemos en el monitor. Una vista estará siempre dentro de una pestaña (si sólo tenemos una pestaña abierta la vista estará en la única pestaña) y a su vez puede contener una o más ventanas dentro.

  • Ventanas: En Vim una ventana es una subdivisión de la pantalla total que el programa puede usar. Es decir, si estás editando un fichero entero y éste ocupa toda la pantalla que ocupe el Vim, tienes una ventana. Si haces :split o :vsplit, tendrás ahora dos ventanas, viendo el mismo fichero (buffer). Si ahora en una de ellas haces de nuevo :split, tendrás tres ventanas. La utilidad de las ventanas es que nos permiten ver varios buffers o varias partes de un mismo buffer simultáneamente, lo cual en ocasiones es muy útil para programar. Como mínimo vas a tener siempre una ventana porque si cierras la última se cierra el programa y en cualquier momento estamos trabajando a través de una (o varias) ventanas. Incluso cuando estamos en una pestaña, realmente estamos en una ventana que está dentro de una pestaña.

  • Buffers: Los buffers son el concepto más importante de los de esta lista porque son los que contienen realmente los ficheros que abrimos, por lo que podemos pensar en los buffers como los ficheros cargados en memoria; si cerramos un buffer se cierra realmente el fichero y si abrimos un buffer se abre otro fichero. Esto no sucede con ventanas y pestañas porque cuando cerramos una pestaña a través de la cual estamos viendo un buffer el buffer sigue existiendo porque sólo hemos cerrado la ventana. Podemos hacer una metáfora diciendo que las ventanas son las ventanas de una casa y los buffers son las personas; si cierras la ventana la persona sigue estando detrás. La única excepción es cuando cerramos la última ventana abierta en la única pestaña que queda; en ese caso Vim considera que ya no vamos a trabajar más, dado que siempre trabajamos a través de una ventana, y por lo tanto cierra también todos los buffers que hubiera abiertos.

  • Pestañas: Las pestañas, una funcionalidad relativamente reciente de Vim permiten mantener simultaneamente varias vistas, cada una de las cuales puede contener una o más ventanas, y en esa única o múltiples pestañas podemos estar viendo uno o más buffers.

Compartir/Guardar/Bookmark


« Anterior 1 2 3 4 Next »