Error installing gem because openssl

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.

Hackathon Girona 2015

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 ;-)

Cremant Llibres

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.

La cursa d’obstacles, o com perdre un potencial usuari

Aquests dies estic buscant ofertes de feina que m’ofereixin millor sou, estabilitat de contracte i, a ser possible, en una empresa que tingui una cultura de programació similar a la meva. Vaig veure una oferta interessant a Infojobs que cobria les dues primeres necessitats: millor sou, estabilitat. Vaig intentar (sí, intentar) apuntar-m’hi, però al final vaig desisitir a causa de totes les coses que Infojobs em demanava fer abans de poder accedir a inscriure’m/respondre a l’orferta.

A qualsevol portal de feines de programació, un email per donar-se d’alta com usuari és suficient per poder accedir a les ofertes i respondre-les, però a Infojobs volen un munt d’informació teua: contacte, naixement, experiències laborals prèvies, estudis, etc. Terrible. Al final vaig optar per buscar l’empresa i escriure-lis directament.

Posar obstacles als usuaris que volen utilitzar el teu servei és una estratègia pèsima. Tot el paquet d’informació personal hauria de ser opcional, un plus, però no un requisit.

Vull fer Open Source, i encara no sé com (II)

Just ahir deia que voldria treballar en projectes Open Source, propis o aliens, però que encara no sé com. L’afirmació té part d’ironia, perquè saber-ne, en sé i, és més, ho faig. Però per algun(s) motiu(s) que no acabo de tenir clar(s), aquestes aportacions no sempre m’acaben d’omplir.

Generalment, la motivació per llançar un projecte ha sorgit d’una necessitat pròpia, i enlloc de fer una solució puntual de qualsevol manera he optat per realitzar una eina amb vocació de ser utilitzada per més gent amb la mateixa necessitat. Però, sovint, passada la necessitat passada la motivació. Quan es tracta de projectes aliens, generalment hi he arribat a partir de la necessitat d’un projecte en el que estiguès treballant, amb el mateix destí: passada la necessitat, morta la motivació (o morta la disposició). Però el que no mor són les ganes d’enrolar-me en algun projecte engrescador en el que treballar de manera sostinguda.

I potser és per una fantasia, la fantasia que un projecte a llarg plaç em pot omplir més que aportacions puntuals o projectes de curta vida. O potser perquè… ves a saber. Who cares, que diuen. La qüestió és que ara mateix em motiven els següents projectes:

  • Rails API: una versió light de Rails per a construir APIs.
  • Collection+JSON: un format d’hipermèdia per a APIs, que em sembla que pot esdevenir estàndard i pel qual encara hi ha poques eines a l’abast.
  • Active Model Serializers: serialitzadors per a Rails.
  • Kramdown: un convertor de markdown a diferents formats. M’interessa, particularment, el convertor a format de text obert (F)ODT.

No tinc ni el temps ni els recursos com per dedicar-me a tots ells, de manera que ara per ara estic hiper bloquejat en plan què faig. La paradoxa de voler fer tantes coses que no en fas cap per no decidir-te per quina començar. L’Open Source és com la vida, veges tu. Qui ho havia de dir!

Vull fer Open Source, i encara no sé com

Fa dies, més aviat setmanes, més aviat mesos, que tinc unes ganes enormes de col·laborar en projectes Open Source. Per mi, l’OS agrupa dues grans aspiracions vitals: la creativitat i la transformació social. Treballar en projectes OS em permet programar d’una manera diferent a com acostumo a fer-ho al dia, a resoldre problemes diferents, i això és creatiu; treballar en projectes OS em fa partícip d’una manera de crear tecnologia que redefineix les relacions socials de propietat i que genera un espiral de cooperació i treball comú com segurament no ha exisit mai abans. El problema, però, és que encara no sé com fer-ho.

A nivell individual, he desenvolupat alguns projectes que he publicat com a Open Source, com un generador de codi per a WordPress, un framework ultra minimal per webs sense base de dades però que volen rutes boniques i suport multilingüe, una mena de broma per omplir de text documents HTML per fer proves de maquetació, o un mixin de SASS per generar estructures de taules a partir de llistats de definició (en un intent de superar el gran problema de les taules a les pantalles petites). Al moment d’escriure aquest article també tinc a mig coure un projecte, específic per a Rails, per serialitzar dades seguint el format Collection+JSON. En la mesura del possible i de les meues capacitats, també he anat fent alguna contribució a projectes existents. I no obstant, encara no sé com fer-ho.

I arribats al tercer i últim paràgraf, ja no sé si és que no sé com fer-ho o si és que no estic satisfet amb l’impacte de la meva feina. I bé, segurament ja ho sé, ara.

Adéu 2.0

Fa massa temps que ho penso, així que avui he fet el pas. Fa dies que em sento estúpid quan agafo el mòbil i vaig passant parrafades i parrafades de text amunt i avall, esperant trobar-hi no sé què. Fa dies que sento la pressió del mòbil a la butxaca, urgint per sortir. Fa dies que veig que Twitter és un lloc on vomito coses que generalment no diria perquè o bé són massa estúpides per a ser dites en públic, o bé no interessen a ningú més a que a mi i els meus, o bé perquè tan sols omplen el món de més soroll. Fa dies que observo que, per mi, les xarxes sovint són un refugi pel tedi, però que alhora em prevenen d’afrontar el tedi. Fa dies que me n’adono que les xarxes socials ens serveixen més per enredar-nos en debats estèrils, parcials i farcits de malentesos que no per construir, entendre’ns o, el més important, resoldre (això tan sols es fa en persona, camarades). Fa dies que utilitzo totes aquestes xarxes pensant què putes merdes és això, què aporten d’interessant a la meua vida, i una i altra vegada arribo al buit; al buit.

