Blogue
Savoir-faire et technologie
Histoires, idées et perspectives sur la stratégie, la technologie et les solutions d’affaires.

Articles à la une

Nouvelles
5 min de lecture
Annonce : Spiria est certifiée SOC 2 Type 2
<h2>Qu'est-ce que la certification SOC 2 ?</h2><p>La certification SOC 2 (Service Organization Control 2) est une norme élaborée par l'American Institute of Certified Public Accountants (AICPA) qui évalue la capacité d'une organisation à gérer les risques liés à la sécurité, à la disponibilité, à l'intégrité du traitement, à la confidentialité et à la protection de la vie privée des données qu'elle traite pour le compte de ses clients.</p><p>La certification SOC 2 repose sur cinq principes, appelés critères de confiance, qui définissent les exigences minimales que doit respecter une organisation pour assurer la sécurité et la qualité de ses services. Ces critères sont les suivants :</p><ul> <li><strong>Sécurité</strong> : l'organisation protège les données contre les accès non autorisés, les modifications, les divulgations, les dommages ou la perte.</li> <li><strong>Disponibilité</strong> : l'organisation assure la disponibilité et le fonctionnement continu de ses services conformément aux accords conclus avec ses clients.</li> <li><strong>Intégrité du traitement</strong> : l'organisation traite les données de manière complète, valide, exacte, opportune et autorisée.</li> <li><strong>Confidentialité</strong> : l'organisation respecte les engagements et les obligations de confidentialité envers ses clients et les tiers concernant les données qu'elle traite.</li> <li><strong>Protection de la vie privée</strong> : l'organisation respecte les principes de protection de la vie privée définis par l'AICPA et les lois applicables en matière de collecte, d'utilisation, de conservation, de divulgation et d'élimination des données personnelles.</li></ul><p>« Obtenir et maintenir la certification SOC 2, je le vois comme un ultramarathon et non un sprint sur 100 mètres. C'est une première étape, dans un long processus en constante évolution. La cybersécurité, dans son ensemble, nécessite une rigueur et une attention aux détails constante auquel notre équipe est prête à s’attarder. »</p><p>– Vincent Huard, Vice-Président, gestion et analyse des données</p><p>Pour obtenir la certification SOC 2, une organisation doit faire l'objet d'un audit indépendant réalisé par un cabinet comptable qualifié qui vérifie qu’elle respecte les critères de confiance applicables à ses services. L'audit porte sur la conception et l'efficacité des contrôles mis en place par l'organisation pour assurer la conformité aux critères de confiance.</p><h2>Quelle est la différence entre la certification SOC 2 Type 1 et Type 2 ?</h2><p>Il existe deux types de certification SOC 2. C’est entre autres la durée de l’audit qui les distingue. SOC 2 Type 2 est couvert par l’audit le plus long et rigoureux.</p><ul> <li>La certification SOC 2 Type 1 atteste que l'organisation respecte les critères de confiance à une date donnée à une date précise. Elle évalue la conception des contrôles, mais pas leur efficacité dans le temps.</li> <li>La certification SOC 2 Type 2 atteste que l'organisation respecte les critères de confiance sur une période de temps définie, généralement de trois à douze mois. Elle évalue la conception, mais également l'efficacité des contrôles, en tenant compte de leur fonctionnement réel et de leur évolution.</li></ul><p>En d’autres mots, la certification SOC 2 Type 2 répond à des critères plus exigeants et rigoureux, car elle implique un suivi continu et une vérification régulière des contrôles. Elle offre une assurance plus élevée sur la qualité et la sécurité des services fournis par l'organisation.</p><h2>Quels sont les bénéfices pour nos clients ?</h2><p>En obtenant la certification SOC 2 Type 2, Spiria réaffirme sa posture de partenaire de confiance dans la réalisation de projets de développement de solutions numériques pour ses clients. Voici quelques bénéfices principaux qui permettent à nos clients de se lancer la tête tranquille dans des projets d’envergure avec Spiria :</p><ul> <li>La garantie que nous respectons les normes les plus élevées en matière de sécurité de l'information</li> <li>La garantie que nous protégeons les données de nos clients contre les menaces internes et externes.</li> <li>La confiance que nous assurons la disponibilité et la performance de nos services</li> <li>La confiance que nous sommes capables de réagir rapidement et efficacement en cas d'incident.</li> <li>La certitude que nous traitons vos données avec intégrité, en respectant les règles de validation, d'exactitude, de traçabilité et d'autorisation.</li> <li>La tranquillité d'esprit que nous respectons vos obligations de confidentialité et que nous ne divulguons pas vos données à des tiers non autorisés.</li> <li>La sécurité que nous respectons les principes de protection de la vie privée et que nous nous conformons aux lois applicables en matière de données personnelles.</li></ul><p>La certification SOC 2 Type 2 est un gage de confiance et de sécurité pour nos clients qui témoigne de notre engagement à fournir des services de qualité et à respecter les meilleures pratiques du secteur. Elle représente l’excellence en matière de sécurité des données dans le marché tout en étant de plus en plus prisée pour les projets de développement logiciels. Il était donc tout naturel pour Spiria d’être parmi les quelques firmes d’experts à s’y conformer en Amérique du Nord. Nous sommes fiers d’arborer cette certification et d'assurer à la fois l'excellence, la fiabilité et la rigueur de nos pratiques d’affaires.</p><p>Démarrez un projet en toute confiance : <a href="mailto:nouveauprojet@spiria.com">nouveauprojet@spiria.com</a>.</p>

