Eduard Ereza Martínez
Localitzador de programari

L'hora d'emprendre un nou camí

23 de juliol del 2020

L’any 1999, quan sols tenia 13 anys, vaig començar a traduir diversos videojocs i aplicacions al català. Ho he continuat fent com a afició fins al dia d’avui, però m’he dedicat professionalment al desenvolupament d’aplicacions (primer web, en PHP i Java, i posteriorment per a Android). Dedicar-me a la programació m’ha permès veure la localització d’un punt de vista nou.

Actualment, em veig amb cor d’emprendre un nou camí ple de reptes: dedicar-me a la localització de programari i videojocs de manera professional. Ja fa temps que he participat en traduccions oficials: les dels videojocs To the Moon i Finding Paradise, les de diverses aplicacions (Weblate, Aegisub, Tachiyomi) i les de diversos llocs web (Weblate, itch.io i altres).

Gràcies a l’experiència que tinc en el desenvolupament d’aplicacions, conec perfectament les diferents problemàtiques que apareixen en localitzar programari: la importància del context per als localitzadors, la pluralització, les variables, etcètera. També, en el cas concret de les aplicacions per a mòbils, l’adaptació a múltiples dispositius (i per tant, la llargada de les cadenes de text i la importància de fer proves).

Ja veurem si aquest camí em duu a nous horitzons, però penso que és la decisió correcta. Espero que ens vegem en futures traduccions!

Adéu-siau, WordPress!

29 d'octubre del 2018

Feia molt de temps que volia canviar el programari del lloc web, però mai en trobava el moment. Aquesta setmana m’hi he posat, i per fi m’he desempallegat del WordPress.

Quan vaig crear aquest lloc web l’any 2008 (tot i que llavors era un blog personal i prou), WordPress ja es perfilava com el programari de blogs per excel·lència. Jo veia de fer servir Serendipity, i WordPress semblava força més avançat, de manera que el vaig triar.

Durant els primers anys, no vaig tenir gaires problemes. Però els darrers anys s’havia convertit en una font de problemes constants: les actualitzacions de seguretat eren constants, els temes també s’actualitzaven constantment, i com que el blog tenia definit un “child theme” del tema, quan canviava alguna cosa del tema principal, l’aspecte del web es trencava.

Per tant, com que en actualitzar sempre calia fer manteniment per reparar petits desperfectes visuals, procurava de fer-ho poc sovint. I això va implicar que algú va fer servir un dels forats de seguretat del WordPress per entrar al servidor i col·locar-hi uns scripts maliciosos. Per sort, el meu proveïdor de serveis es va adonar que el meu servidor estava fent atacs de denegació de servei i ho vaig poder solucionar sense que hi hagués cap terrabastall. A partir d’aleshores, he actualitzat sempre que ha aparegut una nova actualització, amb la corresponent pèrdua de temps.

Però això s’ha acabat. He decidit que per evitar tots aquests problemes, ara el lloc serà format únicament per pàgines estàtiques. D’aquesta manera, ningú no podrà aprofitar cap forat de seguretat del sistema de blogs.

Per a aquesta finalitat, he fet servir un dels generadors de llocs web estàtics més famosos, el Jekyll. La veritat és que n’estic molt content, i m’aporta una llibertat que WordPress no m’aportava, ja que, si m’interessa, puc modificar qualsevol racó de codi de les plantilles.

Així doncs, ara aquest lloc és purament estàtic… I de passada, amb un redisseny una mica més modern!

Més pals a les rodes: L'Àrea Metropolitana bloqueja el servidor de Proper bus Barcelona!

20 d'abril del 2015

Actualització (20/04/2015 09:50): El departament d’informàtica de Cetramsa ha contactat amb mi i m’ha comentat que el servidor va ser bloquejat automàticament dissabte per un alta quantitat de peticions. No obstant, analitzant l’historial del servidor no veig cap pic de peticions dissabte. El bloqueig segueix actiu, però l’eliminaran.

