Contenido

Entrevista simultánea en Hacker de hoy en día

31 Jul

+ 1

Hoy he participado en una entrevista conjunta en Hacker de hoy en día. Mis compañeros de SpamLoco y Geekotic han estado francamente bien eligiendo navegador 😀

Crea plugins para WordPress en una sola línea

30 Jul

+ 1

Hoy Mark on WordPress, publicaba un ejemplo de plugin de una sola línea, con el que hacemos que el panel de planificación de publicación aparezca desplegado por defecto.

add_action('admin_head',create_function('$a', "echo \"<script
type='text/javascript'>\n<!--\naddLoadEvent(function(){if(jQuery('.edit-timestamp')){jQuery('.edit-timestamp').click();}});\n//-->\n</script>\";"),50);

Como vemos la magia de este sistema es gracias a la función create_function(), con la que podemos crear funciones usandolas como parámetro de la función add_action() o add_filter(), funciones que nos permiten añadir funcionalidades a WordPress.

create_function()

create_function(String $args, String $codigo);

Con create_function() generamos funciones y la función nos devuelve el nombre de la función con la funcionalidad que le pasemos como parámetro $codigo, para los parámetros usaremos el primer parámetro de la función.


//Sin create_function()
function func($str) {
     return str_replace("_", "-", $str);
}
//Con create_function()
$func = create_function('$param', 'return str_replace("_", "-", $str);');

Esto me recuerda mucho a la posibilidad de declarar variables como funciones.

// Javascript 
var myFunc = function(str) {alert(str);
// PHP
$myFunc = create_func('$str', 'echo $str');

Intentemos convertir en una línea el hack para evitar buscar en las páginas de tu WordPress.

add_filter('query_vars', create_function('$vars', 'array_push($vars); return $vars;'));

Probando Mozilla Firefox 3.1 alpha 1

30 Jul

+ 3

Esta tarde he visto que la gente de Ars Techinica probaba el interface de usuario de Firefox 3.1. Una versión mucho menos innovadora que la aclamada 3.0, pero interesante tambien.

firefox_3_1_alpha_1

Despues de descargarla y navegar un rato con ella, pensé que podría extender un poquito ese review.

Apariencia

El aspecto externo, es exactamente igual que Firefox 3, no ha cambiado nada. Únicamente llama la atención el selector de pestañas que me recuerda los malos tiempos de Windows Vista, pero con una mejor sensación (este no se cuelga :D).

ff31a1win

Otro cambio, muy esperado por todos los usuarios, es el aspecto de la barra de navegación, en la que, en esta nueva versión, han conseguido reducirla un poco sin perder el aspecto que intentaban buscar en la versión 3.0.

ff3bookmark

Estándares Web

En cuanto a estándares los resultados son los siguientes:

Acid

acid3_firefox_3_1_alpha_1

Como podemos ver, el incremento en la puntuación con respecto a la versión 3.0 es importante, de un 58/100 llegamos al 84/100. No es un 100/100 pero Roma no se hizo en un día 😀

Selectores CSS3

La implementación de selectores CSS3 es perfecta:

From the 43 selectors 43 have passed, 0 are buggy and 0 are unsupported (Passed 578 out of 578 tests)

Podemos ver en el test que aparece todo «Verde» (correcto), algo lógico viendo como otros navegadores hace ya tiempo que lo integran. La aparición del iPhone 3G tambien ha propiciado este paso ya que las páginas se están volcando en ofrecer contenidos a los que Firefox no puede dejar sin ofrecer.

SunSpider (Test Javascript)

Total: 3322.2ms +/- 3.2%

Si comparamos con resultados que teníamos cuando hicimos la prueba a Internet Explorer 8 beta 1, vemos que en este punto ha cambiado para bien algo realmente soprendente.

Ver resultados del test.

Además, el gran Dustin Diaz, nos comenta que esta nueva versión incluye la implementación de querySelector() y querySelectorAll() de forma nativa, pudiendo reemplazar para estos navegadores funciones como $$() de MooTools.

var $$ = function(q, b) {
  if (b) {
    return document.querySelector(q);
  } else {
    return document.querySelectorAll(q);
  }
};
var lis = $$('ul > li:not(".selected"):hover');

Conclusión

Una versión llamada Shiretoko, que dará un pasito más para que nosotros, los usuarios, tengamos una internet mejor. Pese a ser una versión alpha, la sensación ha sido muy agradable.

Detecta el sexo de tus visitantes con su historial

30 Jul

+ 16

Hace unos meses apareció SocialHistory.js, un script desarrollado en Javascript que se aprovecha de una técnica muy ingeniosa en la que reconocer sitios en los que el usuario ha estado previamente.

Para ello se inserta crea un enlace hacia un listado de sitios y se le aplica mediante CSS un color a los enlaces visitados. Mediante Javascript comprobamos si el enlace ha cambiado al color indicado previamente para los enlaces visitados.

<style>
   a{color: #000000; display:none;}
   a:visited {color: #FF0000; display:inline;}
</style>
//Javascript
function getStyle(el, scopeDoc,styleProp) {
    if (el.currentStyle)
      var y = el.currentStyle[styleProp];
    else if (window.getComputedStyle)
      var y = scopeDoc.defaultView.getComputedStyle(el,null).getPropertyValue(styleProp);
    return y;
 }

Ahora en Mike on Ads, nos propone un experimento con el que podremos estimar el sexo de nuestro visitante. Para ello comprueba las primeras 10.000 urls de Quantcast y le asigna un valor para conseguir un ratio, con el que estimar un tanto por cierto de hombre y mujer en las url’s visitadas.

sex_of_the_visit

Está claro que esto no es más que una curiosidad y que no obtendremos el sexo del visitante, sinó una estimación basada en las páginas que visita. La interesante idea puede dar frutos muy divertidos, … 😀

Cuil, ¿el buscador del futuro?

30 Jul

+ 20

Al parecer un grupo de ex-trabajadores de Google ha desarrollado un nuevo buscador intentando solventar los factores más críticados de Google, la privacidad y los resultados.

Google

google

Es cierto que Google posee tantos datos nuestros que nos conocen mucho mejor que nuestras parejas, y que los resultados que arroja el buscador no son todo lo buenos que podrían ser, pero lamentablemente no tenemos nada que mejor.

Google se ha hecho con el 90% de la cuota de mercado y dicta las normas en Internet, si no usas su metodología, no existes para el mundo y eso asusta a todos. He aquí uno de los problemas que Google arrastra y que causan ese temor que lo envuelve.

Cuil

cuil1

Cuil nace como una alternativa a los problemas que los usuarios tienen con Google, e intenta conseguir la confianza del usuario con un interface sencillo y casi sin opciones para que el usuario únicamente busque y encuentre lo que busca.

Actualmente dicen tener 121,617,892,992 url’s indexadas (30 de Julio de 2008), algo realmente escaso comparado con el trillón (americano, para el resto del mundo 1 billón) de páginas que Google indexa hoy en día. Algo que explica los pobres resultados que obtenemos en Cuil.

Curiosidades

Buscando en imagenes de Google (¿como no?) encuentro una entrada de Gizmondo de hace 2 días en la que podemos ver una captura de Cuil, y podemos observar que el número de páginas indexadas no ha cambiado. Lo que personalmente le resta confianza.

La página de resultados, quizas el punto más flojo a nivel estético del navegador. Como opina Diego, el usar una grilla de 2 o 3 columnas de resultados, hacen poco fácil seguir el listado de resultados:

cuil_results

Si probamos a deshabilitar los estilos CSS, nos encontramos con una estructra de tablas REPETIDA, podemos ver claramente que se están cargando el contenido 2 veces, uno para mostrar los resultados en 3 columnas y en 2 columnas, algo que personalmente no comprendo… si ya tienes el contenido en 2 o 3 columnas, ¿¿por que no lo conviertes en vez de tener el contenido repetido en diferentes formatos??

cuil_contenido_repetido

Los resultados son el punto más flojo del buscador, que ya tiene guasa, un buscador que tenga problemas con las busquedas  (…. ¿como Google?). Si intentas buscar algo como «Javascript» obtienes:

16,795,866 results for Javascript(Cuil)

frente a los

Resultados 110 de aproximadamente 537.000.000 de Javascript(Google)

Es importante tambien visualizar el primer resultado que ofrecen cada uno de los buscadores.

cuil_javascript

google_javascript

Como podemos ver, Cuil nos muestra como primer resultado (o eso entiendo al verlo posicionado a la izquierda y arriba) una página llamada «The Javascript Source» que tiene un contenido relacionado, pero no explica que és ni de que trata. Por otro lado, Google nos ofrece un enlace a la Wikipedia, indicando una descripción de lo que estamos buscando, un resultado mucho más acertado para la mayoría de busquedas y usuarios.

En fín, si quieren competir en busquedas (se trata de un buscador) tendrán que dedicarle mucho trabajo, por el momento no puede llamarse alternativa, únicamente «proyecto de alternativa».

FlickrVisión, el día que FlickR conoció a Flash

29 Jul

+ 1

Si hay algo que Flash hace bien son este tipo de aplicaciones. FlickrVisión es una muestra del potencial de este lenguaje en aplicaciones gráficas basadas únicamente en imagenes. El dinamismo y la fluidez obtenido con Flash para hacer este tipo de cosas, sería demasiado pesado para el procesador del cliente si se desarrollara en Javascript.

WordPress MU 2.6

28 Jul

+ 3

WordPress anuncia la versión 2.6 de su versión MultiUsuario, un salto bastante interesante repleto de novedades que harán que los usuarios de MU disfruten de las nuevas ventajas de WordPress 2.6.[Descargar]

5 reglas para darle nombre a tus variables

28 Jul

+ 13

Como desarrolladores cada día tenemos que bautizar miles de variables, algunas poco importantes otras de las que depende el funcionamiento correcto de nuestra aplicación. Debido a esto debemos ser consecuentes y tener cuidado y un poco de orden a la hora de ponerles nombre.

Ian Hickman, propone 5 reglas básicas con las que nombrar fácilmente a nuestras variables:

  1. Crea nombres de variable largos y descriptivos. No seas vago y dale un nombre lo más descriptivo posible, piensa que dentro de 10 años tendrás que revisar ese código (a mi me vale).
  2. Pon las unidades en los nombres de la variable. Si tu variable informa una medida o algo que pueda ser contado debería incluirse la unidad de medida en la que está el valor de la misma.
  3. Si estás usando el «Camel Case», piensa en usar «Capitalize». Si los nombres de la variables están compuestos por más de una palabra, evita las mayusculas en la segúnda palabra. (ejemploVariable o Ejemplovariable) (Está es cuestión de gustos…)
  4. Nunca uses variables con nombre temp. Estas variables generalmente ensucian el código ya que no aportan nada, siempre mejor informar que están alojando en su interior aunque sean temporales.
  5. int i es perfecto para pequeños bucles. Nada de usar variables de una sola letra en bucles grandes, es realmente frustrante descifrar un código de 1000 líneas cargado de variables de una sola letra.

En conclusión, debemos pensar que el código SIEMPRE lo revisan un mínimo de 2 personas, en grupos de trabajo serán otros compañeros y en proyectos propios serás tu dentro de X meses (que será una persona completamente diferente que el que desarrolló la primera versión).

Estamos de mudanza

26 Jul

+ 19

Hace unos días le ofrecieron a Carlos (relay) cambiar de servidor dedicado, una máquina mejor al mismo precio. Así que durante este fin de semana miraremos de ir migrando los datos del server antiguo y el server nuevo.

Aviso por si ocurre algo raro, que sepais por que son producidos.

Gracias por la comprensión y siento las molestias.

Firebug Lite 1.2, Buscando las 7 diferencias

25 Jul

+ 8

A ver si alguien puede decirme, que hay de diferente entre estas imagenes:

Imagen A

imagen-4

Imagen B

firebug-lite-776x656

Imagen C

opera_html

Imagen D

safari_dom

Es dificil, ¿verdad? Es normal que sea complicado ya que la gente de Firebug ha conseguido algo realmente sorprendente. Si nos fijamos bien, la imagen A es Firebug 1.2 desde Firefox 3 en MacOs, las demás son Firebug Lite 1.2 sobre Internet Explorer 7 (B), Opera (C), Safari (D).

El resultado es soprendente y es que esta nueva versión de Firebug Lite ha revolucionado el concepto de debug de aplicaciones web. Da igual en que navegador estes desarrollando o teniendo problemas, con Firebug Lite creerás que estás en Firefox, con la confianza y seguridad que eso conlleva.

Recordemos como instalarlo en nuestra aplicación:

  • Añadimos entre nuestros tags <head></head> el siguiente código.
    <script type='text/javascript'
        src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>

o podemos tener un acceso directo en nuestro navegador para poder añadir la funcionalidad a cualquier página.

Firebug Lite 1.2