Stratégie
5 min de lecture
Temps et matériel ou forfaitaire, que choisir ?
<p>Les équipes de Spiria ont une longue et riche expérience avec les deux types de contrats, et nous vous dévoilons ici ce que nous avons appris au fil du temps sur le sujet et quels sont les critères de succès pour chaque option.</p><p>Clarifions tout d’abord ce que sont ces deux types de projets :</p><h3>Projets temps & matériel</h3><p>Projets dont la portée (activités, livrables, inclusions comme exclusions, etc.) peut être plus ou moins clairement définie. L’évaluation initiale des coûts présente une fourchette de prix probable pour la réalisation du dit projet. Les coûts sont facturés selon les heures réelles exécutées et le matériel/ressources (autres coûts, par exemple des licences logicielles ou des services infonuagiques) nécessaire. Cette approche est plus flexible, car elle permet des changements de spécifications tout au long du processus de développement. L’agilité est encouragée et les contrôles de gestion de projets sont mis de l’avant.</p><h3>Projets forfaitaires ou fixes</h3><p>Projets dont la portée est plus souvent bien ou très bien définie. Le niveau de confiance de l’évaluation initiale des coûts repose sur des informations plus claires que le précédent type de projet. Comme son nom l’indique, les coûts sont fixés au départ, peu importe les heures réellement exécutées et le coût en matériel et ressources. Par conséquent, les notions de risques et de profitabilité sont des considérations plus critiques à évaluer dans ce type de projet. Toute modification des spécifications est encadrée par un processus de demande de changement et est facturée en tant que travail supplémentaire.</p><p>Dans un premier scénario, pour un projet préalablement qualifié, le type de projet (temps/matériel vs fixe) peut être imposé par le client, les exigences internes des organisations ou encore des réglementations, par exemple dans le cas des appels d’offres (majoritairement fixes). Lorsque possible, Spiria peut proposer une approche pour mitiger les risques et mieux saisir la portée du projet, comme proposer au client un investissement initial dans une phase découverte, en mode temps/matériel ou forfaitaire, dans l’intention de pouvoir proposer par la suite les phases de développement et de déploiement en mode forfaitaire. Ceci n’empêche bien sûr pas le client de changer de priorité ou de modifier la portée à la suite de la phase de découverte. Notre flexibilité doit nous permettre de négocier avec le client la portée définie en variant les inclusions/exclusions, dans l’objectif de rester dans l’enveloppe budgétaire forfaitaire contractuelle entendue.</p><p style="text-align: center;"><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11800/process-fr.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11800/process-fr.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11800/process-fr.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/11800/process-fr.webp" style="width: 60%; border: none;" alt="Un cycle projet type." title="Un cycle projet type."></source></source></source></picture></p><p style="text-align: center; font-style: italic;">Figure 1. Un cycle projet type.</p><p>Dans un deuxième scénario, si le type de projet n’est pas imposé, ceci nous donne la latitude du choix de la stratégie. Habituellement, les clients prévoient des sessions de rencontres avec les différents fournisseurs pour répondre à leurs questions. Une réflexion interne s’impose ensuite pour bien évaluer les facteurs décisionnels menant à la meilleure stratégie. À cet effet, le tableau ci-dessous présente une liste non exhaustive de points qui éclairent les équipes dans cette réflexion. Ces points sont pondérables (facilement identifiables, quantifiables ou mesurables) ou impondérables, en fonction des informations fournies lors des rencontres initiales, dans les cahiers de charge, ou pouvant être obtenues par des demandes au client. Les annotations des deux colonnes de droite sont simplement des suggestions de poids relatifs aux deux types de projets.</p><table cellpadding="0" cellspacing="0" style="width:100%"> <tbody> <tr> <td style="width:76%"><strong>Points</strong></td> <td style="width:12%"><strong>Fixe</strong></td> <td style="width:12%"><strong>T&M</strong></td> </tr> <tr> <td>Le plan d’affaires, les requis, les besoins et les attentes sont claires.</td> <td>➕➕</td> <td>➕</td> </tr> <tr> <td>Les processus et règles d’affaires sont nombreux et complexes.</td> <td>➕</td> <td>➕➕</td> </tr> <tr> <td>Le budget client est identifié et la planification budgétaire est cadrée.</td> <td>➕</td> <td>➖</td> </tr> <tr> <td>L’échéancier est strict ou critique en raison du contexte client ou d’affaires.</td> <td>➕</td> <td>➖</td> </tr> <tr> <td>Les expertises nécessaires sont identifiables.</td> <td>➕</td> <td>➕</td> </tr> <tr> <td>La structure organisationnelle et décisionnelle est grande et complexe.</td> <td>➖</td> <td>➕</td> </tr> <tr> <td>Les aspects légaux sont complexes.</td> <td>➖</td> <td>➕</td> </tr> <tr> <td>Les relations sont déjà établies (historique) ou des contacts sont nos promoteurs.</td> <td>➕</td> <td>➕</td> </tr> <tr> <td>Le calcul de risques, les incertitudes et la contingence sont élevés.</td> <td>➖</td> <td>➕</td> </tr> <tr> <td>Les risques de dérives sont probables.</td> <td>➖</td> <td>➕</td> </tr> <tr> <td>Le client détient une capacité en effectifs ou en connaissances internes<br> (designer, équipe de développement, AQ, etc.).</td> <td>➕</td> <td>➕</td> </tr> <tr> <td>L’environnement technologique est connu.</td> <td>➕</td> <td>➕</td> </tr> <tr> <td>Les contraintes technologiques sont importantes (ex. : système hérité).</td> <td>➖</td> <td>➕</td> </tr> <tr> <td>Les défis d’intégration sont nombreux et complexes.</td> <td>➖</td> <td>➕</td> </tr> <tr> <td>Les choix technologiques sont imposés.</td> <td>➕</td> <td>➕</td> </tr> <tr> <td>Les données sont disponibles pour faire l’assurance qualité fidèlement.</td> <td>➕</td> <td>➕</td> </tr> <tr> <td>La solution est assujettie à des certifications spéciales.</td> <td>➖</td> <td>➕</td> </tr> </tbody></table><p><br>Le résultat de cette réflexion peut amener vers différentes approches représentées dans le diagramme suivant :</p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11800/strategies-fr.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11800/strategies-fr.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11800/strategies-fr.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/11800/strategies-fr.png" style="width: 100%; border-style:solid; border-width:1px;" alt="Les différentes stratégies (approches)." title="Les différentes stratégies (approches)."></source></source></source></picture></p><p style="text-align: center; font-style: italic;">Figure 2. Les différentes stratégies. (Cliquer pour agrandir.)</p><p>La stratégie sélectionnée dicte la façon donc les ententes contractuelles sont conclues. Ce choix d’approche a des incidences sur tout le déroulement du projet et son succès final. La transparence du processus de choix et la justification des motifs auprès du client permettent de démarrer la relation sur des bases saines. Les objectifs ultimes sont de livrer un projet qui respecte nos valeurs spiriennes et qui apporte la valeur attendue au client.</p>
Tous les articles
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Culture
5 min de lecture
Comment ne plus être un développeur “junior”
<div><p>Un junior, c’est quelqu’un qui doit encore faire ses preuves quant à la constance dans la qualité de son travail, que ce soit devant un chargé de projet pendant les rencontres avec un client, devant l’équipe technique d’un client lors d’une mise en production, ou encore avec un développeur plus expérimenté pendant une revue de code. Voyons donc quelques conseils pour un junior visant à diminuer les risques d’envoyer des bogues en production et de s’assurer qu’aucun d’eux ne soit irréparable. Les suivre augmentera votre confiance, votre autonomie et vous aidera à démontrer à vos supérieurs que vous méritez le titre de développeur intermédiaire.</p><h2>Trucs pour juniors</h2><h3>Apprendre à revenir en arrière…</h3><p>Avec votre code : devenez à l’aise avec un outil de gestion de version de code (Git, SVN ou autre). Connaissez les concepts de base, ayez un système de branches clair, sachez faire les manipulations les plus communes, laissez des commentaires pertinents, etc.</p><p>Avec un SGBD (système de gestion de base de donnée) : les premières choses à apprendre avant de toucher à des données en production sont...</p><ul style="list-style-type:disc;"> <li>Comment exporter les données pour créer une copie. </li> <li>Comment faire un rollback (annuler ses changements). </li></ul><p>Si on ne peut pas effectuer ces opérations aisément, on ne devrait jamais manipuler des bases de données. Perdre des données peut causer d’importantes pertes de temps et d’argent (voire bien pire).</p><h3>Apprenez à déboguer votre code</h3><p>Dans tous les langages récents, il y a moyen de suivre le code pendant son exécution, d’ajouter des breakpoints et des sorties à une console, etc. Ça vous permet de vous plonger rapidement dans un projet déjà existant et d’en apprendre la structure, et c’est indispensable pour déboguer votre propre code. Plusieurs techniques ou outils sont disponibles selon le langage utilisé.</p><h3>Bien programmer</h3><p>Tout comme savoir écrire ne fait pas de nous un écrivain, on doit aussi apprendre à bien programmer. Votre code est fait pour être lu soit par une machine, soit par un humain. Lorsqu’un humain le lit, c’est généralement pour le modifier ou le corriger. Rien de garanti que vous serez encore là pour l’expliquer, donc, règle d’or : votre code devrait être autosuffisant pour se faire comprendre.</p><p>Lisez sur le sujet et apprenez les bonnes et mauvaises pratiques (noms de variables et de méthodes, nomenclature, indentation, documentation, etc.)</p><h3>Testez votre code avant de l’envoyer</h3><p>L’équipe d’assurance qualité (QA) est là pour attraper les balles échappées, pas pour aller les cueillir dans le fond d’un lac. En tant que développeurs, nous sommes les plus proches du code et pouvons estimer l’impact de nos changements. Valider en combien d’endroits la méthode qu’on vient de modifier est appelée, ça prend une minute avec un bon IDE, et ça évite de causer des bogues qui seront décelés seulement plus tard par l’équipe de QA, le client ou les utilisateurs.</p><p>Lorsqu’on dit que notre code est prêt, il faut avoir confiance qu’il l’est vraiment.</p><h2>Qualités à démontrer</h2><h3>Sens du détail</h3><p>Je fais tout en mon pouvoir pour que ma tâche soit exécutée comme indiqué, et je demande des détails lorsque nécessaire. Si quelqu’un s’est donné la peine de rédiger des spécifications, c’est qu’il y a une raison derrière elles. Je m’assure que rien ne manque à l’appel.</p><h3>Rigueur</h3><p>Je m’assure que ma solution est réfléchie et n’est pas simplement la première qui me soit passée par la tête. Je veux que ma tâche soit bel et bien terminée et que je sois fier du résultat avant de l’envoyer pour une révision avec vos collègues, au client ou autre. Ça évite de faire perdre du temps à ceux-ci. Ils comptent sur moi pour bien faire mon travail.</p><h3>Humilité</h3><p>La première étape pour régler un problème, c’est de reconnaître qu’il existe. J’apprends de mes erreurs et de celles de votre équipe. Tout le monde en fait et les occasions d’apprendre sont partout. Vaux mieux un bogue avoué et corrigé qu’un bogue qui n’est simplement pas encore répertorié.</p><h3>Savoir laisser de côté son orgueil</h3><p>Je ne suis pas impliqué dans toutes les décisions prises pour le projet et c’est normal. Quand je ne sais pas, je l’indique. Ce n’est pas toujours ma solution qui sera choisie, et il faudra vivre avec : je travaille avec des gens plus expérimentés. Parfois, ma solution me semble meilleure, mais ne convient pas au client pour une question de budget, d’échéance, restriction légale ou autre, et donc n’est pas retenue. Inutile d’être orgueilleux, ce n’est rien de personnel.</p><h3>Collaboration</h3><p>Je participe aux discussions, mais c’est en écoutant que j’apprends le plus. Comme tout projet implique au moins deux personnes, je dois donc apprendre à travailler à plusieurs de manière professionnelle. Je pose des questions afin d’éviter les zones grises et avancer plus rapidement. Lorsque j’apprends quelque chose de nouveau qui mériterait d’être connu de tous, je le documente et le partage.</p><p>S’attaquer à un problème à plusieurs est parfois la meilleure solution : deux cerveaux valent mieux qu’un. C’est le principe même du <a href="https://en.wikipedia.org/wiki/Pair_programming">Pair programming</a>. Parfois, même un simple canard de plastique peut être un bon compagnon (voir la <a href="https://fr.wikipedia.org/wiki/M%C3%A9thode_du_canard_en_plastique">méthode du canard en plastique</a>).</p><h3>Autodidaxie</h3><p>Mon apprentissage est essentiel et ne peut pas reposer seulement sur les autres développeurs plus expérimentés. Il est possible que je sois seul sur un projet, je dois donc pouvoir apprendre par moi-même, savoir où trouver de l’information et juger de sa qualité, etc.</p><h3>Adaptabilité</h3><p>Les clients changent d’idée. C’est frustrant après plusieurs semaines de travail, mais c’est la vie. Chaque changement de direction peut impliquer des coûts additionnels, le client en est bien conscient. Le mieux est encore de demander pourquoi le changement était nécessaire afin prévenir un scénario semblable dans le futur en conseillant le client.</p><h3>Vision « Big Picture »</h3><p>Je garde une vision d’ensemble du projet, pour l’analyse des besoins, pour agir en tant qu’expert-conseil auprès du client, et ne pas s’attacher émotionnellement aux tâches que je réalise. Je ne me limite pas à regarder seulement ce que je suis en train d’accomplir. Peut-être que ça fait plusieurs jours que je suis sur une tâche, mais que je devrais m’attaquer à une autre, plus importante à court terme pour le projet. Il est important de regarder les nouvelles tâches qui s’ajoutent et de valider leur priorité par rapport à celle que je suis en train d’accomplir.</p><h3>Curiosité</h3><p>La dernière, mais non la moindre des qualités. La technologie évolue plus rapidement que jamais, surtout avec les librairies open source. Il est essentiel d’être prêt à accepter et à chercher le changement. Sans désir d’apprendre, on est rapidement dépassé. C’est valable à tous les échelons, et tout employeur ne peut qu’apprécier quelqu’un qui cherche à se tenir à jour et à s’améliorer.</p>

