sábado, marzo 06, 2010

Tuenti y 2010

(Antes de nada decir que lo que pongo en este post es totalmente personal y nada tiene que ver con mi curro. Todo lo comentado es contenido público disponible en la web)

Ya estamos en la recta final del Q1 2010.
Como ya comenté el 2010 sería una año con muchas novedades en Tuenti (creo lo hice por Twitter), y ya se va viendo...:
  • Aplicación para el iPhone
  • Aplicación para Android
  • Tuenti SMS
  • Cambio de look a la web
  • Nuevas páginas corporativas
  • Nuevo blog
  • API disponible
  • Multilengua
No se si se me escapa alguna... Y seguirá habiendo novedades....

Irritante

Lo es un poco irritante, pero esperado, son los comentarios de algunas personas respecto a algunas de las cosas que hemos hecho. Pero que se le va a hacer, esto es España y los españolitos somos así...

El primer ejemplo que vi en la web, desde que llevo aquí fue cuando salieron las oficinas en idealista (fotos hechas por Dani). Algún comentario negativo sin fundamente, tachando de vaguetes, vendemotos, y que a ver si hacíamos algo de tecnología... (y todo porque en una foto salía uno descalzo...)

Os puedo asegurar que en Tuenti se trabaja duro. Aquí no hay vaguetes...

Algunos cambios necesarios si o si

Con respecto a las aplicaciones móviles nada voy a comentar. Hay que estar ahí, ya que es el futuro.
Con respecto a las páginas corporativas y al blog, nada voy a comentar. Era muy necesario el lavado de cara y ya se hizo.
Sobre el soporte multilenguaje, se hizo y funciona realmente bien. Ya que a la gente le gusta tanto comparar Tuenti con Facebook. Habeis probado el de facebook?

Cambio de look en la web

De nuevo muchos comentarios negativos en la web. Pero entre tantos comentarios negativos, algunos positivos que realmente merecían la pena leer. Ejemplo. Contraejemplo negativo.

Un poquito de por favor... Si no se ha cambiado prácticamente nada... Es un lavado de cara. Casi todo está donde estaba.

En este punto es necesario comentar que Facebook y Tuenti por fuerza se tienen que parecer ya que son redes sociales y al final la funcionalidad de una red social es la misma.
Quizás puedes crear cosas que otras no tenga, pero al final lo principal ya está inventado y es lo que es.

La *diferencia* entre Tuenti y Facebook y Tuenti es su nicho de mercado. Tuenti, por suerte o por lo que sea ha conseguido tener un gran número de usuarios en España y ese es su hecho diferencial con Facebook.
Se podrá parecer o no. Da igual, es otra red social con otros usuarios (algunos comunes).
Al final la lucha se trata en intentar captar mas usuarios y mantener los que ya tienes. Para ellos les tienes que dar lo que buscan los usuarios y que funcione bien.

Tuenti SMS

Con Tuenti SMS Tuenti le ha tomado la delantera a Facebook. Si Facebook monta algo similar, dirán que ha copiado a Tuenti. En el fondo da igual...
Es simplemente un ejemplo del tipo de servicios que se puede ofrecer a los usuarios, gracias a ser una compañia local.

Por otro lado chapó por Vodafone. Últimamente le está dando bastante cera a Timofonica, lo cual está muy bien. Tienen unas tarifas de datos realmente buenas.

El API

Tras anunciar la existencia del API, saltó la noticia de que se había roto [barrapunto][meneame].
De nuevo unos comentarios negativos, pero algunos positivos.

Lo que está claro es que Tuenti como empresa esta en su obligación de ganar dinero. Y si la decisión empresarial ha sido (de momento) sacar el API así, pues está en su derecho.

Tuenti ahora mismo da trabajo a un gran número de personas, es una empresa tecnológica, y es Española. Pero no se vive del aire... De alguna forma tiene que ganar dinero para poder pagar a sus empleados y que sus inversores recuperen lo invertido.

Nada es gratis.

De momento todo lo realizado, creo que es poco molesto para el usuario, y la web es muy limpia.

lunes, enero 25, 2010

Lista python-es

Copio un correo de Chema Cortés:

