Tiens un visiteur
sur la page de gauche!



Pour atterrir sur cette page, il y a plusieurs possibilités:
- soit vous êtes mal latéralisé
- soit vous ne savez pas lire le code
- soit votre écran est à l'envers
- soit vous êtes curieux

Nous aimons penser que c'est la quatrième possibilité qui vous a poussé à cliquer, mais les trois autres nous vont aussi!



Comme on est sympa,
on vous donne accès directement
au reste du site en cliquant
CEREBRIS
Des cerveaux
qui ne se prennent pas
la tête.
histoire
10 années dans le monde du consulting ont conduit Laurent & Franck au même constat : les sociétés de service vendent de la matière grise, mais n'en produisent pas.

Leur ambition, remettre le cerveau au cœur du consulting.

Pour y parvenir, ils décident de créer une société où les curieux pourront satisfaire leur soif de connaissances et développer leurs savoirs. Parce que le savoir va au delà des mots, ils décident que tout élément de leur discours doit être prouvable.

"Pas de baratin, les cerveaux ne sont pas dupes."
Laurent Francineau



Diplômé d'une école d'ingénieur, génie de la programmation; seul informaticien capable de programmer un hydravion traversant littéralement des montagnes, Laurent débute sa carrière en tant qu'ingénieur informatique.
Frappé de plein fouet par le bug de l'an 2000, il disjoncte et change de métier. Véritable Alice aux pays des merveilles 2.0, il traverse le miroir et se rend compte qu'en réalité, sa vraie valeur ajoutée, réside dans la découverte et l'accompagnement de talents.
À 45 ans à l'âge ou certains se mettent à la tisane, au macramé et aux charentaises il rejoint Franck pour structurer et développer Cerebris.
Franck de Chastaing