Culture
5 min de lecture
Découvrez notre bureau de Gatineau en 3D !
<div><h2>Du neuf avec de l’ancien</h2><p>L’une des étapes importantes du développement de <a href="https://www.spiria.com/fr/">Spiria</a> ces dernières années a été l’installation de notre bureau de Gatineau. Comme ce nouvel établissement allait abriter une super équipe de développeurs, de designers UI et d’experts UX, il se devait de vraiment se démarquer et de faire preuve d’excellence.</p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-04.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-04.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-04.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-04.webp" alt="Spiria Gatineau." title="Spiria Gatineau."></source></source></source></picture></p><p>Puisque nous avions fait le choix original d’emménager dans les murs de l’ancienne église Saint-James, la structure était déjà en soi une réalisation artistique et architecturale impressionnante, enracinée dans l’histoire et les traditions de la communauté. Afin de la transformer en maison de Spiria à Gatineau, nous avons joué sur les volumes naturellement ensoleillés de l’église pour enrichir notre concept d’espace de travail à aire ouverte et nous avons choisi des lignes épurées et modernes avec quelques sympathiques touches industrielles.</p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-08.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-08.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-08.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-08.webp" alt="Spiria Gatineau." title="Spiria Gatineau."></source></source></source></picture></p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-09.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-09.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-09.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-09.webp" alt="Spiria Gatineau." title="Spiria Gatineau."></source></source></source></picture></p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-07.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-07.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-07.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-07.webp" alt="Spiria Gatineau." title="Spiria Gatineau."></source></source></source></picture></p><h2>Imagerie 3D Matterport</h2><p>On dit souvent qu’il faut voir pour croire… L’outil Matterport permet de voir par vous-même, peu importe où vous êtes. La technique de photographie et d’imagerie 3D de Matterport a permis de capturer nos espaces, les rendant accessibles à la manière de « Google Street View » ou visualisables en volume 3D façon « maison de poupées ». Vous pouvez y voir le contraste des vitraux et de la pierre avec nos espaces de travail ouverts, faits de verre et de mobilier sur mesure, contraste qui est le reflet du mélange de traditions et d’innovations qui fait Spiria.</p><h2>Espace de vie</h2><p>Un bureau est plus qu’un espace physique. Le lieu de travail se doit d’être une partie vivante de la culture d’entreprise, promouvoir les valeurs, les objectifs et la philosophie d’une compagnie, en créant un environnement qui soutient ces qualités. Chez Spiria, nous travaillons en équipe et nous nous inspirons des gens qui nous entourent. De plus, notre <a href="https://www.spiria.com/fr/carriere/">culture d’entreprise</a> comprend que la nature du travail change : c’est la fin des cubicules, des pauses entre fontaine à eau et plante verte et de la journée de 9 à 17 h. Notre bureau devait refléter ces changements et créer un environnement propice à toutes sortes d’attentes et de façons de travailler. Avec des postes de travail modernes et une variété de lieux de réunion, le bureau de Gatineau permet aux gens de choisir l’endroit qui leur convient le plus.</p><h2>Espace multifonctionnel</h2><p>Enfin, nous avons pris en compte le fait que les bureaux ne sont plus uniquement destinés au travail, et que tout travail ne ressemble pas toujours à être assis derrière un bureau. Notre salle de jeu est l’espace idéal pour laisser percer les idées et faire fructifier la créativité par le biais de différentes activités — comme laisser cours à une improvisation sur notre piano, écraser la compétition lors d’une partie de baby-foot, s’installer dans notre cuisine pour un bon repas ou encore organiser un événement social.</p><p>Aussi, il manque le plus important aux images super-cool de notre espace dans Matterport : les gens. Nous espérons que vous aurez l’occasion de nous rendre visite en personne pour voir la transformation de ce bel immeuble en un espace de travail de pointe, mais aussi pour rencontrer les personnes qui en illuminent l’intérieur avec leur travail acharné et leurs idées brillantes.</p><p>Découvrez notre bureau de Gatineau en 3D :<br><a href="https://my.matterport.com/show/?m=nheYEdSKBUo" target="_blank">https://my.matterport.com/show/?m=nheYEdSKBUo</a>.</p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-01.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-01.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-01.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-01.webp" alt="Spiria Gatineau." title="Spiria Gatineau."></source></source></source></picture></p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-02.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-02.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-02.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-02.webp" alt="Spiria Gatineau." title="Spiria Gatineau."></source></source></source></picture></p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-03.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-03.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-03.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-03.webp" alt="Spiria Gatineau." title="Spiria Gatineau."></source></source></source></picture></p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-05.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-05.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-05.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-05.webp" alt="Spiria Gatineau." title="Spiria Gatineau."></source></source></source></picture></p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-06.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-06.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-06.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2205/spiria-matterport-06.webp" alt="Spiria Gatineau." title="Spiria Gatineau."></source></source></source></picture></p>

Culture
5 min de lecture
Spiria fête son 15e anniversaire !
<div><p>D’abord, il nous faut parler du cadre pour ceux qui n’ont pas la chance de connaître les lieux. Cet hôtel est une spectaculaire bâtisse située à Montebello, une petite municipalité québécoise sur le bord de la rivière des Outaouais, entre Ottawa et Montréal. Construit à la manière scandinave par le maître-constructeur finnois Victor Nymark en 1929, il s’agit du plus grand bâtiment en bois ronds au monde. C’était à l’origine un club privé élitiste dénommé le <i>Seigniory Club</i>, dédié au séjour d’hommes d’affaires et de politiciens canadiens. En 1970, le lieu est transformé en hôtel ouvert à tous par le Canadien Pacifique qui le rebaptise, non pas <i>Overlook Hotel,</i> mais <i>Château Montebello</i>. Aujourd’hui propriété d’intérêts chinois, l’hôtel géré par Fairmont demeure un incontournable du tourisme en Outaouais.</p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/chateau-montebello.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/chateau-montebello.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/chateau-montebello.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2260/chateau-montebello.webp" alt="Le Château Montebello. Photo Pierre Bona." title="Le Château Montebello. Photo Pierre Bona."></source></source></source></picture></p><p>Fairmont Le Chateau Montebello.</p><p>Pour bien des Spiriens, ce moment a été l’occasion de mieux se connaître et parfois même, de se découvrir pour la première fois, notamment pour l’équipe de Toronto qui s’est <a href="https://www.spiria.com/fr/blogue/communiques-de-presse/spiria-toronto">récemment jointe</a> à Spiria. S’il nous arrive souvent de collaborer à distance sur des projets communs, rien ne remplace la qualité des échanges lors de rencontres “en vrai”. Et pour nos nouveaux amis de Toronto, c’était plus de 100 visages inconnus à découvrir, autant de nouvelles personnes avec qui tisser des liens pour enrichir de futures collaborations !</p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-rouleau.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-rouleau.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-rouleau.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2260/montebello-rouleau.webp" alt="Stéphane Rouleau au Château Montebello." title="Stéphane Rouleau au Château Montebello."></source></source></source></picture></p><p>Stéphane Rouleau, président-directeur général.</p><p>Le programme de ces deux jours a été chargé. Le comité d’organisation avait prévu différentes activités dans un calendrier très serré. Outre les discours des dirigeants de l’entreprise et la présentation d’un bilan de l’activité par notre président-directeur général Stéphane Rouleau, un point d’orgue a été ce que nous avons appelé “La grande foire du savoir”, une sorte de salon où des équipes des différents bureaux se sont relayées pour présenter à leurs collègues des projets sur lesquels ils avaient travaillé, par exemple un framework développé pour Thinking Capital, ou notre contribution au développement des logiciels Lustre et Flame d’Autodesk, ou encore une application mobile pour Paymi. Cela a permis à beaucoup de découvrir de nouvelles technologies, d’apprendre que nous avions certains savoir-faire pointus et parfois méconnus au sein de Spiria et d’entrevoir de possibles synergies à l’échelle de l’entreprise entière. </p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-01.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-01.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-01.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-01.webp" alt="Spiria au Château Montebello." title="Spiria au Château Montebello."></source></source></source></picture><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-02.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-02.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-02.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-02.webp" alt="Spiria au Château Montebello." title="Spiria au Château Montebello."></source></source></source></picture></p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-03.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-03.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-03.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-03.webp" alt="Spiria au Château Montebello." title="Spiria au Château Montebello."></source></source></source></picture><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-04.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-04.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-04.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-04.webp" alt="Spiria au Château Montebello." title="Spiria au Château Montebello."></source></source></source></picture></p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-05.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-05.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-05.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-05.webp" alt="Spiria au Château Montebello." title="Spiria au Château Montebello."></source></source></source></picture><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-06.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-06.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-06.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2260/montebello-gfs-06.webp" alt="Spiria au Château Montebello." title="Spiria au Château Montebello."></source></source></source></picture></p><p>“La grande foire du savoir”.</p><p>Du côté des loisirs, l’agenda des Spiriens fut également bien rempli. Chacun pouvait choisir une activité parmi lesquelles : une initiation au curling, une promenade en traîneau à chiens et une chasse aux énigmes à l’intérieur de l’hôtel. Tout le monde pouvait aussi profiter dans son temps libre des exceptionnels équipements du Château Montebello, comme sa magnifique piscine intérieure datant des années 1930.</p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-curling.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-curling.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-curling.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2260/montebello-curling.webp" alt="Curling au Château Montebello." title="Curling au Château Montebello."></source></source></source></picture><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-traineau.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-traineau.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-traineau.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2260/montebello-traineau.webp" alt="Traîneau à chiens au Château Montebello." title="Traîneau à chiens au Château Montebello."></source></source></source></picture></p><p>Enfin, les festivités se terminèrent vendredi soir par un dîner de gala, puis nous avons eu l’occasion de danser sur la musique de DJ renommés jusque (presque) le bout de la nuit. Fatigués mais heureux, nous avons chacun rejoint samedi nos différentes villes d’origine avec le souvenir durable d’un événement remarquable et enrichissant. Nous en profitons pour remercier chaleureusement ceux et celles qui ont dépensé beaucoup d’énergie à organiser tout ça et qui ont fait que la magie se produise. </p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-spirians-01.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-spirians-01.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-spirians-01.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2260/montebello-spirians-01.webp" alt="Spiria au Château Montebello." title="Spiria au Château Montebello."></source></source></source></picture><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-spirians-02.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-spirians-02.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2260/montebello-spirians-02.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2260/montebello-spirians-02.webp" alt="Spiria au Château Montebello." title="Spiria au Château Montebello."></source></source></source></picture></p><p>Voilà, nous pouvons déjà commencer à préparer le 20<sup>e</sup> anniversaire, avec nul ne sait combien de villes à réunir ! Aujourd’hui, il y en avait 4, Boston, Gatineau, Montréal et Toronto ; dans 5 ans, y en aura-t-il 5, 6, 7, ou plus encore ? Les paris sont ouverts.</p>

Culture
5 min de lecture
Ensemble pour nettoyer le quartier
<div><p>Le projet découle d’une initiative interne venant du groupe <i>SpiriaÉcolo</i> composé de Francis Poulin, Valentine Mollereau et de moi-même, Martine Brouillard. Ensuite, Spiria nous a octroyé un budget de quelques heures pour organiser et faire la corvée avec nos collègues. Il faut aussi mentionner les gens de la ville de Montréal qui nous offert chandails, gants et matériels comme des râteaux, pelles, sacs de poubelles de toutes sortes. C’est assez facile d’organiser ce genre d’opération en allant sur le <a href="https://ville.montreal.qc.ca/corvees/">site dédié de la Ville</a>.</p><h2>Alors, c’était comment ?!</h2><p>Nous nous attendions bien sûr à ramasser pas mal de choses par terre, mais nous avons été surpris du nombre de mégots de cigarette se retrouvant sur nos trottoirs et surtout au pied des arbres, de véritables cendriers à ciel ouvert.</p><p>À certains endroits les déchets s’empilaient en plusieurs couches. C’était comme de la recherche archéologique… et à se demander depuis quand certains coins n’avaient pas été nettoyés. Autre constat parfois décourageant, les murs et clotûres de certaines propriétés. Nous nous gardions une réserve, mais nous aurions aimé tout nettoyer !</p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2110/blogue_medium_img_20170512_113840.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2110/blogue_medium_img_20170512_113840.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2110/blogue_medium_img_20170512_113840.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2110/blogue_medium_img_20170512_113840.jpg" alt="Ruelle." title="Ruelle."></source></source></source></picture><br><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2110/blogue_medium_img_20170512_114329.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2110/blogue_medium_img_20170512_114329.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2110/blogue_medium_img_20170512_114329.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2110/blogue_medium_img_20170512_114329.jpg" alt="Ruelle." title="Ruelle."></source></source></source></picture></p><p>Avant / après !</p><h2>Un point positif</h2><p>Quelque chose qui est ressortit très positif de notre grand ménage fut les commentaires des gens du quartier. Ils ont pris le temps de nous dire merci, d’en apprendre plus sur notre projet. Beaucoup pensaient que nous étions de la Ville et étaient agréablement surpris que ce soit un projet « sur les heures de job ». Nous avons même croisé un de nos clients qui a nous a reconnu à nos chandails Spiria.</p><h2>Statistiques et trouvailles insolites</h2><ul> <li>Répartis en trois équipes, nous avons couverts environ 1 km en 1 h 15.</li> <li>Nous avons rempli au moins 7 grands sacs poubelles et un sac brun pour les feuilles et branches.</li> <li>Les deux objets trouvés les plus surprenants : un ouvre-bouteille et un test de grossesse.</li> <li>Ce qu'on retrouve le plus : des mégots de cigarettes et des vieilles gommes.</li> <li>Nous avons découvert plusieurs escargots dans une ruelle.</li></ul><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2110/escargot_crop.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2110/escargot_crop.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2110/escargot_crop.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2110/escargot_crop.webp" alt="decorative"></source></source></source></picture><br><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2110/test.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2110/test.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2110/test.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2110/test.webp" alt="decorative"></source></source></source></picture></p><h2>Briser nos habitudes !</h2><p>Sortir prendre l’air, marcher, nettoyer, c’est quelque chose qui est quand même éloigné du design, de l'analyse et de la programmation. Faire marcher nos jambes plutôt que notre cerveau a été très bénéfique ! Et que dire du fabuleux pique-nique que nous avons eu à la fin (merci <a href="http://www.dinettetriplecrown.com/" target="_blank">Dinette Triple Crown !</a>).</p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2110/blogue_medium_img_1270_0.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2110/blogue_medium_img_1270_0.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2110/blogue_medium_img_1270_0.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2110/blogue_medium_img_1270_0.jpg" alt="decorative"></source></source></source></picture><br><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2110/blogue_medium_img_1272.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2110/blogue_medium_img_1272.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2110/blogue_medium_img_1272.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2110/blogue_medium_img_1272.jpg" alt="decorative"></source></source></source></picture></p><p>Maintenant que l'initiative est terminée, nous remarquons plus que jamais que notre ville est malheureusement sale. Si chacun nettoie ne serait-ce que devant sa maison, la tâche sera beaucoup moins grande et c'est notre qualité de vie à tous qui s'en trouvera améliorée.</p><p>Merci à l'équipe de Spiriens sans qui ce grand ménage n'aurait pu avoir lieu !</p><p>Francis Poulin, Valentine Mollereau, François Mayrand, Michel Émond, Isabelle Renaud, Christian Roy, Cédric Barrancos, Michel Dupont, Daniel Sauvé, Daniel Mesmin, Jérémi Leclerc-Côté, Nadia Hilario.</p>

