Carles Jove i Buxeda http://words.carlus.cat Desenvolupador Ruby i PHP Mon, 19 Oct 2015 15:00:47 +0000 en-US hourly 1 Error installing gem because openssl http://words.carlus.cat/error-installing-gem-because-openssl/ http://words.carlus.cat/error-installing-gem-because-openssl/#comments Mon, 19 Oct 2015 15:00:36 +0000 http://words.carlus.cat/?p=1057 I got trouble today installing some gems, because OpenSSL has been removed from OSX and TL;DR

Found a solution on this Github issue, which might apply to more cases where openssl is involved.

gem install eventmachine -v '1.0.3' -- --with-cppflags=-I/usr/local/opt/openssl/include

]]>
http://words.carlus.cat/error-installing-gem-because-openssl/feed/ 0
Talent without discipline http://words.carlus.cat/talent-without-discipline/ http://words.carlus.cat/talent-without-discipline/#comments Sat, 17 Oct 2015 22:11:45 +0000 http://words.carlus.cat/?p=1055 “Talent without discipline is like an octopus on roller skates. There’s plenty of movement, but you never know if it’s going to be forward, backwards, or sideways.”

― H. Jackson Brown Jr. 

]]>
http://words.carlus.cat/talent-without-discipline/feed/ 0
Hackathon Girona 2015 http://words.carlus.cat/hackathon-girona-2015/ http://words.carlus.cat/hackathon-girona-2015/#comments Sun, 29 Mar 2015 08:51:34 +0000 http://words.carlus.cat/?p=1037 Ahir vaig participar al Hackathon Girona. Era la primera vegada que participava en un esdeveniment d’aquest tipus, i em va fer il·lusió fer-ho a Girona, el meu nou lloc de residència, i amb un projecte molt interessant, Wallyjobs.

logo_wally_blanco

La proposta de projecte era una plataforma de recerca de feina que funcionès a partir de recomanacions i amistats comunes a Facebook. Per entendre’ns, el boca a boca de tota la vida traslladat a la xarxa:

La Maria té un taller de fusteria i necessita una ajudant per gestionar comandes: segurament entre els seus cercles d’amistats hi ha gent que busca feina, i ja sabem que la coneixença sempre ha estat un factor clau per trobar feina.

La jornada

La jornada de treball fou llarga. Per alguns començà ja el divendres, en la reunió de preparació, i per altres, com jo, fou el dissabte de 8h del matí fins quarts d’una de la matinada. Un munt d’hores que, curiosament, no se’m van fer gens llargues, ja que l’ambient era distès, teníem bona teca i beure (sortidor de cervesa inclòs!) i l’objectiu principal era passar-ho bé i fer alguna cosa entre totes.

La meva tasca

He de reconèixer que la teconologia escollida per desenvolupar el projecte no era santa de la meva devoció. Per l’aplicació web es va escollir Code Igniter, un framework de PHP amb una llarga trajectòria però també una mica desfassat. Si bé la darrera versió, la 3, inclou millores significatives com la incorporació de Tests, l’equip corresponent va decidir tirar pel dret. Això es va notar en el resultat final, en què alguns dels processos fonamentals estaven trencats. Però el meu paper en aquest equip fou minúscul, i tan sols al final de la jornada, per donar-hi un cop de mà.

La meva tasca principal fou construir una petita API REST per a ús de les apps iOS i Android, així com pel procès de recomanació de candidat. Novament, la tecnologia escollida tampoc hauria estat la que jo hauria preferit, però, en aquest cas, el microframework Slim de PHP va resultar ser una eina prou satisfactòria per desenvolupar-la, junt amb l’ORM PHP ActiveRecord, sense la qual hauríem mort havent d’escriure SQL a pèl.

L’aprenentatge

Vaig aprendre prou coses, i no totes necessàriament de tipus tècnic.

Per una banda, en Rubén González i l’Àlex Toro em van ensenynar a configurar un localhost local sense necessitat d’utilitzar tecnologies com MAMP. L’Àlex també m’ensenyà els bàsics per fer l’API amb Slim.

