Convertir vídeos a GIF animats

Ara tothom fa gifs animats dels programes que desenvolupa i els posa al repositori de GitHub. (sembla que això fa que això et converteix en un desenvolupador que “mola”) Com que jo també vull “molar”, he decidit fer un GIF animat del darrer programa que vaig fer en Android fent servir Nativescript. Capturar el vídeo d’Android El primer és aconseguir el vídeo. Per gravar la pantalla d’un dispositiu Android n’hi ha prou amb endollar el dispositiu a l’USB i executar (si tens l’SDK instal·lat):

Captures de pantalla de dispositius Android

He estat fent proves sobre com fer aplicacions per Android amb Nativescript. Nativescript és un framework de codi obert que serveix per desenvolupar aplicacions per Android i iOS. Les aplicacions en Nativescript es desenvolupen en Javascript o Typescript i suporta directament Angular i Vue.js (en un plugin de la comunitat). Tot i que el programa està en Javascript pot interactuar directament amb les API i els controls nadius del sistema operatiu.

Injecció de dependències amb Guice

La injecció de dependències és un patró de disseny en el que una classe rep els objectes que necessita ja creats en comptes de crear-los. Es basa en un concepte més genèric anomenat Inversió de Control La inversió de control diu, més o menys, que una classe no hauria de crear cap classe estàticament sinó que les hauria de rebre des de fora. Per tant les classes mai no han de crear els objectes que els hi fan falta (mai faran new)

Usar Retrofit2 per consumir serveis REST

Retrofit és una llibreria de Java que es fa servir per consumir serveis REST de qualsevol tipus: JSON, XML, Protobuff, etc… La idea de Retrofit és que no cal que ens preocupem de tot el que fa referència a les peticions per la xarxa, ni de construir els objectes, .. Només cal cridar els mètodes correctes i ell se n’encarregarà de la resta. A més se n’encarregarà de convertir les dades rebudes en objectes Java.

Instal·lació desatesa de Xubuntu per BIOS i EFI

La majoria de tutorials d’instal·lació desatesa de sistemes Ubuntu es basen en partir de la versió server. El problema és que al no estar basat en cap de les distribucions s’ha de descarregar els paquets durant la instal·lació i per tant tarda una estona … El que seria interessant seria poder modificar directament el LiveCD d’instal·lació de Xubuntu (per exemple) El problema és que les respostes no són exactament iguals que les d’Ubuntu Server perquè les versions amb LiveCD fan servir un instal·lador anomenat Ubiquity.

Fent servir Groovy, SparkJava i Angular

He creat un projecte per provar AngularJS amb Spark Java fent servir Groovy. Bàsicament es tracta d’una aplicació web per treure noms de persona per pantalla Iniciar el projecte El projecte està en Gradle i té una tasca per iniciar-lo: gradle runScript El servidor proporciona una interfície REST que permet llistar les persones entrades en el sistema i crear-ne de noves: Des de la consola es pot provar amb cUrl o Httpie.

Solució al repartidor de subvencions

He decidit provar com es pot resoldre el problema de repartir subvencions en Groovy i realment la quantitat de línies és molt menor que en Java … Faig servir una expressió regular inicial per separar el nom del nen, que no interessa per res, i la resta ho faig com els alumnes ho intenten fer tot (amb split) def regex = ~/^([^:]+): (.*)/ Després només cal separar els personatges entre ells a partir del guió (-):

Resolució El pare Noel al món ASCII

La majoria dels alumnes han optat per anar llegint les cadenes una a una i després cercar-ne les vegades que surt cada personatge amb indexOf. Això els ha portat al “problema” de que el Pare Noel també és un follet (i els ha costat molt descobrir que només calia restar…) Però hi ha una solució més elegant fent servir expressions regulars public class App { private static final String PARE_NOEL = "Pare Noel"; private static final String REN_NOM = "Ren"; private static final String FOLLET_NOM = "Follet"; private static final String PARE = "\\*<]:-DOo"; private static final String REN = ">:o\\)"; private static final String FOLLET = "[^\\*]<]:-D"; public static void main(String[] args) throws IOException { String linea; BufferedReader db = new BufferedReader( new InputStreamReader(App.

Repartidor de subvencions de Nadal

He preparat una nova tasca sobre lectura de fitxers pels alumnes de DAW M3 - Programació. Com sempre n’he fet dues versions, una a Google Docs i una al quadern d’exercicis de FP Una cosa que molta gent no sap és que el govern subvenciona als personatges nadalencs que porten regals. Fins fa poc tota la subvenció era rebuda pels tres reis mags però darrerament se l’han hagut de repartir amb el pare Noel.

Asseure els convidats en una taula en Groovy

He trobat un problema per Internet que es fa amb una recursivitat clàssica i l’he fet servir per aprendre Groovy. La idea és asseure els convidats al dinar de Nadal tenint en compte el grau de felicitat que tindran al estar asseguts els uns al costat dels altres. Per exemple si tenim una entrada com aquesta (el problema estava en anglès…): Alice would gain 54 happiness units by sitting next to Bob.