Culture
5 min de lecture
2e Techtoberfest à Gatineau, un beau succès
<div><p>Cette année encore, nous avons donné une large place à la réalité virtuelle dans les démonstrations qui étaient proposées, mais pas seulement puisque vous pouviez aussi découvrir des automobiles électriques sur notre stationnement comme une Tesla Model S.</p><p>Les joueurs ont été particulièrement gâtés. Ils ont pu tester un jeu de <i>Flappy Bird</i> contrôlé avec les ondes cérébrales grâce à un bandeau <a href="http://www.choosemuse.com">Muse</a>. Du côté jeux en réalité augmentée ou virtuelle, nous avions toute la panoplie des meilleurs outils : Oculus Rift, HTC Vive et Hololens de Microsoft. L’expérience <i>Richie’s Plank</i> sur HTC Vive, présentée par TCI, a suscité pas mal d’émotions : imaginez que vous devez marcher sur une étroite planche suspendue en haut d’un gratte-ciel et garder votre sang-froid… Escapade Ultime offrait aussi de découvrir plusieurs jeux sur la plateforme HTC Vive. Sur Oculus Rift, vous pouviez vivre des expériences spectaculaires avec un banc/volant de course permettant une parfaite immersion dans le jeu <i>Project Cars</i>. Les amateurs de destruction de robots révoltés pouvaient également tester leur habileté au tir avec <i>Robo Recall.</i></p><p>Nous avons aussi proposé une démonstration de l’outil Matterport qui nous a servi à réaliser une numérisation 3D de nos bureaux de Gatineau et que nous vous avons <a href="https://www.spiria.com/fr/blogue/environnement-de-travail/decouvrez-notre-bureau-de-gatineau-en-3d">récemment présenté</a>. </p><p>Les plus artistes d’entre nous ont pu découvrir l’application de sculpture <i><a href="https://www.masterpiecevr.com">Masterpiece VR</a></i> qui permet de faire de la modélisation 3D avec ses mains, en manipulant la matière virtuelle. Nos visiteurs pouvaient se faire numériser en 3D grâce à un scanneur présenté par <a href="http://mademill.com">MadeMill</a> pour ensuite voir leur version numérique en VR sur Oculus Rift. Et l’entreprise <a href="http://www.gibsonproduct.com">Gibson</a>, spécialisée dans le design industriel, nous a montré l’étendue de son savoir-faire.</p><p>Nous adressons un grand merci à nos partenaires : la maison <a href="http://www.williamjwalter.com/">William J. Walter</a> pour ses saucisses aussi savoureuses que variées et le <a href="http://bistrocoqlicorne.ca">bistro CoqLicorne</a> pour ses délicieux bretzels.</p><p>En résumé, une bien belle soirée qui nous a encore permis d’ouvrir nos portes à la communauté et de s’enrichir mutuellement. On dit souvent “jamais deux sans trois”… alors, se donne-t-on rendez-vous à l’automne 2018 pour un Techtoberfest III ? On va dire que oui :-)</p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-02.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-02.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-02.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-02.webp" alt="Techtoberfest, Gatineau." title="Techtoberfest, Gatineau."></source></source></source></picture></p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-03.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-03.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-03.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-03.webp" alt="Techtoberfest, Gatineau." title="Techtoberfest, Gatineau."></source></source></source></picture></p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-04.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-04.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-04.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-04.webp" alt="Techtoberfest, Gatineau." title="Techtoberfest, Gatineau."></source></source></source></picture></p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-05.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-05.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-05.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-05.webp" alt="Techtoberfest, Gatineau." title="Techtoberfest, Gatineau."></source></source></source></picture></p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-06.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-06.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-06.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-06.webp" alt="Techtoberfest, Gatineau." title="Techtoberfest, Gatineau."></source></source></source></picture></p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-07.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-07.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-07.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-07.webp" alt="Techtoberfest, Gatineau." title="Techtoberfest, Gatineau."></source></source></source></picture></p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-08.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-08.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-08.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-08.webp" alt="Techtoberfest, Gatineau." title="Techtoberfest, Gatineau."></source></source></source></picture></p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-01.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-01.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-01.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2206/techtoberfest-2017-01.webp" alt="Techtoberfest, Gatineau." title="Techtoberfest, Gatineau."></source></source></source></picture></p>

Culture
5 min de lecture
Construire un puits, donner le pouvoir aux individus d’aller plus loin
<div><p>En partenariat avec les membres de la communauté villageoise, nous avons aidé à construire un puits donnant accès à l’eau potable. L’accès facile à l’eau améliore non seulement les conditions sanitaires, mais donne également aux femmes un meilleur accès à l’éducation et à l’emploi en réduisant le temps passé à chercher l’eau pour assurer la subsistance de base.</p><h2>Une philosophie commune</h2><p>Ce projet nous a vraiment touchés pour de nombreuses raisons. Bien sûr, il est bon de faire le bien, d’autant plus que nous vivons dans une société privilégiée où l’accès à l’eau est considéré comme un acquis (il nous arrive même d’en avoir trop…). Mais plus que cela, il y a quelque chose du modèle de <a href="http://www.sopar-balavikasa.org/fr/">SOPAR</a> qui fait vraiment écho avec ce que nous faisons chez <a href="https://www.spiria.com/fr/">Spiria</a> au quotidien.</p><h2>Construire pour durer</h2><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2195/sopar-01.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2195/sopar-01.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2195/sopar-01.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2195/sopar-01.webp" alt="Photo SOPAR." title="Photo SOPAR."></source></source></source></picture></p><p>SOPAR ne fournit pas seulement des ressources aux communautés nécessiteuses : dans le cadre de leur modèle, la communauté doit également contribuer, en apportant des fonds et de la main-d’œuvre, mais surtout, en faisant participer la communauté par le biais d’un comité qui anime le projet. Ainsi, si le résultat concret est un puits avec des effets importants pour le village, le processus même du projet apporte encore plus d’avantages : les personnes impliquées gagnent de l’expérience dans le développement et les infrastructures comme dans l’organisation et la gestion d’équipes et de projets.</p><h2>Le pouvoir de faire plus</h2><p>Ce faisant, le modèle SOPAR renforce l’esprit d’entreprise et d’innovation. En améliorant la qualité de vie et en répondant aux besoins fondamentaux, sans quoi les communautés ne peuvent aller de l’avant, le puits rend l’innovation possible. Le processus de planification et d’organisation et la construction du puits permettent aux participants d’innover et d’avancer à leur manière, garantissant des succès durables dans le temps et autonomes.</p><h2>Les grands esprits se rencontrent</h2><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2195/sopar-02.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2195/sopar-02.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2195/sopar-02.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2195/sopar-02.webp" alt="Photo SOPAR." title="Photo SOPAR."></source></source></source></picture></p><p>Les objectifs humanitaires de SOPAR s’harmonisent très bien avec la façon dont nous abordons notre travail avec les clients. Nous les aidons à créer des outils qui leur permettent de tirer le meilleur parti de leur travail, et ainsi d’accélérer l’innovation. Nous œuvrons avec eux, en collaboration, plutôt que de leur imposer nos choix dans une relation sans lendemain. Nous essayons de les orienter sur la voie de l’innovation durable et du succès. SOPAR utilise la même approche pour amener de véritables changements durables dans les communautés vulnérables, en travaillant avec elles pour bâtir, avec leurs forces et leur dynamique propre.</p><h2>Laisser sa marque</h2><p>Nous avons beaucoup pensé à SOPAR ces derniers temps, car nous aimerions que cette dynamique se poursuive, peut-être avec un nouveau projet ou une initiative humanitaire. Notre équipe de Montréal a récemment donné en retour en participant à une <a href="https://www.spiria.com/fr/blogue/environnement-de-travail/ensemble-pour-nettoyer-le-quartier">corvée de nettoyage</a> communautaire. Les inondations dévastatrices dans la région de Gatineau ont suscité des comportements spontanés de gentillesse et de générosité. Chaque jour, il existe des preuves que les personnes qui travaillent ensemble peuvent avoir de grands résultats qui améliorent la qualité de vie.</p><p>Notre expérience avec SOPAR a été incroyablement inspirante : nous aimons ce projet, car il a construit quelque chose pour durer — pas seulement un puits, mais un avenir de plus grande liberté pour créer, améliorer et innover. Cela nous a également durablement impressionné en nous montrant que nous pouvons vraiment faire des changements dans le monde et dans la vie d’autrui quand nous le faisons en équipe. Il y a tellement de travail à faire, mais cela peut être fait, et nous pouvons y aider.</p>

