Deprecated: Assigning the return value of new by reference is deprecated in /home/phobeoco/public_html/blog/wp-settings.php on line 472

Deprecated: Assigning the return value of new by reference is deprecated in /home/phobeoco/public_html/blog/wp-settings.php on line 487

Deprecated: Assigning the return value of new by reference is deprecated in /home/phobeoco/public_html/blog/wp-settings.php on line 494

Deprecated: Assigning the return value of new by reference is deprecated in /home/phobeoco/public_html/blog/wp-settings.php on line 530

Deprecated: Assigning the return value of new by reference is deprecated in /home/phobeoco/public_html/blog/wp-includes/cache.php on line 103

Deprecated: Assigning the return value of new by reference is deprecated in /home/phobeoco/public_html/blog/wp-includes/query.php on line 21

Deprecated: Assigning the return value of new by reference is deprecated in /home/phobeoco/public_html/blog/wp-includes/theme.php on line 623
Programancy | phobeo.com

Archive for the 'programancy' Category

hackday time

wow! this week is being pretty intense: first we had BBC mashed event, today was the searchmonkey hacking evening and tomorrow is our internal Yahoo! hackday.

Lots of things to do, little time to post…

I did a Fireagle widget hack in Mashed, that I couldn’t get completely running because I started playing with the authentication (trying to make oauth work with only curl) and with Ant scripts to verify/lint/deploy both XML and PHP files (pretty sweet stuff!) Will post info as soon as I can

I was only briefly at the hack evening today, but managed to check the talk, chat with a couple of nice people from ITV and do a formula 1 monkey to extract info from eurosport pages and present it alongside search results. I think it looks nice:

searchmonkey - formula 1 pilot info

want a fireeagle invitation?

Have been playing a bit with the FireEagle API for building location based services (check some slides about FireEagle here) and the team commented that they’re preparing a FireEagle hack night some point next month, and also sent me some invites to circulate

So if any of you needs a FireEagle invite to test, feel free to shoot me an email! (info about hacknight will probably be put in upcoming.org when details are available)

fireeagle logo

P.S. by the way, if you want to check which cool things you can do with FireEagle, check out Simon’s Wikinear application here

slides from OverTheAir hackfest

As usual, I forgot to post in advance, but I gave a couple of talks at the OverTheAir mobile hackfest organized by BBC and MoMoLondon. Really cool event, guys! As the overtheair people are submitting their slides to slideshare, I thought I could as well repost them here, in case anybody’s interested.

First is the intro slides to the widgets panel, that we shared with Nokia and Vodafone. Second is the slides to the developing widgets workshop itself.

P.S: before you comment: yes, I know the fonts are all made a mess… have to play more with this slideshare thing :P

conoceis algun sistema de revisiones de codigo sobre subversion?

El otro dia estaba comentando con unos compañeros lo utilisimo que resulta tener un sistema de “code review” (revisiones de codigo, para los que no hablan aragones) en cualquier grupo de desarrollo de n personas (para n>1). Es una cosa de sentido comun que se basa en la maxima de que “cuatro ojos ven mas que dos”.

lolcats

Un sistema de revision de codigo, para que nos entendamos, viene a funcionar basicamente asi: tenemos un repositorio de codigo para mantener nuestro proyecto, el desarrollador A tiene una copia de trabajo en su maquina sobre la que edita, añade, corta, pega y colorea lo que sea necesario. Cuando el conjunto de cambios esta listo para sentencia, lo envia a un desarrollador B, que debe revisar los cambios (normalmente mostrados como un diff sobre la copia del repositorio) y aprobarlos para dar permiso al desarrollador A para enviarlos al repositorio con un bonito submit e irse a casa a ver el futbol de una vez. Un sistema de revision de codigo basicamente “ayuda” a este proceso facilitando que el desarrollador A envie el cambio, que el desarrollador B sepa que tiene que revisarlo, manejar los permisos que B da a A y, en el peor de los casos, asegurarse que A no envia ese codigo sin permiso para irse a ver el futbol antes (*)

El sistema tiene la ventaja enorme de que todas esas cosas que a veces “se nos escapan”, son mas faciles de detectar por un compañero (ya sabeis que el problema de mirar tu propio codigo es que es como tu niño… y claro, a nadie su niño le parece feo) Pero tiene varias ventajas mas, especialmente en equipos: asegura que las convenciones de codigo y la estructura se respetan a traves del proyecto (revisar el cumplimiento de las convenciones es parte de la revision), permite al revisor familiarizarse con una parte del sistema con la que puede no haber tenido contacto antes (y por extension, al equipo tener una mejor concepcion del proyecto en conjunto) y permiten en general una mejor comunicacion de cambios (especialmente si recibimos algun cambio que se integre/afecte/colisione con otro cambio en el que estamos trabajando nosotros!)

Todas las compañias “grandecitas” de desarrollo usan algo como esto: Microsoft antes tenia un sistema sobre perforce (que ahora debe haberse cambiado por Team System), Google tiene g4 y Mondrian… y a estos parece que les va bien asi que, habra que probarlo, no?

Vistas todas estas ventajas, seria inevitable ir recomendando a todos los equipos de amigos, familiares y allegados el usar un sistema de revision, asi que he estado buscando si hay algun proyecto que implemente revisiones de codigo sobre un repositorio de subversion, para probar, pero ninguno de los que he encontrado me convence del todo. De momento los que he visto son:

Los open source:

  • Codestriker: Un poco feillo, pero da el pego. Permite revisiones sobre el repositorio o de diffs. Problemas: la gestion de cambios es solo web (yo preferiria que se pudiera desde linea de comandos), no tiene resaltado de sintaxis y no muestra los comentarios sobre el codigo (es un poco mas dificil de leer)
  • Peer review plugin para Trac: construido sobre el sistema de plugins de Trac. Lo de los comentarios flotantes queda mono pero: solo tiene interfaz web, examina cambios en el repositorio y no hace “diffs” de codigo, sino que muestra el contenido ya cambiado (bastante menos util, y requiere mas esfuerzo para revisar)

Los propietarios:

  • Crucible: otro producto de los de Atlassian (responsables del Confluence wiki), y que al igual que el resto, es un poco caro! Una pinta estupenda, interfaz web y seguimiento de revisiones en hilos. Las cosas que no me convencen: la creacion de listas de revision se hace desde el interfaz web y su sistema de gestion de cambios es un poco distinto al proceso que he descrito antes (incluye, por ejemplo la figura del moderador). Ademas, solo funciona sobre cambios YA enviados al repositorio.
  • Code Collaborator: El mas completito que he visto: interfaz web muy mona, se integra con subversion y perforce, clientes de linea de comandos, web, plugin de eclipse… y gestion de cambios antes de ser enviados al repositorio. No me acaba de convencer lo de separar los comentarios normales y los “defectos”. Y como unica nota negativa: el precio! }:/

Asi que acudiendo a vuestra sabiduria colectiva: alguno conoce algun sistema de revisiones que se pueda montar sobre subversion y preferentemente open source? Y de estos que he encontrado, alguien los ha probado y puede comentar sus impresiones?

(*) NOTA: en el ejemplo, si A quiere irse a ver el futbol ya, que se le hace tarde, siempre puede enviar el cambio a B y esperar a la mañana siguiente antes de enviarlo al repositorio. De hecho, recomendaria no hacer ningun submit pasada cierta hora de la tarde, especialmente si es tarde de Viernes… os lo digo por experiencia! }:P

read “producing open source software”! it’s free!

Thanks to a link sent by Mr. Penyaskito to a .NET mailing list, I have noticed that “Producing Open Source Software”, by Karl Fogel, is available for reading and downloading from the website http://www.producingoss.com/

producing OSS, the cover

I read this book earlier this summer and can definitely recommend it to anyone who wants to get an insight on how open source development works, and in general to anybody who has to produce software as part of a team, as it not only talks about technical/programming/geeky stuff, but also about the important and undervalued subject of team dynamics and conflict resolution techniques.

In one of the presentations I saw recently about how to assemble software teams, there was this snippet saying that most people think being a software developer is mostly a matter of programming and technical knowledge, which is partly true, but a GOOD software developer knows is also a matter of process: knowing how it is, knowing how to make it better (and knowing how to ignore it if necessary, but that requires a master code ninja level).

Anyway, hope you enjoy the reading as much as I did! }:)

NOTA: en breve “copiare” esta entrada, en español, en programancia101

nabazlib version 0.11

hallo everybody, long time no see! }:P

Nabaztag rabbits are becoming increasingly popular, if we were to judge by their presence in the hacking events I’ve been to this year, and also in our own Google London office. Therefore, it was just natural that at some point I asked somebody to borrow one to play.


nabaztag

So, thanks to Jonathan Gerrish and Hank Drew (and their not-so-furry-yet-cute nabazfriends Elconejo and Bobbles) I’ve done a small library to abstract Violet’s Nabaztag API and make it easier to integrate in some hacks: check out nabazlib at code.google.com

It’s still an early hack, but it will allow you some nice playing with TTS and choreographies. Plan to add some more stuff later this week, while I attend GoogleHack at Campus Party in Valencia (I may also use it for a demo)

If you happen to give it a try, let me know what you think! }:)

google mobile for windows mobile

The first Google Windows Mobile app is out! }:)

download Google Mobile Maps for Windows Mobile devices

Google Mobile Maps

published news, finally!

ok, so I cannot update the photos yet, sorry (keep on forgetting them on my other laptop)

and also, can’t publish anything about today’s Mobile Monday session (of which I also took photos) because I left my mobile at the office

BUT I can write something today! Referring to my past post about one of the computer superheroes joining Google! I just read it on Wikipedia, so the voice is already out: Ken Thompson is now working in Mountain View!

Ken Thompson and Dennis Ritchie
(yes, this was how computer geniuses looked like in the sixties)

I would really suggest to read his bio at Bell Labs and then browse a bit of the Unix system history to realize why I think this guy rocks soooo much!

Do you agree?

how to write a proper CV

the other day, while looking for info to send to a friend that wants to apply for a job at Google, I noticed that my favourite page from Google Job site was not linked from where I expected it to be! Well, the site is under revamping sothings like this are expected, but I thought about keeping a link here just for future reference, as this is probably the best collection of tips on how to write a resume for a engineering job I’ve seen so far:

Google CV tips

binary search broken: buenisimo!

Importante el detalle que menciona Joshua sobre como Bentley explicaba en clase de algoritmos… por favor, si hay algun profesor leyendo esto: asi es como se hace! Los algoritmos se pueden leer en cualquier libro pero la critica es lo que hace que se entienda

Google Research blog: Extra, Extra - Read All About It: Nearly All Binary Searches and Mergesorts are Broken

Y hablando de algoritmos… ejem! a ver si nos animamos con la pregunta de abajo, que de momento tengo poquitas respuestas (por correo, ademas) };P