Retour sur le 1er Startup Weekend de Bourges #SWBOURGES #1

Depuis début 2016, nous commencions à entendre parler d’un 1er Startup Weekend organisé à Bourges, info confirmée quelques semaines plus tard par https://twitter.com/emlecomte de la CCI du Cher – La date était fixée, du 22 au 24 Avril 2016

affiche-startupweekend-bourgesLe concept Startup Weekend, nous en avions entendu parler, mais nous n’y avions jamais participé. Pour Boréal, pas question de manquer cet événement même après une bonne semaine de travail, c’est décidé, on prend des billets pour toute l’équipe.

Entre temps, Romain a également été sollicité pour faire partie de l’équipe de mentors ; la participation de Boréal serait donc doublement enrichissante.

Boréal Business parmi les mentors du 1er Startup week end de Bourges

Retour sur les 54 heures du 1er Startup Weekend à Bourges et dans le Cher

Le vendredi en début de soirée, nous sommes biens accueillis par l’équipe organisatrice de la CCI (merci à eux : http://www.cher.cci.fr/)

On découvre les salles de l’INSA, de superbes locaux qui joueront un grand rôle dans la réussite de cet événement : salle de rencontre/restauration, amphi, immense salle de travail en open space

On commence à faire quelques rencontres autour d’une pizza de bienvenue, on croise des têtes connues, et plein de nouvelles !

Lancement officiel du weekend dans l’amphi avec https://twitter.com/LilyGros – Facilitatrice de l’événement qui nous détaille le concept, les valeurs, les rôles de chacun. Elle détend l’atmosphère et insuffle la dynamique 😉

Après quelques conseils avisés, chaque participant va pouvoir pitcher son idée : 30 pour secondes pour présenter le concept et accrocher l’auditoire. Sans le savoir, une grande partie de la performance du weekend se joue ici : les 8 ou 9 meilleurs pitcheurs seront retenus après une séance de récolte de gommettes à travers l’amphi pour former une équipe –> Un bon pitch sur une idée fun et innovante = une équipe qui se constitue rapidement avec des participants sur-motivés.

Rapidement les équipes se forment, certains sont venus en équipe et restent ensemble, d’autres membres viennent s’y greffer ; d’autres équipes se constituent from scratch. L’équipe de Boréal se scinde, chacun va rejoindre des projets différents.

Au boulot pour innover !

Ensuite tout s’enchaine assez vite, les équipes investissent le grand open space de travail et découvrent les membres et le matériel du BourgesLab.fr qui jouera un rôle déterminant sur l’ambiance et l’intérêt de l’événement, grâce à la précieuse aide qu’ils apporteront à toutes les équipes : avec leurs imprimantes 3D ils transforment les idées en prototypes !

Certains vont travailler tard dès le Vendredi pour affiner leur concept et organiser l’équipe malgré les conseils sur le repos distillés par @LilyGros … Rendez-vous le lendemain matin !

Le Samedi est certainement la journée la plus intense : on apprend ou on révise beaucoup de concepts et d’outils sur le monde des Start-Up puis chaque équipe les met en application directement.

Que l’on soit un professionnel expérimenté, un retraité dynamique ou un étudiant, il est toujours bon d’entendre que les expériences et le chemin de l’innovation sont ponctués d’échecs –> Des étapes normales dans la vie d’un entrepreneur, pour mieux rebondir et mieux recommencer.

Le Samedi après-midi tout le monde se lâche, les porteurs de projets affinent leur stratégie, les marketeurs bossent leur positionnement, les designers planchent sur leurs logos/maquettes et les développeurs foncent pour arriver à sortir un prototype fonctionnel. On voit vite les équipes qui s’organisent bien en répartissant les rôles et celles qui tâtonnent un peu plus : sachant qu’un travail bien préparé est déjà à moitié terminé, cela à toute son importance pour les résultats finaux.

Les mentors essaient de jouer leur rôle à fond en venant challenger chacune des équipes à tour de rôle, histoire de retrancher les porteurs de projets dans les cordes pour voir si le concept est viable et innovant.

La journée passe très vite, les projets avancent, certains travailleront encore une bonne partie de la nuit du Samedi au Dimanche, notamment les développeurs qui mettent un point d’honneur dans leur combat contre les machines 😉

Dimanche, dernière ligne droite avant les pitchs et les résultats

Après une nuit plus ou moins longue arrive le Dimanche, jour de verdict. C’est la course : tout le monde sait qu’il devrait être temps de bosser son pitch, réviser ses accroches, simplifier ses slides et clarifier ses explications pour accrocher le jury … mais on veut pouvoir montrer quelque chose de fonctionnel, prouver que le concept est réalisable avec un prototype de site web, d’appli ou d’interphone connecté. Du bon stress pour donner le meilleur de soi.

Finalement on y arrive, les pitchs finaux dans l’amphi … une belle expérience au cours de laquelle on verra 3 équipes prendre la tête du classement. Du LiveTweet et du Périscope dans tous les sens pour ponctuer l’expérience numérique.

A notre avis, personne ne regrette le temps passé à bosser pour le fun pendant ce long week end, ponctué de rencontres humaines qui valent le coup.

On peut clairement dire que ce 1er #SWBOURGES a posé les bases pour fédérer une communauté autour des StartUps et du numérique à Bourges et dans le Cher. Merci à la CCI pour l’organisation, Laurent BRIERE pour les photos/vidéos, les partenaires et tous les participants.

Quand à la suite et aux projets des 3 vainqueurs, nous allons en reparler très vite, restez connectés !

Partenaires du 1er Startup week end de Bourges

Découvrez également l’article de notre réseau Sphère Digitale à propos du 1er #SWBOURGES :

Sphère Digitale était présent lors du 1er Startup Weekend de Bourges

 

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Bookmark and Share

Locky virus : recover your encrypted files without paying

Un post un petit peu spécial : un de nos clients a été touché par le virus Locky ; virus qui chiffre la plupart des fichiers, et réclame une rançon pour obtenir la clef de déchiffrement, bref un truc bien sympa.

Nous avons pu récupérer la plupart des fichiers en utilisant cette technique :
Voici la méthode que nous avons utilisée, sans garantie.

  • Éteignez immédiatement l’ordinateur. Dans notre cas, le poste a été coupé environ 2h après l’infection
  • Branchez le disque compromis sur une machine Linux (Debian Jessie dans notre cas)
  • Utilisez l’utilitaire photorec (inclus dans le package testdisk, dispo sur le repo debian)
  • Selectionnez votre disque NTFS (probablement /dev/sdb)
  • Selectionnez la partition de données
  • Sélectionne le type de système de fichier : Other (FAT/NTFS/ …)
  • Sélectionnez « Extract file from whole partition »

Cela prend un long moment (environ 8h pour 130 Go de données). Les noms des fichiers sont partiellement perdus pendant la copie.

Il semble que le virus créé un nouveau fichier crypté, et supprime l’original, seule possibilité pour traiter les gros fichiers sans avoir à les charger dans la ram. Les fichiers originaux peuvent être récupérables via une lecture directe bloc à bloc du disque.


English version :

We’ve managed to recover the major part of the encrypted files for a client:

  • Shutdown the infected computer as soon as possible. (2h after infection in our example)
  • Plug the harddrive on a *nix system (for us Debian Jessie did the job)
  • Use photorec utility (included in testdisk package, at least on the debian repo)
  • Select your ntfs drive (probably /dev/sdb)
  • Select your data partition
  • Select the FS type : Other (FAT/NTFS/ …)
  • Use « Extract file from whole partition »

This is a very long process (on my system, it took aproximativly 8 hours for 130 GB) Filenames are lost in the process 🙁

The virus may creates a new encrypted file, and delete the original ; the only solution for big files without loading the whole file in memory in my opinion. So the old file may be recoverable with a direct block read.

Hope this could help someone

Bookmark and Share

Mood : la nouvelle application d’humeur pour iPhone et Android

mood

L’application Mood vous permet de partager simplement votre humeur avec vos contacts aux travers d’émoticônes. Vous pourrez aussi envoyer des SMS ou appeler un contact directement à partir de l’application. C’est simple et gratuit 🙂

iphone6_moodLe principe de l’application :

Le principe est simple : l’idée que l’équipe de Boreal Business avait pour cette application mobile, était de concevoir une application qui permettait de partager votre humeur du moment à vos contacts inscrits sur Mood. L’autre point important à respecter pour le développement (ça c’était juste pour relever un peu le défi 😉 ), était de concevoir une application sans la moindre chaîne de texte. L’application est donc basée uniquement sur des pictos et des émoticônes qui permettent de partager votre humeur du moment à vos contacts.

Le concept du vendredi libre :

Les vendredis libres consistent à développer une application dans la journée. Un speed-run de projet en quelque sorte. Tel était le défi pour le développement de Mood. Les développeurs de Boreal Business ce sont donc mis à leurs claviers/NetBeans/cafés le vendredi matin et les ont lâchés une fois l’application terminée. L’équipe de Boreal Business avait bien évidemment pensé au concept de l’application avant cette journée : une manière simple d’envoyer un message ultra-court à ses contacts.

La matinée a été consacrée au développement des webservices : nous avons fait dans le simple et efficace en utilisant PHP / MySQL / JSON via de simples appels HTTP. Nous avons tout de même pris le temps d’ajouter une couche de chiffrage sur nos webservices, quelques informations personnelles (le numéro de mobile) transitant par le réseau. Dans le même temps, nous avons travaillé sur les maquettes : un proto-storyboard griffonné sur un carnet, quelques ébauches sur Illus pour les couleurs, rien de plus ! Nous avons également déposé le nom de domaine (au Belize, juste pour la classe), créé l’hosting sur nos serveurs et installé un certificat SSL au passage. Une petite page web https://mood.bz/ avec le lien de téléchargement est mise en place également.

L’après midi a débuté avec le gros morceau : l’appli en elle même, avec en parallèle les versions iOS et Android. L’intégration des webservices a été, de manière assez surprenante, extrêmement rapide, quelques difficultés sur le chiffrage tout au plus. La tâche la plus longue, sans être la plus difficile est finalement toujours la même : les vues ! Créer les champs de texte, placer les éléments, checker la compatibilité avec les anciennes versions d’iOS et Android … Pour finir finalement vers 21h30, les doigts en miettes, les cerveaux sur OFF à pester contre le service iTunes Connect encore en panne 😉

Les enseignements de cette expérience

Ce projet nous a finalement permis de vivre les différentes étapes du développement d’un projet sur un très court terme : nous y avons finalement retrouve les mêmes répartitions temporelles que pour la plupart des projets.

  • Réaliser des maquettes précises des vues de l’application permet un réel gain de temps aux développeurs. Y revenir par la suite est tout de suite plus compliqué
  • Même sur des délais serrés, ne pas négliger les questions de sécurité et de vie privée
  • Le texte n’est pas toujours la meilleure solution pour expliquer une fonctionnalités.
  • JSON > XML.
  • Après 12h de code non stop à plein régime, les développeurs se mettent à parler en assembleur.

Téléchargez l’application

L’application est disponible depuis peu sur l’App Store et bientôt disponible sur Androïd. https://mood.bz/

Télécharger les applications mobiles Boréal Business sur votre iPhone

Bookmark and Share

Websocket et PHP : présentation de websocketd

Connecter une application mobile à des web-services via une web-socket

De plus en plus d’application utilisent le web-socket pour communiquer avec des web services. Les avantages sont multiples : plus de connexions/déconnexions intempestives, un transport de données beaucoup plus rapide, une économie de ressources (CPU coté serveur, batterie coté client), et la possibilité pour le serveur de pousser des données vers le clients de manière autonome.

Ces derniers mois, nous avons testé plusieurs approches pour créer le serveur Web-socket avec PHP.
Le premier problème qui se présente est la possibilité de pouvoir gérer de multiples connexions vers un seul port de destination.

Une seule solution pour gérer cela : utiliser la librairie pcntl de PHP, qui autorise l’utilisation d’un fork (comme en C). En combinant cette technique avec des sockets non bloquantes, il est possible de créer un serveur multi-processus, doté d’un processus maître de contrôle : gestion des déconnexions, spawn de nouveaux processus, maintient d’un pool de processus spare, etc. Dans la théorie tout est quasi possible.

Dans la pratique, cela s’avère un mauvais choix : PHP n’est pas du tout conçu pour cela :

  • Effectuer un fork est gourmand en ressource et très lent en PHP : l’intégralité de la mémoire du processus maître est copiée.
  • La communication entre les différents processus fils est complexe (via des signaux POSIX, l’utilisation d’une mémoire partagé via shmop devient vite aussi indispensable que peu pratique)
  • La communication entre un processus fils et le processus maître répond aux même contraintes
  • Le diagnostic des crashs et exceptions est plus difficile à tracer.
  • Des processus qui se zombifient sans arrêt (State Z). La commande « top » ressemble rapidement à un film de Roméro 😉
  • Franchement super lent

Vous l’aurez compris, vraiment pas la bonne solution.

Websocketd : un daemon simple et léger

Websocketd

Nous nous sommes alors tournés vers websocketd. Étant de grands fans de Linux, le concept nous a tout de suite plu : il s’agit d’un petit exécutable (dispo Unix/BSD/Win/OSX, 32 et 64bits)
qui permet d’interfacer n’importe quel binaire, script ou fichier avec une web-socket. Plus de gestion des fork, plus de problème de multi-threading !
Websocketd se charge de toute cette logique, difficile à mettre en place avec des langages comme le PHP. Le gain de temps est énorme, et la fiabilité bien meilleure.

Un petit exemple :

websocketd --port 9000 /var/www/ws-server.php

Cette commande va donc exposer le script ws-server.php via des web services sur le port TCP 9000. L’entrée/sortie se fait via STDIN et STDOUT

ATTENTION AU CHOIX DU PORT : après des heures de recherche, nous avons fini par découvrir que de nombreux opérateurs téléphoniques filtrent les données de manière un peu étrange sur certains ports. Par exemple, Bouygues Telecom semble filtrer les paquets entrants sur le port 8080, mais autorise (o_O ??) les paquets sortants. Si vous avez possibilité, utilisez le port 80 par sécurité, le 9000 que nous utilisons ici n’est -à ma connaissance et à l’heure actuelle- pas filtré.

Votre script PHP va être appelé à tourner de manière permanente : faites attention à libérer au maximum la mémoire et à régler set_time_limit à 0.
Vous devez aussi prendre quelques précautions pour éviter la saturation du service en limitant le nombre de connexions (iptables semble une bonne approche pour commencer)

ws-server.php : un simple service echo

#!/usr/local/bin/php
<?php
set_time_limit(0);

while(true){ // boucle infini, c'est un serveur !
    $f = fgets(STDIN);
    // appel bloquant, l’exécution est suspendue
    // tant qu'il n'y a pas de données

    if($f === false){ // STDIN fermé, on quitte
       break;
    }
    
    if(strlen($f) > 0){ // on a des données
        foreach(explode("\n",$f) as $line){ // une commande par ligne
           echo trim($line)."\n; // renvoi la ligne reçue
        }
    }
   
}

Il suffit de lire STDIN pour récupérer les données entrantes, et un simple echo pour les renvoyer au client (ou utiliser STDOUT). N’oubliez pas de faire un « chmod +x ws-server.php » pour le rendre exécutable en mode CLI

Cette solution à de nombreux avantages :

  • Plus de problème de multi-threading / fork et compagnie
  • Une utilisation simple, un outil = une tâche
  • Gestion propre du SSL/TLS
  • Économe en ressources
  • Vraiment. Beaucoup. Plus. Rapide.
  • Vous utilisez le langage que vous voulez. Vous pouvez même connecter les interfaces /dev à une websocket si ça vous chante !

Plus d’informations ici : http://websocketd.com/

En bonus, un script init pour websocketd, à placer dans /etc/init.d (testé sous Debian Jessie)
/etc/init.d/wsserver

#! /bin/sh
### BEGIN INIT INFO
# Provides: Webservice
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Webservices via websocket
# Description: WS via Websocket sur port 9000
### END INIT INFO

PIDF=/var/run/websocket
DAEMON=/bin/websocketd
ARGS="--port 9000 /var/www/ws-server.php"
USERID=1000 # UID de l'utilisateur sous lequel votre serveur tournera

case "$1" in
  start)
    echo "Start ws"
    start-stop-daemon --make-pidfile --start -b --pidfile $PIDF --quiet -c $USERID --exec $DAEMON -- $ARGS
    ;;
  stop)
    echo "Stop ws"
    start-stop-daemon --stop --quiet --oknodo --pidfile $PIDF
    ;;
  restart)
   echo "Restart ws"
    start-stop-daemon --stop --quiet --oknodo --pidfile $PIDF
    start-stop-daemon --make-pidfile --start -b --pidfile $PIDF --quiet -c $USERID --exec $DAEMON -- $ARGS
   ;;
  *)
    echo "Usage: /etc/init.d/wsserver {start|stop|restart}"
    exit 1
    ;;