Franck aime la nature, les grands espaces et l'aventure. Il a d'autres passe-temps moins avouables, mais pour en savoir plus, il faudra le questionner (lors d'un apéro par exemple).
Manager de formation (si si ça existe), Franck a choisi le C++ en LV2 et le Java en LV3. Cela explique sans doute son niveau d'anglais.
Une légende raconte qu'il est resté prisonnier durant 7 ans d'une grosse société de service. Il parait même que pour ne pas oublier ce qu'il a fuit, il s'est fait tatouer le business model de la dite entreprise dans le dos.
preuves
  • success heroes

    Cerebris dispose de Success Heroes, un outil innovant qui permet aux équipes de collaborer en réalisant des objectifs seuls ou à plusieurs. Toutes les contributions sont prises en comptes et valorisées. Que vous participiez à un projet de R&D où à une ré- ponse à appel d'offre, vous obtiendrez une récompense (points, titres, bonus...). Fini le labeur invisible!

  • brain games

    Véritables olympiades ludiques, les Brain Games sont des soirées organisées autour de jeux réputés pour les compétences qu'ils sollicitent. Fin stratège, bibliothèque vivante ou expert en calcul mental, chaque talent devra défendre sa place. Un classement annuel est établi et récompense les meilleurs!

  • hackathon

    Tous les 6 mois un projet soumis par les collaborateurs de CEREBRIS est choisi par vote et réalisé au cours d'un Hackathon géant. L'occasion rêvée de voir ce que valent vos dirigeants dans un contexte projet. Attention: ne laissez jamais Franck s'approcher trop près d'un bout de code. On vous aura prévenu!

  • miScellanewS letter

    Chaque mois, une newsletter anonyme est envoyée à l'attention des collaborateurs Cerebris. Elle contient des informations sur des domaines aussi variés que l'astronomie, l'actualité du jazz expérimental ou la cuisine péruvienne (rubriques non contractuelles!). La seule constante: éveiller la curiosité en moins de 7 minutes de lecture.

  • empan

    Nous invitons chaque mois nos collaborateurs à noter leur degré de satisfaction sur plusieurs critères. Rien de nouveau, si ce n'est que nous n'oublions pas de traiter les sujets potentiellement épineux! Pour les plus curieux, un excellent article paru dans la revue l'ELEPHANT n°13 vous expliquera le pourquoi du comment du nom de cette rubrique.

  • réseau de partage

    Nous avons détourné la fonction principale d'un outil pour en faire un formidable système de transmission de l'information à l'échelle de l'entreprise. Et comme nous adorons apprendre, nous consacrons du temps et de l'énergie à l'animer.

  • curioférenceS

    Cerebris a créé un cycle de conférences destiné aux curieux. Au menu, professeur en neurosciences, créateur de jeux vidéos où chercheur au CNRS. Les cerveaux risquent d'adorer!

Références
Libevent
C++
#include <time.h>

include <pthread.h>
include <event2/event.h>
define TIMEOUT_IN_SECONDS 50
void timer_loop_thread(void arg)
{
struct context p_context = (struct context )arg;
struct timeval tv;
int fd[2];

memset(&tv, 0, sizeof(struct timeval));
tv.tv_sec = TIMEOUT_IN_SECONDS;

// pipe creation for read and write file descriptor
pipe2(fd,O_NONBLOCK);
p_context->fd_read = fd[0];
p_context->fd_write = fd[1];
p_context->p_evbase = event_base_new();

// read_msg is the callback triggered on new event income
p_context->p_event = event_new(p_context->p_evbase, p_context->fd_read,
EV_READ|EV_PERSIST,read_msg,p_context);
event_add(p_context->p_event, 0);

// timer_callback is called when the timer is triggered
p_context->p_evtimer = evtimer_new(p_context->p_evbase, timer_callback, p_context);
evtimer_add(p_context->p_evtimer, &tv);

// event loop
event_base_dispatch(p_context->p_evbase);

pthread_exit(NULL);
}
Pour quoi faire ?
La libevent permet de gérer de manière asynchrone des events de plusieurs types.
Dans le cas présent, un timer est mis à jour. Il peut être remis à jour depuis un autre thread en utilisant le file descriptor write.
C'est l'utilisation du pipe qui permet de rester thread-safe.
std::sort
C++
// Custom comparator
struct FileDateComparator
{
bool operator() (const std::string &left, const std::string &right)
{
struct stat leftStats;
struct stat rightStats;
stat(left.c_str(), &leftStats);
stat(right.c_str(), &rightStats);
return leftStats.st_mtime > rightStats.st_mtime;
}
};

// Real sort on chunks files
FileDateComparator dateComparator;
std::sort(chunkFilesList.begin(), chunkFilesList.end(), dateComparator);
Pour quoi faire ?
Dans le cadre d'un produit de réception d'un flux vidéo live par satellite, nous avons transformé un script python de nettoyage de contenu en un service C++.
L'utilisation de la méthode sort de la bibliothèque standard algorithm et d'un comparateur personnalisé nous a permis d'optimiser les performances de la solution.
forEach
Java
public List<User> getMusicians() {
List<User> musicians = new ArrayList<>();
// Get the users list from each registration item
this.registrations.forEach((registration -> musicians.add(registration.getUser())));
return musicians;
}
Pour quoi faire ?
Dans le cadre d'une plateforme web musicale, nous avons utilisé les nouveautés de Java 8 (itérateurs forEach et lambda expressions) pour condenser le code tout en restant lisible.
Auto Test
TestComplete
VarA=array("Class","Text")
Varb=array("WebButton","Click Here")
Set obj=testObj.Find(VarA,VarB,10)
If obj.Exists then
obj.click
else
msgbox "No object found"
End if
Pour quoi faire ?
Dans le cadre d'un projet d'automatisation des tests d'un logiciel applicatif dans le domaine des équipements médicaux, nous avons mis en place différentes fonctions permettant de simuler différentes actions utilisateurs (saisie clavier, click, lecture de données, etc...)
L'automatisation a permis ainsi un gain de temps de 40% sur certaines phases et de pouvoir lancer des tests nocturnes.
actu
un cerveau averti
en (cer)veau deux
en voir plus sur twitter
Contact
En attendant que nos cerveaux nous permettent de communiquer par télépathie, nous vous proposons de nous contacter :

téléphone — 01 46 89 72 14
email —



Nous rencontrer :

60 rue Marcel Dassault
92100 Boulogne-Billancourt