02 marzo 2014

Usando ascii art en comentarios de código

Esta semana me he topado con una evolución en los comentarios de código: comentarios con ascii art.

/* This function is based on the current VRAM usage.
*
* - If all of VRAM is free, allow relocating the number of bytes that
*   is equal to 1/4 of the size of VRAM for this IB.

* - If more than one half of VRAM is occupied, only allow relocating
*   1 MB of data for this IB.
*
* - From 0 to one half of used VRAM, the threshold decreases
*   linearly.
*         __________________
* 1/4 of -|\               |
* VRAM    | \              |
*         |  \             |
*         |   \            |
*         |    \           |
*         |     \          |
*         |      \         |
*         |       \________|1 MB
*         |----------------|
*    VRAM 0 %             100 %
*         used            used
*
* Note: It's a threshold, not a limit. The threshold must be crossed
* for buffer relocations to stop, so any buffer of an arbitrary size
* can be moved as long as the threshold isn't crossed before
* the relocation takes place. We don't want to disable buffer
* relocations completely.
*
* The idea is that buffers should be placed in VRAM at creation time
* and TTM should only do a minimum number of relocations during
* command submission. In practice, you need to submit at least
* a dozen IBs to move all buffers to VRAM if they are in GTT.
*
* Also, things can get pretty crazy under memory pressure and actual
* VRAM usage can change a lot, so playing safe even at 50% does
* consistently increase performance.
*/

El que quiera ver el código completo lo puede hacer en este parche de Marek Olšák para Radeon, el driver para Linux las tarjetas gráficas de AMD.

24 enero 2014

BuddyLamps: unas lámparas con mucha clase

BuddyLamps: Lámparas de acción articuladas es un proyecto de crowdsourcing que consiste en la creación de lámparas artesanales de metal. Hasta aquí no suena muy interesante, pero si ves el modelo seguro que te enamoras.

Me ha enamorado que Miguel, el autor, ha conseguido que un objeto cotidiano tengo personalidad y vida propia. Durante las próximas 24 horas, por 65€ puedes obtener una lámpara artesanal hecha de forja y que se puede personalizar totalmente. Incluso hay creado un sistema para ayudarnos a personalizar nuestra lámpara.

12 enero 2014

Revoltijo de enlaces XI

Os dejo con la lista de los últimos artículos que me han parecido interesantes.


Si queréis leer más al día lo artículos que comparto podéis acerlo a través de The Old Reader.

05 enero 2014

5 consejos de reciclaje para superar con éxito la visita de los Reyes Magos

Estoy seguro de que a muchos los Reyes magos nos van a dejar un buen surtido de regalos. Con los regalos llega asociado un surtido de cajas, bolsas y restos de piezas que debemos intentar reciclar.
Aquí os dejo unos pequeños consejos que espero que ayuden.

  • Antes de que lleguen los Reyes seguro que nos comemos un buen roscón pero recuerda que las cajas de los roscones de reyes no se pueden reciclar. A pesar de ser de cartón las cajas de los roscones no se pueden reciclar ya que normalmente se queda pegado azúcar y restos del roscón y además se suelen manchar de grasa, cosa que hace que ese cartón se convierta en inservible (esto mismo es aplicable, por ejemplo, a las cajas de las pizzas que tampoco se pueden reciclar si se encuentran manchadas).
  • Los juguetes viejos no van al cubo amarillo sino al punto limpio. Si los Reyes han traído juguetes nuevos y los viejos ya no los usamos lo mejor es donarlos a alguna ONG. Si por cualquier causa no podemos hay que recordar que los juguetes no se reciclan en el contenedor amarillo sino que hay que llevarlos al punto limpio.
  • Usa pilas recargables. Muchos de los juguetes funcionan con pilas y es mejor que estas sean recargables. A la larga ahorrarás dinero (por cada pila normal una recargable se puede usar unas 1000 veces) y además estás colaborando a no contaminar, ya que las pilas contienen metales pesados muy contaminantes.
  • Las piezas de plástico pequeñas es muy posible que no se reciclen, por eso un buen consejo es intentar hacer bultos grandes de lo que se va a reciclar. Por ejemplo, es mejor juntar todos los emboltorios de todos los regalos y tirarlos en una sola bola en vez de tirar cada plástico por separado, ya que cuanto más grande es el desecho más fácil es que se recicle.
  • Por último recuerda que reciclar no debe ser el objetivo, sino que es más importante reducir y reutilizar. Por eso, antes de tirar nada a la basura piensa en si le puedes dar otro uso. Si aún así no te queda otro remedio que tirarlo y no sabes dónde, el buscador de ecoembes te ayudará a no fallar.