Stratégie
5 min de lecture
Êtes-vous trop occupé pour innover ?
<div><h2>Qu’est-ce que l’innovation et pourquoi ? </h2><p>Le dictionnaire <i>Larousse</i> nous offre la définition suivante pour le <a href="http://www.larousse.fr/dictionnaires/francais/innover/43197">verbe innover</a> : <i>« Introduire quelque chose de nouveau pour remplacer quelque chose d’ancien dans un domaine quelconque »</i>.</p><p>C’est intéressant… mais pourquoi faut-il innover ? En quoi l’innovation est-elle importante ? </p><p>Innover est avant tout une façon de penser, c’est aussi un état d’être qui nous amène à toujours nous redéfinir en fonction des nouvelles connaissances acquises. À la lumière de ces nouvelles connaissances, nous pouvons reconceptualiser ce qui est déjà existant pour l’améliorer ou tout simplement inventer de nouvelles choses. </p><p>L’objectif de l’innovation devrait être de répondre à un besoin d’une manière plus efficace que le statu quo. Innover ne sert à rien si cela ne s’inscrit pas avant tout dans une démarche, dans une direction donnée. Pour une entreprise, l’innovation doit servir les besoins d’affaires ou opérationnels par exemple. </p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2064/too-busy-to-innovate.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2064/too-busy-to-innovate.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2064/too-busy-to-innovate.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2064/too-busy-to-innovate.webp" alt="Trop occupé pour innover." title="Trop occupé pour innover."></source></source></source></picture></p><p>Trop occupé pour innover. © DR.</p><p>Les entreprises qui ont compris que l’innovation, ou l’approche de l’amélioration continue, est importante ont constaté les avantages et bénéfices suivants :</p><ul><li>Rester ou devenir concurrentiels.</li><li>Apporter de la valeur à sa clientèle.</li><li>Se différencier et bonifier son offre.</li><li>Améliorer sa rentabilité en diminuant les coûts.</li><li>Améliorer son efficacité opérationnelle.</li><li>Rehausser la qualité et l’image de l’entreprise.</li><li>Mais aussi… rester vivant et avoir du plaisir.</li></ul><p>Mais pour parvenir à ces résultats, il faut s’être posé les bonnes questions au départ, lorsque l’on s’engage sur la voie de l’innovation :</p><ul><li>Quel est l’objectif de ce projet ? À quoi, à qui servira cette innovation ?</li><li>Quelles sont les solutions/ressources existantes (à l’interne, à l’externe) pour répondre au besoin ?</li><li>Quelle est la faisabilité de la solution envisagée ?</li><li>Quel est l’investissement lié à cette solution/innovation ? </li><li>Quel sera le retour sur investissement de ce projet ? </li><li>Dans combien de temps ce projet sera-t-il rentable ? </li><li>Quelles seront les retombées à court moyen et long terme ?</li></ul><p>L’innovation est plus facile à vivre en entreprise lorsqu’elle s’intègre dans un flux d’amélioration continue, qu’elle n’est pas un changement isolé et radical. Une entreprise qui n’innove pas se rend plus vulnérable à sa concurrence qui saura trouver le moyen de se démarquer davantage.</p><p>Ce qui finalement nous amène à conclure que l’innovation n’est pas importante… elle est essentielle. L’innovation doit faire partie intégrante des valeurs et de la culture d’entreprise, non seulement pour survivre, mais aussi pour « grandir » en tant qu’entreprise, et aussi en tant qu’être humain. </p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2064/maurice-lacroix-square-wheel-v.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2064/maurice-lacroix-square-wheel-v.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2064/maurice-lacroix-square-wheel-v.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2064/maurice-lacroix-square-wheel-v.webp" alt="Montre Maurice Lacroix." title="Montre Maurice Lacroix."></source></source></source></picture></p><p>Innover avec la roue carrée : montre à roue carrée pour les secondes, inventée par Michel Vermot, ingénieur en microtechnique. © Montres Maurice Lacroix.</p>

Stratégie
5 min de lecture
Anticiper et contrôler la dette technique
<div><p>Alors que de plus en plus d’entreprises basent leur modèle d’affaires sur la création ou l’implantation d’une plate-forme logicielle, la notion de durabilité des investissements en développement devient capitale. Pour cela, il est important de considérer la prise en compte de la dette technique quand vous planifiez la réalisation de votre plateforme logicielle.</p><p>La <a href="https://www.agilealliance.org/introduction-to-the-technical-debt-concept/">dette technique</a> est une métaphore créée par Ward Cunningham, l’inventeur du wiki, l’artisan de l’<i>Extreme programming</i> et l’un des rédacteurs du fameux <i>Manifeste agile</i>. Lorsque l’on prend des raccourcis ou que l’on fait des concessions lors du développement, que ce soit pour des questions de délais, de budget, de manque de rigueur ou encore de savoir-faire, on accumule une “dette” qu’il faudra rembourser dans le futur. Aussi, la valeur du code évolue et se déprécie généralement avec le temps. Aucun projet ne peut échapper à la dette technique. Il faut donc la contrôler, afin de réduire au minimum ses impacts financiers pendant toute la vie de la plateforme.</p><p>Les conséquences de l’accumulation d’une forte dette technique peuvent être désastreuses. Elle peut entraîner de la difficulté à faire évoluer une solution ou à s’arrimer à une nouvelle plateforme. L’utilisation de technologies ou de versions qui ne sont plus supportées peuvent rendre vulnérables à différentes menaces de sécurité. Une dette technique est toujours néfaste, car elle entraîne entre autres des coûts élevés de développement, handicape les possibilités de croissance de l’entreprise, en alourdit la gestion, exerce une pression sur les liquidités et beaucoup de soucis pour les gestionnaires. La qualité du code est donc un facteur important de la valeur d’une plateforme et souvent de la performance d’une organisation.</p> <p>Par exemple, un code non documenté et ne suivant pas les bonnes pratiques de l’industrie deviendra difficile à transférer si jamais il appert que vous deviez internaliser le développement ou bien transférer le service de développement à un autre prestataire. Ces transferts peuvent arriver durant toutes les années d’évolution d’un système logiciel et sont généralement très coûteux. Il est ainsi important de s’enquérir des bonnes pratiques lorsque vous choisissez votre partenaire de développement. </p><h2>Que faire lorsque votre projet a mal vieilli ?</h2><p>Si vous avez développé votre plateforme logicielle en interne, il est souvent nécessaire de rencontrer une entreprise de développement afin de faire un audit du code. Pour faire suite à leurs constats et recommandations, il faudra prioriser et planifier les modifications à faire. Pour cela, il faut bien comprendre les problèmes relevés et les impacts d’un code désuet et de mauvaise qualité. Évidemment, et tout comme la dette financière, l’on prendra des décisions lorsque le coût de réparation de la dette est inférieur à ses bénéfices et peut être amorti. </p><h2>Comment s’en prémunir sur les nouveaux projets ?</h2> <p>Dans bien des cas, il est préférable d’investir un peu plus au départ pour obtenir un développement qui offrira plus de pérennité. Voici quatre pistes de solutions : </p><ol><li>Choisir une équipe ou une firme sérieuse qui tentera de comprendre en amont avec vous la vision à court, moyen et long terme de votre solution ainsi que les objectifs d’affaires, afin de sélectionner des technologies qui pourront s’adapter à cette évolution. </li><li>Avoir une bonne documentation du code. Cela permet de réduire les coûts de maintenance/support, tout en facilitant des transferts.</li><li>Se doter de tests automatisés qui permettent de détecter d’éventuelles pertes dans l’intégrité et la précision des fonctionnalités du logiciel. </li><li>Finalement, disposer d’une gestion des bogues et implanter des techniques de DevOps qui permettront de veiller en continu à la bonne santé de votre système logiciel et d’agir selon vos priorités stratégiques. </li></ol><h2>En somme </h2><p>La gestion de la dette technique s’inscrit dans une dynamique de durabilité et d’investissement responsable. Il existe des solutions afin de la réduire et de planifier un écosystème technologique plus durable. Il est important de choisir ses coéquipiers ou sa firme de développement en fonction de leur maturité à gérer cette complexité.</p>

Nouvelles
5 min de lecture
15 ans, déjà !
<div><p>En effet, qui aurait pu prédire en 2003 qu’une microentreprise composée de deux personnes deviendrait 15 ans plus tard un important acteur du développement logiciel avec près de 150 employés répartis sur 4 grandes villes du Nord-est américain ?</p><p>Si les débuts ont été forcément modestes, Spiria a su rapidement dépasser la classique relation client-fournisseur pour nouer avec ses clients de solides relations de confiance, des quasi-partenariats, ce qui lui a permis d’assurer sa pérennité et de gérer sa croissance. Ainsi, des entreprises comme la multinationale Autodesk, qui édite des logiciels de création 2D et 3D, ou l’américaine Acosta, qui offre des services marketing-ventes et comporte plus de 35 000 employés, travaillent de façon ininterrompue avec Spiria depuis plus d’une décennie.</p><p>Outre l’accent mis sur les relations d’affaires durables, le succès de Spiria tient également de la diversité de ses savoir-faire et de ses implantations qui lui permettent d’offrir des services de proximité à toujours plus d’entreprises. Après avoir passé dix ans à se développer à Montréal, l’entreprise s’est engagée dans une politique de croissance géographique. En débutant par Ottawa-Gatineau en 2014, suivi de Boston en 2017 puis de Toronto en ce début de 2018. Cette phase de croissance, qui est loin d’être achevée, s’est déroulée sans aucun compromis sur la qualité de service et dans le plus grand respect de nos valeurs d’entreprise. </p><p>Ce développement accéléré a été couronné depuis 6 années consécutives par une place au PROFIT 500, le classement des 500 entreprises canadiennes qui connaissent la croissance la plus rapide. </p><p>Le succès de Spiria repose aussi en grande partie sur les talents passionnés qui forment l’équipe, car il s’agit avant tout d’une aventure humaine. Les Spiriens et Spiriennes sont les ambassadeurs d’une culture basée sur l’innovation, la flexibilité et la collaboration. Une culture qui est l’ingrédient essentiel de la réussite de chacun de nos projets de développement logiciel.</p><p>Alors, bien sûr, nous allons fêter ce quinzième anniversaire comme il se doit, mais nous avons déjà le regard qui porte sur ce que nous serons en 2023, pour notre vingtième !</p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2239/spiria-15.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2239/spiria-15.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2239/spiria-15.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2239/spiria-15.png" alt="Spiria, 15e." title="Spiria, 15e."></source></source></source></picture></p>