Monitorització de la crida ”properes arribades”: el pic s’origina de la no-resposta del servidor de l’AMB. Torna a la normalitat després de canviar a Tor:

Ahir la meva app Proper bus Barcelona va començar a informar que els servidors de l’AMB (Àrea Metropolitana de Barcelona) estaven caiguts, i que s’estava usant el servidor alternatiu de TMB. En un primer moment no em vaig preocupar en absolut ja que això tendeix a passar alguns caps de setmana: el servidor de l’AMB deixa de funcionar i ningú el reinicia fins dilluns al matí (suposo que demanar que una persona estigui de guàrdia per a casos així és massa costós per a l’administració…). Però aquest matí el servei de monitorització de Monitis ha començat a informar que els serveis donaven un error. Quan he entrat al servidor per veure què estava passant, he descobert que el host “www.ambmobilitat.cat” no responia a res. Hi havia un error al meu codi que resultava en un error intern del servidor, el qual he arreglat en 5 minuts, però la causa arrel era que els servidors de l’AMB estaven caiguts. Res gaire alarmant: com ja he dit, sol passar més freqüentment del que hauria de passar.

No obstant, el que m’ha mosquejat ha estat que l’app oficial “AMB Temps bus” i el lloc web estaven funcionant i rebien dades en temps real correctament. Així que he decidit comprovar si era un problema del meu servidor.

M’he trobat amb el següent:

  • Puc comunicar-me amb www.ambmobilitat.cat des del meu propi ordinador personal sense cap mena de problema:
ereza@sylvarant:~$ wget http://www.ambmobilitat.cat/Principales/Inicio.aspx
--2015-04-19 13:47:53-- http://www.ambmobilitat.cat/Principales/Inicio.aspx
S'està resolent www.ambmobilitat.cat (www.ambmobilitat.cat)... 194.30.12.199
S'està connectant a www.ambmobilitat.cat (www.ambmobilitat.cat)|194.30.12.199|:80...connectat.
HTTP: s'ha enviat la petició, s'està esperant una resposta...200 OK
Mida: 145314 (142K) [text/html]
S'està desant a: «Inicio.aspx»

100%[==========================>] 145.314 613K/s en 0,2s

2015-04-19 13:48:02 (613 KB/s) - s'ha desat «Inicio.aspx» [145314/145314]
  • Un servidor a la mateixa subxarxa que el servidor de Proper bus Barcelona tampoc té cap problema:
root@brinstar:~#  wget http://www.ambmobilitat.cat/Principales/Inicio.aspx
--2015-04-19 13:50:37--  http://www.ambmobilitat.cat/Principales/Inicio.aspx
Resolving www.ambmobilitat.cat (www.ambmobilitat.cat)... 194.30.12.199
Connecting to www.ambmobilitat.cat (www.ambmobilitat.cat)|194.30.12.199|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 145314 (142K) [text/html]
Saving to: `Inicio.aspx'

100%[==========================>] 145,314      391K/s   in 0.4s    

2015-04-19 13:50:39 (391 KB/s) - `Inicio.aspx' saved [145314/145314]
  • El servidor de Proper bus Barcelona no pot contactar amb el servidor de l'AMB:
root@crateria:~# wget http://www.ambmobilitat.cat/Principales/Inicio.aspx
--2015-04-19 13:50:40--  http://www.ambmobilitat.cat/Principales/Inicio.aspx
Resolving www.ambmobilitat.cat (www.ambmobilitat.cat)... 194.30.12.199
Connecting to www.ambmobilitat.cat (www.ambmobilitat.cat)|194.30.12.199|:80... failed: Connection timed out.

Això sembla indicar que el meu servidor ha estat bloquejat per adreça IP. Aquí hi ha un diagrama per fer-ho entenedor per a tothom:

Vull creure que això és el resultat d’un bloqueig automàtic i no d’un bloqueig manual. No obstant, els incidents passats em diuen que bé podria ser un bloqueig manual. Intentaré contactar amb l’Àrea Metropolitana per preguntar-los què passa.