esac
exit 0
Bookmark and Share

Rendez-vous à 3D Fab Expo Bourges pendant 3 jours

Impression 3D Fab Lab Bourges avec Boréal

A partir de demain 12 Juin 2015 et pendant tout le week end, rendez-vous sur la 96ème foire de Bourges pour participer au 1er événement lié à l’impression 3D en région centre : le 3D Fab Expo

Parce que nous croyons que l’impression 3D va jouer un rôle grandissant dans les stratégies d’innovation de nos entreprises et que nous pourrions vous proposer prochainement de nouveaux services à ce sujet, Boréal Business a choisi de soutenir son partenaire www.conso-3d.com à l’origine de l’organisation de cet événement unique.

Ainsi, venez assister aux nombreuses conférences qui se dérouleront au Palais d’Auron, animées par des spécialistes du secteur. Venez découvrir quelques logiciels, études de cas, imprimantes 3D en action ; et surtout, venez vous imprégner de la culture 3D et de son ancrage dans la culture numérique.

Venez également participer aux ateliers d’initiation et formations pour commencer à imprimer vous même en 3D !

En participant à cet événement vous soutiendrez la création du 1er Fab Lab local BOURGES LAB, qui s’installera prochainement dans les locaux de la Chambre de Commerce et D’industrie du Cher.

