Premature optimization is the root of all evil

Programmers waste enormous amounts of time thinking about,  or worrying about, the speed of noncritical parts of their programs, and  these attempts at efficiency actually have a strong negative impact  when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.  Yet we should not pass up our opportunities in that critical 3%.

– Donald Knuth (fuente, página 8).

Leer Más

android-featured

Android: Como usar el nuevo widget Toolbar

En el último Google I/O se presentó lo que llaman Material Design, el rediseño para la actualización mayor 5.0. Detrás de este rediseño hay mucha teoría conceptual y técnica que sirven para justificar un cambio brusco como este.

Uno de los cambios es lo que hasta ahora era el ActionBar; ahora se llama Toolbar y ya no depende de que la actividad extenda ActionBarActivity (al menos no siempre), si no que se trata de un widget como podría ser un ImageView o un EditText. De forma que podemos tener las “ActionBar” que queramos, por ejemplo una arriba ocupando el lugar tradicional y otra en el pie (sería raro, pero se puede).

material-design

(más…)

Leer Más

featured_dominant

Android: Obtener el color dominante de una imagen

El color dominante de una imagen es el que más presencia tiene en ella. Ultimamente se empieza a usar en aplicaciones en las que algunos elementos adquieren el color de fondo de algún elemento importante; por ejemplo en la aplicación Wally (que encabeza esta entrada) lo usan de una forma muy adecuada y que seguramente será la tendencia en las nuevas versiones de Android.

El proceso sería más o menos el siguiente: (más…)

Leer Más

js-featured

jQuery plugin: SameHeightElements

Hace un par de días tuve que hacer unos cambios en una web. Tenía que hacer que todos los elementos de una fila tuvieran el mismo alto, independientemente del contenido (en la imagen que hay más adelante se ve entiende mejor). La opción normalmente es usar display: table-cell; ó display: flex;, pero el resultado no siempre es el mejor y la compatibilidad con los navegadores tampoco. Así que hice un pequeño plugin para jQuery, lo apliqué en la web y después de ver que funciona bastante bien lo publiqué en Github. (más…)

Leer Más