Mentrestant, per no deixar sense servei els usuaris, he configurat els meus scripts perquè utilitzin Tor (m’he copiat la idea d’en Roc Boronat, que ja ho va fer per a la seva app Vicing). Fent això puc saltar-me el bloqueig, i l’adreça IP variarà a cada petició, de manera que és difícil que puguin tornar a bloquejar-me. Això té un inconvenient: la connexió serà una mica més lenta, per culpa de les capes addicionals entre el meu servidor i el servidor de l’AMB, però per ara servirà (espero que aguanti el trànsit del dilluns al matí correctament). Els scripts que obtenen dades estàtiques encara no utilitzen Tor, però no són crítics (les dades antigues seguiran estant disponibles). Un cop més, deixo un petit diagrama:

Dit això, m’agradaria preguntar-li a l’Àrea Metropolitana, a l’Ajuntament de Barcelona i a qui sigui que correspongui: Es aquest l’“open data” que promocioneu? Com pot algú crear un producte (comercial o no), existint la possibilitat de perdre accés a les dades de manera sobtada i sense avís? Si es tracta d’un bloqueig manual, per què les empreses públiques tenen tanta por d’una app feta per algú en el seu temps lliure? I per què els servidors cauen els diumenges? Què més he de fer perquè la meva app deixi de tenir problemes?

També m’agradaria recordar que segueixo esperant que algú de CETRAMSA contacti amb mi per accedir a les dades de manera oficial. I ja ha passat un any i mig des que em van dir que ho farien. Sé que hi ha hagut alguns esforços per obrir algunes de les dades, però ningú m’ha contactat mai per avisar-me de canvis o informant-me que s’han obert dades. No obstant, sí que han tingut temps per afegir “Proper BUS” (sic) a la llista d’usuaris de dades “obertes”.

Proper bus Barcelona: Sense rastre de les dades

22 de desembre del 2013

Avui fa exactament dos mesos que em vaig reunir amb CETRAMSA pel cas Proper bus Barcelona, ja que m’havien enviat un burofax amenaçant perquè retirés l’aplicació. La notícia va córrer per Twitter i va aparèixer en algun diari, i van decidir intervenir-hi, així que em van convocar a una reunió urgent per parlar-ne. En aquella reunió, se’m va dir que se’m donaria ràpidament accés a les dades de manera oficial, ja que l’Ajuntament està compromès amb les dades obertes i li sembla interessant obrir-les. Pel que es va parlar, semblava que tot seria molt ràpid, aquell mateix dia em van demanar que tornés a publicar l’aplicació i em van dir que en els següents dies em donarien accés a les dades perquè no em calgués extreure-les simulant peticions d’un navegador a la seva web.

Des d’aleshores, la meva comunicació amb CETRAMSA ha estat bàsicament correus recordatoris, i sempre m’han dit que cal esperar que l’Àrea Metropolitana ho tingui enllestit. Tinc feedback de l’Ajuntament de Barcelona (del qual, repeteixo un cop més, mai he tingut cap queixa en aquest afer, ja que s’ha mostrat sempre comprensiu) indicant-me que estan preparant les dades, però fins avui, ningú ha estat capaç de donar-me cap data.

Doncs bé, aquesta setmana CETRAMSA ha publicat una nova versió de l’aplicació AMBtempsbus, molt millorada respecte de l’anterior, ja que ara també inclou mapa, cerca de parades i recorreguts, com ja fa la meva des de fa mesos. I sorpresa, he investigat una mica i extreuen les dades d’Internet, d’una URL pública, i sense contrasenya! Les mateixes dades que a mi no se m’han cedit perquè les estan preparant.

Vull pensar que no hi ha mala fe per part de CETRAMSA i que tot es tracta d’un conflicte burocràtic, però d’altra banda, si les dades ja estan publicades a internet, per què no se’m dóna directament l’adreça i ja està? L’Ajuntament està interessat en obrir les dades, però les empreses concessionàries potser no tant…

Localització del nom de l'aplicació en aplicacions que utilitzen Android Runtime per a BlackBerry

26 d'octubre del 2013