Una cosa que em va agradar aprendre, tot i que reconec que encara no acabo d’entendre del tot com funciona a causa de la meva total incomprensió de les matemàtiques, fou com fer un recurs que et llista les ofertes de feina en un radi de 25km. Els programadors que tenia al voltant van quedar flipats quan els vaig dir que no tenia ni puta idea de què merdes és un sinus i un cosinus o no sé quina puta merda. Les mates mai han estat el meu fort. Però bé, StackOverflow mediante, ho vaig fer.

Un altre aprenentatge, tot i que més aviat per la via de la confirmació, és la importància de les eines que utilitzem i, sobre tot, dels processos guiats per tests. Parlant amb companys vaig confirmar que, malauradament, el desenvolupament guiat per tests no té molta implantació a casa nostra, i que és un terreny en el que encara cal treballar molt.

Les sensacions

Va ser una jornada molt agradable, i no dubtaré a repetir un altre any. Això sí, intentaré no perdrem la jornada de preparació, i aviam si puc enxufar-hi una mica de Ruby i TDD ;-)

]]>
http://words.carlus.cat/hackathon-girona-2015/feed/ 0
L’àmbit de self a Ruby http://words.carlus.cat/lambit-de-self-a-ruby/ http://words.carlus.cat/lambit-de-self-a-ruby/#comments Tue, 03 Mar 2015 07:52:31 +0000 http://words.carlus.cat/?p=1027 Com a llenguatge de programació Orientat a Objectes (OO), Ruby té el concepte de self, que fa referència al propi objecte. És important tenir en compte que self fa referència a l’objecte, no a la classe, de manera que allò que representa és diferent en funció de si l’utilitzem en el context de la classe o d’una instància.

class WhatIsSelf
  def self.hello
    puts self.inspect
  end

  def hello
    puts self.inspect
  end
end

WhatIsSelf.hello
#=> WhatIsSelf

WhatIsSelf.new.hello
#=> #<WhatIsSelf:0x007fc40c122118>

I com podríem accedir a la referència a la classe, des d’una instància?

instance = WhatIsSelf.new
puts instance.class.hello

#=> WhatIsSelf

]]>
http://words.carlus.cat/lambit-de-self-a-ruby/feed/ 0
Cremant Llibres http://words.carlus.cat/cremant-llibres/ http://words.carlus.cat/cremant-llibres/#comments Sun, 01 Mar 2015 12:29:59 +0000 http://words.carlus.cat/?p=1015 El llibre és un objecte fetitxe, en la nostra cultura. En conseqüència, al llarg de la nostra vida n’acumulem quantitats ingents, perquè desfer-se d’un llibre és sovint una decisió difícil. Podria voler rellegir-lo algun dia. Potser en algun moment futur necessito consultar-hi tal informació. Em fa pena tirar un llibre. Era molt car, aquest llibre! Ja el llegiré algun dia. Sempre hi ha una bona excusa per no desfer-se d’un llibre.

Quantes vegades hem jutjat una persona per la quantitat de llibres que poseeix, o per quins llibres poseeix? Una casa sense llibres és estranya… Donem valor als llibres en tant que objectes, quan el seu únic valor està en els textos que contenen. En certa ocasió, per exemple, vaig veure una primera edició de La Société du spectacle que es venia per 1500€. El mateix text, en una edició actual, pot costar-ne 8€. Això és ridícul.

En japonès hi ha una paraula que defineix la pràctica de comprar llibres que mai arriben a ser llegits: tsundoku. Jo mateix he acumulat centenars de llibres durant anys. Alguns de llegits, d’altres que no. Els he traginat amunt i avall en cada un dels prop de 12 trasllats de residència que he fet en els darrers 13 anys. Qualsevol persona que hagi passat per una cosa així, sap com n’és de farragosa.

Però mai més.

He decidit començar a cremar els meus llibres. Abans de fer-ho, però, vaig fer vendes a 1€, per si algú en volia, també n’he regalat, i també he intentat donar-los a bibliotques. Al final del trajecte, segueixo amb centenars de llibres que ni vull ni necessito. He decidit no fer cap més esforç per recol·locar-los, encara que alguns d’ells siguin de molt bona qualitat, perquè això m’encadena a uns objectes que ja no vull tan sols perquè són objectes socialment sobrevalorats i perquè desfer-se’n d’una manera qualsevol implica una càrrega, fins i tot un judici, moral considerable. Cremant-los, em recordo a mi mateix que són simples objectes i que la cultura, el pensament o la literatura viuen més enllà. No és una renúncia a la literatura, és una renúncia a l’objecte.