Potser en algun moment ha tingut sentit o utilitat per mi estar present a les xarxes socials, però ja no. Fa un temps vaig decidir donar-me de baixa de Facebook. Avui ho faig d’Instagram i Twitter.

Em seguireu trobant aquí, on si hi escric ho faig amb una mica més d’atenció. Per la resta, els amics ja sabem on trobar-nos.

Salut :-)

Q&A about Collection+JSON

Note: The content in this post is not mine. It is just a collection of questions and answers from the Collection+JSON discussion group. I’ve been working with this hypermedia-type lately, and ran into many doubts. Reading through the disscussion group was time consuming, so I’ve gathered this as a future reference for myself and others. However, this should not stop you from doing your own research and spend some time reading the docs and the discussions.

General

How does a Collection+JSON response look like?

Isn’t this C+J thing very limited? It should do this, and that, and this other thing too…

I also had this feeling. Read this thread, please, to distinguish beetwen C+J concerns and applciation concerns.

PS: Read it.

Items / Data

What about nested data (i.e. model associations)?

Amudsen (edited): Cj was initially designed to not support embedded objects or deep graphs. However, there is at least one extension registered called inline Collections. If nesting within a representation is essential, Cj will not be a good fit for you w/o a specific extension.

Source here.

Templates

What if different templates for POST and PATCH are needed?

Amudsen (edited): The assumption in Cj is to use the template for both updates (PUT) and creates (POST). This is based on the idea that the data set written in both cases is the same. In cases where the update action does not match the create action details, the approach I suggest is to use a link in the item and points to a representation that has the needed template. There is a problem here in the that second representation looks like a “create” description. I hack around this by telling the client app that when following an “edit” link, you SHOULD use the PUT method. Again, this is convention, not spec.

A way around this assumption that I am making is to extend the template to add a method argument. But that’s an extension I’ve not registered and not heard a lot of request for yet.

I should also point out that at least one “templates collection” extension has been registered.

Source here.

What if a field needs options, as for the select, checkboxes or radio?

The C+J spec does not consider this, but a workaround (that you’ll need to build support for) is:

Source here.

Carta abierta a ABC

Leo con estupor, en la edición del 24 de junio de 2014, una noticia de página entera titulada “Unos padres denuncian que su hija fue agredida por llevar la bandera española”. El estupor me lo causa no el suceso que los padres denuncian, sinó el hecho que una agresión entre niñas merezca una página entera por el simple hecho que fue a raíz de una bandera española o, como sugiere el artículo, a raíz de la españolidad de la niña agredida.

padres_denuncian_abc

Por desgracia, las agresiones dentro de las aulas y en los patios de escuela son la norma (me refiero a agresiones entre niñas, claro), y siempre encuentran un motivo justificado en ojos de quien agrede: un día es por ser gorda, un día es por sacar buenas notas, un día es por hablar catalán, un día es por hablar catalán de Girona en lugar de catalán de València, otro día por ser vegetariana, otro día por ser del Madrid, el Barça o cualquier otro equipo, otro día por leer determinados cuentos… Es un sinfín. Cuando trabajaba como educador en el barrio del Raval de Barcelona, por ejemplo, se organizó la parda (hablo de dos bandos que se proferían insultos y agresiones a diario) a raíz de si eras más amiga de A que de B. Así de claro: una rivalidad entre dos niñas condujo a una lucha abierta en el patio de la escuela, en el casal, la plaza y dondequiera que se cruzaran. Hablo de niñas de 10 años, no de bandas callejeras. Y yo mismo, en mis años de estudiante de EGB, tomé partido en el bando de la casa y no en el del círculo. Y, también como mozo de EGB, fuí recurrentemente insultado por mis compañeros por hablar catalán, por sacar buenas notas cuando todos suspendían, por ser bajito, por ser del Barça.

Lo que le ha pasado a esta niña es triste. Lo sé porqué me pasó a mi, aunque mis padres prefirieron no cambiarme de escuela ni fueron a denunciarlo como un acto de agresión nacional. Sin embargo, lo más triste no lo han hecho sus compañeras de clase sinó el ABC, Convivencia Cívica Catalana y sus padres al elevar la agresión a problema nacional. Aquí, ahora, para ellos, para vosotros, lo que menos importa es lo que le ha pasado a esta niña (hablo de su dolor, de su sentirse agredida, de su alma, de su persona), y lo único que importa es la lectura política en clave de adultos. La niña ya no está. Y me pregunto si jamás ha estado, o que le hubiero pasado si en lugar de ser agredida por una bandera lo hubiera sido por su peso. Seguramente, como sucede a menudo, y como es la triste norma también, los padres hubieran cambiado de tema y el ABC hubiera buscado otro tema del que sacar taja.