A partir de ahora, el servicio gmane.org se une al de googlegroups
para dar acceso a la lista python-es@python.org y dar soporte de
búsquedas.

Podéis acceder a través de la siguiente dirección:

http://dir.gmane.org/gmane.comp.python.general.hispano

o con un lector de news (nntp) desde:

nntp://news.gmane.org/gmane.comp.python.general.hispano


En googlegroups:

http://groups.google.com/group/pythonhispano

También es posible acceder a la anterior lista (python-es@aditel.org) desde

http://dir.gmane.org/gmane.comp.python.general.castellano

domingo, enero 24, 2010

twitter y python

Esto es un autoapunte para una cosilla que quiero hacer con twitter.

C Coding stantards

Hace nada definimos las 'Python Coding Guidelines' en el curro.
Ahora le toca el turno a C.
En este post voy a recopilar referencias que vea por la web sobre Programming Styles [wiki] para C.

Y de C++:
Ahí van unos links sobre el tema de stackoverflow:
Y para acabar:
Ya tengo material mas que de sobra... para empezar a currar... :P

Some post of Jonathan Ellis's

Visité el blog de JE, porque ha publicado un post interesante: Linux performance basics. Habrá que ver como continua la serie...

Y aprovecho a enlazar un par de post suyos sobre python:
Y un enlace externo:
Todos ellos son lecturas interesantes.
Me dejo un enlace a un video para ver: Building Scalable Websites with GAE.

sábado, enero 16, 2010

Un par de lecturas de última hora

Autonota: Leer What is Reactive Programing del mismo blog.

Y he leido un par de post interesantes sobre hotmail:

martes, enero 12, 2010

Rotating hash

I implemented this hash function in php.


private function rotatingHash($key) {
$result = 0;
$n=strlen($key);
for($i=0;$i<$n;$i++) {
$result = ($result << 4) ^ ($result >> 28) ^ ord($key[$i]);
}

//We avoid getting negative results
return abs($result);
}


Aqui podeis leer sobre ella y otras muchas. Pero realmente no creo que os sea muy interesante...En su lugar podríais usar crc32() que es nativa y por lo tanto mucho más rápida.
Ya como curiosidad... si quereis usar md5, debereis hacer....


$unpack = unpack('S', md5($key, true));
return $unpack[1];


Pero es mas lenta que crc32.

viernes, enero 08, 2010

Python Code Checkers

He encontrado que hay disponibles los siguientes analizadores de código.
pylint, pep8, pyflakes, pychecker

El objetivo de todas ellas es de mejora la calidad del código. Bien por detectar errores antes de llegar a la etapa de ejecución, bien por indicarnos errores obvios, o bien por corregirnos el estilo de codificación.

Ejemplo típico de error detectado: uso de varibles no definidas previamente.

Veamoslos uno a uno, brevemente (no va a ser un análisis profundo ni mucho menos.... es un vistazo rápido)

pep8
Analiza el estilo del codigo para que se conforme al pep8.
Ejemplo de uso: pep8 cs_example.py --show-pep8 --ignore=E501
En el ejemplo anterior le estamos indicando que cuando nos de un error, muestre el texto completo del pep8 que se inclumple y que nos ignore el error E501.
Si no tenemos un estilo que se adapte al pep8 pero similar, puede sernos útile gracias a la posibilidad de ignorar los errores.

Por defecto solo muestra un error de cada tipo.
Con -h nos muestra la ayuda.

Conclusión: Está muy bien, pero puede ser un poco pesado con algunas cosillas. Eso si como las podemos ignorar...
Eso si, sólo para comprobar estilo.


pychecker
Sus dos principales características son:
  • a diferencia del resto ejecuta el código
  • no comprueba estilo
Al igual que el anterior con -h nos muestra la ayuda (tiene muchas opciones).
Si sólo queremos parsear el fichero pasado se le debe indicar pasar el flag --only.
Por defecto ejecuta código de módulos importado, por lo que puede generar mucho ruido. Por fortuna se puede desactivar el análisis de módulos determinados por configuración.

pyflakes
Analisis estático
No chequea estilo
Limitado número de errores tratados.
Sólo analiza ficheros o directorios pasados por linea de comando.
No tiene ayuda en linea