Développement sur mesure
5 min de lecture
Ce qu’il faut considérer avant d’investir dans le « cloud »
<div><p>Le plus grand avantage des services <i>cloud</i>, c’est bien sûr leur interopérabilité et leur flexibilité : elles permettent aux utilisateurs d’accéder à leurs données, leurs fichiers et leurs applications à partir de n’importe quel appareil et de n’importe où. Pour les entreprises, le bénéfice réside surtout dans la possibilité d’externaliser des éléments absolument nécessaires au bon fonctionnement d’une compagnie (logiciels, serveurs) mais qui représentaient auparavant des investissements initiaux et une gestion considérables. </p><p>Voici un court survol de ce qu’il faut considérer avant de décider de se tourner vers ces technologies.</p><h2>Les services offerts</h2><p>Il existe trois principaux volets d’offre dans les technologies <i>cloud</i>.</p> <p>1. <b>Infrastructure as a Service</b> (Infrastructure en tant que service).</p><p>Ce volet permet aux entreprises qui ne souhaitent pas investir massivement dans les composantes matérielles et leur entretien de se procurer des serveurs ou de l’espace pour entreposer des données. </p><p>2. <b>Software as a Service</b> (Logiciel en tant que service).</p><p>Il s’agit du volet de loin le plus important et qui connaît la plus forte croissance. Le modèle d’affaires est habituellement l’abonnement : les utilisateurs peuvent payer pour une période donnée, mais aussi pour un certain volume d’utilisation, ou encore au besoin ponctuel.</p><p>3. <b>Platform as a Service</b> (Plate-forme en tant que service).</p><p>C’est le service “Infrastructure as a Service” augmenté d’une surcouche logicielle. Par exemple, dans le cas d’un serveur virtuel, c’est le prestataire qui fournit, installe et maintient le système d’exploitation.</p><h2>Les coûts à long terme</h2><p>Les technologies <i>cloud</i> permettent d’amortir l’investissement en TI, c’est vrai : au lieu de payer un gros montant au départ pour acquérir des composantes matérielles ou logicielles, le prix est désormais fixe et habituellement prévisible, soit par utilisateur, soit par volume d’utilisation.</p><p>En plus des coûts d’acquisition, une entreprise peut également épargner en termes de main d’œuvre, puisqu’il n’y a plus d’installation et puisque le fournisseur de services <i>cloud</i> se charge des mises à jour et autres opérations du genre.</p><p>Mais il convient de bien faire ses calculs ; sur le moyen ou long terme, la solution infonuagique n’est pas nécessairement la plus économique.</p><h2>La sécurité</h2><p>En cette ère où la sécurité informatique est si primordiale, peut-on vraiment toujours être certain que les données qui se retrouvent dans le nuage sont bien protégées ? Après tout, les « menaces » sont nombreuses et les « exploits » de pirates occupent régulièrement les grands titres des nouvelles. </p><p>Avoir un totale confiance en un fournisseur de technologies <i>cloud</i> est donc véritablement crucial. Il faut savoir qu’il existe des standards de meilleures pratiques à rechercher chez les fournisseurs potentiels. Il est par ailleurs possible de consulter des sites d’évaluation de technologies <i>cloud</i> telles que Chekkt, qui répertorie plus de 3 000 outils technologiques d’affaires et les classe par satisfaction et commentaires des utilisateurs.</p><h2>Le support</h2><p>Puisque le support et la maintenance ne sont plus assurés à l’interne, c’est plus que jamais important d’obtenir un plan de support le plus complet possible de la part du fournisseur, idéalement 24 heures/7 jours ! </p><p>Le temps total d’indisponibilité garanti devrait également être le plus bas possible, de l’ordre de 0,01 %.</p><h2>La période d’essai</h2><p>Avant de conclure une entente avec un fournisseur de services <i>cloud</i>, il est toujours préférable d’obtenir une période d’essai gratuit et/ou de tester avec un projet pilote. </p><p>L’essai permet non seulement d’expérimenter avec l’outil, mais également de mieux cibler les besoins et d’avoir une meilleure idée du niveau de service recherché.</p><h2>La fonctionnalité d’export</h2><p>Dans le pire des scénarios, l’implantation d’une solution <i>cloud</i> peut ne pas fonctionner. C’est pourquoi tout fournisseur devrait permettre une manière accessible d’exporter les données afin de les rapatrier localement. Cette fonctionnalité pourrait de plus s’avérer très utile dans le cas où le fournisseur cesserait ses activités.</p><p>Tout compte fait, mis à part certaines exceptions, les avantages de migrer vers les technologies <i>cloud</i> surpassent souvent les inconvénients. Mais comme toujours lorsqu’on traite de données et de processus d’affaires, la diligence demeure requise !</p>

