Webcams a la muntanya

Webcams a la muntanya, amb vídeo timelapse.

Molt recomanable per saber el temps que fa a la muntanya i quina evolució ha fet els últims dies

Per exmple a la Vall de Núria

https://www.lookr.com/es/lookout/1260608835-Queralbs#action-play-month

Pipe entre servidors

Solució tar + ssh:

tar -cf - /path/to/backup/dir | ssh remotehost "cat - > backupfile.tar"


Solució cat + ssh:
cat local_script.sh | ssh -A usera@bastion ssh -A userb@privateserver "cat > remote_copy_of_local_script.sh; bash remote_copy_of_local_script.sh"

Solució cat + ssh amb RSA:

ssh root@example.com 'cat >> .ssh/authorized_keys' < .ssh/id_rsa.pub

Solució tar + compress + ssh:

tar czf - . | ssh servername "cd /path-to-dir && tar xzf -"


Solució netcat:

tar -cf - /path/to/backup/dir | ssh remotehost "cat - > backupfile.tar"

Més informació:

Java logs benchmark

Vist a https://blog.overops.com/the-logging-olympics-a-race-between-todays-top-5-logging-frameworks/

Conclusions:

  • Log4j és el més ràpid escrivint constants però el més lent fent toString().
  • Log4j2 de Apache és el més ràpid fent toString() o amb un Throwable i és un dels frameworks més recents i amb més opcions.
  • Logback és semblant amb log4j en quant a velocitat, però és molt pitjor escrivint constants.
  • SLF4J SL és el pitjor quan cal escriure un throwable. Només supera a Log4j quan cal escriure toString()
  • JUL, java.utils.logging, és la biblioteca estàndard de logs del Java. Té un bon rendiment quan cal escriure throwable i toString() però té molt mal rendiment amb les constants.


Java Logback benchmarck

Vist a https://blog.overops.com/how-to-instantly-improve-your-java-logging-with-7-logback-tweaks/

Per reduir la latència dels logs del Logbackper Java s’aconsella:

  1. En el pattern del log no utilitzar mai el className; i si pot ser només mostrar el Level i el Message.
  2. Utilitzar AsyncAppender amb queue-size>500, en comptes de fer servir FileAppender.
  3. Fins i tot ConsoleAppender és més ràpid que FileAppender.
  4. Per millorar el rendiment de FileAppender és pot utilitzar un SiftingAppender i desar en més d’un fitxer alhora.
  5. SocketAppender i FileAppender són igual de ràpids.

Algunes dades:

javac

En principi per compilar un programa Java és tan fàcil com:

javac ProgramaJava.java

Però què passa quan es vol compilar un programa sencer, amb biblioteques, package, … ?

Suposem que tens els JAR en un directori lib/ i que el JAVA està en el src/ i que el resultat es vol en un directori classes/. En aquest cas l’instrucció javac hauria de ser la següent:

javac -cp lib/*:classes -sourcepath src -d classes src/ProgramaJava.java

Netbeans 8.1 falla en Ubuntu

Si heu provat d’utilitzar Netbeans en Linux utilitzant el repositori normal d’Ubuntu (2018), notareu que falla a l’arrencar.

Això és degut a dos problemes:

  • Netbeans 8.1 només arrenca si teniu Java 8. No va ni amb Java 7 ni amb Java 9 o superior.
  • Netbeans 8.1 no arrenca si la biblioteca libequinox-osgi-java és 3.9.1-1. Sembla ser que arrencar amb una versió anterior

Jo no ho he aconseguit fer-lo funcionar des del repositori.

Sembla ser que és millor baixar-se’l de netbeans.org: https://download.netbeans.org/netbeans/8.2/final/

Més informació:

M’he comprat un nou portàtil i amb LINUX!

Feia molt temps que em queixava que no hi havia opcions de comprar portàtils Linux.

I de fet és veritat que no n’hi ha moltes opcions i menys de portàtils moderns i menys amb “proximitat” i menys a un preu raonable.

Doncs bé finalment he trobat un portàtil que ha complert amb totes les meves necessitats:

http://www.vantpc.es/producto/ultramoove-s

 

Finestres transparents en KD5

Gràfiques i diagrames amb JS

Aquesta és la llista de les biblioteques Javascript més potents del 2018 per a fer gràfiques i diagrames interactius. Vist a https://www.slant.co/topics/3890/~javascript-charting-libraries

Hall of Shame del Java

Què retorna el següent fragment de codi?


for(;;) {
try {
return 1;
} finally {
break;
}
}
return -1;

Retorna 1 o -1 ? La resposta és -1!!!

I aquest tros de codi?


while (true) {
try {
return;
} finally {
continue;
}
}

No retorna mai, es queda sempre en bucle!!!

I aquest tros de codi?


try {
if (1 == 1) throw new Exception("1");
} catch Exception(e) {
throw(e);
} finally {
return 1;
}

No generarà excepció i retornarà 1!!!

Aquestes i moltes altres coses passa amb Java.

Més informació