PageSourceSearch

https://www.tmplab.org/

html tmplab.org collected 2026-10-03 20:17:01 UTC 257,889 bytes, 2,374 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-US" class="no-js">
3<head>
4	<meta charset="UTF-8">
5	<meta name="viewport" content="width=device-width, initial-scale=1">
6	<link rel="profile" href="http://gmpg.org/xfn/11">
7		
7<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>
7
8<title>/tmp/lab &#8211; Creative use of technology</title>
9<meta name='robots' content='max-image-preview:large' />
10<link rel='dns-prefetch' href='//fonts.googleapis.com' />
11<link href='https://fonts.gstatic.com' crossorigin rel='preconnect' />
12<link rel="alternate" type="application/rss+xml" title="/tmp/lab &raquo; Feed" href="https://www.tmplab.org/feed/" />
13<link rel="alternate" type="application/rss+xml" title="/tmp/lab &raquo; Comments Feed" href="https://www.tmplab.org/comments/feed/" />
14<style id="wp-img-auto-sizes-contain-inline-css">
15img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
16/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
17</style>
18<style id="wp-emoji-styles-inline-css">
19
20	img.wp-smiley, img.emoji {
21		display: inline !important;
22		border: none !important;
23		box-shadow: none !important;
24		height: 1em !important;
25		width: 1em !important;
26		margin: 0 0.07em !important;
27		vertical-align: -0.1em !important;
28		background: none !important;
29		padding: 0 !important;
30	}
31/*# sourceURL=wp-emoji-styles-inline-css */
32</style>
33<style id="wp-block-library-inline-css">
34:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
34--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
35
36/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */
37</style>
38<style id="wp-block-heading-inline-css">
39h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg}
40/*# sourceURL=https://www.tmplab.org/wp-includes/blocks/heading/style.min.css */
41</style>
42<style id="wp-block-image-inline-css">
43.wp-block-image>a,.wp-block-image>figure>a{display:inline-block}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}@media not (prefers-reduced-motion){.wp-block-image img.hide{visibility:hidden}.wp-block-image img.show{animation:show-content-image .4s}}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull>a,.wp-block-image.alignwide>a{width:100%}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-image.is-style-circle-mask img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}:root :where(.wp-block-image.is-style-rounded img,.wp-block-image .is-style-rounded img){border-radius:9999px}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;backdrop-filter:blur(16px) saturate(180%);background-color:rgba(90,90,90,.25);border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:16px;text-align:center;top:16px;width:20px;z-index:100}@media not (prefers-reduced-motion){.wp-lightbox-container button{transition:opacity .2s ease}}.wp-lightbox-container button:focus-visible{outline:3px auto rgba(90,90,90,.25);outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:rgba(90,90,90,.25);border:none}.wp-lightbox-overlay{box-sizing:border-box;
43cursor:zoom-out;height:100vh;left:0;overflow:hidden;position:fixed;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .wp-lightbox-close-button{align-items:center;cursor:pointer;display:flex;font-family:inherit;gap:8px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 4px;position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .wp-lightbox-close-button:focus,.wp-lightbox-overlay .wp-lightbox-close-button:hover,.wp-lightbox-overlay .wp-lightbox-close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .wp-lightbox-close-button:has(.wp-lightbox-close-text:not([hidden])) .wp-lightbox-close-icon svg{height:1em;width:1em}.wp-lightbox-overlay .wp-lightbox-close-icon svg{display:block}.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{align-items:center;bottom:16px;cursor:pointer;display:flex;font-family:inherit;gap:4px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 8px;position:absolute;z-index:2000002}.wp-lightbox-overlay .wp-lightbox-navigation-button-next[hidden],.wp-lightbox-overlay .wp-lightbox-navigation-button-prev[hidden]{display:none}@media (min-width:960px){.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{bottom:50%;transform:translateY(-50%)}}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:not(:hover):not(:active):not(.has-background),.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:not(:hover):not(:active):not(.has-background){background:none;border:none;padding:0 8px}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg{display:block;height:1.5em;width:1.5em}.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{left:calc(env(safe-area-inset-left) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-button-next{right:calc(env(safe-area-inset-right) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-icon svg{vertical-align:middle}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);left:50%;overflow:hidden;position:absolute;top:50%;transform:translate(-50%,-50%);transform-origin:top left;width:var(--wp--lightbox-container-width);z-index:2000001}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:0 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{visibility:visible}@media not (prefers-reduced-motion){.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active) img{animation:turn-off-visibility .25s both}.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active){animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}
43@keyframes show-content-image{0%{visibility:hidden}99%{visibility:hidden}to{visibility:visible}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(-50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(-50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}}
44/*# sourceURL=https://www.tmplab.org/wp-includes/blocks/image/style.min.css */
45</style>
46<style id="wp-block-list-inline-css">
47ol,ul{box-sizing:border-box}:root :where(.wp-block-list.has-background){padding:1.25em 2.375em}
48/*# sourceURL=https://www.tmplab.org/wp-includes/blocks/list/style.min.css */
49</style>
50<style id="wp-block-paragraph-inline-css">
51.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}
52/*# sourceURL=https://www.tmplab.org/wp-includes/blocks/paragraph/style.min.css */
53</style>
54<style id="wp-block-code-inline-css">
55.wp-block-code{box-sizing:border-box}.wp-block-code code{direction:ltr;display:block;font-family:inherit;overflow-wrap:break-word;text-align:initial;white-space:break-spaces}
56/*# sourceURL=https://www.tmplab.org/wp-includes/blocks/code/style.min.css */
57</style>
58<style id="wp-block-quote-inline-css">
59.wp-block-quote{box-sizing:border-box;overflow-wrap:break-word}.wp-block-quote.is-large:where(:not(.is-style-plain)),.wp-block-quote.is-style-large:where(:not(.is-style-plain)){margin-bottom:1em;padding:0 1em}.wp-block-quote.is-large:where(:not(.is-style-plain)) p,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) p{font-size:1.5em;font-style:italic;line-height:1.6}.wp-block-quote.is-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-large:where(:not(.is-style-plain)) footer,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer{font-size:1.125em;text-align:right}.wp-block-quote>cite{display:block}
60/*# sourceURL=https://www.tmplab.org/wp-includes/blocks/quote/style.min.css */
61</style>
62<style id="wp-block-separator-inline-css">
63@charset "UTF-8";.wp-block-separator{border:none;border-top:2px solid}:root :where(.wp-block-separator.is-style-dots){height:auto;line-height:1;text-align:center}:root :where(.wp-block-separator.is-style-dots):before{color:currentColor;content:"···";font-family:serif;font-size:1.5em;letter-spacing:2em;padding-left:2em}.wp-block-separator.is-style-dots{background:none!important;border:none!important}
64/*# sourceURL=https://www.tmplab.org/wp-includes/blocks/separator/style.min.css */
65</style>
66
67<style id="classic-theme-styles-inline-css">
68/*! This file is auto-generated */
69.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
70/*# sourceURL=/wp-includes/css/classic-themes.min.css */
71</style>
72
73<style id="global-styles-inline-css">
74:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #fff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--dark-gray: #1a1a1a;--wp--preset--color--medium-gray: #686868;--wp--preset--color--light-gray: #e5e5e5;--wp--preset--color--blue-gray: #4d545c;--wp--preset--color--bright-blue: #007acc;--wp--preset--color--light-blue: #9adffd;--wp--preset--color--dark-brown: #402b30;--wp--preset--color--medium-brown: #774e24;--wp--preset--color--dark-red: #640c1f;--wp--preset--color--bright-red: #ff675f;--wp--preset--color--yellow: #ffef8e;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
740) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-dark-gray-color{color: var(--wp--preset--color--dark-gray) !important;}.has-medium-gray-color{color: var(--wp--preset--color--medium-gray) !important;}.has-light-gray-color{color: var(--wp--preset--color--light-gray) !important;}.has-blue-gray-color{color: var(--wp--preset--color--blue-gray) !important;}.has-bright-blue-color{color: var(--wp--preset--color--bright-blue) !important;}.has-light-blue-color{color: var(--wp--preset--color--light-blue) !important;}.has-dark-brown-color{color: var(--wp--preset--color--dark-brown) !important;}.has-medium-brown-color{color: var(--wp--preset--color--medium-brown) !important;}.has-dark-red-color{color: var(--wp--preset--color--dark-red) !important;}.has-bright-red-color{color: var(--wp--preset--color--bright-red) !important;}.has-yellow-color{color: var(--wp--preset--color--yellow) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-dark-gray-background-color{background-color: var(--wp--preset--color--dark-gray) !important;}.has-medium-gray-background-color{background-color: var(--wp--preset--color--medium-gray) !important;}.has-light-gray-background-color{background-color: var(--wp--preset--color--light-gray) !important;}.has-blue-gray-background-color{background-color: var(--wp--preset--color--blue-gray) !important;}.has-bright-blue-background-color{background-color: var(--wp--preset--color--bright-blue) !important;}.has-light-blue-background-color{background-color: var(--wp--preset--color--light-blue) !important;}.has-dark-brown-background-color{background-color: var(--wp--preset--color--dark-brown) !important;}.has-medium-brown-background-color{background-color: var(--wp--preset--color--medium-brown) !important;}.has-dark-red-background-color{background-color: var(--wp--preset--color--dark-red) !important;}.has-bright-red-background-color{background-color: var(--wp--preset--color--bright-red) !important;}.has-yellow-background-color{background-color: var(--wp--preset--color--yellow) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-dark-gray-border-color{border-color: var(--wp--preset--color--dark-gray) !important;}.has-medium-gray-border-color{border-color: var(--wp--preset--color--medium-gray) !important;}.has-light-gray-border-color{border-color: var(--wp--preset--color--light-gray) !important;}.has-blue-gray-border-color{border-color: var(--wp--preset--color--blue-gray) !important;}.has-bright-blue-border-color{border-color: var(--wp--preset--color--bright-blue) !important;}.has-light-blue-border-color{border-color: var(--wp--preset--color--light-blue) !important;}.has-dark-brown-border-color{border-color: var(--wp--preset--color--dark-brown) !important;}.has-medium-brown-border-color{border-color: var(--wp--preset--color--medium-brown) !important;}.has-dark-red-border-color{border-color: var(--wp--preset--color--dark-red) !important;}.has-bright-red-border-color{border-color: var(--wp--preset--color--bright-red) !important;}.has-yellow-border-color{border-color: var(--wp--preset--color--yellow) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
74.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
75/*# sourceURL=global-styles-inline-css */
76</style>
77
78<link rel='stylesheet' id='twentysixteen-fonts-css' href='https://fonts.googleapis.com/css?family=Merriweather%3A400%2C700%2C900%2C400italic%2C700italic%2C900italic%7CMontserrat%3A400%2C700%7CInconsolata%3A400&#038;subset=latin%2Clatin-ext' media='all' />
79<link rel='stylesheet' id='genericons-css' href='https://www.tmplab.org/wp-content/themes/twentysixteen/genericons/genericons.css?ver=3.4.1' media='all' />
80<link rel='stylesheet' id='twentysixteen-style-css' href='https://www.tmplab.org/wp-content/themes/twentysixteen/style.css?ver=7.1.2' media='all' />
81<link rel='stylesheet' id='twentysixteen-block-style-css' href='https://www.tmplab.org/wp-content/themes/twentysixteen/css/blocks.css?ver=20181230' media='all' />
82<script id="jquery-core-js" src="https://www.tmplab.org/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 82
82
83<script id="jquery-migrate-js" src="https://www.tmplab.org/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
83
84<link rel="https://api.w.org/" href="https://www.tmplab.org/wp-json/" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.tmplab.org/xmlrpc.php?rsd" />
85<meta name="generator" content="WordPress 7.1.2" />
86</head>
87
88<body class="home blog wp-embed-responsive wp-theme-twentysixteen group-blog hfeed">
89<div id="page" class="site">
90	<div class="site-inner">
91		<a class="skip-link screen-reader-text" href="#content">Skip to content</a>
92
93		<header id="masthead" class="site-header" role="banner">
94			<div class="site-header-main">
95				<div class="site-branding">
96					
97											<h1 class="site-title"><a href="https://www.tmplab.org/" rel="home">/tmp/lab</a></h1>
98											<p class="site-description">Creative use of technology</p>
99									</div><!-- .site-branding -->
100
101									<button id="menu-toggle" class="menu-toggle">Menu</button>
102
103					<div id="site-header-menu" class="site-header-menu">
104													<nav id="site-navigation" class="main-navigation" role="navigation" aria-label="Primary Menu">
105								<div class="menu-header-menu-container"><ul id="menu-header-menu" class="primary-menu"><li id="menu-item-673" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-673"><a href="https://www.tmplab.org/about/">About</a></li>
106<li id="menu-item-1856" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1856"><a href="https://www.tmplab.org/calendar/">Calendar</a></li>
107<li id="menu-item-654" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-654"><a href="https://www.tmplab.org/category/events/">Events</a>
108<ul class="sub-menu">
109	<li id="menu-item-648" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-648"><a href="https://www.tmplab.org/category/events/bwm2009/">BWM2009</a></li>
110	<li id="menu-item-660" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-660"><a href="https://www.tmplab.org/category/events/hsf2009/">HSF2009</a></li>
111	<li id="menu-item-658" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-658"><a href="https://www.tmplab.org/category/events/har2009/">HAR2009</a></li>
112	<li id="menu-item-651" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-651"><a href="https://www.tmplab.org/category/events/endp2010/">ENDP2010</a></li>
113	<li id="menu-item-653" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-653"><a href="https://www.tmplab.org/category/events/estive-numerique-digital-peak-2010/">Estive Numérique &#8211; Digital Peak 2010</a></li>
114	<li id="menu-item-664" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-664"><a href="https://www.tmplab.org/category/events/phsf2010/">PHSF2010</a></li>
115	<li id="menu-item-659" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-659"><a href="https://www.tmplab.org/category/events/hes2010/">HES2010</a></li>
116	<li id="menu-item-1135" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1135"><a href="https://www.tmplab.org/category/events/hes2014/">HES2014</a></li>
117</ul>
118</li>
119<li id="menu-item-666" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-666"><a href="https://www.tmplab.org/category/projects/">Projects</a>
120<ul class="sub-menu">
121	<li id="menu-item-646" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-646"><a href="https://www.tmplab.org/category/projects/tmp-usine/">/tmp/usine</a></li>
122	<li id="menu-item-649" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-649"><a href="https://www.tmplab.org/category/projects/cos/">Church of Security</a></li>
123	<li id="menu-item-656" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-656"><a href="https://www.tmplab.org/category/projects/geodepollution/">GeoDepollution</a></li>
124	<li id="menu-item-661" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-661"><a href="https://www.tmplab.org/category/projects/milkymist/">milkymist</a></li>
125	<li id="menu-item-662" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-662"><a href="https://www.tmplab.org/category/projects/neurohack/">Neurohack</a></li>
126	<li id="menu-item-647" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-647"><a href="https://www.tmplab.org/category/events/estive-numerique-digital-peak-2010/alternative-energy/">Alternative Energy</a></li>
127</ul>
128</li>
129<li id="menu-item-671" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-671"><a href="https://www.tmplab.org/wiki/">Wiki</a></li>
130<li id="menu-item-674" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-674"><a href="https://www.tmplab.org/wiki/index.php/Workshops">Workshops</a></li>
131<li id="menu-item-672" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-672"><a href="https://www.tmplab.org/contact/">Contacts</a></li>
132</ul></div>							</nav><!-- .main-navigation -->
133						
134											</div><!-- .site-header-menu -->
135							</div><!-- .site-header-main -->
136
137					</header><!-- .site-header -->
138
139		<div id="content" class="site-content">
140
141	<div id="primary" class="content-area">
142		<main id="main" class="site-main" role="main">
143
144		
145			
146			
147<article id="post-1940" class="post-1940 post type-post status-publish format-standard has-post-thumbnail hentry category-events category-news category-organisation category-wiki tag-agenda">
148	<header class="entry-header">
149		
150		<h2 class="entry-title"><a href="https://www.tmplab.org/2023/09/29/rentree-2023-quoi-de-neuf-au-lab/" rel="bookmark">Rentrée 2023 : quoi de neuf au lab ?</a></h2>	</header><!-- .entry-header -->
151
152				<div class="entry-summary">
153				<p>Pleins d&#8217;activités à venir au /tmp/lab en cette rentrée 2023. Retrouvez tous les événéments sur notre agenda.  </p>
154			</div><!-- .entry-summary -->
155			
156	
157	<a class="post-thumbnail" href="https://www.tmplab.org/2023/09/29/rentree-2023-quoi-de-neuf-au-lab/" aria-hidden="true">
158		<img width="832" height="512" src="https://www.tmplab.org/wp-content/uploads/2023/09/tmpcexzi19k.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Rentrée 2023 : quoi de neuf au lab ?" decoding="async" fetchpriority="high" srcset="https://www.tmplab.org/wp-content/uploads/2023/09/tmpcexzi19k.png 832w, https://www.tmplab.org/wp-content/uploads/2023/09/tmpcexzi19k-300x185.png 300w, https://www.tmplab.org/wp-content/uploads/2023/09/tmpcexzi19k-768x473.png 768w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 60vw, (max-width: 1362px) 62vw, 840px" />	</a>
159
160		
161	<div class="entry-content">
162		
163<hr class="wp-block-separator"/>
164
165
166
167<p class="wp-block-paragraph"><strong>📅</strong> <strong>AGENDA</strong> <a href="https://nc1.tmplab.org/apps/calendar/p/cPkTK9MEdXrqdNN2/dayGridMonth/no">Voir dans un navigateur</a></p>
168
169
170
171<p class="wp-block-paragraph">🔗 <strong>CALDAV</strong> <a href="https://md.interhacker.space/oVz30PDYT8C5eoGg9BVWKw?edit">https://md.interhacker.space/oVz30PDYT8C5eoGg9BVWKw?edit</a></p>
172
173
174
175<p class="wp-block-paragraph">🗒️ <strong>PAD</strong> <a href="https://md.interhacker.space/oVz30PDYT8C5eoGg9BVWKw?view">https://md.interhacker.space/oVz30PDYT8C5eoGg9BVWKw?view</a></p>
176
177
178
179<p class="wp-block-paragraph">📱 <strong>CALENDAR SYNC </strong><a href="https://tmplab.org/wiki/index.php/Synchronize_Calendar#Synchronize_the_.2Ftmp.2Flab_calendar_on_your_phone">Import the Calendar on your phone</a> </p>
180
181
182
183<hr class="wp-block-separator"/>
184
185
186
187<p class="wp-block-paragraph"><strong>Retrouvez tous les événéments sur notre agenda</strong> pour prendre connaissance des dates et des thèmes.</p>
188
189
190
191<p class="wp-block-paragraph"><strong>Consulter le pad</strong> pour avoir les détails des événéments et poser vos questions, </p>
192	</div><!-- .entry-content -->
193
194	<footer class="entry-footer">
195		<span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=49&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&#038;d=mm&#038;r=g 2x' class='avatar avatar-49 photo' height='49' width='49' decoding='async'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.tmplab.org/author/alban/">alban</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.tmplab.org/2023/09/29/rentree-2023-quoi-de-neuf-au-lab/" rel="bookmark"><time class="entry-date published" datetime="2023-09-29T13:29:07+02:00">September 29, 2023</time><time class="updated" datetime="2023-09-29T13:33:08+02:00">September 29, 2023</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.tmplab.org/category/events/" rel="category tag">Events</a>, <a href="https://www.tmplab.org/category/news/" rel="category tag">News</a>, <a href="https://www.tmplab.org/category/organisation/" rel="category tag">Organisation</a>, <a href="https://www.tmplab.org/category/wiki/" rel="category tag">Wiki</a></span><span class="tags-links"><span class="screen-reader-text">Tags </span><a href="https://www.tmplab.org/tag/agenda/" rel="tag">agenda</a></span><span class="comments-link"><a href="https://www.tmplab.org/2023/09/29/rentree-2023-quoi-de-neuf-au-lab/#respond">Leave a comment<span class="screen-reader-text"> on Rentrée 2023 : quoi de neuf au lab ?</span></a></span>			</footer><!-- .entry-footer -->
196</article><!-- #post-1940 -->
197
198<article id="post-1927" class="post-1927 post type-post status-publish format-standard has-post-thumbnail hentry category-conferences category-french category-software category-video tag-conference tag-fediverse tag-video-2">
199	<header class="entry-header">
200		
201		<h2 class="entry-title"><a href="https://www.tmplab.org/2023/07/24/presentation-de-mastodon-2023-07/" rel="bookmark">Présentation de Mastodon 2023.07</a></h2>	</header><!-- .entry-header -->
202
203				<div class="entry-summary">
204				<p>Présentation de Mastodon, le réseau social distribué, en vidéo, de manière succincte.</p>
205			</div><!-- .entry-summary -->
206			
207	
208	<a class="post-thumbnail" href="https://www.tmplab.org/2023/07/24/presentation-de-mastodon-2023-07/" aria-hidden="true">
209		<img width="1200" height="629" src="https://www.tmplab.org/wp-content/uploads/2023/07/preview.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Présentation de Mastodon 2023.07" decoding="async" srcset="https://www.tmplab.org/wp-content/uploads/2023/07/preview.jpg 1201w, https://www.tmplab.org/wp-content/uploads/2023/07/preview-300x157.jpg 300w, https://www.tmplab.org/wp-content/uploads/2023/07/preview-1024x537.jpg 1024w, https://www.tmplab.org/wp-content/uploads/2023/07/preview-768x403.jpg 768w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 60vw, (max-width: 1362px) 62vw, 840px" />	</a>
210
211		
212	<div class="entry-content">
213		
214<p class="wp-block-paragraph"><strong><a href="https://joinmastodon.org/">Mastodon</a></strong>, qu’est ce que c’est ?</p>
215
216
217
218<p class="wp-block-paragraph">Un réseau social <strong>distribué</strong>, c’est à dire <strong>décentralisé</strong> et <strong>interopérable</strong>.</p>
219
220
221
222<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="450" src="https://www.tmplab.org/wp-content/uploads/2023/07/ezgif-2-60f1b00403-1.gif" alt="" class="wp-image-1929"/><figcaption><em>Illustrations </em>par Eugen Rochko</figcaption></figure>
223
224
225
226<p class="wp-block-paragraph"><strong>Décentralisé</strong>&nbsp;:  Chaque serveur Mastodon est 
227totalement indépendant, mais capable d’interagir avec les autres pour 
228former un réseau social mondial.</p>
229
230
231
232<p class="wp-block-paragraph"><strong>Interopérable</strong> : Basé sur des protocoles web ouverts,  Mastodon peut communiquer avec n’importe quelle autre plateforme qui  implémente <strong>ActivityPub</strong>. Avec un seul compte, vous avez accès à tout un  univers de médias sociaux — le <strong>Fédiverse</strong>.</p>
233
234
235
236<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="903" height="1024" src="https://www.tmplab.org/wp-content/uploads/2023/07/Fediverse_AllProcotols_v1.1_13.05.2022-903x1024.png" alt="" class="wp-image-1930" srcset="https://www.tmplab.org/wp-content/uploads/2023/07/Fediverse_AllProcotols_v1.1_13.05.2022-903x1024.png 903w, https://www.tmplab.org/wp-content/uploads/2023/07/Fediverse_AllProcotols_v1.1_13.05.2022-265x300.png 265w, https://www.tmplab.org/wp-content/uploads/2023/07/Fediverse_AllProcotols_v1.1_13.05.2022-768x871.png 768w, https://www.tmplab.org/wp-content/uploads/2023/07/Fediverse_AllProcotols_v1.1_13.05.2022.png 1129w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
237
238
239
240<p class="wp-block-paragraph">Chaque serveur a ses propres règles, de contenus, de modérations etc. Choisissez celui qui vous convient le mieux : <a href="https://joinmastodon.org/fr/servers">https://joinmastodon.org/fr/servers</a></p>
241
242
243
244<p class="wp-block-paragraph">Grégoire Ganne  &#8211; <a href="https://greboca.com/Mastodon-Le-reseau-social-qui-vous-veut-du-bien.html">Une présentation en vidéo de Mastodon</a></p>
245
246
247
248<iframe loading="lazy" title="Présentation de Mastodon 2023.07" src="https://vdo.greboca.com/videos/embed/6bdb7697-60be-4768-a52d-dd738320403c" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups" width="560" height="315" frameborder="0"></iframe>
249
250
251
252<p class="wp-block-paragraph"></p>
253	</div><!-- .entry-content -->
254
255	<footer class="entry-footer">
256		<span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/733e5fa32286afbc2a03e0f86ac9be75f8bc15ed8858e24158d081aa9a02ff8c?s=49&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/733e5fa32286afbc2a03e0f86ac9be75f8bc15ed8858e24158d081aa9a02ff8c?s=98&#038;d=mm&#038;r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy' decoding='async'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.tmplab.org/author/lautre/">
256lautre</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.tmplab.org/2023/07/24/presentation-de-mastodon-2023-07/" rel="bookmark"><time class="entry-date published updated" datetime="2023-07-24T18:14:10+02:00">July 24, 2023</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.tmplab.org/category/conferences/" rel="category tag">Conferences</a>, <a href="https://www.tmplab.org/category/french/" rel="category tag">French</a>, <a href="https://www.tmplab.org/category/software/" rel="category tag">software</a>, <a href="https://www.tmplab.org/category/video/" rel="category tag">Video</a></span><span class="tags-links"><span class="screen-reader-text">Tags </span><a href="https://www.tmplab.org/tag/conference/" rel="tag">conference</a>, <a href="https://www.tmplab.org/tag/fediverse/" rel="tag">fediverse</a>, <a href="https://www.tmplab.org/tag/video-2/" rel="tag">video</a></span><span class="comments-link"><a href="https://www.tmplab.org/2023/07/24/presentation-de-mastodon-2023-07/#respond">Leave a comment<span class="screen-reader-text"> on Présentation de Mastodon 2023.07</span></a></span>			</footer><!-- .entry-footer -->
257</article><!-- #post-1927 -->
258
259<article id="post-1908" class="post-1908 post type-post status-publish format-standard has-post-thumbnail hentry category-code category-english">
260	<header class="entry-header">
261		
262		<h2 class="entry-title"><a href="https://www.tmplab.org/2023/01/26/deploying-spa-to-vercel/" rel="bookmark">Deploying Quasar (Vue) SPA to Vercel</a></h2>	</header><!-- .entry-header -->
263
264	
265	
266	<a class="post-thumbnail" href="https://www.tmplab.org/2023/01/26/deploying-spa-to-vercel/" aria-hidden="true">
267		<img width="768" height="768" src="https://www.tmplab.org/wp-content/uploads/2023/01/computer-security-painted-by-nicolas-de-stael2.jpeg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Deploying Quasar (Vue) SPA to Vercel" decoding="async" loading="lazy" srcset="https://www.tmplab.org/wp-content/uploads/2023/01/computer-security-painted-by-nicolas-de-stael2.jpeg 768w, https://www.tmplab.org/wp-content/uploads/2023/01/computer-security-painted-by-nicolas-de-stael2-300x300.jpeg 300w, https://www.tmplab.org/wp-content/uploads/2023/01/computer-security-painted-by-nicolas-de-stael2-150x150.jpeg 150w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 60vw, (max-width: 1362px) 62vw, 840px" />	</a>
268
269		
270	<div class="entry-content">
271		
272<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://www.tmplab.org/wp-content/uploads/2023/01/computer-security-painted-by-nicolas-de-stael2.jpeg" alt="" class="wp-image-1914" width="231" height="231" srcset="https://www.tmplab.org/wp-content/uploads/2023/01/computer-security-painted-by-nicolas-de-stael2.jpeg 768w, https://www.tmplab.org/wp-content/uploads/2023/01/computer-security-painted-by-nicolas-de-stael2-300x300.jpeg 300w, https://www.tmplab.org/wp-content/uploads/2023/01/computer-security-painted-by-nicolas-de-stael2-150x150.jpeg 150w" sizes="auto, (max-width: 231px) 85vw, 231px" /><figcaption>Nerd developing at home, with the style of Nicolas de Staël, courtesy of <a href="https://stablediffusionweb.com/">Stable Diffusion</a></figcaption></figure>
273
274
275
276<p class="wp-block-paragraph">Working with <a href="https://quasar.dev/">Quasar</a> (<a href="https://vuejs.org/">Vue.js</a> based) is a bliss for Web UI / SPA / etc&#8230; development. Especially is you use <a href="https://vitejs.dev/">Vite</a>, for the speed of site build. I highly recommend it. Now <a href="https://vercel.com/">vercel</a> makes it super easy to host and test your app online.</p>
277
278
279
280<p class="wp-block-paragraph">Here is a little problem I encountered, so I&#8217;m sharing (so that the monster Internet search engines that swallow everything can index this little helper blog post).</p>
281
282
283
284<p class="wp-block-paragraph">Contrary to what you can find in Quasar Documentation, namely <a href="https://quasar.dev/quasar-cli-vite/developing-spa/deploying">here</a>, the vercel.json file content should not be:</p>
285
286
287
288<pre class="wp-block-code"><code>{
289  "routes": [
290    { "handle": "filesystem" },
291    { "src": "/.*", "dest": "/index.html" }
292  ]
293}
294</code></pre>
295
296
297
298<p class="wp-block-paragraph">But rather it should be:</p>
299
300
301
302<pre class="wp-block-code"><code>{
303  "routes": [
304    { "handle": "filesystem" },
305    { "src": "/.*", "dest": "/" }
306  ]
307}
308</code></pre>
309
310
311
312<p class="wp-block-paragraph">(My pull request to quasar to fix this was accepted and is now fixed in their doc)</p>
313
314
315
316<p class="wp-block-paragraph">Basically it&#8217;s because you don&#8217;t know that it&#8217;s gonna be an index.html handling the traffic: it&#8217;s not. It&#8217;s the application residing at / that handles everything.</p>
317
318
319
320<p class="wp-block-paragraph">happy Quasar &amp; Vercel !</p>
321	</div><!-- .entry-content -->
322
323	<footer class="entry-footer">
324		<span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/a4453a4988a5c5d304ba448a3c7aa79b0cf54b308fd043219fd5bb029a8d2d49?s=49&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/a4453a4988a5c5d304ba448a3c7aa79b0cf54b308fd043219fd5bb029a8d2d49?s=98&#038;d=mm&#038;r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy' decoding='async'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.tmplab.org/author/phil/">phil</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.tmplab.org/2023/01/26/deploying-spa-to-vercel/" rel="bookmark"><time class="entry-date published" datetime="2023-01-26T22:40:45+01:00">January 26, 2023</time><time class="updated" datetime="2023-04-27T17:00:25+02:00">April 27, 2023</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.tmplab.org/category/code/" rel="category tag">code</a>, <a href="https://www.tmplab.org/category/english/" rel="category tag">English</a></span><span class="comments-link"><a href="https://www.tmplab.org/2023/01/26/deploying-spa-to-vercel/#respond">Leave a comment<span class="screen-reader-text"> on Deploying Quasar (Vue) SPA to Vercel</span></a></span>			</footer><!-- .entry-footer -->
325</article><!-- #post-1908 -->
326
327<article id="post-1890" class="post-1890 post type-post status-publish format-standard has-post-thumbnail hentry category-art category-conferences category-news category-video tag-ai tag-conference">
328	<header class="entry-header">
329		
330		<h2 class="entry-title"><a href="https://www.tmplab.org/2023/01/19/conference-usages-creatifs-de-lia-slides-et-videos/" rel="bookmark">
330Conférence Usages Créatifs de l&#8217;IA : Slides et Vidéos</a></h2>	</header><!-- .entry-header -->
331
332				<div class="entry-summary">
333				<p>Suite à cette conférence, nous publions les vidéos et les slides des présentateurs et présentatrices qui nous ont fait l&#8217;honneur d&#8217;y présenter leur travail.</p>
334			</div><!-- .entry-summary -->
335			
336	
337	<a class="post-thumbnail" href="https://www.tmplab.org/2023/01/19/conference-usages-creatifs-de-lia-slides-et-videos/" aria-hidden="true">
338		<img width="1200" height="605" src="https://www.tmplab.org/wp-content/uploads/2023/01/AIConf_peertube_playlist.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Conférence Usages Créatifs de l&#8217;IA : Slides et Vidéos" decoding="async" loading="lazy" srcset="https://www.tmplab.org/wp-content/uploads/2023/01/AIConf_peertube_playlist.png 1372w, https://www.tmplab.org/wp-content/uploads/2023/01/AIConf_peertube_playlist-300x151.png 300w, https://www.tmplab.org/wp-content/uploads/2023/01/AIConf_peertube_playlist-1024x516.png 1024w, https://www.tmplab.org/wp-content/uploads/2023/01/AIConf_peertube_playlist-768x387.png 768w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 60vw, (max-width: 1362px) 62vw, 840px" />	</a>
339
340		
341	<div class="entry-content">
342		
343<p class="wp-block-paragraph"></p>
344
345
346
347<p class="wp-block-paragraph"><a href="https://tube.interhacker.space/w/p/sKw7qBFxSTRU4oEdB86LYr" style="  display: inline-block;
348  background: #59e;
349  border-radius: 26px;
350  padding: 10px 20px;
351  color: white;
352  font-weight: bold;
353  text-decoration: none;">Cliquer ici pour la playlist complète</a></p>
354
355
356
357<p class="wp-block-paragraph">Yassin Siouda &#8211; <strong><em><a href="https://www.tmplab.org/wp-content/uploads/2023/01/Des_gpu_et_des_Images.pdf">Des gpu et des Images (slides)</a></em></strong></p>
358
359
360
361<iframe loading="lazy" title="[Usages Créatifs de l'IA ] Yassin Siouda - Des gpu et des Images" src="https://tube.interhacker.space/videos/embed/27dfa47d-6954-4eb8-a0f2-93d2e1a595c0" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups" width="100%" height="520" frameborder="0"></iframe>
362<br><br><br>
363
364
365
366<p>Barbara Matijević &#8211; <strong><em>Présentation de la pièce &#8220;Screenagers 2&#8221; présentée au théâtre le 18 janvier</em></strong></p>
367<iframe loading="lazy" title="[Usages Créatifs de l'IA ] Barbara Matijević - Screenagers 2 et ParanoAI" src="https://tube.interhacker.space/videos/embed/c3a2ecac-6929-4ce9-9932-9075f4587e03" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups" width="100%" height="520" frameborder="0"></iframe>
368<br><br><br>
369
370
371
372<p>Anthony &#8211; <strong><em><a href="https://www.tmplab.org/wp-content/uploads/2023/01/Anthony-IA_et_creation_images.pdf">IA et création d&#8217;images (slides)</a></em></strong></p>
373<iframe loading="lazy" title="[Usages Créatifs de l'IA ] Anthony - IA et création d'images" src="https://tube.interhacker.space/videos/embed/9520f137-4b4b-47df-9027-6d9da4b9c6c5" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups" width="100%" height="520" frameborder="0"></iframe>
374<br><br><br>
375
376
377
378<p>Nizar Ouarti &#8211; <strong><em><a href="https://www.tmplab.org/wp-content/uploads/2023/01/La-revanche-des-littéraires.pdf"> La Revanche des Littéraires ! Une petite histoire des Transformers (slides)</a></em></strong></p>
379<iframe loading="lazy" title="[Usages Créatifs de l'IA ] Nizar Ouarti - La Revanche des Littéraires ! Une petite histoire des Transformers" src="https://tube.interhacker.space/videos/embed/98adb9e9-97bb-483c-8042-a864f2c6e0ea" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups" width="100%" height="520" frameborder="0"></iframe>
380<br><br><br>  &#8211;
381
382
383
384<p class="wp-block-paragraph">Alban Crommer &#8211; <em><a href="https://generative-ai.albancrommer.com/#/0/1"><strong>Une introduction aux usages créatifs de l&#8217;IA générative (slides) </strong></a></em></p>
385
386
387
388<iframe loading="lazy" title="[Usages Créatifs de l'IA ] Alban Crommer - Une introduction aux usages créatifs de l'IA générative" src="https://tube.interhacker.space/videos/embed/37018381-201e-475c-8d41-46a01ae5ef02" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups" width="100%" height="520" frameborder="0"></iframe>
389	</div><!-- .entry-content -->
390
391	<footer class="entry-footer">
392		<span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=49&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&#038;d=mm&#038;r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy' decoding='async'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.tmplab.org/author/alban/">alban</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.tmplab.org/2023/01/19/conference-usages-creatifs-de-lia-slides-et-videos/" rel="bookmark"><time class="entry-date published" datetime="2023-01-19T12:15:00+01:00">January 19, 2023</time><time class="updated" datetime="2023-01-19T16:59:42+01:00">January 19, 2023</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.tmplab.org/category/art/" rel="category tag">art</a>, <a href="https://www.tmplab.org/category/conferences/" rel="category tag">Conferences</a>, <a href="https://www.tmplab.org/category/news/" rel="category tag">News</a>, <a href="https://www.tmplab.org/category/video/" rel="category tag">Video</a></span><span class="tags-links"><span class="screen-reader-text">Tags </span><a href="https://www.tmplab.org/tag/ai/" rel="tag">ai</a>, <a href="https://www.tmplab.org/tag/conference/" rel="tag">conference</a></span><span class="comments-link"><a href="https://www.tmplab.org/2023/01/19/conference-usages-creatifs-de-lia-slides-et-videos/#respond">Leave a comment<span class="screen-reader-text"> on Conférence Usages Créatifs de l&#8217;IA : Slides et Vidéos</span></a></span>			</footer><!-- .entry-footer -->
393</article><!-- #post-1890 -->
394
395<article id="post-1880" class="post-1880 post type-post status-publish format-standard hentry category-art category-conferences category-news">
396	<header class="entry-header">
397		
398		<h2 class="entry-title"><a href="https://www.tmplab.org/2023/01/14/conference-usages-creatifs-de-lia-le-programme/" rel="bookmark">
398Conférence usages créatifs de l&#8217;IA : le programme</a></h2>	</header><!-- .entry-header -->
399
400				<div class="entry-summary">
401				<p>Programme de la conférence au théâtre/cinema de Choisy-le-Roi, le 14 janvier 2023</p>
402			</div><!-- .entry-summary -->
403			
404	
405	<div class="entry-content">
406		
407<iframe loading="lazy" width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://www.openstreetmap.org/export/embed.html?bbox=2.396457195281983%2C48.759909097641696%2C2.4322915077209477%2C48.77238364640955&amp;layer=mapnik&amp;marker=48.76614675936893%2C2.414374351501465" style="border: 1px solid black"></iframe><br/><small><a href="https://www.openstreetmap.org/?mlat=48.7661&amp;mlon=2.4144#map=16/48.7661/2.4144">Afficher une carte plus grande</a></small>
408
409
410
411<p class="wp-block-paragraph"></p>
412
413
414
415<h2 class="wp-block-heading"><strong>16:00
416Alban </strong><strong>CROMMER
417– </strong><strong>Artiste
418 / </strong><strong>membre
419du </strong><strong>TMPLAB</strong></h2>
420
421
422
423<p class="wp-block-paragraph"><code><em>Une
424introduction aux usages créatifs de l'IA générative </em></code>
425</p>
426
427
428
429<h2 class="wp-block-heading"><strong>16:30
430</strong><strong>Anthony
431– Créateur de STABLEDIFFUSION.FR</strong></h2>
432
433
434
435<p class="wp-block-paragraph"><code><em>IA
436et création d'images</em></code></p>
437
438
439
440<h2 class="wp-block-heading"><strong>16:45 Valentin GOUJON &#8211; Doctorant en sociologie @médialab, Sciences Po</strong></h2>
441
442
443
444<p class="wp-block-paragraph"><code><em>Des
445réseaux antagonistes génératifs aux modèles basés sur la
446diffusion : une histoire récente de l'art génératif</em></code><code></code>
447</p>
448
449
450
451<h2 class="wp-block-heading">
452<strong>17:15
453Barbara MATIJEVIĆ &#8211; </strong><strong>Artiste</strong></h2>
454
455
456
457<p class="wp-block-paragraph"><code><em>Présentation
458de la pièce "Screenagers 2" présentée au théâtre le 18
459janvier</em></code></p>
460
461
462
463<p class="wp-block-paragraph"><code><em>Ouverture
464sur le projet "Parano AI"</em></code></p>
465
466
467
468<h2 class="wp-block-heading"><strong>1</strong><strong>7</strong><strong>:</strong><strong>25</strong><strong>
469Nizar </strong><strong>OUARTI
470&#8211; Maître de Conférences</strong><strong>
471/ Entrepreneur</strong></h2>
472
473
474
475<p class="wp-block-paragraph"><code><em>"La
476revanche des littéraires!", une petite histoire des
477Transformers.</em></code></p>
478
479
480
481<h2 class="wp-block-heading"><strong>17:</strong><strong>5</strong><strong>5
482Yassin – </strong><strong>Artiste</strong><strong>
483</strong>
484</h2>
485
486
487
488<p class="wp-block-paragraph"><code><em>A</em></code><code><em>pplication
489du machine learning à la création artistique</em></code></p>
490
491
492
493<h2 class="wp-block-heading"><strong>1</strong><strong>8</strong><strong>:</strong><strong>1</strong><strong>5
494Antoine </strong><strong>MAZIÈRES
495– </strong><strong>Chercheur
496/ Entrepreneur d’intérêt général</strong></h2>
497
498
499
500<p class="wp-block-paragraph"><code><em>IA
501et quantification des discriminations.</em></code></p>
502	</div><!-- .entry-content -->
503
504	<footer class="entry-footer">
505		<span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=49&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&#038;d=mm&#038;r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy' decoding='async'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.tmplab.org/author/alban/">alban</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.tmplab.org/2023/01/14/conference-usages-creatifs-de-lia-le-programme/" rel="bookmark"><time class="entry-date published" datetime="2023-01-14T12:44:10+01:00">January 14, 2023</time><time class="updated" datetime="2023-01-14T12:50:15+01:00">January 14, 2023</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.tmplab.org/category/art/" rel="category tag">art</a>, <a href="https://www.tmplab.org/category/conferences/" rel="category tag">Conferences</a>, <a href="https://www.tmplab.org/category/news/" rel="category tag">News</a></span><span class="comments-link"><a href="https://www.tmplab.org/2023/01/14/conference-usages-creatifs-de-lia-le-programme/#respond">Leave a comment<span class="screen-reader-text"> on Conférence usages créatifs de l&#8217;IA : le programme</span></a></span>			</footer><!-- .entry-footer -->
506</article><!-- #post-1880 -->
507
508<article id="post-1869" class="post-1869 post type-post status-publish format-standard has-post-thumbnail hentry category-art category-conferences category-french">
509	<header class="entry-header">
510		
511		<h2 class="entry-title"><a href="https://www.tmplab.org/2022/12/20/conference-usages-creatifs-de-lia/" rel="bookmark">
511Conférence Usages Créatifs de l&#8217;IA</a></h2>	</header><!-- .entry-header -->
512
513				<div class="entry-summary">
514				<p>Vous voulez en savoir plus sur les nouvelles IA qui défraient la chronique, que ce soit ChatGPT ou Stable Diffusion ? Cette conférence est faite pour vous.</p>
515<p>Des hackers, des chercheurs, des artistes, réuni.e.s pour s’informer et discuter des enjeux de ces techniques qui commencent à infuser dans la société.</p>
516<p>Entre histoire des techniques, analyses sociologiques, pratiques personnelles et analyses technique en profondeur, on vous invite à venir apprendre, vous faire une idée et échanger sur ce sujet en plein accélération.</p>
517			</div><!-- .entry-summary -->
518			
519	
520	<a class="post-thumbnail" href="https://www.tmplab.org/2022/12/20/conference-usages-creatifs-de-lia/" aria-hidden="true">
521		<img width="740" height="459" src="https://www.tmplab.org/wp-content/uploads/2022/12/Visuel-banner-740.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Conférence Usages Créatifs de l&#8217;IA" decoding="async" loading="lazy" srcset="https://www.tmplab.org/wp-content/uploads/2022/12/Visuel-banner-740.png 740w, https://www.tmplab.org/wp-content/uploads/2022/12/Visuel-banner-740-300x186.png 300w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 60vw, (max-width: 1362px) 62vw, 840px" />	</a>
522
523		
524	<div class="entry-content">
525		
526<h2>QUOI</h2>
527
528<p>Conférence sur l&#8217;IA Générative
529Machine Learning / texte, son, image</p>
530
531<h2>QUAND</h2>
532
533<p>Samedi 14 janvier 2023 de 16h à 19h</p>
534
535<h2>OÙ</h2>
536
537<p>Théâtre de Choisy-le-Roi, RER C
5384, avenue de Villeneuve Saint-Georges 94600 Choisy-le-Roi</p>
539
540<h2>COMMENT</h2>
541
542<p>Entrée libre
543Streaming sur streaming.tmplab.org</p>
544
545<h2>QUOI</h2>
546
547<p>Vous voulez en savoir plus sur les nouvelles IA qui défraient la chronique, que ce soit ChatGPT ou Stable Diffusion ? Cette conférence est faite pour vous.</p>
548
549<p>Des hackers, des chercheurs, des artistes, réuni.e.s pour s&#8217;informer et discuter des enjeux de ces techniques qui commencent à infuser dans la société.</p>
550
551<p>Entre histoire des techniques, analyses sociologiques, pratiques personnelles et analyses technique en profondeur, on vous invite à venir apprendre, vous faire une idée et échanger sur ce sujet en plein accélération.</p>
552
553<h2>PROGRAMME</h2>
554
555<hr />
556
557<ul>
558<li><p>16:00  Alban</p>
559
560<p>Une introduction aux usages créatifs de l&#8217;IA générative</p>
561
562<ul><li>Panorama de la situation actuelle en texte / image / son</li>
563<li>Histoire des innovations et des usages en IA Générative</li>
564<li>Les enjeux sociaux &#8211; politiques &#8211; économiques &#8211; environnement</li>
565<li>Prospective</li></ul></li>
566<li><p>16:30 Valentin Goujon</p>
567
568<p>Des réseaux antagonistes génératifs aux modèles basés sur la diffusion : une histoire récente de l&#8217;art génératif</p>
569
570<p>Description : Brève généalogie des différents types de modèles génératifs (notamment les GANs et les modèles basés sur la diffusion) afin de retracer l&#8217;essor de l&#8217;art génératif basé sur des réseaux de neurones profonds depuis le début des années 2010.</p>
571
572<p>Enquête en cours sur l&#8217;ingénierie du prompt sur Twitter et des serveurs Discord dans le cadre d&#8217;une thèse en sociologie au médialab (Sciences Po)</p></li>
573<li><p>16:55 Antoine Mazières</p>
574
575<p>IA et quantification des discriminations.</p>
576
577<p>Deux utilisations de l&#8217;apprentissage artificiel dans le contexte de l&#8217;étude des discriminations :</p>
578
579<ul><li>Discrimination par origine dans les milieux socio-professionnels en France (https://mazieres.gitlab.io/namograph/)</li>
580<li>Biais de genre dans les films grand public (https://mazieres.gitlab.io/gender-movies/).</li></ul></li>
581</ul>
582
583<p>*17:15 Anthony</p>
584
585<pre><code>IA et création d'images
586- Qui utilise l'IA  pour générer des images ?
587- Comment est utilisée l'IA, cas concrets.
588- Génération d'images : l'acceuil des artistes, polémiques sur les droits d'auteur.
589</code></pre>
590
591<ul>
592<li><p>17:35 Barbara Matijević</p>
593
594<p>Présentation de la pièce &#8220;Screenagers 2&#8221; présentée au théâtre le 18 janvier
595Ouverture sur le projet &#8220;Parano AI&#8221;</p></li>
596<li><p>17:45 Yassin</p>
597
598<p>Utiliser des GPU et faire des images
599Application du machine learning à la création artistique</p></li>
600<li><p>18:15 Hedi Soula</p>
601
602<p>Un projet de génération de voix pour du jeu vidéo</p></li>
603<li><p>18:30 Nizar Ouarti</p>
604
605<p>&#8220;La revanche des littéraires!&#8221;, une petite histoire des Transformers.
606Dans cette présentation, j&#8217;introdurai la méthode des Transformers. Je parlerai de leur impact sur la compréhension du langage, la génération d&#8217;images et l&#8217;IA général.</p></li>
607<li><p>19:00 Fin </p></li>
608</ul>
609
610
611
612
613
614<h2 class="wp-block-heading">Texte presse</h2>
615
616
617
618<p class="wp-block-paragraph">Le hackerspace /tmp/lab vous invite à &#8220;usages créatifs de l&#8217;ia &#8211;
618 machine learning textes sons images&#8221;.</p>
619
620
621
622<p class="wp-block-paragraph">Une fois de plus avec l&#8217;intelligence artificielle, les émotions prennent le dessus.</p>
623
624
625
626<p class="wp-block-paragraph">Il faut dire que les images désormais produites par les IA par Machine Learning dépassent la barrière de Turing : on est devenus incapables de distinguer quelles images sont générées par un système informatique.</p>
627
628
629
630<p class="wp-block-paragraph">C&#8217;est un mélange de peur, d&#8217;inquiétude, de passion et d&#8217;émerveillement qui survient à un moment où, au contraire, il faut pouvoir réfléchir rationnellement ces questions pour voir, connaître et prévoir quelles peuvent être leurs conséquences.</p>
631
632
633
634<p class="wp-block-paragraph">Aussi, tout l&#8217;intérêt de cette conférence sera de tenter de dépasser cette barrière émotionnelle.</p>
635
636
637
638<p class="wp-block-paragraph">On tentera d&#8217;interroger les horizons techniques, sociaux, politiques et économiques de ces techniques en écoutant des scientifiques, artistes et praticiens présenter leurs travaux, en s&#8217;émerveillant devant certaines oeuvres et en sachant s&#8217;ouvrir à la complexité mathématique.</p>
639
640
641
642<p class="wp-block-paragraph">Conférence qui s&#8217;adresse aux  passionnés comme aux curieux et curieuses qui veulent découvrir ce domaine et se joindre à la discussion.</p>
643
644
645
646<p class="wp-block-paragraph">Le samedi 14 janvier de 16h à 19h au Théâtre Cinéma de Choisy-le-Roi<br>
6474, avenue de Villeneuve Saint-Georges<br>
64894600 Choisy-le-Roi</p>
649
650
651
652<p class="wp-block-paragraph">Entrée libre</p>
653
654
655
656<p class="wp-block-paragraph">En visio conférence et streaming sur https://streaming.tmplab.org</p>
657
658
659
660<p class="wp-block-paragraph">En lien avec la création Screenagers vol.2 accueilli le&nbsp;18 janvier au théâtre, la conférence sera aussi l’occasion d’interroger la place de l’IA dans le spectacle vivant. A cette occasion, la directrice artistique Barbara Matijevic viendra partager son expérience et les perspectives ouvertes aux créateurs par l&#8217;IA. </p>
661
662
663
664<p class="wp-block-paragraph">Infos pratiques&nbsp;: entrée libre au théâtre de Choisy (4 avenue de Villeneuve Saint-Georges) ou en visio conférence et streaming sur&nbsp;https://streaming.tmplab.org. </p>
665	</div><!-- .entry-content -->
666
667	<footer class="entry-footer">
668		<span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=49&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&#038;d=mm&#038;r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy' decoding='async'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.tmplab.org/author/alban/">alban</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.tmplab.org/2022/12/20/conference-usages-creatifs-de-lia/" rel="bookmark"><time class="entry-date published" datetime="2022-12-20T12:51:58+01:00">December 20, 2022</time><time class="updated" datetime="2023-01-02T20:57:44+01:00">January 2, 2023</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.tmplab.org/category/art/" rel="category tag">art</a>, <a href="https://www.tmplab.org/category/conferences/" rel="category tag">Conferences</a>, <a href="https://www.tmplab.org/category/french/" rel="category tag">French</a></span><span class="comments-link"><a href="https://www.tmplab.org/2022/12/20/conference-usages-creatifs-de-lia/#respond">Leave a comment<span class="screen-reader-text"> on Conférence Usages Créatifs de l&#8217;IA</span></a></span>			</footer><!-- .entry-footer -->
669</article><!-- #post-1869 -->
670
671<article id="post-1858" class="post-1858 post type-post status-publish format-standard has-post-thumbnail hentry category-code category-conferences category-video">
672	<header class="entry-header">
673		
674		<h2 class="entry-title"><a href="https://www.tmplab.org/2021/12/20/machine-learning-deep-learning-talks-at-tmp-lab/" rel="bookmark">Machine Learning / Deep Learning talks at /tmp/lab</a></h2>	</header><!-- .entry-header -->
675
676	
677	
678	<a class="post-thumbnail" href="https://www.tmplab.org/2021/12/20/machine-learning-deep-learning-talks-at-tmp-lab/" aria-hidden="true">
679		<img width="1121" height="585" src="https://www.tmplab.org/wp-content/uploads/2021/12/20211218_TMPLAB_MachineLearning.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Machine Learning / Deep Learning talks at /tmp/lab" decoding="async" loading="lazy" srcset="https://www.tmplab.org/wp-content/uploads/2021/12/20211218_TMPLAB_MachineLearning.png 1121w, https://www.tmplab.org/wp-content/uploads/2021/12/20211218_TMPLAB_MachineLearning-300x157.png 300w, https://www.tmplab.org/wp-content/uploads/2021/12/20211218_TMPLAB_MachineLearning-1024x534.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/12/20211218_TMPLAB_MachineLearning-768x401.png 768w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 60vw, (max-width: 1362px) 62vw, 840px" />	</a>
680
681		
682	<div class="entry-content">
683		
684<h4 class="wp-block-heading"><strong>We&#8217;ve had some great talks this weekend and for once we recorded that</strong>!</h4>
685
686
687
688<p class="wp-block-paragraph"><a href="https://fr.linkedin.com/in/nizar-ouarti-07238934">Nizar Ouarti</a> spoke about perception, natural and artificial with a nice introduction to Deep Learning. </p>
689
690
691
692<p class="wp-block-paragraph"><a href="https://twitter.com/Hedi_A_Soula">Hedi Soula</a> told us about a university research he participated in which aimed at recognizing amongst a group of birds every individual based on their song.</p>
693
694
695
696<h4 class="wp-block-heading">Thanks to Nizar and Hedi again for their time and kindness.</h4>
697
698
699
700<h2 class="wp-block-heading">Here&#8217;s the audio + screencast recording of the talks, one after the other.</h2>
701
702
703
704<p class="wp-block-paragraph"></p>
705
706
707
708<iframe loading="lazy" width="100%" height="600px" sandbox="allow-same-origin allow-scripts allow-popups" src="https://tube.interhacker.space/videos/embed/0f0d81ed-b83f-4445-bf57-d47314325427" frameborder="0" allowfullscreen></iframe>
709
710
711
712<p class="wp-block-paragraph">Slides are available for download on</p>
713
714
715
716<ul class="wp-block-list"><li><a href="https://www.tmplab.org/wp-content/uploads/2021/12/20211218_TMP_TALKS_Ouarti-Vision.pdf">Digital Perception and Human Perception</a></li><li><a href="https://www.tmplab.org/wp-content/uploads/2021/12/20211218_TMP_TALKS_Soula-Birds.pdf">Reconnaissance individuelle basée sur les vocalisations</a> </li></ul>
717
718
719
720<p class="wp-block-paragraph"></p>
721	</div><!-- .entry-content -->
722
723	<footer class="entry-footer">
724		<span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=49&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&#038;d=mm&#038;r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy' decoding='async'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.tmplab.org/author/alban/">alban</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.tmplab.org/2021/12/20/machine-learning-deep-learning-talks-at-tmp-lab/" rel="bookmark"><time class="entry-date published updated" datetime="2021-12-20T22:02:09+01:00">December 20, 2021</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.tmplab.org/category/code/" rel="category tag">code</a>, <a href="https://www.tmplab.org/category/conferences/" rel="category tag">Conferences</a>, <a href="https://www.tmplab.org/category/video/" rel="category tag">Video</a></span><span class="comments-link"><a href="https://www.tmplab.org/2021/12/20/machine-learning-deep-learning-talks-at-tmp-lab/#respond">Leave a comment<span class="screen-reader-text"> on Machine Learning / Deep Learning talks at /tmp/lab</span></a></span>			</footer><!-- .entry-footer -->
725</article><!-- #post-1858 -->
726
727<article id="post-1696" class="post-1696 post type-post status-publish format-standard has-post-thumbnail hentry category-english category-news category-projects tag-7mhz tag-antenna tag-electronics tag-filters tag-floss tag-frequency tag-ham tag-qucs tag-radio tag-raspberry-pi tag-rf tag-rfi tag-rpi tag-wspr">
728	<header class="entry-header">
729		
730		<h2 class="entry-title"><a href="https://www.tmplab.org/2021/03/14/tmp-ham-episode-1-raspberry-pi-weak-signals-wspr-and-filters/" rel="bookmark">/tmp/ham Episode 1: Raspberry Pi, weak signals (WSPR) and filters</a></h2>	</header><!-- .entry-header -->
731
732	
733	
734	<a class="post-thumbnail" href="https://www.tmplab.org/2021/03/14/tmp-ham-episode-1-raspberry-pi-weak-signals-wspr-and-filters/" aria-hidden="true">
735		<img width="694" height="336" src="https://www.tmplab.org/wp-content/uploads/2021/03/WSPR-map280.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="/tmp/ham Episode 1: Raspberry Pi, weak signals (WSPR) and filters" decoding="async" loading="lazy" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/WSPR-map280.png 694w, https://www.tmplab.org/wp-content/uploads/2021/03/WSPR-map280-300x145.png 300w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 60vw, (max-width: 1362px) 62vw, 840px" />	</a>
736
737		
738	<div class="entry-content">
739		
740<p class="wp-block-paragraph">There&#8217;s something very nice with Raspberry Pi (RPi) is that you can use it&#8217;
740s GPIO output capability and somewhat precise clock <a href="https://github.com/JamesP6000/WsprryPi">to generate radio signals</a>, especially <a href="https://en.wikipedia.org/wiki/WSPR_(amateur_radio_software)">weak signals radio signals</a> (WSPR). These weak signals <a href="https://wsprnet.org/drupal/wsprnet/map">can travel thousands of kilometers</a> and be received by foreign stations across the ocean. (No we&#8217;re <strong>not</strong> talking about <a href="https://www.rtl-sdr.com/creating-a-standalone-wspr-receiver-with-an-rtl-sdr-v3-and-raspberry-pi-3/">receiving these radio signals with RTL-SDR</a>, even though it&#8217;s nice too).</p>
741
742
743
744<figure class="wp-block-image size-large"><img decoding="async" src="https://www.dxzone.com/dx30789/wspr-beacon-on-raspberry-pi.jpg" alt=""/></figure>
745
746
747
748<h2 class="wp-block-heading">HAM License prerequisite&#8230; is not so bad</h2>
749
750
751
752<p class="wp-block-paragraph">You need to have a HAM (Radio Amateur) license to transmit (yes, even a few milli-Watts (mW) or radiated power), but good news is that it&#8217;s the best time right now to pass your HAM license:</p>
753
754
755
756<ul class="wp-block-list"><li>France has just changed its license test method so that bad answer don&#8217;t cost you points, and you can <a href="https://exam1.r-e-f.org/accueil">repeat (cram) exams</a> so it&#8217;s not that difficult.</li><li>US has a much better and more progressive license scheme (Technician -&gt; General -&gt; Amateur Extra) and <a href="https://www.youtube.com/c/DavidCasler/playlists">excellent teaching resources</a> that makes it so much easier to get started.</li><li>&#8230; and you&#8217;ve got plenty of time to prepare for exams since you can&#8217;t get out due to this covid-19 lockdown 🙂</li></ul>
757
758
759
760<p class="wp-block-paragraph">Now if you look at the picture above, there&#8217;s a little circuit between the RPi and the antenna&#8230; why is that?</p>
761
762
763
764<h2 class="wp-block-heading">On being clean&#8230;</h2>
765
766
767
768<p class="wp-block-paragraph">Well, the RPi was never intended to directly output radio signal, so it generates a square wave with plenty of harmonics (unwanted frequencies above the desired generated radio frequencies) that pollute the spectrum if you connect the RPi output directly to the antenna.</p>
769
770
771
772<p class="wp-block-paragraph">NOTE:<br>Having the privilege of sending radio waves worlwide comes with some small obligation: send clean radio signals! Don&#8217;t hurt your neighbour communications! Don&#8217;t force governments and regulators to limit our radio spectrum freedoms because we couldn&#8217;t self regulate. So far, HAM enthusiasts have done a great job not killing our radio passion. If you join, or plan on joining, please do the same.</p>
773
774
775
776<h2 class="wp-block-heading">Available Filters</h2>
777
778
779
780<p class="wp-block-paragraph">So there are plenty of designs to make this output clean:</p>
781
782
783
784<ul class="wp-block-list"><li><a href="https://tapr.org/product/wspr/">TAPR WSPR RPI Hats</a> that work with their RPi OS image to transmit on various frequencies (<a href="https://en.wikipedia.org/wiki/20-meter_band">20m wavelength (14 MHz)</a>: 14.070 MHz &#8211; 14.350 MHz  for weak signal digital communications, <a href="https://en.wikipedia.org/wiki/WARC_bands">30m (10MHz)</a>: 10.130 &#8211; 10.150 MHz for weak signal digital communications, <a href="https://en.wikipedia.org/wiki/40-meter_band">40m (7MHz)</a>).</li><li><a href="https://wsprnet.org/drupal/node/4165">DIY Designs</a> that <a href="https://wsprnet.org/drupal/sites/wsprnet.org/files/RD16HHF1%20Linear%20Amplifier.PNG">also include amplifiers</a>, going past the few mW of RPi to a booming 1W !!! (see schematic below)</li><li>Etc..</li></ul>
785
786
787
788<figure class="wp-block-image size-large"><a href="https://wsprnet.org/drupal/node/4165"><img decoding="async" src="https://wsprnet.org/drupal/sites/wsprnet.org/files/RD16HHF1%20Linear%20Amplifier.PNG" alt=""/></a><figcaption>Ok, if this looks like foreign unknown language, don&#8217;t worry, we&#8217;ll explain step by step.</figcaption></figure>
789
790
791
792<h2 class="wp-block-heading">DIY Filter</h2>
793
794
795
796<p class="wp-block-paragraph">Now the goal of experimentation is to learn by yourself and make your own stuff, so below is the documentation of a design in progress (fun in progress? some people will call us crazy) of a custom filter, by non-electronicians, for the RPi. (You&#8217;ll see that we go slowly and step by step over the process we used, so that it&#8217;s easy to follow and reproduce).</p>
797
798
799
800<p class="wp-block-paragraph">The goal of this filter is to:</p>
801
802
803
804<ul class="wp-block-list"><li>Learn about filters and electronic and RF,</li><li>work on 7 MHz, </li><li>for WSPR low signal (therefore low power, therefore we can maybe use some components such as Axial Fixed Inductors that are only for 0.25 W or 0.5W or 1W),</li><li>be built with low part number, </li><li>low complexity, </li><li>with easy to procure and to solder electronic components: no or low CMS, no exotic part numbers, no need to print a PCB mandatorily&#8230;</li><li>if possible no coil-winding (building the inductive coils), </li><li>if possible with protection of the RPi from static electricity coming from the antenna.</li><li>work on the RPi Zero W.</li></ul>
805
806
807
808<p class="wp-block-paragraph">
808Actually, the goal of this post is to discuss between passionate individuals and critique the filter design(s) presented here, rather than providing a clean design.</p>
809
810
811
812<p class="wp-block-paragraph">So if you&#8217;re expecting a clean, profesionnal, working filter, this is maybe not the place.</p>
813
814
815
816<p class="wp-block-paragraph">Also, the goal is to document the (rather numerous) f..k-ups and mistakes we&#8217;ve done along the way, with their associated lessons-learned:</p>
817
818
819
820<ul class="wp-block-list"><li>Using RC filter: originally selected because it is announced as the simplest filters, it worked but was extremely low-power output, due to to the very nature of Resistive-Capacitive (RC) filters, yeah, it resists and dissipates heat, therefore weakening to radio output power&#8230; logical.. Replace with Inductive Capacitive (LC) filter.</li><li>Using bread board: it is easy and fast, <a href="http://home.sandiego.edu/~ekim/otherjunk/rf_proto.pdf">BUT bad for RF circuits</a> because it can generate a lot of RF noise and doesn&#8217;t consistently provide a good grounding. Replace with <a href="http://circuit-zone.com/index.php?electronic_project=561">copper-plate solder circuits</a>.</li></ul>
821
822
823
824<h2 class="wp-block-heading"> A filter for an Antenna</h2>
825
826
827
828<p class="wp-block-paragraph">RPi can generate radio signals for a variety of bands, up to the FM band (around 100 MHz radio signal). This means that you have quite a lot of HAM bands (Legacy or <a href="https://en.wikipedia.org/wiki/WARC_bands">WARC</a>) you can use. The lower the HAM radio frequency, the bigger the antenna, the farther you can expect it to go: HF (3 MHz-30 MHz) can travel across oceans, VHF (30 MHz-300MHz) &#8211; UHF (300 MHz &#8211; 3000 MHz or 3GHz) range is only a few kilometers in usual conditions.</p>
829
830
831
832<p class="wp-block-paragraph">Usually antennas are one fourth or half the wavelength, so if you&#8217;re operating on 7 MHz, the 40 m band, you can expect your antenna to be from 10 meters to 20 meters wide, or high, or both.</p>
833
834
835
836<p class="wp-block-paragraph">That means that you usually choose your operating frequency based on the space you have. Typically, in cities, you will probably choose higher frequencies with smaller antennas.</p>
837
838
839
840<p class="wp-block-paragraph">And based on your antenna, you will pick a filter that is allowing only frequencies for this antenna to exit the RPi and go to the antenna.</p>
841
842
843
844<p class="wp-block-paragraph">Building an antenna is a lot of fun, and antennas are so varied, up to the ones that enable you to receive from <strong>and transmit to</strong> a satellite. It&#8217;s much easier than you initially think. We&#8217;ll have plenty of episodes related to antenna building.</p>
845
846
847
848<h2 class="wp-block-heading">So let&#8217;s build a filter&#8230; and please give us feedback</h2>
849
850
851
852<p class="wp-block-paragraph">There are many types of filters, as stated earlier. We started with a RC filter but the drop in desired radio signal output power was too important, therefore prompting to choose another filter, an LC filter that should preserve better the <strong>desired </strong>radio signal power and still be somewhat simple to build with <strong>common</strong> components.</p>
853
854
855
856<p class="wp-block-paragraph">Of these LC filters, we choose a Butterworth pass-band filter, for its apparent simplicity. Critique is welcome. </p>
857
858
859
860<p class="wp-block-paragraph">Pass band means that only one range of frequency can go through. It&#8217;s opposed to Low-Pass Filters (LPF: Only frequency below the cut-off frequency can go through) or High-Pass Filters (only frequencies above the cut-off frequency can go through the filter).</p>
861
862
863
864<h2 class="wp-block-heading">Filter design with Open Source</h2>
865
866
867
868<p class="wp-block-paragraph">To design our Filter, we heard that <a href="http://qucs.sourceforge.net/install.html">QUCS open source software</a> is handy and enables design <strong>from a library of filters</strong> and <strong>simulation of the filter</strong>. Actually we <a href="https://qucs.github.io/build.html">built and installed the MacOS version</a>, with a few commands modification:</p>
869
870
871
872<p class="wp-block-paragraph">$ <code>brew tap guitorri/tap<br></code>$ <code>brew tap cartr/qt4<br></code>$ <code>brew install qucs<br></code>$ <code>brew link qucs</code></p>
873
874
875
876<p class="wp-block-paragraph">Regarding installation on Linux, qucs was not in the APT packages of RPi. That&#8217;s because its Debian package was abandoned a few years ago. A lab member successfully compiled it using <
876a href="https://github.com/Qucs/qucs/wiki/Build-Linux">the official qucs wiki page</a>  on an AMD64 Debian 9 though, so there&#8217;s hope it might works on most distributions. </p>
877
878
879
880<p class="wp-block-paragraph">After this, we launch QUCS:</p>
881
882
883
884<p class="wp-block-paragraph">$ <code>qucs &amp;</code></p>
885
886
887
888<p class="wp-block-paragraph">First fun is that QUCS runs but isn&#8217;t launched in the foreground, you need to Alt-Tab or Command-Tab to select its icon to see its window (otherwise you spend a good amount of time saying &#8220;wow&#8230; must be super awesome large software that takes ages to start&#8230; really long&#8230; such 31337 software&#8230;&#8221;. actually QUCS is quite quick to launch!):</p>
889
890
891
892<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="695" src="https://www.tmplab.org/wp-content/uploads/2021/03/qucs_launch-1024x695.png" alt="" class="wp-image-1718" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/qucs_launch-1024x695.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs_launch-300x204.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs_launch-768x521.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs_launch-1536x1042.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs_launch-2048x1390.png 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>To see larger version of these screen shot, just right click on the image and select &#8220;Open image in new tab&#8221; and switch to that tab. Full size yeah!!!</figcaption></figure>
893
894
895
896<p class="wp-block-paragraph">Then you can (and should) create a new project by Clicking &#8220;New&#8221; in the &#8220;Projects&#8221; side tab (here already created as you already see filter_prj). </p>
897
898
899
900<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="740" src="https://www.tmplab.org/wp-content/uploads/2021/03/qucs-project-new-1024x740.png" alt="" class="wp-image-1719" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/qucs-project-new-1024x740.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-project-new-300x217.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-project-new-768x555.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-project-new-1536x1110.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-project-new.png 1680w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
901
902
903
904<p class="wp-block-paragraph">It corresponds actually to the folder ~/.qucs/&lt;project_name&gt; directory under which you&#8217;ll save all your schema files (*.sch). Creating the project directory will prevent some runtime errors when running simulations. Go ahead, create one and work there.</p>
905
906
907
908<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="608" src="https://www.tmplab.org/wp-content/uploads/2021/03/qucs-dir-project-1024x608.png" alt="" class="wp-image-1720" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/qucs-dir-project-1024x608.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-dir-project-300x178.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-dir-project-768x456.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-dir-project.png 1132w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>You can see above my quasi-OCD (Obsessive Compulsive Disorder) maniac naming style 😉</figcaption></figure>
909
910
911
912<p class="wp-block-paragraph">Then you go to Menu &gt; Tools &gt; Filter Synthesis:</p>
913
914
915
916<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="640" src="https://www.tmplab.org/wp-content/uploads/2021/03/qucs-Filter-synth-1024x640.png" alt="" class="wp-image-1722" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/qucs-Filter-synth-1024x640.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-Filter-synth-300x188.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-Filter-synth-768x480.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-Filter-synth-1536x960.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-Filter-synth-2048x1280.png 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
917
918
919
920<p class="wp-block-paragraph">Qucs Filter is then run, but same thing as QUCS run, also often stays in the background. You&#8217;ll have to press ALT-TAB or Command-Tab to change window focus to it.</p>
921
922
923
924<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="640" src="https://www.tmplab.org/wp-content/uploads/2021/03/qucs-filter-1024x640.png" alt="" class="wp-image-1723" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/qucs-filter-1024x640.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-filter-300x188.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-filter-768x480.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-filter-1536x960.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-filter-2048x1280.png 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
925
926
927
928<p class="wp-block-paragraph">We choose LC Ladder (PI Type). Why? No idea. Suggestions are welcome. (In reality we rummaged through many web pages and many QUCS choices, comparing resulting filters with the simplest designs that were shown on the Net, before settling on this choice). Suggestions (and rationale) are really welcome about this.</p>
929
930
931
932<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="640" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.34.29-1024x640.png" alt="" class="wp-image-1725" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.34.29-1024x640.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.34.29-300x188.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.34.29-768x480.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.34.29-1536x960.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.34.29-2048x1280.png 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
933
934
935
936<p class="wp-block-paragraph">Then we change default type (Bessel) to Butterworth as it seems also to be a recommended LC type filter. (lessons learned not to use a RC filter and avoid signal power drops).</p>
937
938
939
940<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="640" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.35.23-1024x640.png" alt="" class="wp-image-1726" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.35.23-1024x640.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.35.23-300x188.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.35.23-768x480.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.35.23-1536x960.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.35.23-2048x1280.png 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
941
942
943
944<p class="wp-block-paragraph">Then change default from Low Pass to Band Pass, and adapt start and stop frequencies, allowing for some &#8220;buffer space&#8221; around desired frequency.</p>
945
946
947
948<p class="wp-block-paragraph">Why this buffer space? because we&#8217;re going later to tweak values of electronic components to adjust with what we can easily buy, and therefore this will have an impact on the resulting frequencies that are allowed (that &#8220;pass&#8221;) or that are attenuated. Hence the choice to have some space around the 7 MHz HAM band frequencies.</p>
949
950
951
952<p class="wp-block-paragraph">The good thing is that the process described here works for all bands, you just need to adjust the values we&#8217;re specifying here. So if you want to build a filter for other frequencies, you can use this method and free software.</p>
953
954
955
956<p class="wp-block-paragraph">Here QUCS Filter with selected filters options and the frequencies input in MHz (note we changed the default frequency unit from GHz to MHz):</p>
957
958
959
960<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="507" src="https://www.tmplab.org/wp-content/uploads/2021/03/qucs-filter-options-1024x50
9607.png" alt="" class="wp-image-1732" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/qucs-filter-options-1024x507.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-filter-options-300x149.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-filter-options-768x380.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-filter-options-1536x761.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-filter-options.png 1886w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>Then click &#8220;Calculate&#8221;</figcaption></figure>
961
962
963
964<p class="wp-block-paragraph">If you think nothing happens, well&#8230; you&#8217;re part right. It copied &#8220;something&#8221; (the result of filter computations) in the clipboard&#8230; then you need to switch to QUCS&#8230; and paste there in an empty circuit schema (Control-V or Command-V). A circuit skeleton will appear under your mouse cursor and hover on top of the schema for positioning of the filter result. That&#8217;s QUCS UX (User eXperience):</p>
965
966
967
968<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="656" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.27-1024x656.png" alt="" class="wp-image-1734" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.27-1024x656.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.27-300x192.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.27-768x492.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.27-1536x985.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.27-2048x1313.png 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
969
970
971
972<p class="wp-block-paragraph">Move your mouse pointer to where you want your filter schema and click (Normal left click) to position it where you want on your page:</p>
973
974
975
976<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="656" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.35-1024x656.png" alt="" class="wp-image-1735" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.35-1024x656.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.35-300x192.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.35-768x492.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.35-1536x985.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.35-2048x1313.png 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>Tadaaa&#8230; the magic results appears on QUCS ! Argh&#8230; foreign unknown language again? We&#8217;ll explain later the schema.</figcaption></figure>
977
978
979
980<p class="wp-block-paragraph">But if you continue moving your mouse, you&#8217;ll see that a copy of the filter is still selected, appearing as a skeleton (and can again be applied):</p>
981
982
983
984<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="656" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.42-1024x656.png" alt="" class="wp-image-1737" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.42-1024x656.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.42-300x192.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.42-768x492.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.42-1536x985.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.42-2048x1313.png 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
985
986
987
988<p class="wp-block-paragraph">Yes&#8230; this is troubling UX. Just press ESC to deselect it (or &#8220;forget&#8221; it), it&#8217;s ok, one copy is enough and it is already there on your schema.</p>
989
990
991
992<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="656" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.48-1024x656.png" alt="" class="wp-image-1738" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.48-1024x656.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.48-300x192.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.48-768x492.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.48-1536x985.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.48.48-2048x1313.png 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
993
994
995
996<p class="wp-block-paragraph">You can go ahead and save this:</p>
997
998
999
1000<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="626" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.53.45-1-1024x626.png" alt="" class="wp-image-1740" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.53.45-1-1024x626.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.53.45-1-300x183.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.53.45-1-768x469.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.53.45-1-1536x939.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-21.53.45-1-2048x1251.png 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
1001
1002
1003
1004<p class="wp-block-paragraph">Please note that we choose to limit the amount of electronic components in the final circuit schema by selecting in the QUCS filter not &#8220;Order = 3&#8221; but to &#8220;Order = 2&#8221;:</p>
1005
1006
1007
1008<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="507" src="https://www.tmplab.org/wp-content/uploads/2021/03/qucs-filter-order-2-1024x507.png" alt="" class="wp-image-1741" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/qucs-filter-order-2-1024x507.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-filter-order-2-300x149.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-filter-order-2-768x380.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-filter-order-2-1536x761.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/qucs-filter-order-2.png 1886w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>so yeah, you&#8217;ll need to repeat the process of generating a filter&#8230; that&#8217;s training 😉</figcaption></figure>
1009
1010
1011
1012<p class="wp-block-paragraph">Resulting in this simplified schematics (with less electronic components):</p>
1013
1014
1015
1016<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="686" src="https://www.tmplab.org/wp-content/uploads/2021/03/schema-order-2-1024x686.png" alt="" class="wp-image-1742" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/schema-order-2-1024x686.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/schema-order-2-300x201.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/schema-order-2-768x514.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/schema-order-2.png 1204w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>Simpler isn&#8217;t it? &#8212; See, we have one less leg toward the ground with one less inductance &#8220;coils&#8221; and one less capacitor. Please also note that the remaining inductance and capacitor values have changed.</figcaption></figure>
1017
1018
1019
1020<p class="wp-block-paragraph">We don&#8217;t know really the impact of such choice, so don&#8217;t hesitate to tell us. It looked like the only visible impact (visible during simulation) was that the filtered signal would go closer to full values (1x the passed signal, 0x power of filtered values) with order=3, which means that our choice of order=2 means that the filtering nor the pass-through will be complete. That means that a small attenuation of the allowed band would still be applied by the circuit. It means also that the filtering would be less &#8220;selective&#8221; than and third-order circuit. It&#8217;s not so bad since at these very low power (RPi outputs only in the mW range), the attenuation of these very lower spurious signals is really sufficient and would not radiate enough to be a real RF interference to other radio spectrum users. Please tell us if we&#8217;re wrong!</p>
1021
1022
1023
1024<p class="wp-block-paragraph">As we understand this schema:</p>
1025
1026
1027
1028<ul class="wp-block-list"><li>P1 (Port 1) is the generator, that is the TX output, the transmitter output: <ul><li>In our case the transmitter output is RPi GPIO output pin (<a href="https://docs.google.com/document/d/1bLKEDmJvKQegqUwDXEy3V7wQTqupIfyg2LkN0dOuPY4/edit">GPIO4 or GPIO18 depending on software used on the RPi</a>). </li></ul><ul><li>Please note that it may be confusing as you see sometime &#8220;TX&#8221; label on some electronic schema for the input of the filter. It should be labeled &#8220;From TX&#8221; or &#8220;TX Output&#8221;
1028. </li></ul></li><li>P2 (Port 2) is the antenna (ANT). <ul><li>It is also called sometime the &#8220;load&#8221; as you can output the radio signal to a resistive load to simulate an antenna (and avoid frying transmitters if they&#8217;re powerful enough and not connected to any &#8220;load&#8221;). </li><li>It&#8217;s very useful during design as it prevents badly designed filters from emitting real RF to an antenna. </li><li>Consider this when you start.</li><li>The antenna is really the output of the filter.</li></ul></li></ul>
1029
1030
1031
1032<h2 class="wp-block-heading">A little reminder on electronic components</h2>
1033
1034
1035
1036<p class="wp-block-paragraph">Electronic components on a schema are prefixed by a letter that indicate the <strong>type of component</strong>, and then a number that indicates <strong>its identification on the schema and the value</strong> of such electronic component.</p>
1037
1038
1039
1040<p class="wp-block-paragraph">Let&#8217;s see common type of electronic components used here:</p>
1041
1042
1043
1044<ul class="wp-block-list"><li>L: <a href="https://en.wikipedia.org/wiki/Inductor">Inductors</a> or Coils (&#8220;Bobines&#8221; or &#8220;Inductances&#8221; in french), these &#8220;store&#8221; energy as magnetic energy and give it back to the circuit. <ul><li>There are many inductors types, most of the time these are coils of copper wire around a metallic ring &#8220;core&#8221;.</li><li>These are often used in transformers and amplifiers such as audio rigs, old power transformers, etc..</li><li>Some types are looking like resistors (one ceramic package traverse by a wire that is exposed on both sides)</li></ul></li><li>C: <a href="https://en.wikipedia.org/wiki/Capacitor">Capacitors</a> (&#8220;Condensateurs&#8221; in french), these &#8220;store&#8221; energy as electricity field energy and give it back to the circuit.</li><li>R: <a href="https://en.wikipedia.org/wiki/Resistor">Resistors</a> (&#8220;Resistances&#8221; in french), these pressure and limit the passage of electricity in a way that changes the Voltage (&#8220;E&#8221; in english, &#8220;U&#8221; in french) and Intensity (I). <ul><li>There should be no specific resistor in filter circuits because resistors resists (!) and doing so, they heat up. </li><li>The heat is actually radio signal power that dissipates. <ul><li>I.e.: the filter makes the whole radio signal power a bit weaker (or a lot weaker)</li></ul></li><li>The<a href="https://en.wikipedia.org/wiki/Through-hole_technology"> look of resistors</a> (one ceramic package traverse by a wire that is exposed on both sides) is very common. It&#8217;s often called the &#8220;through hole&#8221; packaging, since now there are surface mount (SMD) versions of it.</li></ul></li></ul>
1045
1046
1047
1048<h2 class="wp-block-heading">Let&#8217;s simulate now our new filter !</h2>
1049
1050
1051
1052<p class="wp-block-paragraph">Now we have a filter, let&#8217;s see how it behaves in front of input frequencies. Nothing is better than a graph to &#8220;see&#8221; your filter. Here is how to generate this filter graph through simulation.</p>
1053
1054
1055
1056<p class="wp-block-paragraph">We click on Menu &gt; Simulation &gt; Simulate (or type F2):</p>
1057
1058
1059
1060<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="640" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.20.00-1024x640.png" alt="" class="wp-image-1750" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.20.00-1024x640.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.20.00-300x188.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.20.00-768x480.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.20.00-1536x960.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.20.00-2048x1280.png 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
1061
1062
1063
1064<p class="wp-block-paragraph">A new screen appears&#8230; But nothing happens: no simulation result.</p>
1065
1066
1067
1068<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="656" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.20.09-1024x656.png" alt="" class="wp-image-1751" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.20.09-1024x656.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.20.09-300x192.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.20.09-768x492.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.20.09-1536x985.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.20.09-2048x1313.png 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
1069
1070
1071
1072<p class="wp-block-paragraph">This is normal, QUCS is just waiting for you to <strong>chose which kind of simulation result</strong> you want to see. We&#8217;re going to chose Cartesian representation diagram, but the most elite radio guys will choose Smith (cuz it looks so cool! kidding aside, it must be awesome but it&#8217;s easier for newbies like us to read the simple graph):</p>
1073
1074
1075
1076<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="656" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.22.56-1024x656.png" alt="" class="wp-image-1752" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.22.56-1024x656.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.22.56-300x192.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.22.56-768x492.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.22.56-1536x985.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.22.56-2048x1313.png 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>Once you click on &#8220;Cartesian&#8221; and hover on the window, you see a &#8220;skeleton&#8221; of the result appear and follow you mouse. Just click (left click) once to instantiate the result, an option window should appear.</figcaption></figure>
1077
1078
1079
1080<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="626" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.23.02-1024x626.png" alt="" class="wp-image-1753" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.23.02-1024x626.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.23.02-300x183.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.23.02-768x469.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.23.02-1536x939.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.23.02-2048x1252.png 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
1081
1082
1083
1084<p class="wp-block-paragraph">Now you need to set a few things for the simulation to run and result to appear. </p>
1085
1086
1087
1088<p class="wp-block-paragraph">First you need to say which signals you want to be graphed. Here what we understand is that S[1,2] is the filter output signal (i.e. the filtered signal). So we&#8217;re going to double click on S[1,2] to add it to the Graph:</p>
1089
1090
1091
1092<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="878" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.27.44-1024x878.png" alt="" class="wp-image-1754" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.27.44-1024x878.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.27.44-300x257.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.27.44-768x658.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.27.44-1536x1317.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.27.44.png 1626w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
1093
1094
1095
1096<p class="wp-block-paragraph">But it&#8217;s not finished, we now need to restrict the Limits of the graph to only the portion of the simulation we&#8217;re interested in. So Click on Limits, Select Manual input for x-Axis:</p>
1097
1098
1099
1100<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="878" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.29.20-1024x878.png" alt="" class="wp-image-1756" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.29.20-1024x878.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.29.20-300x257.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.29.20-768x658.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.29.20-1536x1317.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.29.20.png 1626w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>The values we selected are in Hertz (Hz) and quite large around the band so that we clearly see the filter output, and the step (100,000) is to prevent cluttering the graph.</figcaption></figure>
1101
1102
1103
1104<p class="wp-block-paragraph">Then click &#8220;OK&#8221;. You&#8217;ll see a tiny graph appear.</p>
1105
1106
1107
1108<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="656" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.30.55-1024x656.png" alt="" class="wp-image-1758" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.30.55-1024x656.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.30.55-300x192.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.30.55-768x492.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.30.55-1536x985.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.30.55-2048x1313.png 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
1109
1110
1111
1112<p class="wp-block-paragraph">You can drag the corners by clicking into the graph and select one corner to drag in order to enlarge the graph:</p>
1113
1114
1115
1116<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="628" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.31.53-1024x628.png" alt="" class="wp-image-1759" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.31.53-1024x628.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.31.53-300x184.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.31.53-768x471.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.31.53-1536x942.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.31.53-2048x1255.png 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
1117
1118
1119
1120<p class="wp-block-paragraph">
1120Then you have a nice result where you see in which frequencies your filter let&#8217;s the maximum of the signal go through:</p>
1121
1122
1123
1124<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="656" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.32.00-1024x656.png" alt="" class="wp-image-1760" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.32.00-1024x656.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.32.00-300x192.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.32.00-768x492.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.32.00-1536x985.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.32.00-2048x1313.png 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>We see that the band of frequencies specified is respected and let through by the filter, while the levels of other frequencies are very much attenuated. To read this diagram, the value on the Y-axis (on the left) is the number of times the power that goes through. The X-axis is the frequency. 7.1e6 corresponds to 7.1*1,000,000 Hz = 7.1 MHz</figcaption></figure>
1125
1126
1127
1128<h2 class="wp-block-heading">Now we need to adjust the components</h2>
1129
1130
1131
1132<p class="wp-block-paragraph">As you&#8217;ll see, the values of components are not standardised values, and we need to change some of the components values to match what we can find in shops.</p>
1133
1134
1135
1136<p class="wp-block-paragraph">So we&#8217;ll do one change, save, run a simulation and check that the effect on the filter is not so bad. Not so bad effect means:</p>
1137
1138
1139
1140<ul class="wp-block-list"><li>The filter still filters approximatively the same frequencies (same cut-offs)</li><li>The filtering level is still the same (around 0.1x of the signal or better)</li><li>The allowed (passed) signals are still around the same levels (0.9 or better)</li></ul>
1141
1142
1143
1144<p class="wp-block-paragraph">So the raw values we had without adjustment of electronic components were:</p>
1145
1146
1147
1148<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="694" src="https://www.tmplab.org/wp-content/uploads/2021/03/unadjusted-1024x694.png" alt="" class="wp-image-1763" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/unadjusted-1024x694.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/unadjusted-300x203.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/unadjusted-768x521.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/unadjusted.png 1168w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
1149
1150
1151
1152<p class="wp-block-paragraph">Here is the adjusted graph we end up with:</p>
1153
1154
1155
1156<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="680" src="https://www.tmplab.org/wp-content/uploads/2021/03/adjusted-1024x680.png" alt="" class="wp-image-1764" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/adjusted-1024x680.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/adjusted-300x199.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/adjusted-768x510.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/adjusted.png 1296w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>All these values of components we can find in shops, except the L1 inductor that we can&#8217;t find. Suggestions welcome.</figcaption></figure>
1157
1158
1159
1160<p class="wp-block-paragraph">And the corresponding filter simulation output:</p>
1161
1162
1163
1164<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="716" src="https://www.tmplab.org/wp-content/uploads/2021/03/filter-result-1024x716.png" alt="" class="wp-image-1765" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/filter-result-1024x716.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/filter-result-300x210.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/filter-result-768x537.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/filter-result-1536x1074.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/filter-result-2048x1433.png 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>This looks acceptable. Or so we think&#8230; 😉</figcaption></figure>
1165
1166
1167
1168<p class="wp-block-paragraph">Now this is probably not how we should be building filters. And we&#8217;re open to suggestions or links to good resource to learn how to do better. It&#8217;s for sure not the Electronic Engineer&#8217;s way and we&#8217;re eager to do better.</p>
1169
1170
1171
1172<h2 class="wp-block-heading">Protect the RPi: Schottky Diode</h2>
1173
1174
1175
1176<p class="wp-block-paragraph">We heard (and felt with our fingers) that antenna can collect some static electricity, and that we may 
1176need to protect the RPi against such electricity using a <a href="https://en.wikipedia.org/wiki/Schottky_diode">Schottky Diode</a>. Although not classified as Schottky Diode, the <a href="https://en.wikipedia.org/wiki/1N4148_signal_diode">1N4148</a> signal diode was often quoted as the way to go to protect our RPi. So here we go and added to the schema:</p>
1177
1178
1179
1180<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="630" src="https://www.tmplab.org/wp-content/uploads/2021/03/schottky-1024x630.png" alt="" class="wp-image-1769" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/schottky-1024x630.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/schottky-300x184.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/schottky-768x472.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/schottky.png 1428w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
1181
1182
1183
1184<p class="wp-block-paragraph">Then we proceed to simulate again to check the resulting graph:</p>
1185
1186
1187
1188<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="741" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.52.50-1024x741.png" alt="" class="wp-image-1770" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.52.50-1024x741.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.52.50-300x217.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.52.50-768x556.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.52.50-1536x1111.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-22.52.50.png 1952w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>(Even though some error window is displayed before showing Simulation result graph)</figcaption></figure>
1189
1190
1191
1192<p class="wp-block-paragraph">We see that the filter&#8217;s output seems ok. </p>
1193
1194
1195
1196<p class="wp-block-paragraph">Now that&#8217;s where we are for now. The schematics are <a href="https://pastebin.com/J5nX7vYp">here</a>.</p>
1197
1198
1199
1200<h2 class="wp-block-heading">Update for off-the-shelf capacitor values</h2>
1201
1202
1203
1204<p class="wp-block-paragraph">For completeness, here is the v7 with the split C1 capacitor to reflect reality of capacitors values that are easily available in shops:</p>
1205
1206
1207
1208<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="475" src="https://www.tmplab.org/wp-content/uploads/2021/03/v7-1024x475.png" alt="" class="wp-image-1781" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/v7-1024x475.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/v7-300x139.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/v7-768x356.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/v7-1536x712.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/v7.png 1756w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>Here we see that C1 became C1 and C3 (in parallel) to add their values. C1 and C3 (and C2) are standard ceramic capacitors (through hole versions).</figcaption></figure>
1209
1210
1211
1212<p class="wp-block-paragraph">And the resulting simulations gives the same result:</p>
1213
1214
1215
1216<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="767" src="https://www.tmplab.org/wp-content/uploads/2021/03/v7-sim-1024x767.png" alt="" class="wp-image-1782" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/v7-sim-1024x767.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/v7-sim-300x225.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/v7-sim-768x575.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/v7-sim-1536x1150.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/v7-sim.png 1976w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
1217
1218
1219
1220<h2 class="wp-block-heading">Feedbacks and comments</h2>
1221
1222
1223
1224<p class="wp-block-paragraph">We&#8217;re eager to hear more from you if you have any question or feedback. Please either come to <a href="https://app.element.io/#/room/#tmplab:matrix.fuz.re">/tmp/lab</a> Matrix chat room: #tmplab:matrix.fuz.re or comment on the reddit link (that will be posted in some time). We also expect to make a short video too to show people how we use QUCS for this.</p>
1225
1226
1227
1228<p class="wp-block-paragraph">Next episodes:</p>
1229
1230
1231
1232<ol class="wp-block-list"><li>Building the filter: soldering, components, testing</li><li>Antenna connections and measurements with NanoVNA</li><li>Setting up antennas, safety considerations, emitted power</li><li>Building our next antenna(s)</li><li>Testing the reach of WSPR weak signals</li></ol>
1233
1234
1235
1236<p class="wp-block-paragraph">In the meantime, kind regards and please, come and participate. There are no stupid questions. There are no bad feedbacks (but please be kind 😉 ).</p>
1237
1238
1239
1240<h2 class="wp-block-heading">Feedbacks and discussion</h2>
1241
1242
1243
1244<p class="wp-block-paragraph">Ah&#8230; that&#8217;s awesome, the power of internet community, already just a few minutes after publishing some kind souls gave comments about the design and very informative resources, so I&#8217;ll take them point by point here.</p>
1245
1246
1247
1248<h2 class="wp-block-heading">Feedback #1: LPF</h2>
1249
1250
1251
1252<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>I would have used a low pass filter, not bandpass.</p></blockquote>
1253
1254
1255
1256<p class="wp-block-paragraph">Yes, we tried some LPF (Low Pass Filter) designs and failed at getting a nice output (the cut-off was very slow and the levels not great). What kind of LPF would be best for this application? (as indeed it sounds like a good candidate)</p>
1257
1258
1259
1260<p class="wp-block-paragraph">Here is a LPF design (along the lines of what the links below advised):</p>
1261
1262
1263
1264<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="580" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-00.14.27-1024x580.png" alt="" class="wp-image-1791" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-00.14.27-1024x580.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-00.14.27-300x170.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-00.14.27-768x435.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-00.14.27.png 1222w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>Two inductors, 3 capacitors. Here without optimized values for easy procurement.</figcaption></figure>
1265
1266
1267
1268<p class="wp-block-paragraph">And then the simulation results (here we use dBS11 and dBS21 data lines to plot relative power drop in dB. Have a look at <strong><a href="https://en.wikipedia.org/wiki/Decibel">this table</a></strong> to understand the relationship between dB and power multiplier. To remember easily, +3dB is double the power, -3 dB is half the power. +6dB is 4 times the power, etc..):</p>
1269
1270
1271
1272<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="688" src="https://www.tmplab.org/wp-content/uploads/2021/03/LPF-Bessel-5th-order-sim-1024x688.png" alt="" class="wp-image-1792" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/LPF-Bessel-5th-order-sim-1024x688.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/LPF-Bessel-5th-order-sim-300x201.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/LPF-Bessel-5th-order-sim-768x516.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/LPF-Bessel-5th-order-sim-1536x1031.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/LPF-Bessel-5th-order-sim-2048x1375.png 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
1273
1274
1275
1276<p class="wp-block-paragraph">What I subjectively find is that the cutoff frequency isn&#8217;t very &#8220;sharp&#8221; in simulation (supposedly it&#8217;s sharper in reality), and with the same amount of electronic components as a Band Pass Filter (BPF). Not sure what the benefit of the LPF would be.</p>
1277
1278
1279
1280<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>What do you see if you model your filter at 2x and 3x the working frequency? </p></blockquote>
1281
1282
1283
1284<p class="wp-block-paragraph">Here is the simulation result of our BPF (Butterworth Band Pass Filter) with very wide band, not sure that&#8217;s what was asked:</p>
1285
1286
1287
1288<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="710" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-23.54.08-1024x710.png" alt="" class="wp-image-1786" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-23.54.08-1024x710.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-23.54.08-300x208.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-23.54.08-768x532.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-23.54.08-1536x1064.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-14-at-23.54.08-2
1288048x1419.png 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>No bad effect in simulation&#8230; but that&#8217;s only a sim of course. Reality sometime differs wildly!</figcaption></figure>
1289
1290
1291
1292<h2 class="wp-block-heading">Feedback #2: Diode as harmonics source 🙁</h2>
1293
1294
1295
1296<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Also not sure you should have the diode protection. Diodes cause harmonics so as quickly as you try to filter them you have placed a device to create more 🙁</p></blockquote>
1297
1298
1299
1300<p class="wp-block-paragraph">Hmm&#8230;. how to test for this? Would the simulation show such harmonics Indeed it will be easy to test in reality.</p>
1301
1302
1303
1304<p class="wp-block-paragraph">It&#8217;s easy to add or take off anyway in the resulting circuit.</p>
1305
1306
1307
1308<h2 class="wp-block-heading">Feedback #3: References on how to do it right</h2>
1309
1310
1311
1312<figure class="wp-block-embed-wordpress wp-block-embed is-type-wp-embed is-provider-hackaday"><div class="wp-block-embed__wrapper">
1313<blockquote class="wp-embedded-content" data-secret="AYqnOGV4se"><a href="https://hackaday.com/2018/08/17/getting-an-rf-low-pass-filter-right/">Getting An RF Low-Pass Filter Right</a></blockquote><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; visibility: hidden;" title="“Getting An RF Low-Pass Filter Right” — Hackaday" src="https://hackaday.com/2018/08/17/getting-an-rf-low-pass-filter-right/embed/#?secret=bZrWzgAPKk#?secret=AYqnOGV4se" data-secret="AYqnOGV4se" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
1314</div></figure>
1315
1316
1317
1318<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Maybe take standard values for low pass filters from webpages like <a href="http://www.gqrp.com/technical2.htm">http://www.gqrp.com/technical2.htm</a> then change the inductance values to the nearest standard value fixed components? </p></blockquote>
1319
1320
1321
1322<p class="wp-block-paragraph">Definitely, the <a href="http://www.gqrp.com/Datasheet_W3NQN.pdf">PDF ressource in the GQRP link is excellent</a> and gives a practical and nice table of values for all significant HAM bands (frequencies). </p>
1323
1324
1325
1326<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="293" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-00.30.24-1024x293.png" alt="" class="wp-image-1795" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-00.30.24-1024x293.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-00.30.24-300x86.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-00.30.24-768x220.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-00.30.24.png 1480w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>3 inductors and 5 capacitors is definitely a doable and simple enough filter circuit, even if a little bit more complex than our DIY design, but in all probability more reliable and clean.<br>The Capacitor symbol seems to indicate that it&#8217;s polarized capacitors that are used. Any feedback how important it is to use polarized capacitors here?</figcaption></figure>
1327
1328
1329
1330<p class="wp-block-paragraph">The band table values for components gives also the commercially available component values:</p>
1331
1332
1333
1334<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="967" height="1024" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-00.30.42-967x1024.png" alt="" class="wp-image-1796" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-00.30.42-967x1024.png 967w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-00.30.42-283x300.png 283w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-00.30.42-768x813.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-00.30.42-1451x1536.png 1451w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-00.30.42.png 1562w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
1335
1336
1337
1338<p class="wp-block-paragraph">Go read the <a href="http://www.gqrp.com/Datasheet_W3NQN.pdf">original PDF</a> for more details. </p>
1339
1340
1341
1342<p class="wp-block-paragraph">Also some nice <a href="https://www.arrl.org/files/file/Technology/tis/info/pdf/9902044.pdf">ARRL article</a> about the CWAZ filters mentioned in the above resources.</p>
1343
1344
1345
1346<p class="wp-block-paragraph">Reading about these filters the CWAZ filters advised by GQRP seems to be advised because of the inadequate filtering of Chebyshev LPF when power levels greater than 5W (FCC requires transmitter spurious outputs below 30 MHz to be attenuated by 40 dB or more for power levels above 5W)</p>
1347
1348
1349
1350<p class="wp-block-paragraph">
1350In our case, the power levels are far less than 5W, so actually we could maybe use a simple Chebyshev 3rd order Low Pass Filter and that could be good enough. The filter synthesis result of such LPF could be as simple as:</p>
1351
1352
1353
1354<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="654" src="https://www.tmplab.org/wp-content/uploads/2021/03/chebyshev-3rd-order-1024x654.png" alt="" class="wp-image-1800" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/chebyshev-3rd-order-1024x654.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/chebyshev-3rd-order-300x191.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/chebyshev-3rd-order-768x490.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/chebyshev-3rd-order.png 1056w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
1355
1356
1357
1358<p class="wp-block-paragraph">With resulting filter simulation:</p>
1359
1360
1361
1362<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="726" src="https://www.tmplab.org/wp-content/uploads/2021/03/chebyshev-3rd-order-sim-1024x726.png" alt="" class="wp-image-1801" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/chebyshev-3rd-order-sim-1024x726.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/chebyshev-3rd-order-sim-300x213.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/chebyshev-3rd-order-sim-768x545.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/chebyshev-3rd-order-sim-1536x1089.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/chebyshev-3rd-order-sim.png 2036w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
1363
1364
1365
1366<p class="wp-block-paragraph">Now when we adjust to available component values, this gives:</p>
1367
1368
1369
1370<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="647" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-01.38.04-1024x647.png" alt="" class="wp-image-1803" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-01.38.04-1024x647.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-01.38.04-300x190.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-01.38.04-768x485.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-01.38.04.png 1054w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>lc-ladder-pi-chebyshev-lpf-3rd-order-8MHz-v3.sch</figcaption></figure>
1371
1372
1373
1374<p class="wp-block-paragraph">How simple, 2x capacitor of 1nF, 1 inductor of 1uH. Now we&#8217;ll see if this fairy tale matches the reality of what we need once implemented 😉</p>
1375
1376
1377
1378<p class="wp-block-paragraph">It simulates to:</p>
1379
1380
1381
1382<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="744" src="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-01.38.11-1024x744.png" alt="" class="wp-image-1804" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-01.38.11-1024x744.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-01.38.11-300x218.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-01.38.11-768x558.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-01.38.11-1536x1116.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/Screenshot-2021-03-15-at-01.38.11.png 2006w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
1383
1384
1385
1386<p class="wp-block-paragraph">Which seems pretty much acceptable. Do you think the same? Tell us.</p>
1387
1388
1389
1390<h2 class="wp-block-heading">Feedback #4: Filter may not filter enough at higher frequencies</h2>
1391
1392
1393
1394<p class="wp-block-paragraph">The filtering of our simple filters may not be enough: the <a href="https://en.wikipedia.org/wiki/R
1394oll-off#Higher_order_networks">roll-off</a>, that is the drop after the cutoff frequency, may not be steep enough.</p>
1395
1396
1397
1398<p class="wp-block-paragraph">Filters use often multiple &#8220;poles&#8221;, that is multiple Inductor+capacitor &#8220;legs&#8221; to the ground, in order to filter more (e.g. to -60dB or more) at higher frequencies. The more poles (the &#8220;higher order&#8221; filter), the steeper roll-off, the more attenuation of signal at higher frequencies. </p>
1399
1400
1401
1402<p class="wp-block-paragraph">More filtering means less spurious frequencies. And that is the goal of a better filter. Indeed, that&#8217;s the role of the CWAZ filter. </p>
1403
1404
1405
1406<p class="wp-block-paragraph">Note that Chebyshev filters use order 3, 5, 7 (odd numbers) only when doing filtering synthesis of a passive filter (i.e. one that you don&#8217;t need to supply external electricity power supply to work).</p>
1407
1408
1409
1410<p class="wp-block-paragraph">So that means that we may either try such filter synthesis&#8230;. or use the CWAZ filter that is quite simple still.</p>
1411
1412
1413
1414<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="653" src="https://www.tmplab.org/wp-content/uploads/2021/03/cwaz-v2-1.2uH-1024x653.png" alt="" class="wp-image-1833" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/cwaz-v2-1.2uH-1024x653.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/cwaz-v2-1.2uH-300x191.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/cwaz-v2-1.2uH-768x490.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/cwaz-v2-1.2uH.png 1528w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
1415
1416
1417
1418<p class="wp-block-paragraph">Now the problem is to try to use very standard values for electronic components. </p>
1419
1420
1421
1422<p class="wp-block-paragraph">Here for 7MHz, it&#8217;s a bit easier as 430pF is 330pF (standard) + 100pF (standard) in parallel. And 660pF is two 330pF capacitor (standard) in parallel.</p>
1423
1424
1425
1426<p class="wp-block-paragraph">The resulting filter graph is actually very good:</p>
1427
1428
1429
1430<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="758" src="https://www.tmplab.org/wp-content/uploads/2021/03/cwaz-v1-graph-log-1024x758.png" alt="" class="wp-image-1836" srcset="https://www.tmplab.org/wp-content/uploads/2021/03/cwaz-v1-graph-log-1024x758.png 1024w, https://www.tmplab.org/wp-content/uploads/2021/03/cwaz-v1-graph-log-300x222.png 300w, https://www.tmplab.org/wp-content/uploads/2021/03/cwaz-v1-graph-log-768x569.png 768w, https://www.tmplab.org/wp-content/uploads/2021/03/cwaz-v1-graph-log-1536x1138.png 1536w, https://www.tmplab.org/wp-content/uploads/2021/03/cwaz-v1-graph-log.png 1882w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>Red line is the output of the filter.<br>1e7 = 10 MHz. 2e7 = 20MHz, so we see that around 9 MHz the signal starts to be filtered. And that a -70dB filtering means the power level was divided by 10 million 🙂</figcaption></figure>
1431
1432
1433
1434<p class="wp-block-paragraph">The inductor value of 1.34 uH is not at all easy to find in already prepared packages. If we replace this 1.34uH inductor by a 1.2uH inductor, there&#8217;s a risk for a mismatch impedance (meaning your antenna may reflect back some part of the signal to the raspberry pi and damage its circuit components). Ahh&#8230; so either we don&#8217;t filter enough or we risk having reflected signal from the antenna to the transmitter. What a wonderful world 😉</p>
1435
1436
1437
1438<h2 class="wp-block-heading">Future</h2>
1439
1440
1441
1442<p class="wp-block-paragraph">The new plan is to try to build both our first DIY designed Butterworth BPF filter, the CWAZ and the LPF Chebyshev filter and evaluate these.</p>
1443
1444
1445
1446<p class="wp-block-paragraph">We&#8217;ll improve this article when finished studying these ressources! Thanks to everyone who is providing feedbacks and ressources!</p>
1447
1448
1449
1450<h2 class="wp-block-heading">Thank you</h2>
1451
1452
1453
1454<p class="wp-block-paragraph">Thanks to the following awesome people who helped either with Radio or with the resources to post and document this exploration:</p>
1455
1456
1457
1458<ul class="wp-block-list"><li><a href="https://www.g0dub.uk/">G0DUB</a></li><li>Alban</li></ul>
1459
1460
1461
1462<h2 class="wp-block-heading">Ressources</h2>
1463
1464
1465
1466<p class="wp-block-paragraph">Some ressources that may be useful regarding this post:</p>
1467
1468
1469
1470<ul class="wp-block-list"><li><a href="http://rockingdlabs.dunmire.org/exercises-experiments/bpf-analysis#TOC-Universal-Dual-HF-Band-Filter-BPF-">http://rockingdlabs.dunmire.org/exercises-experiments/bpf-analysis#TOC-Universal-Dual-HF-Band-Filter-BPF-</a></li><li><a href="https://tapr.org/product/wspr/">https://tapr.org/product/wspr/</a></li><li><a href="https://github.com/JamesP6000/WsprryPi/blob/master/README">https://github.com/JamesP6000/WsprryPi/blob/master/README</a></li><li><a href="https://github.com/dslotter/HamPi">https://github.com/dslotter/HamPi</a></li><li><a href="https://hexandflex.com/2020/01/11/impedance-matching-with-qucs-studio-and-vna/">https://hexandflex.com/2020/01/11/impedance-matching-with-qucs-studio-and-vna/</a></li></ul>
1471
1472
1473
1474<p class="wp-block-paragraph"></p>
1475	</div><!-- .entry-content -->
1476
1477	<footer class="entry-footer">
1478		<span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/a4453a4988a5c5d304ba448a3c7aa79b0cf54b308fd043219fd5bb029a8d2d49?s=49&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/a4453a4988a5c5d304ba448a3c7aa79b0cf54b308fd043219fd5bb029a8d2d49?s=98&#038;d=mm&#038;r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy' decoding='async'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.tmplab.org/author/phil/">phil</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.tmplab.org/2021/03/14/tmp-ham-episode-1-raspberry-pi-weak-signals-wspr-and-filters/" rel="bookmark"><time class="entry-date published" datetime="2021-03-14T23:11:11+01:00">March 14, 2021</time><time class="updated" datetime="2021-03-16T17:35:01+01:00">March 16, 2021</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.tmplab.org/category/english/" rel="category tag">English</a>, <a href="https://www.tmplab.org/category/news/" rel="category tag">News</a>, <a href="https://www.tmplab.org/category/projects/" rel="category tag">Projects</a></span><span class="tags-links"><span class="screen-reader-text">Tags </span><a href="https://www.tmplab.org/tag/7mhz/" rel="tag">7mhz</a>, <a href="https://www.tmplab.org/tag/antenna/" rel="tag">antenna</a>, <a href="https://www.tmplab.org/tag/electronics/" rel="tag">electronics</a>, <a href="https://www.tmplab.org/tag/filters/" rel="tag">filters</a>, <a href="https://www.tmplab.org/tag/floss/" rel="tag">FLOSS</a>, <a href="https://www.tmplab.org/tag/frequency/" rel="tag">frequency</a>, <a href="https://www.tmplab.org/tag/ham/" rel="tag">ham</a>, <a href="https://www.tmplab.org/tag/qucs/" rel="tag">qucs</a>, <a href="https://www.tmplab.org/tag/radio/" rel="tag">radio</a>, <a href="https://www.tmplab.org/tag/raspberry-pi/" rel="tag">Raspberry Pi</a>, <a href="https://www.tmplab.org/tag/rf/" rel="tag">RF</a>, <a href="https://www.tmplab.org/tag/rfi/" rel="tag">RFI</a>, <a href="https://www.tmplab.org/tag/rpi/" rel="tag">RPi</a>, <a href="https://www.tmplab.org/tag/wspr/" rel="tag">wspr</a></span><span class="comments-link"><a href="https://www.tmplab.org/2021/03/14/tmp-ham-episode-1-raspberry-pi-weak-signals-wspr-and-filters/#respond">Leave a comment<span class="screen-reader-text"> on /tmp/ham Episode 1: Raspberry Pi, weak signals (WSPR) and filters</span></a></span>			</footer><!-- .entry-footer -->
1479</article><!-- #post-1696 -->
1480
1481<article id="post-1689" class="post-1689 post type-post status-publish format-standard has-post-thumbnail hentry category-h
1481ackerspaces category-news tag-fermeture tag-myrys">
1482	<header class="entry-header">
1483		
1484		<h2 class="entry-title"><a href="https://www.tmplab.org/2021/01/28/soutien-a-mixart-myrys/" rel="bookmark">Soutien à Mix&#8217;Art Myrys</a></h2>	</header><!-- .entry-header -->
1485
1486				<div class="entry-summary">
1487				<p>Mix&#8217;Art Myrys fait l&#8217;objet d&#8217;une fermeture administrative depuis le 20 janvier 2021. </p>
1488<p>Ce lieu toulousain nous est cher.<br />
1489Sa vivacité artistique,  aussi indépendante qu&#8217;originale, nous a toujours semblé exceptionelle. Nous n&#8217;en connaissons pas beaucoup de pareilles.</p>
1490			</div><!-- .entry-summary -->
1491			
1492	
1493	<a class="post-thumbnail" href="https://www.tmplab.org/2021/01/28/soutien-a-mixart-myrys/" aria-hidden="true">
1494		<img width="1200" height="600" src="https://www.tmplab.org/wp-content/uploads/2021/01/dfb0c9c_to7WQIV3al3VV-QmXik_84HU.jpeg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Soutien à Mix&#8217;Art Myrys" decoding="async" loading="lazy" srcset="https://www.tmplab.org/wp-content/uploads/2021/01/dfb0c9c_to7WQIV3al3VV-QmXik_84HU.jpeg 1440w, https://www.tmplab.org/wp-content/uploads/2021/01/dfb0c9c_to7WQIV3al3VV-QmXik_84HU-300x150.jpeg 300w, https://www.tmplab.org/wp-content/uploads/2021/01/dfb0c9c_to7WQIV3al3VV-QmXik_84HU-1024x512.jpeg 1024w, https://www.tmplab.org/wp-content/uploads/2021/01/dfb0c9c_to7WQIV3al3VV-QmXik_84HU-768x384.jpeg 768w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 60vw, (max-width: 1362px) 62vw, 840px" />	</a>
1495
1496		
1497	<div class="entry-content">
1498		
1499<p class="wp-block-paragraph">Mix&#8217;Art Myrys fait l&#8217;objet d&#8217;une fermeture administrative depuis le 20 janvier 2021.  </p>
1500
1501
1502
1503<p class="wp-block-paragraph">Ce lieu toulousain nous est cher.  </p>
1504
1505
1506
1507<p class="wp-block-paragraph">Sans compter les éditions du <a href="https://www.tmplab.org/2019/05/15/thsf-10-tmplab-programme/">THSF</a> (<a href="https://www.tmplab.org/2012/05/31/thsf-was-awesome/">Toulouse Hacker Space Factory</a>) qui s&#8217;y sont tenues, les universités des quatre saisons du Tetalab, ou la rencontre <a href="https://www.tmplab.org/2020/10/13/residence-sonoptic-2020/">Sonoptic</a>, ce lieu est un symbole. Sa vivacité artistique,  aussi indépendante qu&#8217;originale, nous a toujours semblé exceptionelle. Nous n&#8217;en connaissons pas beaucoup de pareilles. </p>
1508
1509
1510
1511<p class="wp-block-paragraph">Au delà de cette éviction décidée en quelques jours, <a href="https://vive.mixart-myrys.org/ils-ont-ferme-mixart-myrys-et-arrete-les-subventions-2021-recit-des-derniers-jours/">il apparaît aujourd&#8217;hui</a> qu&#8217;il s&#8217;agit d&#8217;une opération coordonnée destinée à faire disparaitre ce lieu unique : la ville de Toulouse et le conseil métropolitain ont décidé en décembre de couper les subventions à l’association Mix’art Myrys en 2021 sans en prévenir préalablement l&#8217;
1511organisation, ses salariés, les artistes, et les associations qui y résident. </p>
1512
1513
1514
1515<p class="wp-block-paragraph"><a href="https://www.change.org/p/mix-art-myrys-que-vive-mix-art-myrys">Une pétition vous permet de soutenir Mix&#8217;Art Myrys.</a> </p>
1516
1517
1518
1519<p class="wp-block-paragraph">Nous vous encourageons à relayer ces informations et participer au combat politique qui s&#8217;annonce visant à obtenir qu&#8217;une solution pérenne et satisfaisante soit conclue. </p>
1520
1521
1522
1523<p class="wp-block-paragraph">Vive Mix&#8217;Art Myrys !</p>
1524	</div><!-- .entry-content -->
1525
1526	<footer class="entry-footer">
1527		<span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=49&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&#038;d=mm&#038;r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy' decoding='async'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.tmplab.org/author/alban/">alban</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.tmplab.org/2021/01/28/soutien-a-mixart-myrys/" rel="bookmark"><time class="entry-date published" datetime="2021-01-28T15:36:59+01:00">January 28, 2021</time><time class="updated" datetime="2021-01-28T15:42:05+01:00">January 28, 2021</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.tmplab.org/category/hackerspaces/" rel="category tag">Hackerspaces</a>, <a href="https://www.tmplab.org/category/news/" rel="category tag">News</a></span><span class="tags-links"><span class="screen-reader-text">Tags </span><a href="https://www.tmplab.org/tag/fermeture/" rel="tag">fermeture</a>, <a href="https://www.tmplab.org/tag/myrys/" rel="tag">myrys</a></span><span class="comments-link"><a href="https://www.tmplab.org/2021/01/28/soutien-a-mixart-myrys/#respond">Leave a comment<span class="screen-reader-text"> on Soutien à Mix&#8217;Art Myrys</span></a></span>			</footer><!-- .entry-footer -->
1528</article><!-- #post-1689 -->
1529
1530<article id="post-1672" class="post-1672 post type-post status-publish format-standard has-post-thumbnail hentry category-teamlaser category-art category-code category-software">
1531	<header class="entry-header">
1532		
1533		<h2 class="entry-title"><a href="https://www.tmplab.org/2020/10/15/residence-sonoptic-le-debrief-productif/" rel="bookmark">Résidence SONOPTIC : le debrief productif</a></h2>	</header><!-- .entry-header -->
1534
1535				<div class="entry-summary">
1536				<p>La résidence SONOPTIC, dont nous avons fourni un compte-rendu ici pour les aspects collaboratifs, a été une période de production assez intense pour la Teamlaser composée de membres du Fuz et du /tmp/lab. Nous allons exposer ce travail afin que toutes et tous puissent profiter des outils que nous produisons via liens et explications.</p>
1537			</div><!-- .entry-summary -->
1538			
1539	
1540	<a class="post-thumbnail" href="https://www.tmplab.org/2020/10/15/residence-sonoptic-le-debrief-productif/" aria-hidden="true">
1541		<img width="1200" height="675" src="https://www.tmplab.org/wp-content/uploads/2020/10/20201013_195710-scaled.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Résidence SONOPTIC : le debrief productif" decoding="async" loading="lazy" srcset="https://www.tmplab.org/wp-content/uploads/2020/10/20201013_195710-scaled.jpg 2560w, https://www.tmplab.org/wp-content/uploads/2020/10/20201013_195710-300x169.jpg 300w, https://www.tmplab.org/wp-content/uploads/2020/10/20201013_195710-1024x576.jpg 1024w, https://www.tmplab.org/wp-content/uploads/2020/10/20201013_195710-768x432.jpg 768w, https://www.tmplab.org/wp-content/uploads/2020/10/20201013_195710-1536x864.jpg 1536w, https://www.tmplab.org/wp-content/uploads/2020/10/20201013_195710-2048x1152.jpg 2048w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 60vw, (max-width: 1362px) 62vw, 840px" />	</a>
1542
1543		
1544	<div class="entry-content">
1545		
1546<div id="doc" class="markdown-body container-fluid"><p>La résidence SONOPTIC, dont nous avons fourni un compte-rendu <a href="https://www.tmplab.org/2020/10/13/residence-sonoptik-2020/" target="_blank" rel="noopener noreferrer">ici</a> pour les aspects collaboratifs, a été une période de production assez intense pour la <a href="https://www.teamlaser.tk/" target="_blank" rel="noopener noreferrer">
1546Teamlaser</a> composée de membres du Fuz et du /tmp/lab.</p><p>Nous allons exposer ce travail afin que toutes et tous puissent profiter des outils que nous produisons via liens et explications.</p><p>Si vous ne connaissez pas la brique logicielle centrale de notre système nommée <a href="https://git.interhacker.space/teamlaser/LJ" target="_blank" rel="noopener noreferrer">LJ</a>, lisez plus bas la note qui le concerne sans quoi vous risquez de ne pas comprendre certaines informations qui vont suivre.</p><p>Pour en discuter et pour toutes questions, nous vous invitons à nous rejoindre sur le <a href="https://riot.fuz.re/#/room/#teamlaser:matrix.fuz.re" target="_blank" rel="noopener noreferrer">salon Matrix suivant : https://riot.fuz.re/#/room/#teamlaser:matrix.fuz.re</a></p><h2 id="Les-avancées-techniques">Les avancées techniques</h2><p>Cette partie est un peu hardue mais nécessaire. Afin de piloter les lasers via du logiciel libre, nous avons besoin de toutes sortes d’utilitaires et de processus résidents, voici ceux sur lesquels nous avons travaillé dans le cadre de SONOPTIC.</p><h4 id="Mise-au-point-d’un-système-de-génération-de-programmes-utilisant-les-pipes-UNIX">Mise au point d’un système de génération de programmes utilisant les pipes UNIX</h4><p>Présentée simplement, cette solution permet de produire des lignes de commande comme ceci :</p><pre><code>generateur | filtre_1 | ... | filtre_X | exporteur
1547</code></pre><p>L’<code>exporteur</code> envoie ainsi dans la base Redis (cas le plus courant) les données générées par le <code>generateur</code> puis passées par les différents <code>filtres</code>.</p><p>Cela est possible grâce aux pipes UNIX, les <code>"|"</code> qui se trouvent entre les programmes. Ce sont des opérateurs en ligne de commande qui transfèrent au programme suivant la sortie standard du programme précédent. Ainsi, le générateur produit une liste de point qui passe de filtre en filtre avant d’être exportée sur le réseau.</p><p>Cette solution offre plusieurs avantages :</p><ul>
1548<li>elle simplifie la démarche de création de programmes pour LJ : on peut utiliser toutes sortes de programmes et de langages pour générer des tracés, tant qu’ils ont une sortie (output, fichier, osc, etc.)</li>
1549<li>elle offre une grande capacité d’adaptation et de variation : on peut passer les génerateurs dans toutes sortes de filtres.</li>
1550</ul><p>Cette solution a été particulièrement utile lors de la résidence pour prototyper rapidement des programmes.</p><p><a href="https://git.interhacker.space/teamlaser/LJ/src/branch/master/clitools" target="_blank" rel="noopener noreferrer">Code sur https://git.interhacker.space/teamlaser/LJ/src/branch/master/clitools</a></p><h4 id="Mise-au-point-d’un-système-de-transmission-des-spectogrammes-et-informations-de-tempo-temps-réel">Mise au point d’un système de transmission des spectogrammes et informations de tempo temps réel</h4><p>Afin d’avoir une réactivité aux environnements sonores, nous avons développé un logiciel qui effectue des analyses temps réel ensuite envoyées au server redis central. Ce qui permet à plusieurs générateurs de points d’utiliser une source commune d’analyse.</p><p>Originalement développée en python2, elle est devenue complexe à compiler sur Debian et nous allons la convertir en python3.</p><p>Cette solution a été particulièrement utile durant SONOPTIC, notammment pour les systèmes de particules.</p><p><a href="https://git.interhacker.space/teamlaser/redilysis" target="_blank" rel="noopener noreferrer">Code sur https://git.interhacker.space/teamlaser/redilysis</a></p><h4 id="Réécriture-du-logiciel-d’optimisation-des-tracés">Réécriture du logiciel d’optimisation des tracés</h4><p>Il y a une grande différence ce qu’on envoie aux lasers et ce que dessinent ces derniers : leurs moteurs (galvanomètres) sont très rapides et ont en particulier tendance à “arrondir les angles” si on ne force pas leur dessin.</p><p>Un optimiseur de tracés existait dans LJ, mais nous souhaitions tester <a href="https://lib.rs/crates/lasy" target="_blank" rel="noopener noreferrer">lasy, une librairie RUST</a> dédiées à l’optimisation de points en laser (voire <a href="https://docs.rs/lasy/0.4.1/lasy/" target="_blank" rel="noopener noreferrer">sa documentation pour plus de détails</a>).</p><p>Ce travail a abouti à un filtre permettant effectivement d’optimiser les points d’un tracé, ce qui impliquait de supprimer l’optimiseur existant de LJ sous peine d’avoir une trop grande quantité de points. Un travail intéressant mais que nous devons <em>benchmarker</em> et intégrer dans LJ pour qu’il soit vraiment utile.</p><p><a href="https://git.interhacker.space/lle-bout/lasy-cli" target="_blank" rel="noopener noreferrer">Code sur https://git.interhacker.space/lle-bout/lasy-cli</a></p><h4 id="Mise-à-disposition-du-logiciel-LJ-sous-forme-de-VM">Mise à disposition du logiciel LJ sous forme de VM</h4><p><a href="https://git.interhacker.space/teamlaser/LJ" target="_blank" rel="noopener noreferrer">LJ</a> est un logiciel avec de nombreuses dépendances, prévues pour installer sur une distribution debian.</p><p>Nous avons donc entrepris de le fournir sous la forme de machines virtuelles via <a href="https://packer.io" target="_blank" rel="noopener noreferrer">Packer</a>. Pour le moment, seule <a href="https://www.tmplab.org/wp-content/lazer-iso.zip" target="_blank" rel="noopener noreferrer">une image KVM est disponible</a>
1550 mais d’autres pourraient être déployées à terme permettant de tester le logiciel sur différentes plateformes.</p><p>La nécessité de ces images n’a pas fait ses preuves durant la résidence, entre processeurs ne supportant pas la virtualisation et personne préférant simplement utiliser <a href="https://git.interhacker.space/teamlaser/LJ/src/branch/master/server/install.sh" target="_blank" rel="noopener noreferrer">le script d’installation standard</a>.</p><p><a href="https://git.interhacker.space/teamlaser/LJ-packer" target="_blank" rel="noopener noreferrer">Code sur  https://git.interhacker.space/teamlaser/LJ-packer</a></p><h2 id="Les-pistes-créatives-poursuivies-durant-la-résidence">Les pistes créatives poursuivies durant la résidence</h2><p>En partant en résidence, les idées ne manquent pas. Voici celles que nous avons effectivement exploitées sur place.</p><h4 id="Création-d’un-générateur-de-points-basé-sur-les-trames-OSC-et-UDP">Création d’un générateur de points basé sur les trames OSC et UDP</h4><p>En utilisant des protocoles temps réel assez répandus et en les passant dans notre chaîne de traitement à base de pipes UNIX, nous avons pu recevoir des participations externes décidées sur place.</p><p>Ce type de receveurs de flux est très intéressant et montre la capacité de LJ à s’interfacer avec des sources hétérogènes.</p><p>Code source pour <a href="https://git.interhacker.space/teamlaser/LJ/src/branch/master/clitools/generators/fromUDP.py" target="_blank" rel="noopener noreferrer">du receveur UDP</a> et <a href="https://git.interhacker.space/teamlaser/LJ/src/branch/master/clitools/generators/fromOSC.py" target="_blank" rel="noopener noreferrer">du receveur OSC</a></p><h4 id="Création-d’un-jeu-en-Rust-avec-contrôle-par-joystick">Création d’un jeu en Rust avec contrôle par joystick</h4><p>La création d’un jeu codé avec le langage Rust était l’objectif d’une partie de l’équipe, qui a recodé un moteur physique simple pour créer un jeu de plateforme interfacé à LJ via un exporteur en pipe UNIX.</p><p><a href="https://git.interhacker.space/lle-bout/LJ-rust-filters" target="_blank" rel="noopener noreferrer">Code source sur https://git.interhacker.space/lle-bout/LJ-rust-filters</a></p><h4 id="Création-d’un-générateur-de-points-utilisant-une-interface-de-détection-de-mouvements">Création d’un générateur de points utilisant une interface de détection de mouvements</h4><p>Un membre de l’équipe a travaillé sur l’exploitation dans un cadre laser d’une double caméra infrarouge capable de reconnaître les mouvements de la main. Associé à une génération de particules, ce générateur a pu être utilisé en live.</p><p><a href="https://git.interhacker.space/lapin/particle_system" target="_blank" rel="noopener noreferrer">Code source</a></p><h4 id="Création-de-programmes-de-tracés-utilisant-l’analyse-de-spectrogrammes">Création de programmes de tracés utilisant l’analyse de spectrogrammes</h4><p>Plusieurs programmes basés sur les analyses spectrographiques ont été développés. Les formes simples, comme un spectrogramme défilant, ont rapidement été jugées insuffisantes. Un système de particules plus complexe et plus réactif a été jugé beaucoup plus intéressant par le public.</p><p>Code du <a href="https://git.interhacker.space/teamlaser/LJ/src/branch/master/clitools/generators/redilysis_lines.py" target="_blank" rel="noopener noreferrer">spectrogramme en ligne</a> et du <a href="https://git.interhacker.space/teamlaser/LJ/src/branch/master/clitools/generators/redilysis_particles.py" target="_blank" rel="noopener noreferrer">générateur de particule réactif</a></p><h4 id="Application-d’un-programme-de-simulation-de-particules-moléculaires">Application d’un programme de simulation de particules moléculaires</h4><p>Une chercheuse en biologie moléculaire qui utilise le logiciel <a href="https://ccl.northwestern.edu/netlogo/" target="_blank" rel="noopener noreferrer">Netlogo</a> pour ses représentations spatiales a sorti en mode texte des simulations qu’elle a envoyé sur les lasers.</p><p><a href="https://github.com/Ninouchkaia/sonoptik" target="_blank" rel="noopener noreferrer">Sources et fichiers résultats sur https://github.com/Ninouchkaia/sonoptik</a></p><h4 id="Création-d’un-pilotage-de-playlists-laser-via-le-clavier">Création d’un pilotage de playlists laser via le clavier</h4><p>L’utilisation des programmes en ligne de commande est peu pratique dans le cadre d’une performance live : interrompre le programme, changer la ligne de commandes, corriger les erreurs de frappe éventuelles…</p><p>Pour changer rapidement de programmes, un programme pour piloter une “playlist” dans un terminal a été produit. Il permet de créer / éditer / sauver une playlist de commandes et autres usages pratiques liés à une performance live.</p><p>Ce programme a été fort utile lors des restitutions, offrant plus de réactivité et de contrôle rapide des lasers.</p><p><a href="https://git.interhacker.space/teamlaser/LJ/src/branch/master/clitools/runner.py" target="_blank" rel="noopener noreferrer">Code source sur https://git.interhacker.space/teamlaser/LJ/src/branch/master/clitools/runner.py</a></p><h4 id="Création-d’un-pilotage-de-playlists-laser-via-un-pad-tactile">Création d’un pilotage de playlists laser via un pad tactile</h4><p>Une fois l’interface terminal produite, on a pu extraire la <a href="https://git.interhacker.space/teamlaser/LJ/src/branch/master/clitools/runner.py" target="_blank" rel="noopener noreferrer">librairie</a> des fonctionnalités et coder une version pilotable depuis un pad USB à touches.</p><p>Cette version n’a pas été exploitée en live car développée trop tardivement mais ouvre la porte 
1550à de nombreuses possibilités.</p><p><a href="https://git.interhacker.space/teamlaser/LJ/src/branch/master/clitools/runner_midi.py" target="_blank" rel="noopener noreferrer">Code source sur https://git.interhacker.space/teamlaser/LJ/src/branch/master/clitools/runner_midi.py</a></p><h4 id="Utilisation-du-logiciel-OpenFrameworks-pour-piloter-les-lasers">Utilisation du logiciel OpenFrameworks pour piloter les lasers</h4><p>Une personne a fait des tests concluants de pilotage des lasers directement via un plugin du logiciel <a href="https://openframeworks.cc/" target="_blank" rel="noopener noreferrer">openFrameworks</a> connu pour simplifier l’interconnexion avec toutes sortes de périphériques, environnemens 3D, etc.</p><p><a href="https://paste.interhacker.space/lilecigoma.howto">Les explications du processus</a></p><h4 id="Utilisation-d’anaglyphes-3D">Utilisation d’anaglyphes 3D</h4><p>Quelques <a href="https://imgur.com/a/WA0Z3ut" target="_blank" rel="noopener noreferrer">recherches visuelles</a> avaient été faites pour explorer des visuels filaires fonctionnant en 3D anaglyphique (lunettes colorées). Un filtre a été produit  à cet effet mais les résultats sont peu probants.</p><p><a href="https://git.interhacker.space/teamlaser/LJ/src/branch/master/clitools/filters/anaglyph.py" target="_blank" rel="noopener noreferrer">Code source sur https://git.interhacker.space/teamlaser/LJ/src/branch/master/clitools/filters/anaglyph.py</a></p><h2 id="Les-pistes-créatives-remises-à-plus-tard">Les pistes créatives remises à plus tard</h2><p>N’ayant qu’un temps limité, nous avons du faire des choix. Voici les pistes qui n’ont pas été suivies.</p><h4 id="Utilisation-à-distance-de-synthés-nozoid-via-une-interface-en-ligne0">Utilisation à distance de synthés nozoid via une interface en ligne</h4><p>Une interface en ligne a été produite pour les synthétiseurs <a href="https://nozoid.com/" target="_blank" rel="noopener noreferrer">nozoids</a> que nous avions <a href="http://www.teamlaser.fr/thsf/" target="_blank" rel="noopener noreferrer">utilisés lors de précédents festivals</a>. Nous n’avons pas eu le temps de faire de live à distance durant la résidence.</p><p><a href="http://xrkia.org/teamlaser/" target="_blank" rel="noopener noreferrer">Interface en ligne sur http://xrkia.org/teamlaser/</a></p><h4 id="Utilisation-de-shaders-pour-générer-des-points">Utilisation de shaders pour générer des points</h4><p>Les shaders sont des programmes exécutés sur carte graphique pour le rendu des images de synthèse. Il était envisagé d’utiliser notamment les possibilités de rendu anaglyphique des shaders (cf. <a href="https://2019.cookie.paris/" target="_blank" rel="noopener noreferrer">https://2019.cookie.paris/</a>) mais nous n’avons pas eu le temps de faire ces essais, notamment celui de recompiler <a href="https://github.com/KoltesDigital/etherdream-glsl" target="_blank" rel="noopener noreferrer">ce programme existant : https://github.com/KoltesDigital/etherdream-glsl</a>.</p><h4 id="Création-d’un-générateur-de-points-utilisant-de-la-reconnaissance-vidéos-temps-réel">Création d’un générateur de points utilisant de la reconnaissance vidéos temps réel</h4><p>Pouvoir tracer en temps réel un flux vidéo était un de nos objectifs. Après avoir identifié la librairie <a href="https://github.com/flupke/pypotrace" target="_blank" rel="noopener noreferrer">pypotrace</a> qui pilote <a href="http://potrace.sourceforge.net/" target="_blank" rel="noopener noreferrer">potrace</a> pour reconnaître des segments dans une image en noir et blanc, nous avons essayé de lire des images vidéo depuis <a href="https://github.com/chexov/image2pipe" target="_blank" rel="noopener noreferrer">ffmpeg</a>, puis depuis <a href="https://pypi.org/project/opencv-python/" target="_blank" rel="noopener noreferrer">opencv</a> mais dans les deux cas le débit était trop lent pour être satisfaisant pour du temps réel.</p><p><a href="https://git.interhacker.space/teamlaser/LJ/src/branch/feature-opencv2/clitools/generators/opencv2.py" target="_blank" rel="noopener noreferrer">Code source sur https://git.interhacker.space/teamlaser/LJ/src/branch/feature-opencv2/clitools/generators/opencv2.py</a></p><h4 id="Gestion-d’une-platine-en-USB-pour-simuler-des-scratchs-laser">Gestion d’une platine en USB pour simuler des scratchs laser</h4><p>L’idée étant de “scratcher du visuel” nous avions apporté une platine DJ en USB mais malheureusement celle ci ne disposait pas d’une connexion USBMidi fiable et le projet a été remis à plus tard, le temps de trouver un périphérique fonctionnel.</p><h4 id="Affichage-de-textes-élaborés-sur-place">Affichage de textes élaborés sur place</h4><p>Nous avions dans l’idée de diffuser des textes avec les lasers, mais avons abandonné l’idée par manque de temps et par souci d’adéquation avec les pièces acousmatiques diffusées qui ne se prêtaient pas nécessairement à ce type de visuels.</p><h4 id="Utilisation-des-données-de-spectogrammes-dans-les-jeux-vidéos-pour-réagir-à-la-musique">Utilisation des données de spectogrammes dans les jeux vidéos pour réagir à la musique</h4><p>Par manque de temps nous n’avons pas eu l’occasion d’implémenter au jeu vidéo les événements audio.</p><h4 id="Création-de-générateurs-de-points-et-de-filtres-utilisant-l’analyse-de-tempo">Création de générateurs de points et de filtres utilisant l’analyse de tempo</h4><p>
1550Bien que <a href="https://git.interhacker.space/teamlaser/LJ/src/branch/master/clitools/filters/redilysis.py" target="_blank" rel="noopener noreferrer">partiellement implémentée dans un filtre</a> nous n’avons pas utilisé cette possibilité qui aurait été utile si nous avions joué sur des musiques plus rythmées.</p><h4 id="Association-vidéoprojections-et-lasers">Association vidéoprojections et lasers</h4><p>Cette piste était transversale à d’autres (reconnaissance vidéo / shaders) mais nous ous n’avons eu ni le temps ni les moyens techniques de l’exploiter.</p><h2 id="D’autres-idées-ont-émergé-lors-de-la-résidence">D’autres idées ont émergé lors de la résidence</h2><p>Idées venues en discutant et en observant les résultats de nos expérimentations lors de la résidence.</p><h3 id="Idées-créatives">Idées créatives</h3><h4 id="Utilisation-de-micros-répartis-dans-l’acousmonium-pour-avoir-chacun-son-analyse-de-spectre">Utilisation de micros répartis dans l’acousmonium pour avoir chacun son analyse de spectre</h4><p>L’idée générale étant d’initier de nouvelles expériences avec l’acousmonium de Module Étrange, nous avons réfléchi à comment spatialiser l’analyse audio pour répondre aux évolutions sonores visuellement.</p><p>Une des pistes serait d’utiliser plusieurs sources de captation pour la spectrogrammétrie : au moins quatre micros répartis dans l’espace.</p><h4 id="Création-de-paysages-visuels-associés-à-l’acousmonium">Création de paysages visuels associés à l’acousmonium</h4><p>Simultanément à une meilleure détection spatiale des événements sonores survenant dans un acousmonium, il nous a semblé intéressant de réfléchir à une proposition graphique où les lasers seraient projetés sur différents “écrans” également spatialisés.</p><h4 id="Création-de-nouveaux-filtres--optimisation-spatiale-des-formes">Création de nouveaux filtres : optimisation spatiale des formes</h4><p>Certains des programmes conçus sur place ne s’affichaient pas en “plein écran” avec les lasers. Un simple programme qui redimensionnerait automatiquement ce qui lui est envoyé pourrait être utile.</p><h4 id="Création-de-nouveaux-générateur-à-base-de-particules">Création de nouveaux générateur à base de particules</h4><p>Les générateurs de particules sont intéressants sur les plans graphiques et conceptuels. Nous avons eu plusieurs idées pour en produire : simulation de partages ADN, comportements mutualisés, paramètres modifiables en temps réel.</p><h4 id="Partage-des-points-attracteurs-et-répulseurs-entre-plusieurs-générateurs">Partage des points, attracteurs, et répulseurs entre plusieurs générateurs</h4><p>La génération de particule utilise fréquemment des objets invisibles qui attirent et/ou repoussent les particules. Il serait intéressant que différents programmes puissent partager ces objets pour faire interagir leur production.</p><h4 id="Utilisation-d’un-“Director-Pattern”-pour-gérer-les-événements-à-envoyer-aux-lasers">Utilisation d’un “Director Pattern” pour gérer les événements à envoyer aux lasers</h4><p>Les systèmes de générations de particules sont “passivement réactifs” : ils n’ont pas de conscience de leur agitation et du spectacle qu’ils produisent. Importer le concept de directeur utilisé en intelligence artificielle pour les jeux vidéo permettrait de mieux gérer la tension dramatique des programmes, par exemple en modifiant lui même les paramètres des générateurs de particules pour augmenter / réduire leurs paramètres, ou les (dés)activer.</p><h4 id="Utilisation-d’appareils-USB-à-touches--sliders--potentiomètres-pour-modifier-les-programmes-envoyés-aux-lasers">Utilisation d’appareils USB à touches / sliders / potentiomètres pour modifier les programmes envoyés aux lasers</h4><p>Nous allons certainement continuer à expérimenter les dispositifs tactiles permettant de contrôler en temps réel les programmes de génération de particules. Ce qui nous permettrait d’activer/désactiver des comportements, ou d’en modifier les caractériques.</p><h4 id="Utilisation-de-Machine-Learning--DNN-pour-générer-des-textes-lus-dans-les-pièces-acousmatiques">Utilisation de Machine Learning / DNN pour générer des textes lus dans les pièces acousmatiques</h4><p>Il pourrait être intéressant dans le cadre d’une collaboration avec des diffusions acousmatiques d’utiliser les recherches contemporaines menées dans le domaine de réseaux neuronaux avec apprentissage profond et le traitement de la voix. Ceci permettrait de générer des textes visualisables et “lus” par des interprètes synthétiques.</p><h4 id="Reconnaissance-et-mise-a-disposition-des-elements-d’un-visage-analysé-sur-smartphone-en-temps-reel">Reconnaissance et mise a disposition des elements d’un visage analysé sur smartphone en temps reel</h4><p>Nous disposons d’une librairie qui Utilise la reconnaissance faciale et permet d’envoyer les points d’un visage aux lasers. Il reste à déterminer dans quel cadre cette génération de points serait pertinente.</p><h4 id="Création-d’un-programme-adapté-à-une-perfomance-scénique-utilisant-la-lumière-jonglage-prestidigidation-cirque">Création d’un programme adapté à une perfomance scénique utilisant la lumière (jonglage, prestidigidation, cirque)</h4><p>Traduire et retranscrire en temps réel un spectacle vivant en jouant sur les ressorts de la lumière et de l’ombre pourrait être une idée intéressante, sous réserve de trouver des artistes intéressé.e.s par la démarche.</p><h4 id="Utilisation-d’algorithmes-audionumériques-pour-les-analyses-de-spectrogrammétrie-et-les-programmes-de-génération-de-points">Utilisation d’algorithmes audionumériques pour les analyses de spectrogrammétrie et les programmes de génération de points</h4><p>On nous a conseillé d’utiliser <a href="https://www.audionumerique.com/" target="_blank" rel="noopener noreferrer">l’ouvrage “L’Audionumérique” de Curtis Roads</a> pour étendre nos connaissances :</p><ol>
1551<li>Dans le domaine des différents types d’analyse spectrogrammétriques. Nous utilisons essentiellement la Transformée de Fourier pour l’analyse spectrale, mais il existe aussi entre autres :
1552<ul>
1553<li>Analyse du son non Fourier</li>
1554<li>Analyse par banque de filtres à Q constant</li>
1555<li>Analyse par ondelettes</li>
1556<li>Analyse du signal par distribution de Wigner</li>
1557<li>Analyse spectrale par autorégression</li>
1558</ul>
1559</li>
1560<li>Dans le domaine des filtres audio numériques. Par exemple implémenter des phénomènes de réverbération, de passe haut / passe bas, de délai, etc.</li>
1561</ol><h4 id="Amélioration-de-la-partie-détection-de-tempo">Amélioration de la partie détection de tempo</h4><p>Cette partie pourrait être très intéressante dans le cadre d’une collaboration avec des musiciens électro. Pour l’instant la logique et son implémentation est trop naïve. Nous pourrions utiliser des standards existants ou développer notre propre formule en la perfectionnant.</p><h3 id="Technique">Technique</h3><h4 id="Analyse-du-code-et-des-solutions-utilisées-par-OpenLase-pour-le-tracé-des-points-et-la-vidéo-temps-réel">
1561Analyse du code et des solutions utilisées par OpenLase pour le tracé des points et la vidéo temps réel</h4><p>La solution <a href="https://marcan.st/projects/openlase/" target="_blank" rel="noopener noreferrer">OpenLase</a> /<a href="https://github.com/marcan/openlase/blob/master/python/pylase.pyx" target="_blank" rel="noopener noreferrer"> Github</a> qui dispose de <a href="https://github.com/marcan/openlase" target="_blank" rel="noopener noreferrer">bindings python</a> semble atteindre des performances intéressantes dans différents domaines. Il serait judicieux de mener une analyse pour comprendre de quels processus nous pourrions nous inspirer.</p><h4 id="Solutions-d’optimisation-des-points-afin-d’améliorer-le-tracé">Solutions d’optimisation des points afin d’améliorer le tracé</h4><p>L’optimisation des tracés est un processus clé pour les lasers : trop de points et le tracé ralentit, pas assez et il devient imprécis. C’est l’objet de plusieurs recherches académiques et de diverses implémentations qu’il faudrait intégrer au mieux dans le système.</p><h4 id="Creer-un-exporteur-TCP-en-plus-de-celui-via-UDP">Creer un exporteur TCP en plus de celui via UDP</h4><p>Afin de favoriser les lives à distance, un exporteur en TCP pourrait améliorer la qualité du transport pour les collaborations sur Internet.</p><h4 id="Creer-un-exporteur-vers-le-simulateur-web">Creer un exporteur vers le simulateur web</h4><p>Le simulateur web nous permet de prévisualiser ce qui sera envoyé au laser. Une solution envoyant les listes de points dans une page html locale via websocket sans avoir besoin d’installer LJ serait intéressante.</p><h4 id="Intégrer-une-synchronisation-via-des-timecodes-réseaux">Intégrer une synchronisation via des timecodes réseaux</h4><p>La synchronisation de vidéos et de musiques est possible via des solutions de timecode comme <a href="https://en.wikipedia.org/wiki/MIDI_timecode" target="_blank" rel="noopener noreferrer">MTC</a> et <a href="https://en.wikipedia.org/wiki/SMPTE_timecode" target="_blank" rel="noopener noreferrer">SMPTE</a>. L’idée serait de généraliser cette synchronisation dans les programmes laser, par exemple en utilisant <a href="https://github.com/ericboxer/Timecode-Generator" target="_blank" rel="noopener noreferrer">le projet timecode generator disponible sur</a></p><h2 id="Rappel--le-logiciel-LJ">Rappel : le logiciel LJ</h2><p>Voici donc un point sur le logiciel <a href="https://git.interhacker.space/teamlaser/LJ" target="_blank" rel="noopener noreferrer">LJ</a> qui se trouve au coeur de notre système.</p><p>LJ est notre outil de pilotage des lasers. Il démarre des services qui s’interfacent entre les clients qui generent des points et le hardware (tracé par les lasers)  :</p><ul>
1562<li>Un serveur de websocket communiquant avec des pages web (voir plus loin)</li>
1563<li>Un serveur OSC proposant également l’interaction avec l’ensemble des fonctions disponibles</li>
1564<li>Une interface vers differentes synchronisations : Artnet, midi, Link.</li>
1565<li>Les tracers qui envoient les informations aux lasers (via etherdream)</li>
1566<li>Un gestionnaire qui relaie les informations entre les composants</li>
1567</ul><figure><img decoding="async" src="https://www.teamlaser.fr/lj/images/lj2.png" alt=""></figure><p></p><p>L’un des nombreux avantages de LJ est son interface web qui permet de changer en temps réel les paramètres des lasers pilotés (taille, position, nombre de points par seconde, intensité, etc.) mais aussi de simuler les points qui sont envoyés au laser via un canvas HTML5.</p><p>Un aspect fondamental de LJ est l’ouverture à de nombreux protocoles, notamment pour recevoir les listes de points à tracer et le partage d’informations en temps réel. À cet effet, LJ utilise la base de données clef/valeur REDIS pour stocker les points qui seront envoyés.</p><p>Une note au sujet des licences : l’auteur original de LJ n’est pas un fan de licences et avait choisi une licence Creative Commons, malheureusement déconseillée pour les projets logiciels. Une discussion interne est en cours pour décider de la meilleure licence pour le projet (GPL copyleft ou MIT/Apache).</p></div>
1568<style>
1569p a {
1570border:1px solid #eee;
1571border-radius: 16pt;
1572background:#f8f8f8;
1573padding: 0px 8pt;
1574color:  #0085db ;
1575}
1576</style>
1577	</div><!-- .entry-content -->
1578
1579	<footer class="entry-footer">
1580		<span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=49&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&#038;d=mm&#038;r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy' decoding='async'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.tmplab.org/author/alban/">alban</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.tmplab.org/2020/10/15/residence-sonoptic-le-debrief-productif/" rel="bookmark"><time class="entry-date published" datetime="2020-10-15T16:40:19+02:00">October 15, 2020</time><time class="updated" datetime="2020-10-16T10:29:46+02:00">October 16, 2020</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.tmplab.org/category/projects/teamlaser/" rel="category tag">/team/laser</a>, <a href="https://www.tmplab.org/category/art/" rel="category tag">art</a>, <a href="https://www.tmplab.org/category/code/" rel="category tag">code</a>, <a href="https://www.tmplab.org/category/software/" rel="category tag">software</a></span><span class="comments-link"><a href="https://www.tmplab.org/2020/10/15/residence-sonoptic-le-debrief-productif/#respond">Leave a comment<span class="screen-reader-text">
1580 on Résidence SONOPTIC : le debrief productif</span></a></span>			</footer><!-- .entry-footer -->
1581</article><!-- #post-1672 -->
1582
1583<article id="post-1662" class="post-1662 post type-post status-publish format-standard has-post-thumbnail hentry category-teamlaser category-art category-conferences category-workshops">
1584	<header class="entry-header">
1585		
1586		<h2 class="entry-title"><a href="https://www.tmplab.org/2020/10/13/residence-sonoptic-2020/" rel="bookmark">Résidence SONOPTIC 2020</a></h2>	</header><!-- .entry-header -->
1587
1588	
1589	
1590	<a class="post-thumbnail" href="https://www.tmplab.org/2020/10/13/residence-sonoptic-2020/" aria-hidden="true">
1591		<img width="1200" height="675" src="https://www.tmplab.org/wp-content/uploads/2020/10/20201013_195710-scaled.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Résidence SONOPTIC 2020" decoding="async" loading="lazy" srcset="https://www.tmplab.org/wp-content/uploads/2020/10/20201013_195710-scaled.jpg 2560w, https://www.tmplab.org/wp-content/uploads/2020/10/20201013_195710-300x169.jpg 300w, https://www.tmplab.org/wp-content/uploads/2020/10/20201013_195710-1024x576.jpg 1024w, https://www.tmplab.org/wp-content/uploads/2020/10/20201013_195710-768x432.jpg 768w, https://www.tmplab.org/wp-content/uploads/2020/10/20201013_195710-1536x864.jpg 1536w, https://www.tmplab.org/wp-content/uploads/2020/10/20201013_195710-2048x1152.jpg 2048w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 60vw, (max-width: 1362px) 62vw, 840px" />	</a>
1592
1593		
1594	<div class="entry-content">
1595		
1596<figure><iframe loading="lazy" sandbox="allow-same-origin allow-scripts allow-popups" src="https://tube.interhacker.space/videos/embed/c754f701-3fc1-436d-901b-73ac97cb4fe9" allowfullscreen="" width="560" height="315" frameborder="0"></iframe></figure>
1597
1598
1599
1600<p class="wp-block-paragraph"><em>Enregistrement de la projection laser réalisée lors de la diffusion d&#8217;une pièce acousmatique de <a href="https://carre-r.bandcamp.com/">Rémy Carré</a>, le samedi 10 octobre 2020.</em></p>
1601
1602
1603
1604<p class="wp-block-paragraph"></p>
1605
1606
1607
1608<p class="wp-block-paragraph"><strong>À l&#8217;invitation de <a href="http://mixart-myrys.org">MixArt Myrys</a> des membres des hackerspaces /tmp/lab et Fuz ont participé à la résidence de l&#8217;événement <a href="http://sonoptic.net/">SONOPTIC</a> à Toulouse du 5 au 11 octobre 2020.</strong><br></p>
1609
1610
1611
1612<p class="wp-block-paragraph">Il serait trop long d&#8217;énumérer ici les rencontres, discussions, et projets qui auront essaimé cette résidence, en voici néanmoins un compte-rendu général et partiel.</p>
1613
1614
1615
1616<p class="wp-block-paragraph"><strong>L&#8217;ambition de SONOPTIC était de pousser l’expérimentation sonore et visuelle. Pari réussi, au vu de la qualité des échanges et des productions.</strong></p>
1617
1618
1619
1620<p class="wp-block-paragraph">Après quelques jours de workshop entre artistes, le public a pu malgré la COVID19 visiter les expositions et assister à des restitutions et des lives préparés lors de la résidence.</p>
1621
1622
1623
1624<iframe loading="lazy" sandbox="allow-same-origin allow-scripts allow-popups" src="https://tube.interhacker.space/videos/embed/f90c041b-c13a-4a29-841e-51e10a05e9ca" allowfullscreen="" width="560" height="315" frameborder="0"></iframe>
1625
1626
1627
1628<p class="wp-block-paragraph"><br><em> Une des installations présentées dans l&#8217;exposition.</em></p>
1629
1630
1631
1632<p class="wp-block-paragraph">Nous -membres des collectifs /tmp/lab et Fuz- avions été placés dans l&#8217;expace mutualisé, une grande salle ouverte à la circulation que nos voisins &#8211;membres du <a href="https://www.facebook.com/moduleetrange/posts/">collectif</a> &#8220;<a href="http://www.module-etrange.org/">Module Étrange</a>&#8220;&#8211; avaient sonorisés avec plus de 40 enceintes : un acousmonium exceptionnel dont nous avons pu profiter durant toute la semaine !<br></p>
1633
1634
1635
1636<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://www.tmplab.org/wp-content/uploads/2020/10/20201011_133634-1024x576.jpg" alt="" class="wp-image-1665" srcset="https://www.tmplab.org/wp-content/uploads/2020/10/20201011_133634-1024x576.jpg 1024w, https://www.tmplab.org/wp-content/uploads/2020/10/20201011_133634-300x169.jpg 300w, https://www.tmplab.org/wp-content/uploads/2020/10/20201011_133634-768x432.jpg 768w, https://www.tmplab.org/wp-content/uploads/2020/10/20201011_133634-1536x864.jpg 1536w, https://www.tmplab.org/wp-content/uploads/2020/10/20201011_133634-2048x1152.jpg 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
1637
1638
1639
1640<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://www.tmplab.org/wp-content/uploads/2020/10/20201011_133605-1024x576.jpg" alt="" class="wp-image-1664" srcset="https://www.tmplab.org/wp-content/uploads/2020/10/20201011_133605-1024x576.jpg 1024w, https://www.tmplab.org/wp-content/uploads/2020/10/20201011_133605-300x169.jpg 300w, https://www.tmplab.org/wp-content/uploads/2020/10/20201011_133605-768x432.jpg 768w, https://www.tmplab.org/wp-content/uploads/2020/10/20201011_133605-1536x864.jpg 1536w, https://www.tmplab.org/wp-content/uploads/2020/10/20201011_133605-2048x1152.jpg 2048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></figure>
1641
1642
1643
1644<p class="wp-block-paragraph">L&#8217;acousmonium a aussi servi pour diffuser les pièces acousmatiques d&#8217;autres musicien.ne.s, comme <a href="http://melodieduchesne.free.fr/">Melodie Duchesne</a> ou <a href="https://carre-r.bandcamp.com/">Rémy Carré</a>.  <br> </p>
1645
1646
1647
1648<p class="wp-block-paragraph">Les expérimentations de lasers dans une dimension artistique renouvelée étaient notre choix de médium pour cette résidence, avec quelques pistes créatives comme trame d&#8217;expérimentations. Nous les détaillerons dans un prochain post.</p>
1649
1650
1651
1652<p class="wp-block-paragraph">Les lasers ont été l&#8217;occasion de collaborer avec plusieurs personnes</p>
1653
1654
1655
1656<ul class="wp-block-list"><li>Nina Verstraete, chercheuse en génétique moléculaire : affichage sur le laser de plusieurs simulations de bactéries </li><li>Tth, hacker au Tetalab : Pilotage en C d&#8217;un joystick </li><li>Rep, artiste visuel : expérimentations des capacités du logiciel OpenFramework pour le pilotage de Lasers</li></ul>
1657
1658
1659
1660<p class="wp-block-paragraph">Aux organisateur.ice.s de Sonoptic, tous nos remerciement !</p>
1661
1662
1663
1664<p class="wp-block-paragraph">Et à tou.te.s, notre joie d&#8217;avance de participer à une prochaine édition !</p>
1665	</div><!-- .entry-content -->
1666
1667	<footer class="entry-footer">
1668		<span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=49&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&#038;d=mm&#038;r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy' decoding='async'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.tmplab.org/author/alban/">alban</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.tmplab.org/2020/10/13/residence-sonoptic-2020/" rel="bookmark"><time class="entry-date published" datetime="2020-10-13T11:15:28+02:00">October 13, 2020</time><time class="updated" datetime="2020-10-14T16:19:15+02:00">October 14, 2020</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.tmplab.org/category/projects/teamlaser/" rel="category tag">/team/laser</a>, <a href="https://www.tmplab.org/category/art/" rel="category tag">art</a>, <a href="https://www.tmplab.org/category/conferences/" rel="category tag">Conferences</a>, <a href="https://www.tmplab.org/category/workshops/" rel="category tag">Workshops</a></span><span class="comments-link"><a href="https://www.tmplab.org/2020/10/13/residence-sonoptic-2020/#respond">Leave a comment<span class="screen-reader-text"> on Résidence SONOPTIC 2020</span></a></span>			</footer><!-- .entry-footer -->
1669</article><!-- #post-1662 -->
1670
1671<article id="post-1656" class="post-1656 post type-post status-publish format-standard has-post-thumbnail hentry category-news">
1672	<header class="entry-header">
1673		
1674		<h2 class="entry-title"><a href="https://www.tmplab.org/2020/07/31/kubernetes-security-tech-session-upcoming/" rel="bookmark">Kubernetes Security tech session [Upcoming]</a></h2>	</header><!-- .entry-header -->
1675
1676	
1677	
1678	<a class="post-thumbnail" href="https://www.tmplab.org/2020/07/31/kubernetes-security-tech-session-upcoming/" aria-hidden="true">
1679		<img width="1200" height="638" src="https://www.tmplab.org/wp-content/uploads/2020/07/k8s-matrix.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Kubernetes Security tech session [Upcoming]" decoding="async" loading="lazy" srcset="https://www.tmplab.org/wp-content/uploads/2020/07/k8s-matrix.png 1440w, https://www.tmplab.org/wp-content/uploads/2020/07/k8s-matrix-300x160.png 300w, https://www.tmplab.org/wp-content/uploads/2020/07/k8s-matrix-1024x545.png 1024w, https://www.tmplab.org/wp-content/uploads/2020/07/k8s-matrix-768x409.png 768w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 60vw, (max-width: 1362px) 62vw, 840px" />	</a>
1680
1681		
1682	<div class="entry-content">
1683		
1684<p class="wp-block-paragraph">Covid19 won&#8217;t block us! So let&#8217;s go virtual. We&#8217;re going to organize a virtual Kubernetes Security tech session soon so that interested people can join and share experiences about this. Goal is to look into:</p>
1685
1686
1687
1688<ul class="wp-block-list"><li>Seccomp</li><li>AppArmor</li><li>Capabilities</li><li>Nodes isolation and security</li><li>Admission controllers</li><li>K8S Scheduler and controller</li><li>APIs Security</li><li>Misc CNCF projects such as:<ul><li>Vitess</li><li>Jaeger</li><li>Lyft&#8217;s Clutch</li><li>Spotify&#8217;s Backstage</li><li>KOPS</li></ul></li></ul>
1689
1690
1691
1692<p class="wp-block-paragraph">For now, best way to show your interest is to join a newly created RIOT Element chat room #tmplab-public and say you&#8217;d like to participate.</p>
1693
1694
1695
1696<p class="wp-block-paragraph">Depending on interest, we&#8217;ll chose a date for start. We&#8217;ll then update this page (or post a new one) to announce dates and start.</p>
1697
1698
1699
1700<p class="wp-block-paragraph">Best regards, philpraxis.</p>
1701	</div><!-- .entry-content -->
1702
1703	<footer class="entry-footer">
1704		<span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/a4453a4988a5c5d304ba448a3c7aa79b0cf54b308fd043219fd5bb029a8d2d49?s=49&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/a4453a4988a5c5d304ba448a3c7aa79b0cf54b308fd043219fd5bb029a8d2d49?s=98&#038;d=mm&#038;r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy' decoding='async'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.tmplab.org/author/phil/">phil</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.tmplab.org/2020/07/31/kubernetes-security-tech-session-upcoming/" rel="bookmark"><time class="entry-date published updated" datetime="2020-07-31T16:08:05+02:00">July 31, 2020</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.tmplab.org/category/news/" rel="category tag">News</a></span><span class="comments-link"><a href="https://www.tmplab.org/2020/07/31/kubernetes-security-tech-session-upcoming/#respond">Leave a comment<span class="screen-reader-text"> on Kubernetes Security tech session [Upcoming]</span></a></span>			</footer><!-- .entry-footer -->
1705</article><!-- #post-1656 -->
1706
1707<article id="post-1631" class="post-1631 post type-post status-publish format-standard has-post-thumbnail hentry category-news category-software">
1708	<header class="entry-header">
1709		
1710		<h2 class="entry-title"><a href="https://www.tmplab.org/2020/04/01/how-to-install-and-run-bots-for-the-matrix-network/" rel="bookmark">How to install and run bots for the Matrix network</a></h2>	</header><!-- .entry-header -->
1711
1712				<div class="entry-summary">
1713				<p>Discover how to install bots for Matrix, a fun and exciting federated protocol </p>
1714			</div><!-- .entry-summary -->
1715			
1716	
1717	<a class="post-thumbnail" href="https://www.tmplab.org/2020/04/01/how-to-install-and-run-bots-for-the-matrix-network/" aria-hidden="true">
1718		<img width="1200" height="677" src="https://www.tmplab.org/wp-content/uploads/2020/04/29966990136_0d8df7e74e_o.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="How to install and run bots for the Matrix network" decoding="async" loading="lazy" srcset="https://www.tmplab.org/wp-content/uploads/2020/04/29966990136_0d8df7e74e_o.jpg 1296w, https://www.tmplab.org/wp-content/uploads/2020/04/29966990136_0d8df7e74e_o-300x169.jpg 300w, https://www.tmplab.org/wp-content/uploads/2020/04/29966990136_0d8df7e74e_o-1024x578.jpg 1024w, https://www.tmplab.org/wp-content/uploads/2020/04/29966990136_0d8df7e74e_o-768x433.jpg 768w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 60vw, (max-width: 1362px) 62vw, 840px" />	</a>
1719
1720		
1721	<div class="entry-content">
1722		
1723<p class="wp-block-paragraph"><a href="https://en.wikipedia.org/wiki/Matrix_(protocol)">Matrix</a> is a fun and exciting federated protocol that we&#8217;re using more and more at /tmp/lab.</p>
1724
1725
1726
1727<p class="wp-block-paragraph"><strong>If you want to join the discussion, head to <a href="https://riot.fuz.re/#/room/#tmplab:matrix.fuz.re">our riot channel </a>and check it out!</strong></p>
1728
1729
1730
1731<p class="wp-block-paragraph">Riot is a well-known web GUI for the Matrix protocol which could be defined as &#8220;a chat interface between IRC and Slack&#8221;. It&#8217;
1731s cooler than IRC to some extend &#8211; backlogging is easier- and it is free software, not like Slack 🙂 Still, IRC, Slack and Riot have in common a capacity to use bots, and that&#8217;s what we&#8217;ll be drilling today: Matrix bots. Onward, my mechanical steed!</p>
1732
1733
1734
1735<p class="wp-block-paragraph">Note: Our privacy-aware assistance might interject here with some well founded critics of the Matrix ecosystem, which is not free enough as of now. Find here <a href="https://github.com/privacytoolsIO/services/issues/17">a list of concerns</a> as a github issue tracker for more information.</p>
1736
1737
1738
1739<p class="wp-block-paragraph">Anyway, which bot to choose? There are <a href="https://github.com/matrix-org/go-neb">many</a> <a href="https://github.com/matrix-org/Matrix-NEB">available</a> <a href="https://github.com/leo-lb/fuzisup">bots</a> for matrix and even <a href="https://matrix.org/bots/">a page dedicated to them</a> on the project&#8217;s website. We chose <a href="https://github.com/maubot/maubot">maubot</a>.</p>
1740
1741
1742
1743<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="714" height="381" src="https://www.tmplab.org/wp-content/uploads/2020/04/maubot.github.png" alt="" class="wp-image-1646" srcset="https://www.tmplab.org/wp-content/uploads/2020/04/maubot.github.png 714w, https://www.tmplab.org/wp-content/uploads/2020/04/maubot.github-300x160.png 300w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px" /><figcaption>The maubot homepage on github</figcaption></figure>
1744
1745
1746
1747<p class="wp-block-paragraph"><strong>Why maubot? </strong></p>
1748
1749
1750
1751<p class="wp-block-paragraph">Well, first, it&#8217;s python, which we like. Also, it&#8217;s actually well coded: <a href="https://github.com/tulir">Tulir Asokan</a> -the author- did an impressive work at providing <a href="https://github.com/tulir/mautrix-python">his own implementation of the matrix api</a> which he plans to use to provide a number of bridges. It is modular, meaning that you can extend the functionnalities in a clean manner. And that leads us to hackability, writing your own plugins should be easy with maubot, more on that soon hopefuly.</p>
1752
1753
1754
1755<h2 class="wp-block-heading">Deploying Maubot on a server</h2>
1756
1757
1758
1759<p class="wp-block-paragraph">Though maubot proposes a docker install, we were not fans of that for system administration reasons. So we&#8217;ve made an install script in bash you can find in <a href="https://git.interhacker.space/alban/maubot-installer">this git project</a>.</p>
1760
1761
1762
1763<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="542" src="https://www.tmplab.org/wp-content/uploads/2020/04/maubot.installer-1024x542.png" alt="" class="wp-image-1648" srcset="https://www.tmplab.org/wp-content/uploads/2020/04/maubot.installer-1024x542.png 1024w, https://www.tmplab.org/wp-content/uploads/2020/04/maubot.installer-300x159.png 300w, https://www.tmplab.org/wp-content/uploads/2020/04/maubot.installer-768x406.png 768w, https://www.tmplab.org/wp-content/uploads/2020/04/maubot.installer.png 1172w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>The maubot installer project</figcaption></figure>
1764
1765
1766
1767<p class="wp-block-paragraph">This install script should really simplify your job. Assign in the DNS a subdomain name -say botsinspace.example.com- to your server IP address and the installation should be as simple as </p>
1768
1769
1770
1771<pre class="wp-block-code"><code>git clone https://git.interhacker.space/alban/maubot-installer.git
1772cd maubot-installer
1773bash install.sh</code></pre>
1774
1775
1776
1777<p class="wp-block-paragraph">After indicating your chosen subdomain, you can go for default answers, including the matrix.org homeserver, and should be fine for the rest of this tutorial.</p>
1778
1779
1780
1781<p class="wp-block-paragraph">Et voilà ! You should have a maubot instance running with Letsencrypt on https://botsinspace.example.com</p>
1782
1783
1784
1785<h2 class="wp-block-heading">Creating your first bot</h2>
1786
1787
1788
1789<p class="wp-block-paragraph">Once the maubot instance is up,  understanding the maubot concepts will help you configure it.</p>
1790
1791
1792
1793<p class="wp-block-paragraph"><em>Plugins</em> </p>
1794
1795
1796
1797<p class="wp-block-paragraph">Plugins are the bots &#8220;brains&#8221;. They are python code and configuration files, ran in background by maubot. Ther are stored on the server as mbp files, which are archives using a zip compression.</p>
1798
1799
1800
1801<p class="wp-block-paragraph"><em>Clients</em></p>
1802
1803
1804
1805<p class="wp-block-paragraph">Clients are the bots &#8220;physical presence&#8221;. They are in fact user accounts on matrix servers, no more no less.</p>
1806
1807
1808
1809<p class="wp-block-paragraph"><em>Instances</em></p>
1810
1811
1812
1813<p class="wp-block-paragraph">Instances are associations of a plugin and a client. Once you have an instance, you have a bot!</p>
1814
1815
1816
1817<p class="wp-block-paragraph">So let&#8217;s start creating our first instance!</p>
1818
1819
1820
1821<h2 class="wp-block-heading"><strong>Add a plugin</strong></h2>
1822
1823
1824
1825<p class="wp-block-paragraph">The project page <a href="https://github.com/maubot/maubot">lists a number of plugins</a> based on the maubot framework.</p>
1826
1827
1828
1829<p class="wp-block-paragraph">
1829To install a plugin, you have two options.</p>
1830
1831
1832
1833<p class="wp-block-paragraph"><strong>Option 1. Use the web interface</strong></p>
1834
1835
1836
1837<p class="wp-block-paragraph">Log in your maubot instance, click on the plugins &#8220;⊕&#8221; button. A big UPLOAD button (cf. screenshot) shows up, click on it, select a plugin zip file on your disk, and there you go !<br><br></p>
1838
1839
1840
1841<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1108" height="691" src="https://www.tmplab.org/wp-content/uploads/2020/04/maubot-upload.png" alt="" class="wp-image-1637" srcset="https://www.tmplab.org/wp-content/uploads/2020/04/maubot-upload.png 1108w, https://www.tmplab.org/wp-content/uploads/2020/04/maubot-upload-300x187.png 300w, https://www.tmplab.org/wp-content/uploads/2020/04/maubot-upload-1024x639.png 1024w, https://www.tmplab.org/wp-content/uploads/2020/04/maubot-upload-768x479.png 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>The maubot plugin menu</figcaption></figure>
1842
1843
1844
1845<p class="wp-block-paragraph">Easy right?</p>
1846
1847
1848
1849<p class="wp-block-paragraph">Well except one thing: where do you get that zip file in the first place? From the github &#8220;Get a zip copy of the project&#8221; button of a plugin page? Well, nuhuh, nope, that won&#8217;t work. Maubot will reject that zip file. Why?<br>The github zip file contains the file &#8220;in a directory&#8221; called &#8220;$projectname-$branch&#8221; and maubot expects files to be at the root of the zip archive. <br>So, the right way to go is:<br><strong>Ù­</strong> Download a zip file from a plugin repository home page<br><strong>Ù­</strong> Extract it locally<br><strong> Ù­ </strong>Enter the newly created directory<br><strong>Ù­</strong> Select all its files and sub-directories<br><strong>Ù­</strong> Create a new zip archive with these<br><strong>Ù­</strong> Upload that zip file to maubot.</p>
1850
1851
1852
1853<p class="wp-block-paragraph">Or if you will, plugins might available as &#8220;mbp&#8221; files in the &#8220;release&#8221; section of their github page. Sadly, they&#8217;re not always up to date, so you might be left with a manual job to do.</p>
1854
1855
1856
1857<p class="wp-block-paragraph"><strong>Option 2. Use the command line interface</strong></p>
1858
1859
1860
1861<p class="wp-block-paragraph">Well seeing this could be a bit complex and annoying to repeat we came up with a script in the &#8220;maubot installer&#8221; project, called <a href="https://git.interhacker.space/alban/maubot-installer/raw/branch/master/plugins-install.sh">plugin-install.sh</a></p>
1862
1863
1864
1865<p class="wp-block-paragraph">You will need to use a config file or edit the variables at the beginning of the script for it to work though.</p>
1866
1867
1868
1869<p class="wp-block-paragraph">Once you&#8217;ve done it you just have to<br><strong>Ù­</strong> Run the script<br><strong>Ù­</strong> Select a plugin in the list <br><strong>Ù­</strong> Login (once only) with your maubot user and password<br><strong>Ù­</strong> And the script will call the &#8220;mbc&#8221; executable provided by maubot.</p>
1870
1871
1872
1873<p class="wp-block-paragraph">It is worth mentioning that some plugins might require a few additional dependencies. For example the <a href="https://github.com/jeffcasavant/MaubotTrumpTweet">trump plugin</a> required to run an install command  in the virtualenv of the project:</p>
1874
1875
1876
1877<pre class="wp-block-code"><code>cd /opt/maubot
1878source bin/activate
1879pip install Pillow</code></pre>
1880
1881
1882
1883<p class="wp-block-paragraph">But now, you should have at least one plugin available. Let&#8217;s head to the next stop.</p>
1884
1885
1886
1887<h2 class="wp-block-heading"><strong>Add a client</strong></h2>
1888
1889
1890
1891<p class="wp-block-paragraph">We won&#8217;t cover here the run-your-own-bot-factory approach, which requires running your own synapse server, in other word running your own matrix instance. So we will create an account on an existing server and retrieve its token used for interacting with the API.</p>
1892
1893
1894
1895<p class="wp-block-paragraph">We will use the default web interface <a href="https://riot.im/app">https://riot.im/app</a> and request a free matrix.org account. </p>
1896
1897
1898
1899<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="564" height="482" src="https://www.tmplab.org/wp-content/uploads/2020/04/riot.im_.png" alt="" class="wp-image-1641" srcset="https://www.tmplab.org/wp-content/uploads/2020/04/riot.im_.png 564w, https://www.tmplab.org/wp-content/uploads/2020/04/riot.im_-300x256.png 300w" sizes="auto, (max-width: 564px) 85vw, 564px" /><figcaption>The Riot.im home</figcaption></figure>
1900
1901
1902
1903<p class="wp-block-paragraph">You have to pick a username, for example rook_the_bot, which will provide a matrix identifier/address such as &#8220;@rook_the_bot:matrix.org&#8221; after creation.</p>
1904
1905
1906
1907<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="786" height="648" src="https://www.tmplab.org/wp-content/uploads/2020/04/riot.im_.create.png" alt="" class="wp-image-1639" srcset="https://www.tmplab.org/wp-content/uploads/2020/04/riot.im_.create.png 786w, https://www.tmplab.org/wp-content/uploads/2020/04/riot.im_.create-300x247.png 300w, https://www.tmplab.org/wp-content/uploads/2020/04/riot.im_.create-768x633.png 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px" /><figcaption>The riot account creation interface</figcaption></figure>
1908
1909
1910
1911<p class="wp-block-paragraph">One your mail is validated, log in the web interface and head to the settings page to retrieve the token. </p>
1912
1913
1914
1915<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="851" height="528" src="https://www.tmplab.org/wp-content/uploads/2020/04/riot.im_.gui_.png" alt="" class="wp-image-1640" srcset="https://www.tmplab.org/wp-content/uploads/2020/04/riot.im_.gui_.png 851w, https://www.tmplab.org/wp-content/uploads/2020/04/riot.im_.gui_-300x186.png 300w, https://www.tmplab.org/wp-content/uploads/2020/04/riot.im_.gui_-768x477.png 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>A Riot settings menu link</figcaption></figure>
1916
1917
1918
1919<p class="wp-block-paragraph">You will find it token at the end of the &#8220;Help &amp; About&#8221; page: click on the &lt;click to reveal> link, and copy the string that appears.</p>
1920
1921
1922
1923<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="759" src="https://www.tmplab.org/wp-content/uploads/2020/04/riot.im_.token_-1024x759.png" alt="" class="wp-image-1642" srcset="https://www.tmplab.org/wp-content/uploads/2020/04/riot.im_.token_-1024x759.png 1024w, https://www.tmplab.org/wp-content/uploads/2020/04/riot.im_.token_-300x222.png 300w, https://www.tmplab.org/wp-content/uploads/2020/04/riot.im_.token_-768x569.png 768w, https://www.tmplab.org/wp-content/uploads/2020/04/riot.im_.token_.png 1048w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>Riot token finally shows up!</figcaption></figure>
1924
1925
1926
1927<p class="wp-block-paragraph">Time to head back to your maubot instance, and click on the Client &#8220;⊕&#8221; button. Fill the requested informations : the username you created and the access token are mandatory.  Validate.</p>
1928
1929
1930
1931<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="940" height="531" src="https://www.tmplab.org/wp-content/uploads/2020/04/maubot.client.png" alt="" class="wp-image-1634" srcset="https://www.tmplab.org/wp-content/uploads/2020/04/maubot.client.png 940w, https://www.tmplab.org/wp-content/uploads/2020/04/maubot.client-300x169.png 300w, https://www.tmplab.org/wp-content/uploads/2020/04/maubot.client-768x434.png 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>
1931The maubot client menu</figcaption></figure>
1932
1933
1934
1935<p class="wp-block-paragraph"> And that&#8217;s it. You&#8217;re ready for the last stage.</p>
1936
1937
1938
1939<h2 class="wp-block-heading"><strong>Add an instance</strong></h2>
1940
1941
1942
1943<p class="wp-block-paragraph">Head your maubot instance and client on the Instances &#8220;⊕&#8221; button.</p>
1944
1945
1946
1947<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="963" height="654" src="https://www.tmplab.org/wp-content/uploads/2020/04/maubot_gui.png" alt="" class="wp-image-1636" srcset="https://www.tmplab.org/wp-content/uploads/2020/04/maubot_gui.png 963w, https://www.tmplab.org/wp-content/uploads/2020/04/maubot_gui-300x204.png 300w, https://www.tmplab.org/wp-content/uploads/2020/04/maubot_gui-768x522.png 768w" sizes="auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption>The maubot instance menu</figcaption></figure>
1948
1949
1950
1951<p class="wp-block-paragraph">Just<strong> </strong>pick a client and a plugin before validating.</p>
1952
1953
1954
1955<p class="wp-block-paragraph">And now you should have your first bot ready! Congratulations!</p>
1956
1957
1958
1959<h2 class="wp-block-heading">How to use your bot</h2>
1960
1961
1962
1963<p class="wp-block-paragraph">Now if everything went well, you should be able to invite your bot in a room, using the matrix handle you created earlier, as in our example [email protected].</p>
1964
1965
1966
1967<p class="wp-block-paragraph">Let&#8217;s say you created an &#8220;Instance&#8221; associating the <a href="https://github.com/maubot/dice">dice</a> &#8220;Plugin&#8221; to the rook_the_bot &#8220;Client&#8221; .</p>
1968
1969
1970
1971<p class="wp-block-paragraph">Once you invited rook_the_bot to your channel, simply type a <code>!dice</code> command. Your bot should after a while reply to you.</p>
1972
1973
1974
1975<p class="wp-block-paragraph">Each plugin has its own commands, and you can attach multiple plugins to a single client. But all commands use the front <code>!</code> mark.</p>
1976
1977
1978
1979<p class="wp-block-paragraph"><strong>That&#8217;s it, have fun. And for questions or anything else&#8230; see you on matrix! </strong></p>
1980
1981
1982
1983<p class="wp-block-paragraph"></p>
1984	</div><!-- .entry-content -->
1985
1986	<footer class="entry-footer">
1987		<span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=49&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&#038;d=mm&#038;r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy' decoding='async'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.tmplab.org/author/alban/">alban</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.tmplab.org/2020/04/01/how-to-install-and-run-bots-for-the-matrix-network/" rel="bookmark"><time class="entry-date published" datetime="2020-04-01T23:47:47+02:00">April 1, 2020</time><time class="updated" datetime="2020-04-02T00:08:57+02:00">April 2, 2020</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.tmplab.org/category/news/" rel="category tag">News</a>, <a href="https://www.tmplab.org/category/software/" rel="category tag">software</a></span><span class="comments-link"><a href="https://www.tmplab.org/2020/04/01/how-to-install-and-run-bots-for-the-matrix-network/#respond">Leave a comment<span class="screen-reader-text"> on How to install and run bots for the Matrix network</span></a></span>			</footer><!-- .entry-footer -->
1988</article><!-- #post-1631 -->
1989
1990<article id="post-1626" class="post-1626 post type-post status-publish format-standard hentry category-hackerspaces category-organisation">
1991	<header class="entry-header">
1992		
1993		<h2 class="entry-title"><a href="https://www.tmplab.org/2020/02/25/statuts-et-reglement-interieur/" rel="bookmark">Statuts et Règlement Intérieur</a></h2>	</header><!-- .entry-header -->
1994
1995	
1996	
1997	<div class="entry-content">
1998		
1999<p class="wp-block-paragraph"><strong>Le /tmp/lab est une association loi 1901. Afin de fonctionner plus conformément à sa vision de l&#8217;organisation interne d&#8217;un hackerspace, elle a procédé en 2019 à une modification de ses statuts.</strong></p>
2000
2001
2002
2003<p class="wp-block-paragraph">Ces statuts sont accompagnés d&#8217;un Règlement Intérieur ; les deux documents sont disponibles sur <a href="https://git.interhacker.space/tmplab/statuts_et_reglement_interieur">ce dépôt git</a>. Ceci a deux buts. D&#8217;abord  suivre les modifications qui adviendraient. Mais aussi servir d&#8217;inspiration pour d&#8217;autres ; les statuts d&#8217;associations comme Lautre.net ou Lorraine Data Network nous ont été une source d&#8217;inspiration essentielle, ce n&#8217;est que justice de publier les nôtres.</p>
2004
2005
2006
2007<p class="wp-block-paragraph"><strong>Statuts + Règlement Intérieur : quel intérêt ?</strong></p>
2008
2009
2010
2011<p class="wp-block-paragraph">Les statuts sont généraux et relativement immuables. Ils définissent les règles fondamentales de l&#8217;association et en particulier son mode d&#8217;organisation dit <em>autogéré</em>, sans le triumvirat habituel (secrétaire / trésorière.er / présidente). </p>
2012
2013
2014
2015<p class="wp-block-paragraph">Ils délèguent au Règlement Intérieur les modalités d&#8217;application de certaines règles. Ainsi, les statuts précisent que l&#8217;Assemblée Générale est réunie de manière permanente via la mailing list de l&#8217;association ; c&#8217;est le règlement intérieur qui définit les délais impartis à la prise de décision sur cette mailing list.</p>
2016
2017
2018
2019<p class="wp-block-paragraph">De plus le Règlement Intérieur définit le cadre de la vie collective au sein du hackerspace.</p>
2020
2021
2022
2023<p class="wp-block-paragraph"><strong>Retour d&#8217;expérience sur le fonctionnement</strong></p>
2024
2025
2026
2027<p class="wp-block-paragraph">Nous sommes satisfaits de cette solution et de la liberté qu&#8217;elle nous offre. Elle place au coeur de l&#8217;activité les échanges sur la Mailing List et permet des prises de décision assez rapides. </p>
2028
2029
2030
2031<p class="wp-block-paragraph">Le délai avant qu&#8217;une décision soit prise pose encore question : est-ce que 7 jours sont trop peu ? un délai 15 jours trop long ? Il est également prévu d&#8217;écrire un script qui automatise l&#8217;enregistrement des propositions et au terme du délai imparti notifie sur la mailing-list leur
2031s validations. Mais le rythme actuel n&#8217;a pas encore nécessité cet outil.</p>
2032
2033
2034
2035<p class="wp-block-paragraph">Au terme d&#8217;une année, alors que se profile notre Assemblée Générale Ordinaire, il est satisfaisant de se dire que pour l&#8217;Ordre du Jour, il suffira de synthétiser les décisions proposées et votées sur notre mailing-list interne !</p>
2036
2037
2038
2039<p class="wp-block-paragraph"></p>
2040	</div><!-- .entry-content -->
2041
2042	<footer class="entry-footer">
2043		<span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=49&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&#038;d=mm&#038;r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy' decoding='async'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.tmplab.org/author/alban/">alban</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.tmplab.org/2020/02/25/statuts-et-reglement-interieur/" rel="bookmark"><time class="entry-date published updated" datetime="2020-02-25T18:45:32+01:00">February 25, 2020</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.tmplab.org/category/hackerspaces/" rel="category tag">Hackerspaces</a>, <a href="https://www.tmplab.org/category/organisation/" rel="category tag">Organisation</a></span><span class="comments-link"><a href="https://www.tmplab.org/2020/02/25/statuts-et-reglement-interieur/#respond">Leave a comment<span class="screen-reader-text"> on Statuts et Règlement Intérieur</span></a></span>			</footer><!-- .entry-footer -->
2044</article><!-- #post-1626 -->
2045
2046<article id="post-1613" class="post-1613 post type-post status-publish format-standard has-post-thumbnail hentry category-hsf2020 category-news">
2047	<header class="entry-header">
2048		
2049		<h2 class="entry-title"><a href="https://www.tmplab.org/2020/02/25/hacker-space-festival-2020/" rel="bookmark">Hacker Space Festival 2020</a></h2>	</header><!-- .entry-header -->
2050
2051	
2052	
2053	<a class="post-thumbnail" href="https://www.tmplab.org/2020/02/25/hacker-space-festival-2020/" aria-hidden="true">
2054		<img width="833" height="419" src="https://www.tmplab.org/wp-content/uploads/2020/02/header.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Hacker Space Festival 2020" decoding="async" loading="lazy" srcset="https://www.tmplab.org/wp-content/uploads/2020/02/header.png 833w, https://www.tmplab.org/wp-content/uploads/2020/02/header-300x151.png 300w, https://www.tmplab.org/wp-content/uploads/2020/02/header-768x386.png 768w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 60vw, (max-width: 1362px) 62vw, 840px" />	</a>
2055
2056		
2057	<div class="entry-content">
2058		
2059<p class="wp-block-paragraph"><strong>Organizing collective events is an important moment in the life of a hackerspace. The /tmp/lab was happy to organize a new edition of HSF on the 7th and 8th of February 2020. </strong></p>
2060
2061
2062
2063<p class="wp-block-paragraph">A number of people helped us for HSF2020, we would like to thank all of them in no particular order or exhaustivity : Choisy&#8217;s city employees, participant hackers, lab&#8217;s members, and of course everyone who came. </p>
2064
2065
2066
2067<p class="wp-block-paragraph">Speaking of audience, the success of such an event is often measured by the attendance. Well, we chose to move that target.</p>
2068
2069
2070
2071<p class="wp-block-paragraph">We decided early to respect a few principles for this edition. These were presented as No stress, Auto organize, Party Time, Less conferences, No budget. </p>
2072
2073
2074
2075<p class="wp-block-paragraph">Turns out the event was generally perceived as welcoming and had few material constraints. The suburbian city of Choisy-le-Roi, which hosts the /tmp/lab, lent us for free a nice and well equiped room with an additional place for storing and restoring staff. We had no sponsor and required no entrance fee, other than a small &#8220;tip box.&#8221;</p>
2076
2077
2078
2079<p class="wp-block-paragraph"><strong>It was globally perceived as a success.</strong></p>
2080
2081
2082
2083<p class="wp-block-paragraph">We had a good amount of visitors who appreciated the contact quality, having the time to speak with exhibitors and speakers who themselves liked the relaxed atmosphere and the self-organisation. </p>
2084
2085
2086
2087<p class="wp-block-paragraph">Of course, not everything worked perfectly. For example some exhibitors expected we would have more attendance. Some people felt the Friday+Saturday format was a bit short and would have liked a Sunday prolongation. Food for Thought.</p>
2088
2089
2090
2091<p class="wp-block-paragraph"><strong>So, What About Next Time ?</strong></p>
2092
2093
2094
2095<p class="wp-block-paragraph">This event wasn&#8217;
2095t too much effort —you know what we mean if you&#8217;ve organized such events yourself— nor too costly, which means it can be done more often. But it&#8217;s even better if we collectively organize these events in different places every time and this leads us to an interesting effort we associated the HSF2020 event with: the interhackerspaces cooperation.</p>
2096
2097
2098
2099<p class="wp-block-paragraph">People from ~10 hackerspaces came and we had a nice panel about how we could do more together. A few notes and links can be found <a href="https://pads.usinette.org/p/2020hsfinterhack">on this pad</a>. </p>
2100
2101
2102
2103<p class="wp-block-paragraph">Amongst other proposals, we presented <a href="https://git.interhacker.space/interhack/cquoilehack/src/branch/master/cquoilehack.pdf">this PDF document</a> which explains what hackerspaces are, how they work and some of their today&#8217;s goals.</p>
2104
2105
2106
2107<p class="wp-block-paragraph">Future events:</p>
2108
2109
2110
2111<ul class="wp-block-list"><li>19th &#8211; 22th of Feb. <a href="https://www.tetalab.org/fr/universite_hiver_2020">Université de matin d&#8217;hiver</a> (Toulouse)</li><li>20th &#8211; 24th of May <a href="https://www.tetalab.org/fr/">Université de rouleau de printemps</a> (Toulouse)</li><li>4th &#8211; 7th of June <a href="https://rml15.frama.site">Rencontre des Monnaies Libres</a> (Paris) </li></ul>
2112
2113
2114
2115<p class="wp-block-paragraph"><strong>Medias</strong></p>
2116
2117
2118
2119<p class="wp-block-paragraph"><a href="https://2020.hackersfest.org/">HSF2020 Website with full program </a></p>
2120
2121
2122
2123<p class="wp-block-paragraph"><a href="https://tube.interhacker.space/videos/watch/11c2f27c-747d-4c5a-96e3-b3ffd481b152">Video by blz</a></p>
2124
2125
2126
2127<p class="wp-block-paragraph"><iframe loading="lazy" sandbox="allow-same-origin allow-scripts allow-popups" src="https://tube.interhacker.space/videos/embed/11c2f27c-747d-4c5a-96e3-b3ffd481b152" allowfullscreen="" width="560" height="315" frameborder="0"></iframe></p>
2128
2129
2130
2131<p class="wp-block-paragraph"><a href="https://tube.p2p.legal/videos/watch/a5ce2e70-0255-4d69-9fb7-0babd20ed5c5">Video by attilax</a></p>
2132
2133
2134
2135<p><iframe loading="lazy" sandbox="allow-same-origin allow-scripts allow-popups" src="https://tube.p2p.legal/videos/embed/a5ce2e70-0255-4d69-9fb7-0babd20ed5c5" allowfullscreen="" width="560" height="315" frameborder="0"></iframe></p>
2136
2137
2138
2139<p class="wp-block-paragraph"><a href="http://www.tmplab.org/wp-content/uploads/2020/02/HSF2020_light.pdf">Talk slides of  &#8220;Comment organiser un colloque de 140 conférences et bouquin de 400 pages avec des outils et services libres&#8221; by jnm </a><br></p>
2140
2141
2142
2143<p class="wp-block-paragraph"></p>
2144
2145
2146
2147<p><a href="https://tube.interhacker.space/videos/watch/3c552e66-efb6-49f7-951f-a9245b8a5dcf">Talk Association Entropie</a></p>
2148<iframe loading="lazy" sandbox="allow-same-origin allow-scripts allow-popups" src="https://tube.interhacker.space/videos/embed/3c552e66-efb6-49f7-951f-a9245b8a5dcf" allowfullscreen="" width="560" height="315" frameborder="0"></iframe>
2149<p><a href="https://tube.interhacker.space/videos/watch/ba931bdf-dd04-44ff-86e0-fd558258370a">Talk Buffer Overflow</a></p>
2150<iframe loading="lazy" sandbox="allow-same-origin allow-scripts allow-popups" src="https://tube.interhacker.space/videos/embed/ba931bdf-dd04-44ff-86e0-fd558258370a" allowfullscreen="" width="560" height="315" frameborder="0"></iframe>
2151</p>
2152	</div><!-- .entry-content -->
2153
2154	<footer class="entry-footer">
2155		<span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=49&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&#038;d=mm&#038;r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy' decoding='async'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.tmplab.org/author/alban/">alban</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.tmplab.org/2020/02/25/hacker-space-festival-2020/" rel="bookmark"><time class="entry-date published" datetime="2020-02-25T11:45:24+01:00">February 25, 2020</time><time class="updated" datetime="2020-03-07T11:33:29+01:00">March 7, 2020</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.tmplab.org/category/events/hsf2020/" rel="category tag">hsf2020</a>, <a href="https://www.tmplab.org/category/news/" rel="category tag">News</a></span><span class="comments-link"><a href="https://www.tmplab.org/2020/02/25/hacker-space-festival-2020/#respond">Leave a comment<span class="screen-reader-text">
2155 on Hacker Space Festival 2020</span></a></span>			</footer><!-- .entry-footer -->
2156</article><!-- #post-1613 -->
2157
2158	<nav class="navigation pagination" aria-label="Posts pagination">
2159		<h2 class="screen-reader-text">Posts pagination</h2>
2160		<div class="nav-links"><span aria-current="page" class="page-numbers current"><span class="meta-nav screen-reader-text">Page </span>1</span>
2161<a class="page-numbers" href="https://www.tmplab.org/page/2/"><span class="meta-nav screen-reader-text">Page </span>2</a>
2162<span class="page-numbers dots">&hellip;</span>
2163<a class="page-numbers" href="https://www.tmplab.org/page/14/"><span class="meta-nav screen-reader-text">Page </span>14</a>
2164<a class="next page-numbers" href="https://www.tmplab.org/page/2/">Next page</a></div>
2165	</nav>
2166		</main><!-- .site-main -->
2167	</div><!-- .content-area -->
2168
2169
2170	<aside id="secondary" class="sidebar widget-area" role="complementary">
2171		<section id="linkcat-36" class="widget widget_links"><h2 class="widget-title">Hacker Spaces</h2>
2172	<ul class='xoxo blogroll'>
2173<li><a href="http://altlab.org/">AltLab &#8211; DIY Creativity</a></li>
2174<li><a href="http://www.craslab.org/" title="Centre de Ressources Art Sensitif">Art Sensitif</a>
2175Centre de Ressources Art Sensitif</li>
2176<li><a href="http://bootlab.org/" title="Bootlab hacker space in Berlin">Bootlab</a>
2177Bootlab hacker space in Berlin</li>
2178<li><a href="http://www.c3d2.de/" title="Friends!!!">Chaos Computer Club Dresden &#8211; c3d2</a>
2179Friends!!!</li>
2180<li><a href="http://www.electrolab.fr/" title="Hackerspace in Paris area (Nanterre)">Electrolab</a>
2181Hackerspace in Paris area (Nanterre)</li>
2182<li><a href="http://fo.am/" title="Hacker space in Brussels (culture, arts, open source, projects) and a wonderful team of nice people">FoAM</a>
2183Hacker space in Brussels (culture, arts, open source, projects) and a wonderful team of nice people</li>
2184<li><a href="http://kefir.wikidot.com/">Free Fermentology Foundation</a></li>
2185<li><a href="http://hacklab.to/" title="Leigh and friends!!!!!">hacklab.to (Toronto, Canada)</a>
2186Leigh and friends!!!!!</li>
2187<li><a href="http://hacklaviva.net/">hacklaviva! &#8211; hacklab e viva &#8211; porto, portugal</a></li>
2188<li><a href="http://hsb.wikidot.com/wiki:bootstrap">HSB: Bootstrap</a></li>
2189<li><a href="https://bidouille93.fr/" title="hackerspace at Aubervilliers (FR)" target="_blank">La Bidouille</a>
2190hackerspace at Aubervilliers (FR)</li>
2191<li><a href="http://www.lasuitelogique.org/" title="RIP">La Suite Logique</a>
2192RIP</li>
2193<li><a href="http://www.foulab.org/">Laboratoires Foulab.org &#8211; Proje(c)t Hackerspace Montreal</a></li>
2194<li><a href="http://london.hackspace.org.uk/" rel="friend" title="Several hundred members, highly active">London Hackspace</a>
2195Several hundred members, highly active</li>
2196<li><a href="https://www.noisebridge.net/index.php/NoiseBridge" title="Hacker Space in San Francisco, California, USA with our friend Mitch.">NoiseBridge &#8211; Noise Bridge</a>
2197Hacker Space in San Francisco, California, USA with our friend Mitch.</li>
2198<li><a href="http://www.nycresistor.com/" title="NYC Hack Lab involved in Arduino &amp; Reprap">NYC Resistor</a>
2199NYC Hack Lab involved in Arduino &amp; Reprap</li>
2200<li><a href="http://ruori.org/">project ruori</a></li>
2201<li><a href="http://metalab.at/wiki/Soulmates">Soulmates &#8211; Metalab</a></li>
2202<li><a href="http://tetalab.org/" rel="friend met co-worker colleague" target="_blank">Tetalab @ Toulouse</a></li>
2203<li><a href="http://usinette.org" rel="friend met co-worker colleague co-resident" title="Les usines nouvelles" target="_blank">usinette.org</a>
2204Les usines nouvelles</li>
2205<li><a href="http://print.squat.net/" title="One of the first hack lab in France.">[:: print.squat.net ::] in Dijon</a>
2206One of the first hack lab in France.</li>
2207
2208	</ul>
2209</section>
2210<section id="linkcat-8" class="widget widget_links"><h2 class="widget-title">Links</h2>
2211	<ul class='xoxo blogroll'>
2212<li><a href="http://www.april.org/">APRIL &#8211; Promouvoir et defendre le logiciel libre &#8211; Promoting and defending Free Software</a></li>
2213<li><a href="http://www.inveneo.org/">Connecting Those Who Need It Most: Inveneo.org</a></li>
2214<li><a href="http://www.ccc.de/hackabike/">Hack a Bike &#8211; keep on hacking in a free world!</a></li>
2215<li><a href="http://1010.co.uk/">micro research london/berlin</a></li>
2216<li><a href="http://m2m.streamtime.org/">Migrant 2 Migrant</a></li>
2217<li><a href="http://olpcfrance.org/">OLPC France</a></li>
2218<li><a href="http://openwrt.org/">OpenWRT</a></li>
2219<li><a href="http://www.mindkind.org/index.php">PLANETE UNDERGROUND (BETA) &#8211; blog by Mindkind</a></li>
2220<li><a href="http://decnet.ipv7.net/" title="Crazy italian people do Retro VAX/VMS stuff!!! Cool as hell.">RETRO DECnet &#8211; HOME</a>
2221Crazy italian people do Retro VAX/VMS stuff!!! Cool as hell.</li>
2222<li><a href="http://bugbrother.blog.lemonde.fr/2009/02/26/tout-ce-que-vous-avez-toujours-voulu-pirater-sans-jamais-savoir-comment-proceder/" title="Tout ce que vous avez toujours voulu pirater sans jamais savoir comment procéder">Tout est piraté !</a>
2223Tout ce que vous avez toujours voulu pirater sans jamais savoir comment procéder</li>
2224<li><a href="http://xyinteraction.free.fr/wiki/pmwiki.php/FR/Mat%e9riel" title="Mortelle application open source de captation, yessaaiiiiee">XY Interaction</a>
2225Mortelle application open source de captation, yessaaiiiiee</li>
2226
2227	</ul>
2228</section>
2229<section id="linkcat-18" class="widget widget_links"><h2 class="widget-title">People</h2>
2230	<ul class='xoxo blogroll'>
2231<li><a href="http://brianna.modernthings.org/article/138/a-floss-manual-how-to-contribute-to-wikimedia-commons">All The Modern Things: A FLOSS Manual: How to contribute to Wikimedia Commons</a></li>
2232<li><a href="http://blog.fedora-fr.org/bochecha/">Bochecha</a></li>
2233<li><a href="http://decerebrain.weblogs.dg-sc.org/" title="Victory, not vengeance.">DecereBrain</a>
2234Victory, not vengeance.</li>
2235<li><a href="http://grepgrrl.org/" title="!!!">grep|grrl</a>
2236!!!</li>
2237<li><a href="http://freaknet.org/asbesto/">Homepage of Gabriele \&#8221;Asbesto Molesto\&#8221; Zaverio</a></li>
2238<li><a href="http://jaromil.dyne.org/" title="THE Jaromil">jaromil /at/ dyne.org</a>
2239THE Jaromil</li>
2240<li><a href="http://www.youtube.com/watch?v=OIBYRDJCWFQ">Kruno Jost cut ups DK:07:DU</a></li>
2241<li><a href="http://lekernel.net" title="Sebastien Bourdeauducq&#8217;s personal page">lekernel.net</a>
2242Sebastien Bourdeauducq&#8217;s personal page</li>
2243<li><a href="http://www.lelongdunet.com/index.php?id=plan">Lelongdunet: Adrien Lelong</a></li>
2244<li><a href="http://www.myspace.com/montexxxxx">MONTEX</a></li>
2245<li><a href="http://fedoraproject.org/wiki/User:Nashella">Nashella</a></li>
2246<li><a href="http://www.myspace.com/zidbuke">NoisE.WaLL, Cut ups! &#8211; CT &#8211; Exp�rimentale / Alternative / Psych�d�lique</a></li>
2247<li><a href="http://philippelanglois.free.fr/dotclear/" title="Philippe Langlois blog (Tech, Freedom, Society, Arts, Books, &#8230;)">Philippe Langlois blog</a>
2248Philippe Langlois blog (Tech, Freedom, Society, Arts, Books, &#8230;)</li>
2249<li><a href="http://www.ramassi.net/">Raphael Massi</a></li>
2250<li>
2250<a href="http://www.oslutions.com/" title="OLPC and EEE fan">[email protected]</a>
2251OLPC and EEE fan</li>
2252<li><a href="http://www.youtube.com/watch?v=UywoaMqtVRM" title="Video du syndicat :)">SDH &#8211; Syndicat du Hype</a>
2253Video du syndicat :)</li>
2254<li><a href="http://www.soutien11novembre.org/">Soutien aux inculpes du 11 Novembre</a></li>
2255<li><a href="https://twitter.com/philpraxis">Twitter Philpraxis</a></li>
2256
2257	</ul>
2258</section>
2259<section id="linkcat-35" class="widget widget_links"><h2 class="widget-title">Hack Reader</h2>
2260	<ul class='xoxo blogroll'>
2261<li><a href="http://guide.boum.org/tomes/1_hors_connexions/pdf/">Guide d&#039;autodéfense numérique</a></li>
2262<li><a href="http://www.catb.org/~esr/faqs/hacker-howto.html#skills4">How To Become A Hacker</a></li>
2263<li><a href="http://www.paulgraham.com/love.html">How to Do What You Love</a></li>
2264<li><a href="http://infond.blogspot.com/">infond tutoriels sécu</a></li>
2265<li><a href="http://www.cip-idf.org/article.php3?id_article=4433">Simondon, Individu et collectivite. Pour une philosophie du transindividuel, Muriel Combes</a></li>
2266<li><a href="http://web.mit.edu/afs/athena.mit.edu/course/16/16.399/www/">Static Analysis for Vulnerabiliities</a></li>
2267<li><a href="http://bugbrother.blog.lemonde.fr/2009/02/26/tout-ce-que-vous-avez-toujours-voulu-pirater-sans-jamais-savoir-comment-proceder/" title="Tout ce que vous avez toujours voulu pirater sans jamais savoir comment procéder">Tout est piraté !</a>
2268Tout ce que vous avez toujours voulu pirater sans jamais savoir comment procéder</li>
2269<li><a href="http://ufr.zero.over-blog.org/">UFR Zero</a></li>
2270<li><a href="http://news.slashdot.org/article.pl?sid=09/04/21/170202">University Classrooms Will Be Irrelevant By 2020</a></li>
2271
2272	</ul>
2273</section>
2274<section id="tag_cloud-3" class="widget widget_tag_cloud"><h2 class="widget-title">Tag Cloud</h2><div class="tagcloud"><ul class='wp-tag-cloud' role='list'>
2275	<li><a href="https://www.tmplab.org/category/projects/teamlaser/" class="tag-cloud-link tag-link-161 tag-link-position-1" style="font-size: 1em;">/team/laser</a></li>
2276	<li><a href="https://www.tmplab.org/category/projects/tmp-usine/" class="tag-cloud-link tag-link-54 tag-link-position-2" style="font-size: 1em;">/tmp/usine</a></li>
2277	<li><a href="https://www.tmplab.org/category/events/estive-numerique-digital-peak-2010/alternative-energy/" class="tag-cloud-link tag-link-21 tag-link-position-3" style="font-size: 1em;">Alternative Energy</a></li>
2278	<li><a href="https://www.tmplab.org/category/art/" class="tag-cloud-link tag-link-102 tag-link-position-4" style="font-size: 1em;">art</a></li>
2279	<li><a href="https://www.tmplab.org/category/bullshitbingo/" class="tag-cloud-link tag-link-151 tag-link-position-5" style="font-size: 1em;">BullshitBingo</a></li>
2280	<li><a href="https://www.tmplab.org/category/events/bwm2009/" class="tag-cloud-link tag-link-58 tag-link-position-6" style="font-size: 1em;">BWM2009</a></li>
2281	<li><a href="https://www.tmplab.org/category/projects/cos/" class="tag-cloud-link tag-link-53 tag-link-position-7" style="font-size: 1em;">Church of Security</a></li>
2282	<li><a href="https://www.tmplab.org/category/code/" class="tag-cloud-link tag-link-75 tag-link-position-8" style="font-size: 1em;">code</a></li>
2283	<li><a href="https://www.tmplab.org/category/concert/" class="tag-cloud-link tag-link-103 tag-link-position-9" style="font-size: 1em;">concert</a></li>
2284	<li><a href="https://www.tmplab.org/category/conferences/" class="tag-cloud-link tag-link-94 tag-link-position-10" style="font-size: 1em;">Conferences</a></li>
2285	<li><a href="https://www.tmplab.org/category/events/endp2010/" class="tag-cloud-link tag-link-78 tag-link-position-11" style="font-size: 1em;">ENDP2010</a></li>
2286	<li><a href="https://www.tmplab.org/category/english/" class="tag-cloud-link tag-link-49 tag-link-position-12" style="font-size: 1em;">English</a></li>
2287	<li><a href="https://www.tmplab.org/category/events/estive-numerique-digital-peak-2010/" class="tag-cloud-link tag-link-84 tag-link-position-13" style="font-size: 1em;">Estive Numérique - Digital Peak 2010</a></li>
2288	<li><a href="https://www.tmplab.org/category/events/" class="tag-cloud-link tag-link-26 tag-link-position-14" style="font-size: 1em;">Events</a></li>
2289	<li><a href="https://www.tmplab.org/category/french/" class="tag-cloud-link tag-link-48 tag-link-position-15" style="font-size: 1em;">French</a></li>
2290	<li><a href="https://www.tmplab.org/category/projects/geodepollution/" class="tag-cloud-link tag-link-79 tag-link-position-16" style="font-size: 1em;">GeoDepollution</a></li>
2291	<li><a href="https://www.tmplab.org/category/hackerspaces/" class="tag-cloud-link tag-link-51 tag-link-position-17" style="font-size: 1em;">Hackerspaces</a></li>
2292	<li><a href="https://www.tmplab.org/category/events/har2009/" class="tag-cloud-link tag-link-50 tag-link-position-18" style="font-size: 1em;">HAR2009</a></li>
2293	<li><a href="https://www.tmplab.org/category/events/hes2010/" class="tag-cloud-link tag-link-77 tag-link-position-19" style="font-size: 1em;">HES2010</a></li>
2294	<li><a href="https://www.tmplab.org/category/events/hes2014/" class="tag-cloud-link tag-link-104 tag-link-position-20" style="font-size: 1em;">HES2014</a></li>
2295	<li><a href="https://www.tmplab.org/category/events/hsf2009/" class="tag-cloud-link tag-link-52 tag-link-position-21" style="font-size: 1em;">HSF2009</a></li>
2296	<li><a href="https://www.tmplab.org/category/events/hsf2020/" class="tag-cloud-link tag-link-164 tag-link-position-22" style="font-size: 1em;">hsf2020</a></li>
2297	<li><a href="https://www.tmplab.org/category/projects/milkymist/" class="tag-cloud-link tag-link-89 tag-link-position-23" style="font-size: 1em;">milkymist</a></li>
2298	<li><a href="https://www.tmplab.org/category/news/" class="tag-cloud-link tag-link-10 tag-link-position-24" style="font-size: 1em;">News</a></li>
2299	<li><a href="https://www.tmplab.org/category/organisation/" class="tag-cloud-link tag-link-165 tag-link-position-25" style="font-size: 1em;">Organisation</a></li>
2300	<li><a href="https://www.tmplab.org/category/events/phsf2010/" class="tag-cloud-link tag-link-87 tag-link-position-26" style="font-size: 1em;">PHSF2010</a></li>
2301	<li><a href="https://www.tmplab.org/category/projects/" class="tag-cloud-link tag-link-11 tag-link-position-27" style="font-size: 1em;">Projects</a></li>
2302	<li><a href="https://www.tmplab.org/category/events/pseshsf/" class="tag-cloud-link tag-link-154 tag-link-position-28" style="font-size: 1em;">pseshsf</a></li>
2303	<li><a href="https://www.tmplab.org/category/software/" class="tag-cloud-link tag-link-163 tag-link-position-29" style="font-size: 1em;">software</a></li>
2304	<li><a href="https://www.tmplab.org/category/events/thsf2019/" class="tag-cloud-link tag-link-162 tag-link-position-30" style="font-size: 1em;">THSF2019</a></li>
2305	<li><a href="https://www.tmplab.org/category/video/" class="tag-cloud-link tag-link-85 tag-link-position-31" style="font-size: 1em;">Video</a></li>
2306	<li><a href="https://www.tmplab.org/category/wiki/" class="tag-cloud-link tag-link-88 tag-link-position-32" style="font-size: 1em;">Wiki</a></li>
2307	<li><a href="https://www.tmplab.org/category/workshops/" class="tag-cloud-link tag-link-12 tag-link-position-33" style="font-size: 1em;">Workshops</a></li>
2308</ul>
2309</div>
2310</section>	</aside><!-- .sidebar .widget-area -->
2311
2312		</div><!-- .site-content -->
2313
2314		<footer id="colophon" class="site-footer" role="contentinfo">
2315							<nav class="main-navigation" role="navigation" aria-label="Footer Primary Menu">
2316					<div class="menu-header-menu-container"><ul id="menu-header-menu-1" class="primary-menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-673"><a href="https://www.tmplab.org/about/">About</a></li>
2317<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1856"><a href="https://www.tmplab.org/calendar/">Calendar</a></li>
2318<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-654"><a href="https://www.tmplab.org/category/events/">Events</a>
2319<ul class="sub-menu">
2320	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-648"><a href="https://www.tmplab.org/category/events/bwm2009/">BWM2009</a></li>
2321	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-660"><a href="https://www.tmplab.org/category/events/hsf2009/">HSF2009</a></li>
2322	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-658"><a href="https://www.tmplab.org/category/events/har2009/">HAR2009</a></li>
2323	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-651"><a href="https://www.tmplab.org/category/events/endp2010/">ENDP2010</a></li>
2324	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-653"><a href="https://www.tmplab.org/category/events/estive-numerique-digital-peak-2010/">Estive Numérique &#8211; Digital Peak 2010</a></li>
2325	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-664"><a href="https://www.tmplab.org/category/events/phsf2010/">PHSF2010</a></li>
2326	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-659"><a href="https://www.tmplab.org/category/events/hes2010/">HES2010</a></li>
2327	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1135"><a href="https://www.tmplab.org/category/events/hes2014/">HES2014</a></li>
2328</ul>
2329</li>
2330<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-666"><a href="https://www.tmplab.org/category/projects/">Projects</a>
2331<ul class="sub-menu">
2332	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-646"><a href="https://www.tmplab.org/category/projects/tmp-usine/">/tmp/usine</a></li>
2333	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-649"><a href="https://www.tmplab.org/category/projects/cos/">Church of Security</a></li>
2334	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-656"><a href="https://www.tmplab.org/category/projects/geodepollution/">GeoDepollution</a></li>
2335	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-661"><a href="https://www.tmplab.org/category/projects/milkymist/">milkymist</a></li>
2336	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-662"><a href="https://www.tmplab.org/category/projects/neurohack/">Neurohack</a></li>
2337	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-647"><a href="https://www.tmplab.org/category/events/estive-numerique-digital-peak-2010/alternative-energy/">Alternative Energy</a></li>
2338</ul>
2339</li>
2340<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-671"><a href="https://www.tmplab.org/wiki/">Wiki</a></li>
2341<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-674"><a href="https://www.tmplab.org/wiki/index.php/Workshops">Workshops</a></li>
2342<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-672"><a href="https://www.tmplab.org/contact/">Contacts</a></li>
2343</ul></div>				</nav><!-- .main-navigation -->
2344			
2345			
2346			<div class="site-info">
2347								<span class="site-title"><a href="https://www.tmplab.org/" rel="home">/tmp/lab</a></span>
2348								<a href="https://wordpress.org/" class="imprint">
2349					Proudly powered by WordPress				</a>
2350			</div><!-- .site-info -->
2351		</footer><!-- .site-footer -->
2352	</div><!-- .site-inner -->
2353</div><!-- .site -->
2354
2355<script type="speculationrules">
2356{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/twentysixteen/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
2357</script>
vendor: 1 bytes, line 2357
2357
2358<script id="twentysixteen-skip-link-focus-fix-js" src="https://www.tmplab.org/wp-content/themes/twentysixteen/js/skip-link-focus-fix.js?ver=20160816"></script>
vendor: 1 bytes, line 2358
2358
2359<script id="twentysixteen-script-js-extra">
2360var screenReaderText = {"expand":"expand child menu","collapse":"collapse child menu"};
2361//# sourceURL=twentysixteen-script-js-extra
2362</script>
vendor: 1 bytes, line 2362
2362
2363<script id="twentysixteen-script-js" src="https://www.tmplab.org/wp-content/themes/twentysixteen/js/functions.js?ver=20181230"></script>
vendor: 1 bytes, line 2363
2363
2364<script data-wp-strategy="defer" defer id="wp-embed-js" src="https://www.tmplab.org/wp-includes/js/wp-embed.min.js?ver=7.1.2"></script>
vendor: 1 bytes, line 2364
2364
2365<script id="wp-emoji-settings" type="application/json">
2366{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://www.tmplab.org/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}}
2367</script>
vendor: 1 bytes, line 2367
2367
2368<script type="module">
2369/*! This file is auto-generated */
2370var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
2371//# sourceURL=https://www.tmplab.org/wp-includes/js/wp-emoji-loader.min.js
2372</script>
2372
2373</body>
2374</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.