pylint
Es la herramienta mas completa (basta con ver la ayuda (-h), permitiendo ademas el ser extendida mediante pluggins.
Hace sugerencias sobre como mejorar el código.

Conclusiones
Tras haber echado un vistazo rápido a ellos, y haber visto lo que se dice de ellos, parece que pylint es el mas completo.
El mas flojo parece que es pyflakes.
pep8 es curioso y tiene su utilidad ya que es muy estricto en el chequeo de las reglas.
pychecker por la forma de hacer el análisis podría detectar cosas que pylint no, pero habría que estudiarlo mas a fondo.... Y a pesar de ello no se si merecerá la pena. A priori diría que no.


Referencias:

domingo, enero 03, 2010

Error handling

En el curro tuve que dar una charla sobre 'error handling'. Actualizaré este post con contenido...
Pero mientras tanto, incluyo un thread que acaba de parecer en comp.lang.python: Exception as the primary error handling mechanism?.

domingo, noviembre 22, 2009

svn vs csv

Este viernes tenía una cena con compañeros de facultad.
Salió el tema del svn donde les comenté sobre como trabajar con ramas correctamente.
Emilio comentó que cuando estaba en TID tuvo the procedimentar la forma de trabajar con CVS, eso me ha hecho mirar las diferencias entre CVS y SVN, que no las recordaba.
Ahí van unos enlaces: [1][2][3].

miércoles, noviembre 11, 2009

Buscando sobre memcache

Buscando sobre memcache (que tengo que escribir un articulillo) me he encontrado unos enlaces que comparto:

No he visto muchas cosillas. De hecho sobre el tema de mi artículo no he visto nada...
Aparte de los artículos, hay algún comentario interesante y algún enlace para investigar...

domingo, noviembre 01, 2009

High Performance Web Sites

Sabía que este finde iba a tener algo de tiempo para leer, con lo cual me llevé un libro pequeño de la biblioteca de la Empresa "High Performance Web Sites" de Steve Souders (O'Really).
Aunque no lo he leido entero, lo acabaré en en breve (no le doy mas de esta semana) ya que es muy corto y muy directo al grano. Básicamente está dedicado a exponer 14 reglas para hacer web sites que cargen más rápidamente. Reglas dedicadas a frontend.
Las reglas son:

  • Make Fewer HTTP Requests
  • Use a Content Delivery Network
  • Add an Expires Header
  • Gzip Components
  • Put Stylesheets at the Top
  • Put Scripts at the Bottom
  • Avoid CSS Expressions
  • Make JavaScript and CSS External
  • Reduce DNS Lookups
  • Minify JavaScript
  • Avoid Redirects
  • Remove Duplicates Scripts
  • Configure ETags
  • Make Ajax Cacheable

Un libro totalmente recomendado si te dedicas al desarrollo web. Aunque es información que posiblemente puedas encontrar online, como por ejemplo aquí [de yslow].
Pero de todas formas está bien tenerlas agrupadas en un libro.

martes, octubre 27, 2009

Usando correctamente SVN - Bunny Hopping

Ahí va un post sobre SVN en estos tiempos que corren, donde lo que está de moda son los sistemas de control de versiones distribuidos. Pues si... porque ¿quien ha usado correctamente las ramas de SVN?
Pues fijate tu que yo hasta que he estado en mi curro actual no. Ahí va el enlace que motiva este post: What Mother never told you about SVN Branching and Merging.

Como veis, la clave está en el procedimiento y no en el knowhow de los comandos.

sábado, octubre 17, 2009

File/dir comparion tools bajo linux (and merge)

Bajo windows siempre me gustó Beyond Compare, pero no es gratis. Ahora por lo visto también está disponible bajo linus.
Sin tardar mucho necesité comparar unos directorios, y probé meld. Me gustó, pero a la hora de operar hacía alguna cosa rara... Hace ya tiempo que la probé y no me acuerdo bien. Creo que era como que cuando comparabas directorio y modificabas alguno de los ficheros no se refrescaba bien la información en el arbol.

Posteriormente probé kdiff3, y me ha gustado mucho. De momento es la que uso para comparar directorios. Aunque no he logrado usarla para hacer merges. Bueno tengo que confesar que tenía mucha prisa y no le he dado mas intentos.
Total que recurrí para hacer los merges a la herramienta que tiene incorporaba netbeans. Os la recomiendo al 100%. Hoy por hoy es lo que usaré para hacer merges. Mas si cabe si como yo ahora mismo usais netbeans.

Bueno tendré que darle de nuevo otra probazón al kdiff3.

Si buscais en google por 'diff tools linus' o 'file comparison tools' podeis obtener mucha info. No he buscado en stackoverflow, pero tb. es buena fuente.
Acabo con una tabla comparativa de la wikipedia.

lunes, octubre 05, 2009

3 meses despues

Pues si, ya han pasado 3 meses desde que entré en Tuenti. Y con ellos mi primer hito, que era precisamente el durar 3 meses.

Hace poco leí, que realmente las decisiones aunque pensemos que las tomamos racionalmente en el fondo las hacen los sentimientos. De otra manera jamás seríamos capaces de decidir nada.
Y así fue. Bueno... la verdad es que en mi anterior empresa me lo estaban poniendo fácil por su situación económica y futuro incierto. Pero tirar 7 años por la borda sin ver un chavo.... pues cuesta. Que uno ya no es un chaval!
Pero los trenes pasan sólo una vez, y o los cojes o se pierden, y esto era una oportunidad.
Eso si, tenía claro que iba a ser mucho cambio.... y las dudas si vas a estar a la altura de las circunstacias, poniendo en la balanza el poder perder el curro sin ni siquiera tener el paro.
Pero... el mundo no está hecho para los cobardes.
Eso si, una vez que tomas la decisión se abre un huevo horizonte... y te alegras de tomarla.

Pues eso, decisión tomada y a una empresa donde la media de edad es de 26 años. Ahí a romper la media. A jugar en el equipo de los veteranos :p.

Tras estos 3 meses, puedo decir que no he estado a la altura de las espectativas que mi jefe esperaba de mi, pero que tampoco lo he hecho mal. Hemos aprovado. La nota la tendría que poner él ;) (pero con lo exigente que es...).
Ha sido duro. Pero sarna con gusto no pica, y lo que no te mata te hace mas fuerte.

La oficina está relamente bien, y te cuidan bastante. Pero se curra, y todo el mundo curra, lo que da un ambiente realmente productivo y con buen ambiente.

El entorno es totalmente LAMP. Entré sin ni tener ni flowers de PHP, pero vamos... que eso es lo de menos. Los lenguajes lenguajes son. Y cuando sabes hacer soft con varios, pues mas o menos sabes con todos.

Me han sorprendido mas otras cosas. Por ejemplo como se exprime svn; lo bien que está trac; como te tienes asegurar de que lo que haces está bien (bien probado, pruebas unitarias, ...), ya que lo que liberes va a ser usado por miles de usuarios.
Todo el procedimiento para hacer releases, hotfixes, bugfixes, ...
Vamos... mucho que absorver.

Conocer herramientas que desconocía: netbeans, firebug, firephp, xdebug, memecache, lighttp, kcachegrind, ...
Ir poniendome las pilas con mysql...
Ver cosillas internas que se tienen montadas.

A ver si cuando tenga un poco mas de tiempo puedo ir publicando alguna cosilla sobre PHP y las herramientas mencionadas. Pero de momento lo veo complicado por la falta de tiempo.

Otra de las cosas novedosas para mi, es el tener a un jefe que pilote mas que tu y mucho.

En este periodo tuvimos que hacer una release de mi equipo que nos llevó 3 tentativas. Y tras lograrlo siguió dando colezatos que me los comí yo con patatas. Eso ha sido lo mas duro. Fueron como dos semanas duras duras. Pero fue una release muy complicada. Ahí, para coger callo XD.

A partir de ahora y con el callo ya generado, a intentar se mas productivo (que no es lo mismo que currar mas) y a ver si podemos ir aportando mas que hasta la fecha...

Para acabar dejo unos links de un compañero que tb. ha publicado algo sobre su entrada a tuenti: [1][2][3].

Nota final: Me sigue molando mas python :p.

jueves, septiembre 17, 2009

Name That Code
Created by OnePlusYou - Free Online Dating

miércoles, agosto 05, 2009

Que facil es acostumbrarse al jamón ibérico

Hoy por fin recogí el finiquito de mi anterior empresa.
Fue muy agradable estar con un par de mis ex-compis (Pedro y Carlos). Una pena no ver a mas gente... pero entre el ERE temporal y las vacaciones....
La verdad... la última etapa formamos un grupeto muy bueno en las comidas. A ver si en septiembre nos podemos volver a juntar a echar unas cañas.
Para celebrar el ERE y la marcha tb. de Pedro, que hoy es su último día.

Pues estaba yo allí charlando con esta gente y alguno mas, y me fijé en los monitores TFT que teniamos de 17". Joder..... No llevo ni un mes currando con uno de 22" y ya me parecían una gena. De ahí lo del titulo del post. Casi que voy a pasar de ponerme un segundo monitor.... Porque si ya se acostumbro a caviar... jajaja.

Y ya que estamos con temas de 'laVida', voy a tocar otro. En noviembre del 2008 me largaron del proyecto en que estaba. Se quedaron con sólo un proveedor. Como yo era el único del mio...; a la puta calle. A pesar de ser una de las dos personas técnicamente mas importantes del proyecto (por no poner un orden entre las dos...). En mi lugar se quedó un junior, hay que joderse...

Pues bien... segundo recorte y del proveedor en exclusiva se queda una persona. Para nuestro divertimento, alias 'la heredera' (brown espeso para la pobre).

Pues bien... ahora le dan el proyecto a otro proveedor, el cual no tiene ni flowers del proyecto, y ya si me apuras, ni de python. Juas.
¿Adonde quiero ir? Que esta es la gestión del soft/proyectos que se hace en España por muchas empresas. La puta pela. La calidad? Que mas da.... Claro, al final los proyectos se van al garete.... No mi extraña.

¿Adivinais que empresa se ha puesto en contacto con 'la heredera'? Yo en su lugar no les haría ni puto caso. Si quieren algo, consultoría al canto a precio puta.

martes, julio 28, 2009

scalability

Como podeis ver últimamente no escribo na de ná. Eso si, en twitter o en greader estoy siempre más activo.

Aprovechando una charla de Dave Currie (Tuenti) sobre escalabilidad, aprovecho para soltar un par de enlaces mas.
Un post de alex sobre el tema; y una web, highscalability.

jueves, julio 09, 2009

Cambio laboral


Vaya! esto está que como muy tranquilo.
El motivo es que estoy de cambio laboral, y antes de él me he tomado unos días de asueto (que vienen genial para desintoxicar el coco y arrancar con fuerza).

Y supongo que lo seguirá estando por un tiempo... o al menos supongo no podré actualizar muy frecuentemente. Tengo que ponerme las pilas con bastantes cosas.

Por lo demas, con expectativas, pero también con inquietud. Supongo que se me exigirá bastante y hay que dar el callo. Hay 'level' por aqui, por lo que he podido ver... Se intentará no defraudar :p. Por otro lado, tengo el handicap del Inglés (idioma oficial de curro). Vamos... que lo estoy desoxidando a marchas forzadas... :pp

Y por de pronto mas nada... Decir que estoy en un proyecto interesante y en una empresa totalmete atípica para lo que es el mercado IT español; concepto de empresa americana a tope... (con sus pros y contras).

martes, junio 09, 2009

pyCitas

Tengo la impresión de que Java fue diseñado para hacer que fuera difícil escribir mal código, mientras que Python está diseñado para hacer que sea sencillo escribir buen código.


-- Magnus Lycka



A falta de un nombre mejor lo llamaré la paradoja Python: si una compañía decide escribir su software en un lenguaje poco utilizado comparativamente, serán capaces de contratar a mejores programadores, porque atraerán sólo a aquellos que se molestaron en aprenderlo…
Hasta ahora sólo unas pocas compañías han sido suficientemente inteligentes para darse cuenta de esto. Pero hay una especie de selección natural trabajando: son exactamente las mismas compañías en las que a los programadores les gustaría trabajar. Google, por ejemplo. Cuando ofertan puestos para programar en Java, también piden experiencia con Python.


-- Paul Graham



Vía eFerro de aquí.