Coin des développeurs
5 min de lecture
Laveuse connectée avec Raspberry Pi
<h2>Recherche</h2><p>J’ai dès lors commencé une petite recherche sur Internet pour me mettre un peu plus au courant des possibilités qui m’étaient disponibles avec le Raspberry Pi. En cherchant pour des projets similaires, j’ai vu que différentes personnes ayant tenté l’expérience avaient approché le problème de différentes manières :</p><ol> <li>Certains utilisaient un système basé sur un détecteur de vibrations.</li> <li>Certains utilisaient un détecteur de luminosité pour vérifier l’état de l’indicateur de marche de la laveuse.</li> <li>D’autres tentaient de se brancher directement sur le circuit électronique de la laveuse.</li></ol><p>Il était hors de question que je risque de briser ma laveuse en bidouillant dans ses circuits électroniques, alors l’option 3 n’était pas pour moi. Ensuite, ceux qui utilisaient l’option 2 devaient souvent coller de l’appareillage à l’avant de la laveuse, ce qui me semblait bien inélégant.</p><p>Il me restait donc l’option 1, celle du détecteur de vibrations.</p><h3>Détecteur de vibrations</h3><p>Ici encore, j’avais un choix à faire parmi plusieurs possibilités. Il existe différentes technologies de détecteurs de vibrations : électromécanique, piézoélectrique, optique…</p><p>J’ai choisi un peu au hasard, je l’avoue, d’utiliser un détecteur de vibration électromécanique. Le composant principal d’un tel détecteur est l’interrupteur à senseur de vibrations SW-18010P.</p><p><img src="https://mirror.spiria.com/site/assets/files/1932/sw18010p.png" alt="sw18010p" title="sw18010p"></p><p>Il s’agit d’un composant très simple, consistant en une tige métallique se situant au centre d’un ressort. Quand le composant vibre, le ressort fait contact avec la tige métallique, ce qui ferme le circuit électrique.</p><p>Afin d'adapter le signal généré par le composant aux niveaux de tension requis par les entrées numériques du Raspberry Pi, j'ai choisi d'utiliser un petit circuit de conditionnement du signal.</p><p>N’ayant pas conçu de circuits électriques depuis l’université, je me suis tourné une fois de plus vers Internet pour m’indiquer comment utiliser ce composant avec le Raspberry Pi. J’ai trouvé sur Amazon un petit module pour environ 5 dollars qui combinait le SW-18010P avec un comparateur de tension LM393.</p><p><img src="https://mirror.spiria.com/site/assets/files/1932/vibration_sensor_module_1.png" alt=""><img src="https://mirror.spiria.com/site/assets/files/1932/vibration_sensor_module_schema_0.jpg" alt=""></p><p>Ce module peut être directement alimenté par le Raspberry Pi (3.3 V), et son signal peut être directement fourni à l’entrée de celui-ci, ce qui répondait à mes besoins.</p><h3>Notifications « push »</h3><p>Le but premier du projet étant de me notifier à distance quand le cycle de lavage est terminé, je devais trouver une façon simple (autant que possible) d’envoyer des notifications à partir de mon Raspberry Pi jusqu’à mon téléphone. J’avais déjà utilisé un service de notifications <i>push</i> nommé <a href="https://pushover.net">Pushover</a> pour un projet antérieur, et je savais déjà comment il fonctionnait. J’ai donc décidé de réutiliser mon compte existant sur ce service pour le projet.</p><p>Il existe beaucoup de services concurrents. Certains demandent des frais mensuels pour avoir le droit d’envoyer un certain nombre de notifications push. Le service <i>Pushover</i> propose plutôt de payer une seule fois pour une application (pour téléphone intelligent/tablette, ou pour desktop), ce qui donne le droit à un certain nombre de notifications gratuites par mois. Pour mes besoins non-commerciaux, cela me semblait plus approprié.</p><p>Une fois mon compte créé sur le site, une clé d’utilisateur m’a été attribuée. Cette clé est nécessaire pour recevoir les notifications sur mes appareils. Ensuite, pour chaque application ou script que je crée et qui enverra des notifications, je dois créer une clé d’application. Pour ce projet, il a donc suffi que je crée une nouvelle clé d’application. Voici un aperçu de la page décrivant mon compte <i>Pushover</i> :</p><p><img src="https://mirror.spiria.com/site/assets/files/1932/pushover.png" alt=""></p><p>L’envoi d’une notification à partir de Python consiste en l’envoi d’un message POST (HTTP) contenant ma clé d’usager, la clé d’application et le message à afficher.</p><h2>Conception du système</h2><p>Une fois le composant reçu, il m’a fallu penser à ce dont j’avais besoin pour produire ma solution complète. Je voulais :</p><ol> <li>Être capable d’indiquer au Raspberry Pi qu’un cycle de lavage commençait (pour éviter qu’il ne détecte des vibrations ambiantes comme étant des cycles de lavage).</li> <li>Avoir une certaine rétroaction visuelle confirmant le fonctionnement normal du système (puisqu’aucun écran ne sera connecté au Raspberry Pi).</li> <li>Recevoir une alerte sur mon téléphone mobile une fois le cycle de lavage terminé.</li></ol><p>En fouillant dans mon petit ensemble de composants, je trouvai ce dont j’avais besoin : un bouton-poussoir pour démarrer le cycle, et une DEL pour m’indiquer que le Raspberry Pi était bien en train de monitorer les vibrations de la laveuse.</p><p>Et comme l’ensemble de composants que j’ai reçu avec mon Raspberry Pi contenait un adaptateur WiFi, je n’avais aucun problème pour envoyer via Internet mes notifications.</p><h3>Familiarisation avec le Raspberry Pi</h3><p>La première étape à proprement parler était d’installer un système d’exploitation sur la carte micro SD de mon Raspberry Pi. Cela s’est avéré très facile : le site <a href="https://www.raspberrypi.org">raspberrypi.org</a> fournit le nécessaire pour créer une carte micro SD contenant le programme d’amorçage NOOBS qui permet de choisir un système d’exploitation à installer sur la carte. J’ai décidé d’installer le système d’exploitation Raspbian, puisqu’il était basé sur Linux et semblait contenir une bonne partie de ce dont j’aurais besoin pour mon projet dès le départ.</p><p>Une fois Raspbian installé, j’ai fait le tour de ce qui était installé avec le système pour avoir une idée des possibilités. J’ai vite vu que Python était préinstallé, ce qui me semblait être une plateforme de choix pour développer mon petit projet. Une courte recherche sur le web me permit de trouver la librairie RPi.GPIO qui permet de contrôler les différentes entrées et sorties numériques du Raspberry PI.</p><p>J’ai commencé par essayer de contrôler l’allumage d’une DEL pour me familiariser avec la librairie. Pour ce faire, j’ai connecté la DEL au Raspberry Pi avec une résistance en série pour fournir le courant approprié nécessaire à son allumage. Le circuit ressemblait à ceci :</p><p><img src="https://mirror.spiria.com/site/assets/files/1932/led-control.png" alt=""></p><p>La librairie RPi.GPIO étant très facile à utiliser, j’ai pu faire fonctionner mon petit prototype avec très peu de lignes de code :</p><pre><code>try: # importation des librairies nécessaires import RPi.GPIO as GPIO import timeexcept RuntimeError: print("Error loading RPi.GPIO")# définition de la broche de sortie connectée à la DELLED = 37def main(): try: # configuration des broches GPIO GPIO.setmode(GPIO.BOARD) GPIO.setup(LED, GPIO.OUT) while True: # après 2 secondes, allumer la DEL (en lui fournissant un GND) time.sleep(2) GPIO.output(LED, False) # après 2 secondes, éteindre la DEL (en lui fournissant 3.3V) time.sleep(2) GPIO.output(LED, True) except: print(“Quit on exception”) finally: GPIO.cleanup()if __name__ == '__main__' : main()</code></pre><p>Mon premier test étant concluant, je pouvais alors passer aux choses sérieuses.</p><h3>Circuit final</h3><p>Maintenant que je savais comment contrôler la librairie RPi.GPIO, il ne me restait plus qu’à intégrer dans mon circuit le bouton-poussoir pour démarrer le cycle de lavage, puis le détecteur de vibrations pour savoir quand le cycle est terminé.</p><p>Le bouton poussoir a une connexion normalement ouverte, qui se ferme (établit la connexion) quand on appuie sur le bouton. Une des terminaisons du bouton doit être connectée à l’alimentation (3.3v venant du RPi), et l’autre, à une des broches GPIO du RPi (j’ai choisi la broche 33 — GPIO 13). De cette façon, une pression du bouton-poussoir enverra un signal de 3.3v au RPi. Ceci n’est par contre pas suffisant pour assurer un bon fonctionnement du système. Le problème est qu’utilisé tel quel, lorsque le bouton-poussoir est en position normale (circuit ouvert), la broche 33, qui est configurée en tant qu’entrée, n’est plus connectée à rien. Elle se trouve donc en état flottant, soit ni à 3.3v (niveau haut), ni au GND (niveau bas). Il existe une façon matérielle de régler ce problème, soit en connectant entre la broche 33 et le GND une haute résistance (appelée « pull-down »). Cependant, le Raspberry Pi fournit déjà implicitement des résistances « pull-down » et « pull-up » sur chacune de ses broches GPIO. Il est donc possible de configurer ces broches à partir du logiciel pour les connecter à une résistance interne au RPi, ce que je vais faire plus bas.</p><p>Quant au détecteur de vibrations, son fonctionnement est on ne peut plus simple. Il suffit de l’alimenter à même le Raspberry Pi, puis de brancher sa broche de sortie à une des broches GPIO du RPi, configurée en tant qu’entrée.</p><p>Voici à quoi ressemble le circuit final :</p><p><img src="https://mirror.spiria.com/site/assets/files/1932/circuit-final.png" alt=""><img src="https://mirror.spiria.com/site/assets/files/1932/circuit-final-schema.png" alt=""></p><p>Et le code :</p><pre><code>try: # Importation des librairies nécessaires import RPi.GPIO as GPIO import time import http.client, urllib # pour les notifications push import logging # pour le débogageexcept RuntimeError: print("Error loading RPi.GPIO")DELAYINSECS = 180 # Délai en secondes avant de déclarer le cycle terminé# Définition des broches d'entrées/sorties du RPiBUTTON = 33LED = 37VIBRATION = 31# Fonction qui envoie une notification push à l'aide de pushover.netdef pushdone(): conn = http.client.HTTPSConnection("api.pushover.net:443") conn.request("POST", "/1/messages.json", urllib.parse.urlencode({ "token": "", "user": "", "message": "Le lavage est prêt", }), { "Content-type": "application/x-www-form-urlencoded" }) conn.getresponse()def main(): try: # Configuration des broches GPIO GPIO.setmode(GPIO.BOARD) GPIO.setup(VIBRATION, GPIO.IN) GPIO.setup(LED, GPIO.OUT) # Une résistance "pull-down" doit être ajoutée à l'entrée du # bouton poussoir pour éviter d'avoir une valeur flottante à # l'entrée du RPi quand le bouton n'est pas en position fermée. GPIO.setup(BUTTON, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) # Début de l'observation de tout front montant ou descendant sur # la broche connectée au détecteur de vibrations. L'argument # "bouncetime" permet d'ignorer l'effet de rebondissement causé # par le changement d'état soudain. GPIO.add_event_detect(VIBRATION, GPIO.BOTH, bouncetime=200) # Configuration d'un fichier journal de débogage sur le RPi logging.basicConfig(filename='/home/pi/washer.log', level=logging.INFO, format='%(asctime)s %(levelname)s:%(message)s') logging.info("****************************") stop = False logging.info("Entering main loop") # Boucle principale qui attendra que le bouton-poussoir soit # enfoncé pour indiquer le début du cycle, puis débutera la # vérification périodique de la vibration. while not stop: logging.info("Main loop iteration") GPIO.output(LED, True) # LED éteinte GPIO.wait_for_edge(BUTTON, GPIO.RISING) # attente d'un signal # du bouton poussoir logging.info(" Started") going = True GPIO.output(LED, False) # LED allumée # Boucle secondaire du programme qui vérifiera chaque # 3 minutes si une vibration a eu lieu durant ce délai. # Si la vérification ne rapporte pas de vibration pendant # 3 minutes, le cycle est considéré terminé. while going: logging.info(" Inner loop iteration") time.sleep(DELAYINSECS) logging.info(" Just slept %ds", DELAYINSECS) # Dispositif de contournement pour arrêter le cycle # courant manuellement en gardant le bouton-poussoir # appuyé durant la vérification. if GPIO.input(BUTTON): stop = True going = False # Fin du cycle si aucune vibration n'a été détectée. if not GPIO.event_detected(VIBRATION): logging.info(" Stopped vibrating") pushdone() going = False logging.debug(" End of iteration") except: logging.warning("Quit on exception") finally: logging.info("Cleaning up") GPIO.remove_event_detect(VIBRATION) GPIO.cleanup()if __name__ == '__main__': main()</code></pre><p>Une fois le code écrit dans un fichier texte (/home/pi/washer_cycle.py), il suffisait d’ajouter au script de lancement de Raspbian (/etc/rc.local) des instructions pour lancer le script en mode superutilisateur dès le démarrage du système (la librairie RPi.GPIO a quelques problèmes de compatibilité en mode utilisateur, d’où la nécessité d’exécuter la commande avec sudo).</p><ul> <li>À la fin de /etc/rc.local :</li></ul><pre><code>/home/pi/script_auto_run</code></pre><ul> <li>Dans /home/pi/script_auto_run :</li></ul><pre><code>#!/bin/bashecho "Autorun washer script"sudo /usr/bin/python3 /home/pi/washer_cycle.py</code></pre><h2>Test ultime</h2><p>Il est maintenant temps de tester l’appareil en situation réelle ! J’ai installé mon appareil sur le dessus de ma machine à laver, lancé un cycle de lavage et appuyé sur le bouton poussoir. La DEL s’est allumée pour m’indiquer le bon fonctionnement du script.</p><p><img src="https://mirror.spiria.com/site/assets/files/1932/laveuse.png" alt=""></p><p>Finalement, après environ une heure, j’ai bel et bien reçu une notification sur mon téléphone :</p><p><img src="https://mirror.spiria.com/site/assets/files/1932/push.png" alt=""></p>