Bookmark and Share

Crop Circle : la nouvelle application sociale pour Android et iPhone

L’équipe de Boreal Business travaille depuis plusieurs mois sur un side project d’application smartphone : CropCircle. Crop Circle vous permet de faire connaissance et d’échanger simplement et en temps réel avec les personnes qui se trouvent autour de vous. Puisque vous êtes tous au même endroit en même temps, vous avez certainement des intérêts communs et des choses à vous dire, faites connaissance avec les personnes qui entrent dans votre cercle !

fbcover

Le concept

Le concept est simple : lancez l’application, créez un cercle puis discutez avec les utilisateurs dans le rayon de votre choix (100 mètres, 1 kilomètre ou 10 kilomètres), et ce pendant une heure. L’application se veut très simple d’utilisation, est gratuite, sans pub et respectueuse de votre vie privée ! Nous avons également pris des précautions pour ne pas siphonner la batterie de votre smartphone, comme c’est souvent le cas avec les applications géolocalisées : votre position géographique n’est pas trackée en permanence, nous la relevons uniquement lorsque vous lancez l’application.
iphone6_white
Pendant la durée de votre cercle, vous pouvez envoyer des messages texte, des photos, des vidéos, des extraits sonores ou votre position géographique exacte. Une fois votre cercle terminé (au bout d’une heure, mais vous pouvez le prolonger !) vous disparaissez de la vue des autres utilisateurs sans laisser de trace.