23 noviembre 2013

Revoltijo de enlaces X


31 octubre 2013

¿Por qué no puedo instalar Ubuntu en mi móvil Android?

Aunque es muy común oir la frase Android es Linux esto no es del todo cierto, motivo por el cual no se puede coger un teléfono con Android e instalar cualquier otro sistema Linux como Ubuntu. El principal motivo de esto son los gráficos.

Simplificando bastante (si quieres una explicación detallada de cómo funcionan los gráficos en Linux puedes leer este artículo), en Linux los gráficos están repartidos en dos piezas: el servidor gráfico y la capa hardware. En una distribución Linux al servidor gráfico se le conoce como servidor X y la capa hardware es la librería Mesa. Mientras que el servidor X se encarga de la parte más funcional dando soporte a los programas y a funciones como el arrastrar y soltar, Mesa se encarga de la parte de más bajo nivel y se corresponde con los driver a bajo nivel de la tarjeta gráfica que usemos.


Esquema de las distintas partes que componen los gráficos en Linux. De mupuf.org con licencia Commons Attribution-ShareAlike 3.0 Unported.

Al contrario que la mayoría de sistemas Linux, en Android se decidió crear un nuevo sistema gráfico, donde SurfaceFlinger reemplaza al servidor X y una librería llamada Gralloc HAL reemplaza a Mesa.


How do graphics stacks compare on GNU/Linux and Android 2.x?. De http://she-devel.com/Linux_Android_Graphics_Stacks.html con licencia Commons Attribution-ShareAlike 3.0.

El problema está en que la mayoría de fabricantes de SoC están implementando un driver Gralloc HAL pero no están construyendo un driver para Mesa. Además, la mayoría de las veces el driver Gralloc HAL no tiene código fuente por lo que los desarrolladores no se pueden basar en él para crear un driver Mesa; y en los casos en los que sí que se cuenta con el código del driver Gralloc, la calidad de dicho código deja bastante que desear (esto es lo que se dice de los driver que liberó Qualcomm Unfortunately, the msm android fbdev driver code is a real mess (at least the mdp4 parts). Even by android / vendor kernel standards, which are pretty low to begin with.)

¿Cuál es el futuro?

Actualmente hay un montón de desarrolladores trabajando en crear driver Mesa para la mayoría de los chips gráficos ARM y por ahora van por buen camino por lo que es probable que en un año podamos instalar una distribución Linux en móviles o tablet sin ningún problema.
Además hay varios factores que pueden acelerar este proceso. Por un lado la gran cantidad de ordenadores low-cost que están apareciendo y que cuenta con sistemas SoC como RaspberryPi o CuBox. Por otro lado está la sustitución del servidor X actual por Wayland. Una de las múltiples ventajas de Wayland es su flexibilidad gracias a la cual ya sea conseguido que este se ejecute sobre los driver Mesa o sobre los driver de Android. Esto significa que aunque no se creen driver específicos para Mesa las distribuciones que usen Mesa podrán funcionar con los driver que los fabricantes publican para Android.

Sinceramente creo que el futuro es la desaparición de PC tal y como lo conocemos (como una torre enorme con una pantalla separada) y lo que nos espera será algo similar al visionario Motorola Atrix, un móvil que según el accesorio que le pongamos podrá convertirse en un PC de sobremesa, un tablet, un portátil, etc. y aquí tendrá mucho que decir la adaptación del sistema operativo a la pantalla en la que se esté ejecutando.

Nota: Puesto que no soy un experto en gráficos es posible que este artículo contenga errores. Agradecería que si alguien ve alguno lo dijese en los comentarios para aprender de ellos.

Publicidad