Coin des développeurs
5 min de lecture
Un minuteur de douche avec un module ESP8266
<h2>Principe de fonctionnement</h2><p>Une vanne à bille motorisée est installée sur la sortie d’eau chaude du chauffe-eau. Elle est accouplée avec un débitmètre électronique. Grâce à ce dernier, un petit dispositif à base de microcontrôleur surveille la consommation d’eau chaude et quand une certaine période d’utilisation continue est atteinte, il actionne à plusieurs reprises la fermeture et l’ouverture de l’électrovanne afin d’envoyer le message clair à la personne sous la douche que son temps autorisé est dépassé.</p><h2>Matériel requis</h2><p>Pour ce projet, j’ai choisi d’utiliser une carte Adafruit Huzzah ESP8266. Son prix est modeste et elle propose plein de fonctionnalités intéressantes à utiliser. En premier lieu, c’est une carte WiFi, ce qui autorise son contrôle à distance. Elle peut ainsi être initialisée comme point d’accès, permettant de s’y connecter et de la configurer pour qu’elle rejoigne le réseau de la maison. En second lieu, elle peut faire tourner un serveur Web et accepte les mises à jour distantes de son programme. Une fois que le programme (croquis/sketch) est installé, il n’est donc plus nécessaire de se connecter via son port USB pour le mettre à jour. Enfin, l’ESP8266 vient avec un régulateur de tension intégré. On peut abaisser le courant sortant de l’alimentation de la valve (5 V) à un niveau pouvant être géré par les broches GPIO.</p><ul> <li><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-01.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-01.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-01.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2016/mrshower-01.jpg" alt="Adafruit HUZZAH ESP8266." title="Adafruit HUZZAH ESP8266."></source></source></source></picture> <a href="https://www.adafruit.com/product/2471">Adafruit HUZZAH ESP8266</a>.</li> <li style="clear: both;"><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-02.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-02.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-02.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2016/mrshower-02.jpg" alt="USB to TTL Serial Cable." title="USB to TTL Serial Cable."></source></source></source></picture> <a href="https://www.adafruit.com/products/954">Câble USB vers TTL (série)</a>.</li> <li style="clear: both;"><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-03.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-03.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-03.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2016/mrshower-03.webp" alt="MISOL 3/4” DN20 Electronic Flow Meter." title="MISOL 3/4” DN20 Electronic Flow Meter."></source></source></source></picture> Un <a href="https://www.aliexpress.com/popular/electronic-flow-meter.html">débitmètre électronique 3/4"</a> (AliExpress).</li> <li style="clear: both;"><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-04.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-04.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-04.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2016/mrshower-04.webp" alt="Motorized Ball Valve - CR02 wiring." title="Motorized Ball Valve - CR02 wiring."></source></source></source></picture>Une <a href="https://www.aliexpress.com/popular/motorized-ball-valve.html">vanne à bille motorisée, 5 V, 3/4"</a> (AliExpress).</li> <li style="clear: both;"><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-05b.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-05b.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-05b.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2016/mrshower-05b.webp" alt="5V 2A DC Power Supply." title="5V 2A DC Power Supply."></source></source></source></picture>Une <a href="https://www.amazon.ca/s/ref=nb_sb_noss_2?url=search-alias%3Daps&field-keywords=5+Volt+Power+Supply">alimentation 5 V</a> (Amazon).</li> <li style="clear: both; padding-top: 2em;">Une plaque d’essai (breadboard), du fil électrique, un boîtier de projet.</li></ul><h2>Schéma de câblage</h2><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-06.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-06.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-06.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2016/mrshower-06.webp" alt="Wiring Diagram." title="Wiring Diagram."></source></source></source></picture></p><h2>Installation</h2><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-07.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-07.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-07.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2016/mrshower-07.webp" alt="Installation." title="Installation."></source></source></source></picture></p><h2>Programme</h2><p>La logique est assez simple. Une routine d’interruption surveille les impulsions générées par le débitmètre. Ces impulsions sont accumulées et une minuterie, chaque minute, appelle une routine qui stocke les impulsions accumulées dans un tableau pouvant contenir jusqu’à 15 minutes de données. Si toutes les cellules du tableau contiennent une valeur autre que 0, le contrôleur ferme puis ouvre la vanne.</p><h2>Code source</h2><pre><code>// MrShower// Created by Patrick Walsh.//// Hot Water monitoring system installed at the intake of a hot water tank.// When hot water has been running for 15 minutes an electrical ball valve will cycle off and on every minute until usage ends.( Shower ) an elc//#include <esp8266httpupdateserver.h>#include <esp8266mdns.h>#include <esp8266wifi.h>#include <ticker.h> #include "WiFiManager.h"#define SKETCH_VERSION 1.0#define HAL_SENSOR_PIN 15 // Flowmeter Hal sensor is connected to this pin #define MONITOR_MINS 15 // Showers can last a maximum of 15 mins before warning kicks in#define SHOWER_SHUTOFF_WARNING_TIME 5.0 // Duration valve will be closed to warn time is up#define TIMER_PERIOD 60.0 // Period required to calculate RPM of Hal effect sensor#define VALVE_CLOSE_CTRL_PIN 12 // Relay connected to the electrical valve Open Wire #define VALVE_OPEN_CTRL_PIN 14 // Relay connected to the electrical valve Close Wire #define VALVE_TRANSIT_DELAY 2.0 // Time taken for valve to move from closed state ot open state//// Global variables//const char* g_HostName = "MrShower"; // DuhESP8266WebServer g_HttpServer(80); // Http server we will be providingESP8266HTTPUpdateServer g_HttpUpdater(false); // A OverTheAir update service. Http://MrShower.local/updateTicker g_MonitoringTimer; // Interupt timer used for counting minutesunsigned g_Rpms[MONITOR_MINS]; // History of rpms in the last "n" minutes// global variables accessed from ISR that need to be protectedvolatile bool g_FlashWater = false; // True if valve needs to be closed temporarilyvolatile unsigned g_HallSensorPulses = 0; // FlowMeter pulses that have occurred in the current minutevolatile bool g_WaterOn = false; // State of Valve //// Forward Declarations//void closeWaterValve();void openWaterValve();void onHallEffect();void onTimerTick();void webServerHandleRoot();void webServerHandleNotFound();void webServerHandleOpenCmd();void webServerHandleCloseCmd();void webServerHandleResetCmd();void webServerHandleCycleCmd();/////////////////////////////////////////////////////////////////////// Setup is called at initialization///////////////////////////////////////////////////////////////////////void setup(){ // Initialize Relay control pinMode(VALVE_CLOSE_CTRL_PIN, OUTPUT); pinMode(VALVE_OPEN_CTRL_PIN, OUTPUT); // Make sure the water valve is open. openWaterValve(); g_HallSensorPulses = 0; // Setup an Access point in order to allow network setup WiFiManager wifiManager; wifiManager.autoConnect( g_HostName ); WiFi.mode( WIFI_STA ); WiFi.softAPdisconnect( true ); // Establish a connection with our configured access point while( WiFi.waitForConnectResult() != WL_CONNECTED ) { WiFi.begin(); } // install web serv handlers. g_HttpServer.on("/", webServerHandleRoot ); g_HttpServer.onNotFound( webServerHandleNotFound ); g_HttpServer.on("/open", webServerHandleOpenCmd); g_HttpServer.on("/close", webServerHandleCloseCmd ); g_HttpServer.on("/reset", webServerHandleResetCmd ); g_HttpServer.on("/cycle", webServerHandleCycleCmd ); // Add OTA update service provided by library "/update" command g_HttpUpdater.setup( &g_HttpServer ); g_HttpServer.begin( ); // Register web services we expose with Bonjour MDNS.begin( g_HostName ); MDNS.addService( "http", "tcp", 80 ); // Clear the array of rpms memset( g_Rpms, 0, sizeof( g_Rpms ) ); // Attach Hall Sensor to HAL_SENSOR_PIN. // ISR called when voltage rises to match one // revolution of the flowmeter turbine attachInterrupt( HAL_SENSOR_PIN, onHallEffect, RISING ); // Start a timer which will treat the reading of the hall sensor and calculate RPM g_MonitoringTimer.attach( TIMER_PERIOD, onTimerTick );}/////////////////////////////////////////////////////////////////////// Code in the loop method will be run repeatedly/////////////////////////////////////////////////////////////////////void loop() { // Allow webserver to process queue of requests sent to it. g_HttpServer.handleClient(); if( g_FlashWater ) { // Need to cycle the hot water valve closeWaterValve( ); delay( SHOWER_SHUTOFF_WARNING_TIME * 1000 ); openWaterValve( ); g_FlashWater = false; }}/////////////////////////////////////////////////////////////////////// Close water valve by controlling 2 relays connected// to ball valve motor/////////////////////////////////////////////////////////////////////void closeWaterValve(){ digitalWrite( VALVE_OPEN_CTRL_PIN, HIGH ); digitalWrite( VALVE_CLOSE_CTRL_PIN, LOW ); delay( VALVE_TRANSIT_DELAY * 1000 ); digitalWrite(VALVE_CLOSE_CTRL_PIN, HIGH ); g_WaterOn = false;}/////////////////////////////////////////////////////////////////////// Open water valve by controlling 2 relays connected// to ball valve motor/////////////////////////////////////////////////////////////////////void openWaterValve(){ digitalWrite( VALVE_CLOSE_CTRL_PIN, HIGH ); digitalWrite( VALVE_OPEN_CTRL_PIN, LOW ); delay( VALVE_TRANSIT_DELAY * 1000 ); digitalWrite( VALVE_OPEN_CTRL_PIN, HIGH ); g_WaterOn = true;}/////////////////////////////////////////////////////////////////////// Interrupt routine called when FlowMeter is generating Hal Effect pulses./////////////////////////////////////////////////////////////////////void onHallEffect(){ // Increase the number of pulses detected by the HallEffect sensor // of the water flowmeter g_HallSensorPulses++;}/////////////////////////////////////////////////////////////////////// Timer-driven callback routine called every minute./////////////////////////////////////////////////////////////////////void onTimerTick(){ // At every clock tick, once per minute, interrupts temporarily disabled while // accumulated pulses generated by flowmeter sensor are read and reset. This gives us a rpm value. cli( ); // disable interupts long l_rpm = g_HallSensorPulses; // copy rpm value locally g_HallSensorPulses = 0; // sensor reading done for this minute sei( ); // reenable interrupts // shift the content of the array to the right 1 memmove( &g_Rpms[1], &g_Rpms[0], sizeof( g_Rpms ) - sizeof( g_Rpms[0] ) ); // Set the latest reading in array g_Rpms[0] = l_rpm; int l_numUsedTicks = 0; for( int idx = 0; idx < MONITOR_MINS; idx++ ) { if( g_Rpms[idx] ) { l_numUsedTicks++; } } // Do we need to flash hot water if( l_numUsedTicks >= MONITOR_MINS && !g_FlashWater ) { g_FlashWater = true; // Set last element of array to 0 to delay next hot water valve cycle by one minute g_Rpms[ MONITOR_MINS - 1 ] = 0; }}/////////////////////////////////////////////////////////////////////// Web Server section/////////////////////////////////////////////////////////////////////void webServerHandleRoot() { String message; message += g_HostName; message += "Version "; message += SKETCH_VERSION; message += " \n"; message += "FlowMeter revolutions this minute "; message += g_HallSensorPulses; message += " \n"; message += g_WaterOn == true ? "Valve is Opened" : "Valve is Closed"; message += " : "; for(int idx = 0; idx < MONITOR_MINS; idx++) { message += g_Rpms[idx]; message += " "; } message += " \n"; message += "Commands : /open /close /update /cycle /reset\n"; g_HttpServer.send(200, "text/plain", message ); }/////////////////////////////////////////////////////////////////////// Unknown page requested/////////////////////////////////////////////////////////////////////void webServerHandleNotFound() { String message = "File Not Found\n\n"; message += "URI: "; message += g_HttpServer.uri(); message += "\nMethod: "; message += (g_HttpServer.method() == HTTP_GET) ? "GET" : "POST"; message += "\nArguments: "; message += g_HttpServer.args(); message += "\n"; for (uint8_t i = 0; i < g_HttpServer.args(); i++) { message += " " + g_HttpServer.argName(i) + ": " + g_HttpServer.arg(i) + "\n"; } g_HttpServer.send(404, "text/plain", message);}/////////////////////////////////////////////////////////////////////// Open requested/////////////////////////////////////////////////////////////////////void webServerHandleOpenCmd(){ g_HttpServer.send(200, "text/plain", "Opening Valve"); openWaterValve();} /////////////////////////////////////////////////////////////////////// Close requested/////////////////////////////////////////////////////////////////////void webServerHandleCloseCmd(){ g_HttpServer.send(200, "text/plain", "Closing Valve"); closeWaterValve();}/////////////////////////////////////////////////////////////////////// Reset requested/////////////////////////////////////////////////////////////////////void webServerHandleResetCmd(){ memset( g_Rpms, 0, sizeof( g_Rpms ) ); openWaterValve(); g_HttpServer.send(200, "text/plain", "System was reset" );}/////////////////////////////////////////////////////////////////////// Cycle the valve off and on/////////////////////////////////////////////////////////////////////void webServerHandleCycleCmd(){ g_HttpServer.send(200, "text/plain", "Cycling water valve" ); // Set the Flash water variable to true. // The loop routine, when true, will cycle the water valve, g_FlashWater = true;}</ticker.h></esp8266wifi.h></esp8266mdns.h></esp8266httpupdateserver.h></code></pre><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-08.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-08.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/2016/mrshower-08.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/2016/mrshower-08.png" alt="Web Server." title="Web Server."></source></source></source></picture></p><p style="display: block;padding: 0.5em 2em 0.7em 2em;margin: 1em 0 2em 0;background-color: #fff;border-radius:4px;box-shadow: 1px 7px 15px 0 rgba(47,57,64,0.2);text-align: center;"><b><i>Le saviez-vous ?</i></b><br>Les équipes de Spiria ont une longue expérience en <a href="https://www.spiria.com/fr/services/developpement-axe-performance/developpement-logiciel-sur-mesure/">développement de logiciel sur mesure</a> et peuvent vous aider sur tout projet d’envergure.</p><h2>Idées d'améliorations</h2><ul> <li>Enregistrer la consommation d’eau chaude par mois ou par année.</li> <li>Fournir une interface utilisateur pour faciliter la configuration (temps de douche autorisé, temporisation des cycles de la vanne).</li> <li>Ajouter un capteur d’eau au sol pour détecter les fuites accidentelles du chauffe-eau.</li> <li>Prise en charge d’Apple Homekit ou d’un autre réseau domotique.</li></ul>