Cremaré un llibre cada dia fins esgotar-los.

]]>
http://words.carlus.cat/cremant-llibres/feed/ 0
Tuitejant de nou, però amb condicions http://words.carlus.cat/tuitejant-de-nou-pero-amb-condicions/ http://words.carlus.cat/tuitejant-de-nou-pero-amb-condicions/#comments Tue, 17 Feb 2015 14:16:19 +0000 http://words.carlus.cat/?p=1006 Fa quatre mesos vaig decidir deixar de tuitejar. Va ser una bona decisió. Durant aquest temps he estat més relaxat al llarg del dia, més centrat en el que feia, he segregat menys pensaments estúpids (de veritat, de veritat), he llegit menys pensaments estúpids i els meus ulls han estat menys hores mirant una pantalla. He descobert altres formes d’estar al dia professionalment, com per exemple els grups de treball/discussió/opinió que es generen a Google Groups. Ha estat, en general, un període de reclusió i de posar molt esforç en certes àrees de la meua vida que necessitava reforçar.

Valoració: molt positiu.

No obstant, ara tinc ganes de tornar-hi una miqueta. Però no vull caure en les mateixes pràctiques que em van saturar, així que torno, però amb condicions.

Normes d’en Carlus per tornar a Twitter

No discussions
No cagar-me en tot lo que camina
No detalls de la vida familiar
No fotos dels meus fills
No Twitter first thing in the morning mentres estic cagant
No tuitejar per alliberar tensió (ex. Cagun la puta mare que va parir WordPress)
No Twitter com a pseudo email
No Twitter com a pseudo whatsapp

promocionar la meua feina (o la d’altres quan em sembli oportú)
fer xarxa professional
seguir gent/entitats interessants
a dir la meua opinió, però de manera que no em pugui comportar pena de presó
a promocionar el punk-rock
a converses borratxo amb en Manel Vidal o en Colomo

Màxim 10 tuits al dia

]]>
http://words.carlus.cat/tuitejant-de-nou-pero-amb-condicions/feed/ 0
Art at rubydoc http://words.carlus.cat/art-at-rubydoc/ http://words.carlus.cat/art-at-rubydoc/#comments Sat, 14 Feb 2015 11:14:18 +0000 http://words.carlus.cat/?p=1002 web_art

]]>
http://words.carlus.cat/art-at-rubydoc/feed/ 0
Programming is lots of fun http://words.carlus.cat/programming-is-lots-of-fun/ http://words.carlus.cat/programming-is-lots-of-fun/#comments Sat, 07 Feb 2015 21:14:38 +0000 http://words.carlus.cat/?p=999 programming_is_lots_of_fun

]]>
http://words.carlus.cat/programming-is-lots-of-fun/feed/ 0
Programming Sucks http://words.carlus.cat/programming-sucks/ http://words.carlus.cat/programming-sucks/#comments Thu, 29 Jan 2015 14:03:47 +0000 http://words.carlus.cat/?p=994 Just found this on the internets:

Every programmer occasionally, when nobody’s home, turns off the lights, pours a glass of scotch, puts on some light German electronica, and opens up a file on their computer. It’s a different file for every programmer. Sometimes they wrote it, sometimes they found it and knew they had to save it. They read over the lines, and weep at their beauty, then the tears turn bitter as they remember the rest of the files and the inevitable collapse of all that is good and true in the world.

Source: http://stilldrinking.org/programming-sucks

]]>
http://words.carlus.cat/programming-sucks/feed/ 0
Branching graphic history in Git http://words.carlus.cat/branching-graphic-history-in-git/ http://words.carlus.cat/branching-graphic-history-in-git/#comments Tue, 06 Jan 2015 22:09:27 +0000 http://words.carlus.cat/?p=990 I just learnt that having a graphic of your branch history in Git is pretty easy. You just need to add the --graph switch to the log command, as such:

git log --graph

I personally prefer the --oneline version. Here’s a screenshot of branch history of Collection+Json Serializer.

git_log_graph

]]>
http://words.carlus.cat/branching-graphic-history-in-git/feed/ 0