Bonne et heureuse année 2011 à tous

Cette année 2010 est passée à une vitesse telle que je n’ai pas testé grand chose…

Néanmoins dans mes nouvelles résolutions pour 2011 :

  • C++0X
  • Go (Google)
  • Ruby (Rails 3)
  • Python 3
  • Java (GWT 2)

Meilleurs vœux 2011 !!!

C++ GoogleTest > 1.4.0 : undefined reference to « pthread_getspecific » etc…

Si comme moi vous utilisez la librairie C++ Googletest, et que vous compilez vous-même cette librairie, sachez que sous linux (peut-être unix/posix aussi), il faut ajouter la librairie pthread (-lpthread).

J’utilisais la version 1.4.0 qui n’en avait pas besoin, mais depuis un svn update il y a quelques heures, j’ai du ajouter pthread.

Platform: Linux
scons: done reading SConscript files.
scons: Building targets ...
Copy("bin/test/README", "README")
g++ -o bin/test/fpm-test test/main.o src/ratp/fpmanager/fp_helper.o src/external/googletest/src/gtest.o src/external/googletest/src/gtest-death-test.o src/external/googletest/src/gtest-filepath.o src/external/googletest/src/gtest-port.o src/external/googletest/src/gtest-printers.o src/external/googletest/src/gtest-test-part.o src/external/googletest/src/gtest-typed-test.o
src/external/googletest/src/gtest.o: In function `testing::internal::ThreadLocal<testing::TestPartResultReporterInterface*>::GetOrCreateValue() const':
/home/christian/workspace/fpmanager/src/external/googletest/include/gtest/internal/gtest-port.h:1300: undefined reference to `pthread_getspecific'
...

Avec Scons on peut ajouter quelquechose dans ce style :

if platform == 'linux':
	env.Append(LIBS = 'pthread')

Ça évite de chercher presqu’une heure, une anomalie dans son programme de test !!!

;-)

Première application en GO, un client NetSoul

Cela devient un classique pour moi ; appréhender un langage de programmation se concrétise souvent par l’écriture d’un client NetSoul. L’écriture d’un client NetSoul, nécessite de toucher aux sockets (IO), à la crypto, traitement de chaînes de caractères, gestion des exceptions et erreurs puis parfois aux évènements/notifications/signaux, processus concurrents (Lock/Unlock, Thread) etc… De quoi avoir un avis exhaustif sur le langage de manière assez large.

Globalement le langage GO se rapproche beaucoup des langages de scripting récents, mais le langage est bien dans la famille des langages compilés. La prise en main est assez rapide si l’on maîtrise déjà des langages tels que C/C++, Ruby, Python… Sans connaissance particulière en programmation c’est possible de commencer par le langage GO, mais je fais parti de ceux qui pense que la programmation s’apprend avec le « C« .

Exemple d’un client NetSoul écrit en GO

GOSOUL NetSoul client

GOSOUL NetSoul client, par Christian KAKESA