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 – 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 » Feed" href="https://www.tmplab.org/feed/" /> 13<link rel="alternate" type="application/rss+xml" title="/tmp/lab » 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&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 – 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’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&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&d=mm&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> : 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 – <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&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/733e5fa32286afbc2a03e0f86ac9be75f8bc15ed8858e24158d081aa9a02ff8c?s=98&d=mm&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… 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’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’s because you don’t know that it’s gonna be an index.html handling the traffic: it’s not. It’s the application residing at / that handles everything.</p> 317 318 319 320<p class="wp-block-paragraph">happy Quasar & 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&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/a4453a4988a5c5d304ba448a3c7aa79b0cf54b308fd043219fd5bb029a8d2d49?s=98&d=mm&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’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’honneur d’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’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 – <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Ä – <strong><em>Présentation de la pièce “Screenagers 2” 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 – <strong><em><a href="https://www.tmplab.org/wp-content/uploads/2023/01/Anthony-IA_et_creation_images.pdf">IA et création d’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 – <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> – 381 382 383 384<p class="wp-block-paragraph">Alban Crommer – <em><a href="https://generative-ai.albancrommer.com/#/0/1"><strong>Une introduction aux usages créatifs de l’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&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&d=mm&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’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’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&layer=mapnik&marker=48.76614675936893%2C2.414374351501465" style="border: 1px solid black"></iframe><br/><small><a href="https://www.openstreetmap.org/?mlat=48.7661&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 – 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Ä – </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– 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&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&d=mm&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’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’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’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’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’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’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 – politiques – économiques – 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’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’essor de l’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’ingénierie du prompt sur Twitter et des serveurs Discord dans le cadre d’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’apprentissage artificiel dans le contexte de l’é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 “Screenagers 2” présentée au théâtre le 18 janvier 595Ouverture sur le projet “Parano AI”</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>“La revanche des littéraires!”, une petite histoire des Transformers. 606Dans cette présentation, j’introdurai la méthode des Transformers. Je parlerai de leur impact sur la compréhension du langage, la génération d’images et l’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 à “usages créatifs de l’ia –
618 machine learning textes sons images”.</p> 619 620 621 622<p class="wp-block-paragraph">Une fois de plus avec l’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’est un mélange de peur, d’inquiétude, de passion et d’é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’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’interroger les horizons techniques, sociaux, politiques et économiques de ces techniques en écoutant des scientifiques, artistes et praticiens présenter leurs travaux, en s’émerveillant devant certaines oeuvres et en sachant s’ouvrir à la complexité mathématique.</p> 639 640 641 642<p class="wp-block-paragraph">Conférence qui s’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 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’IA. </p> 661 662 663 664<p class="wp-block-paragraph">Infos pratiques : entrée libre au théâtre de Choisy (4 avenue de Villeneuve Saint-Georges) ou en visio conférence et streaming sur 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&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&d=mm&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’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’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’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&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&d=mm&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’s something very nice with Raspberry Pi (RPi) is that you can use it’
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’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’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… 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’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’t cost you points, and you can <a href="https://exam1.r-e-f.org/accueil">repeat (cram) exams</a> so it’s not that difficult.</li><li>US has a much better and more progressive license scheme (Technician -> General -> 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>… and you’ve got plenty of time to prepare for exams since you can’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’s a little circuit between the RPi and the antenna… why is that?</p> 761 762 763 764<h2 class="wp-block-heading">On being clean…</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’t hurt your neighbour communications! Don’t force governments and regulators to limit our radio spectrum freedoms because we couldn’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 – 14.350 MHz for weak signal digital communications, <a href="https://en.wikipedia.org/wiki/WARC_bands">30m (10MHz)</a>: 10.130 – 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’t worry, we’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’ll see that we go slowly and step by step over the process we used, so that it’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…</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’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’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… 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’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) – UHF (300 MHz – 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’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’s much easier than you initially think. We’ll have plenty of episodes related to antenna building.</p> 845 846 847 848<h2 class="wp-block-heading">So let’s build a filter… 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’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’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’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 &</code></p> 885 886 887 888<p class="wp-block-paragraph">First fun is that QUCS runs but isn’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 “wow… must be super awesome large software that takes ages to start… really long… such 31337 software…”. 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 “Open image in new tab” 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 “New” in the “Projects” 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/<project_name> directory under which you’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 > Tools > 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’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 “buffer space” around desired frequency.</p> 945 946 947 948<p class="wp-block-paragraph">Why this buffer space? because we’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 “pass”) 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’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 “Calculate”</figcaption></figure> 961 962 963 964<p class="wp-block-paragraph">If you think nothing happens, well… you’re part right. It copied “something” (the result of filter computations) in the clipboard… then you need to switch to QUCS… 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’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… the magic results appears on QUCS ! Argh… foreign unknown language again? We’ll explain later the schema.</figcaption></figure> 977 978 979 980<p class="wp-block-paragraph">But if you continue moving your mouse, you’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… this is troubling UX. Just press ESC to deselect it (or “forget” it), it’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 “Order = 3” but to “Order = 2”:</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’ll need to repeat the process of generating a filter… that’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’t it? — See, we have one less leg toward the ground with one less inductance “coils” 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’t know really the impact of such choice, so don’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 “selective” than and third-order circuit. It’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’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 “TX” label on some electronic schema for the input of the filter. It should be labeled “From TX” or “TX Output”
1028. </li></ul></li><li>P2 (Port 2) is the antenna (ANT). <ul><li>It is also called sometime the “load” as you can output the radio signal to a resistive load to simulate an antenna (and avoid frying transmitters if they’re powerful enough and not connected to any “load”). </li><li>It’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’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 (“Bobines” or “Inductances” in french), these “store” 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 “core”.</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> (“Condensateurs” in french), these “store” 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> (“Resistances” in french), these pressure and limit the passage of electricity in a way that changes the Voltage (“E” in english, “U” 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’s often called the “through hole” 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’s simulate now our new filter !</h2> 1049 1050 1051 1052<p class="wp-block-paragraph">Now we have a filter, let’s see how it behaves in front of input frequencies. Nothing is better than a graph to “see” 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 > Simulation > 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… 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’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’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 “Cartesian” and hover on the window, you see a “skeleton” 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’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’s not finished, we now need to restrict the Limits of the graph to only the portion of the simulation we’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 “OK”. You’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’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’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’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’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… ð</figcaption></figure> 1165 1166 1167 1168<p class="wp-block-paragraph">Now this is probably not how we should be building filters. And we’re open to suggestions or links to good resource to learn how to do better. It’s for sure not the Electronic Engineer’s way and we’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’s output seems ok. </p> 1193 1194 1195 1196<p class="wp-block-paragraph">Now that’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’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… that’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’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’t very “sharp” in simulation (supposedly it’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’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… but that’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…. 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’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’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’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 “poles”, that is multiple Inductor+capacitor “legs” to the ground, in order to filter more (e.g. to -60dB or more) at higher frequencies. The more poles (the “higher order” 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’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’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…. 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’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’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… so either we don’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’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&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/a4453a4988a5c5d304ba448a3c7aa79b0cf54b308fd043219fd5bb029a8d2d49?s=98&d=mm&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’Art Myrys</a></h2> </header><!-- .entry-header --> 1485 1486 <div class="entry-summary"> 1487 <p>Mix’Art Myrys fait l’objet d’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’originale, nous a toujours semblé exceptionelle. Nous n’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’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’Art Myrys fait l’objet d’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’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’originale, nous a toujours semblé exceptionelle. Nous n’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’hui</a> qu’il s’agit d’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’
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’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’annonce visant à obtenir qu’une solution pérenne et satisfaisante soit conclue. </p> 1520 1521 1522 1523<p class="wp-block-paragraph">Vive Mix’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&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&d=mm&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’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&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&d=mm&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’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’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’é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’é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’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’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’expace mutualisé, une grande salle ouverte à la circulation que nos voisins –membres du <a href="https://www.facebook.com/moduleetrange/posts/">collectif</a> “<a href="http://www.module-etrange.org/">Module Ãtrange</a>“– 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’acousmonium a aussi servi pour diffuser les pièces acousmatiques d’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’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’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’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’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&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&d=mm&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’t block us! So let’s go virtual. We’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’s Clutch</li><li>Spotify’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’d like to participate.</p> 1693 1694 1695 1696<p class="wp-block-paragraph">Depending on interest, we’ll chose a date for start. We’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&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/a4453a4988a5c5d304ba448a3c7aa79b0cf54b308fd043219fd5bb029a8d2d49?s=98&d=mm&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’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 “a chat interface between IRC and Slack”. It’
1731s cooler than IRC to some extend – 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’s what we’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’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’s python, which we like. Also, it’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’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 “brains”. 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 “physical presence”. 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’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 “â” 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 “Get a zip copy of the project” button of a plugin page? Well, nuhuh, nope, that won’t work. Maubot will reject that zip file. Why?<br>The github zip file contains the file “in a directory” called “$projectname-$branch” 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 “mbp” files in the “release” section of their github page. Sadly, they’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 “maubot installer” 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’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 “mbc” 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’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’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 “@rook_the_bot:matrix.org” 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 “Help & About” page: click on the <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 “â” 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’s it. You’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 “â” 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’s say you created an “Instance” associating the <a href="https://github.com/maubot/dice">dice</a> “Plugin” to the rook_the_bot “Client” .</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’s it, have fun. And for questions or anything else… 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&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&d=mm&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’organisation interne d’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’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’abord suivre les modifications qui adviendraient. Mais aussi servir d’inspiration pour d’autres ; les statuts d’associations comme Lautre.net ou Lorraine Data Network nous ont été une source d’inspiration essentielle, ce n’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’association et en particulier son mode d’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’application de certaines règles. Ainsi, les statuts précisent que l’Assemblée Générale est réunie de manière permanente via la mailing list de l’association ; c’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’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’elle nous offre. Elle place au coeur de l’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’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’écrire un script qui automatise l’enregistrement des propositions et au terme du délai imparti notifie sur la mailing-list leur
2031s validations. Mais le rythme actuel n’a pas encore nécessité cet outil.</p> 2032 2033 2034 2035<p class="wp-block-paragraph">Au terme d’une année, alors que se profile notre Assemblée Générale Ordinaire, il est satisfaisant de se dire que pour l’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&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&d=mm&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’s city employees, participant hackers, lab’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 “tip box.”</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’
2095t too much effort âyou know what we mean if you’ve organized such events yourselfâ nor too costly, which means it can be done more often. But it’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’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 – 22th of Feb. <a href="https://www.tetalab.org/fr/universite_hiver_2020">Université de matin d’hiver</a> (Toulouse)</li><li>20th – 24th of May <a href="https://www.tetalab.org/fr/">Université de rouleau de printemps</a> (Toulouse)</li><li>4th – 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 “Comment organiser un colloque de 140 conférences et bouquin de 400 pages avec des outils et services libres” 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&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/e5d5750387c565efc7f4777465641d955695a20ed5562e8caef848c568d73a5a?s=98&d=mm&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">…</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 – 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 – 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! – hacklab e viva – 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 – 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 – 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 & Reprap">NYC Resistor</a> 2199NYC Hack Lab involved in Arduino & Reprap</li> 2200<li><a href="http://ruori.org/">project ruori</a></li> 2201<li><a href="http://metalab.at/wiki/Soulmates">Soulmates – 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 – Promouvoir et defendre le logiciel libre – 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 – 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) – 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 – 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 \”Asbesto Molesto\” 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’s personal page">lekernel.net</a> 2242Sebastien Bourdeauducq’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! – CT – 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, …)">Philippe Langlois blog</a> 2248Philippe Langlois blog (Tech, Freedom, Society, Arts, Books, …)</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 – 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'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 – 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.