Associez vos différents profils sur les réseaux sociaux pour continuer une conversation sur Facebook ou Twitter par exemple.

L’application peut avoir de nombreux usages : pendant un concert ou festival, discutez avec d’autres spectateurs ; pendant un salon pour communiquer avec les exposants et visiteurs ; finalement pendant n’importe quel événement rassemblant des personnes, CropCircle trouve son utilité.

Aucune inscription n’est requise, vous pouvez commencer à utiliser l’application en quelques secondes.

Tournée vers les objets connectés

Notre but est de rendre compatible l’application avec tous les wearables et objets connectés du moment : au moment de l’écriture de ce billet, CropCircle est compatible avec les Google Glass, et le sera très bientôt avec les smartwatch comme l’iWatch, la G Watch ou la Moto 360

Notre action

Pour ce projet, toutes les tâches ont été réalisées jusqu’ici en interne : des spécifications du logiciel, aux premières ébauches graphiques, la création du logo, le développement des webservices, le chiffrage des échanges, les maquettes et finalement le développement des applications iPhone et Android en elles mêmes.

CropCircle est une application 100% Boreal Business, un concentré de nos savoirs-faire.

Téléchargez l’application

L’application est disponible depuis peu sur les stores en Français, Anglais et Espagnol. Toute une roadmap de développement est prévue, l’application va donc être amenée à s’améliorer au fil des prochaines semaines et des prochains mois. N’hésitez pas à nous donner votre point de vue par mail à team@cropcircle.me ou sur notre page Facebook dédiée

Télécharger les applications Boréal Business sur Google Play Store Télécharger les applications mobiles Boréal Business sur votre iPhone

Plus d’informations sur http://www.cropcircle.me/

Bookmark and Share