Panel LED sous Arduino avec interface graphique en React et interface en ligne de commande Python

Avec l’aide technique de Vivian R, Thierry E, Michael P, Daniel D, Alexandre P, Rémy M et Samuel G

Code en Arduino et en Python3 :
https://github.com/HacklabIlard/PanelLed

Interface graphique en React :
https://github.com/rmondi/LED-panel-GUI
(Compatible avec la version : https://github.com/HacklabIlard/PanelLed/commit/ed46c1b2e192c5e5a02d6a5ee895d424bb4d08f9)

Boite en impression 3D :
https://www.thingiverse.com/thing:5920310

Geek project : Conception d’un panneau de LED

Pendant un week-end, 5 membres de l’ILArd ont commencé la conception d’un petit panneau de Led de dimension 10×10 leds. Ainsi Vivian était changé d’établir le design du panneau, tant dit que Michael conseillait Sam dans la soudure entre les différents bandes de led. Daniel devait, quand à lui, développer une petite application Arduino pour transmettre les informations pour allumer les leds. Les informations, en l’occurrence un dessin, étaient créés depuis l’application Web de Rémy.

Vous pouvez retrouver le code source pour allumer les LED ici :
https://github.com/HacklabIlard/PanelLed

On peut donc voir le H du Hacklab !

Maintenir Nginx à jour sur un vieux tromblon

Nginx est le serveur Web le plus utilisé, juste devant Apache et ces deux programmes «motorisent» à eux seuls 2/3 des sites Web.

Apache, tout comme Nginx,  peut être utilisé comme «reverse-proxy». Mais Nginx est bien plus efficace, performant et facile à configurer dans ce cadre.

Une machine virtuelle ou un conteneur Nginx peut donc être utilisée comme frontal de nombreux sites Web non routés sur Internet. L’intérêt est multiple: cela permet d’avoir de nombreux sites (pas forcément sur le même domaine) sur une seule IPv4/IPv6, les sites ne sont pas directement accessibles et le proxy peut filtrer les requêtes, il peut être utilisé comme mandataire TLS. C’est en quelque sorte une  «gare de triage» pour des requêtes HTTP, HTTPS (merci SAN et SNI) mais aussi  TCP et UDP !

Un frontal qui n’exécute rien d’autre qu’un serveur Web qui assure la fonction de proxy ne craint pas grand chose (il n’interprète pas de code PHP ou autres). Les possibilités d’attaque sont très faibles et il est acceptable d’avoir des uptimes de plusieurs années sur des OS obsolètes … du moment que le principal intéressé (Nginx) soit à jour (ainsi que tous les composants dont il dépend).

Le script suivant télécharge, compile et installe Nginx et ses dépendances en statique:

#!/bin/bash

# Compilation et installation de Nginx + OpenSSL/PCRE/ZLIB statiques
# pour une utilisation en reverse-proxy HTTP/HTTPS/TCP/UDP

mkdir -p nginx-static
cd nginx-static

##################################################

NGINX_VERSION="1.22.1"
FAKE_NGINX_NAME="Microsoft IIS"
SSL_VERSION="1.1.1t"
PCRE_VERSION="10.37"
ZLIB_VERSION="1.2.13"

OPTS="
--with-threads
--with-http_ssl_module
--with-http_v2_module
--with-http_stub_status_module
--with-http_sub_module
--with-http_auth_request_module
--with-stream
--with-stream_ssl_module
--with-stream_ssl_preread_module
--with-openssl=../openssl-${SSL_VERSION}
--with-pcre=../pcre2-${PCRE_VERSION}
--with-zlib=../zlib-${ZLIB_VERSION}
--with-http_gzip_static_module
--add-module=../headers-more-nginx-module
"

##################################################

apt-get -y install build-essential git

##################################################

[ -d nginx ] || mkdir nginx
cd nginx

##################################################

[ -f nginx-${NGINX_VERSION}.tar.gz ] || wget "http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz"
tar -xzf nginx-${NGINX_VERSION}.tar.gz

if [ -d headers-more-nginx-module ] ; then
  cd headers-more-nginx-module
  git pull https://github.com/openresty/headers-more-nginx-module.git
  cd ..
else
  git clone https://github.com/openresty/headers-more-nginx-module.git
fi

[ -f openssl-${SSL_VERSION}.tar.gz ] || wget "http://www.openssl.org/source/openssl-${SSL_VERSION}.tar.gz"
[ -d openssl-${SSL_VERSION} ] && rm -rf openssl-${SSL_VERSION}
tar -xzf openssl-${SSL_VERSION}.tar.gz

[ -f pcre2-${PCRE_VERSION}.tar.gz ] || wget "https://github.com/PCRE2Project/pcre2/releases/download/pcre2-${PCRE_VERSION}/pcre2-${PCRE_VERSION}.tar.gz"
[ -d pcre2-${PCRE_VERSION} ] && rm -rf pcre2-${PCRE_VERSION}
tar -xzf pcre2-${PCRE_VERSION}.tar.gz

[ -f zlib-${ZLIB_VERSION}.tar.gz ] || wget "http://zlib.net/zlib-${ZLIB_VERSION}.tar.gz"
[ -d zlib-${ZLIB_VERSION} ] && rm -rf zlib-${ZLIB_VERSION}
tar -xzf zlib-${ZLIB_VERSION}.tar.gz

##################################################

cd nginx-${NGINX_VERSION}

sed -i "s/<center>nginx<\/center>/<center>${FAKE_NGINX_NAME}<\/center>/g" src/http/ngx_http_special_response.c

make clean

./configure --prefix=/usr/local/nginx-static ${OPTS}
make -j $(( $(grep -c ^processor /proc/cpuinfo) + 1 ))

[ $? -eq 0 ] || { echo "erreur compilation" ; exit 1 ; }

make install

##################################################

service nginx stop
PIDS=$(ps awx |grep " nginx: " |grep -v grep |awk '{print $1}')
[ "${PIDS}" = "" ] || kill ${PIDS}

grep -q "^DAEMON=" /etc/default/nginx || cat<<EOT>>/etc/default/nginx
DAEMON="/usr/local/nginx-static/sbin/nginx"
DAEMON_OPTS="-c /etc/nginx/nginx.conf"
EOT

##################################################

service nginx start

cd ..

 

Ada Lovelace : La 1ère Geek informaticienne !

Il y a quelques temps, pendant une session Hacklab, on m’a parlé de Ada Lovelace (1815-1852) qui est considéré comme la 1ère programmeuse de l’histoire de l’informatique.

Et la coïncidence à fait que j’ai fait mes premiers pas avec le langage Ada (nommé à son honneur) pendant le FOSDEM 2023.
Ainsi, pour en savoir plus, je vous recommande les émissions radios suivantes :
Ada Lovelace, la grande ordinatrice
Ada Lovelace : « Je produirai une poésie mathématique »
Ada Lovelace, la toute première programmeuse
Nouveau monde. Le code informatique est né grâce à Ada Lovelace au… XIXe siècle ! :
Ada Lovelace est à l’origine de la création du 1er programme informatique

FOSDEM 2023

Le FOSDEM est la rencontre Européenne des développeurs de logiciel libre, cette manifestation se déroule tous les ans le 1er week-end de février à l’Université Libre de Bruxelles.
Thierry, Samuel, Daniel, Vivian et Michaël ont pu assister à des conférences plus ou moins techniques. Nous avons eu l’occasion de rencontrer Vincent et Eric du Graoulug
Voici donc quelques photos du FOSDEM 2023