Avui explicaré un petit truc que he fet servir per localitzar el nom de les meves aplicacions Android al menú del sistema de BlackBerry. No he trobat documentació d’aquest tema a Google, així que exposaré la meva solució.

Quan vaig començar a portar algunes de les meves aplicacions a BlackBerry la primera cosa que vaig observar va ser que el nom de l’aplicació no es podia localitzar. Òbviament, dins del codi d’Android si que es pot, però el nom que es mostra al menú de la BlackBerry (almenys a la PlayBook) és sempre el nom per defecte (en anglès). Si la teva aplicació té un nom propi això no és un problema, però quan el nom de l’aplicació és traduïble, queda una mica estrany.

Així que vaig explorar una mica. Vaig cercar per fòrums i vaig trobar algú que parlava de fitxers “.bbr” (va ser fa temps i ja no conservo l’enllaç). Vaig seguir buscant i vaig acabar trobant part d’una documentació que algú va publicar a PasteBin (potser part de la documentació de BlackBerry o QNX? No ho sé!). S’hi descriuen els paràmetres que es poden especificar al fitxer MANIFEST.MF, el qual identifica i descriu la teva aplicació BlackBerry.

Així que després d’algunes proves (i mirant el codi descompilat de les eines de BlackBerry per a Android), vaig descobrir que només calia especificar un paràmetre amb els idiomes suportats i incloure’l en el fitxer del manifest, així que això vaig fer (explicaré el procés més endavant).

Però després d’aconseguir compilar-lo en el fitxer BAR, el sistema es queixava que no existien els fitxers MANIFEST_ca.bbr, MANIFEST_en.bbr o MANIFEST_es.bbr. Vaig intentar que els reconegués l’Eclipse, però no ho vaig aconseguir. Vaig intentar afegir-los a mà al fitxer BAR, però òbviament aleshores es queixava que no estava correctament signat.

Així que vaig trobar una alternativa. És una mica “cutre”, però funciona: executar un shell script que injecti els fitxers .bbr en els fitxers temporals creats durant el procés de construcció del BAR (un directori a /tmp/apk2bar[…]/).

Així que vaig a explicar els passos necessaris.

1. Crea un fitxer MANIFEST.MF dins del teu projecte, al següent camí: assets/blackberry/MANIFEST.MF, amb almenys el següent codi:

Package-Locale: [els teus codis d'idioma, separats per comes, per exemple: en,es,ca]

2. Assegura’t que el teu manifest es combina amb el que es genera automàticament: fes clic dret al teu projecte a l’Eclipse, selecciona Properties, llavors BlackBerry, i defineix “Custom BAR manifest” com a “Add custom values (merge)”. Desa els canvis.

3. Crea un directori amb tots els teus fitxers .bbr i aquest script (add_localization.sh). Cada nom de fitxer .bbr ha de ser “MANIFEST_[codi d’idioma].bbr”, i ha de contenir els següents paràmetres:

Entry-Point-Localization: [el nom per defecte de la teva app]
Entry-Point-Name: [el nom localitzat de la teva app]

Per exemple, en el meu cas, MANIFEST_ca.bbr tindria:

Entry-Point-Localization: Next bus Barcelona
Entry-Point-Name: Proper bus Barcelona

4. Quan estiguis llest per construir el teu fitxer BAR, simplement executa l’script add_localization.sh. Quan comenci l’execució, començarà a comprovar que el directori apk2bar sigui creat, i llavors hi copiarà els fitxers .bbr.

5. Construeix el fitxer BAR. Si tot ha anat bé, l’script hauria de treure per pantalla “Files copied into temporary directory!”. El teu fitxer BAR hauria de contenir els fitxers .bbr.

Tingues en compte que aquest script no verifica si s’han produït errors, i pot tenir problemes de concurrència, així que hauries de comprovar sempre que el fitxer BAR generat tingui tots els fitxers .bbr inclosos.

Ara ja pots executar la teva aplicació i es mostrarà el nom correcte segons l’idioma del sistema!

Entrades 1-5 de 23 | Entrades més antigues »