Odd Stråbø ==========  Odd har drevet med programmering siden 2007, og har siden 2009 hatt Python som hovedspråk, men har også vert innom mange andre programmeringsspråk opp igjenom årene. Han har lang erfaring med versjonkontrollsystemer som Git og Mercurial, og har også erfaring med å flytte kodehistorie over fra ett versjonkontrollsystem til ett annet. Han har en forkjerlighet for åpen kildekode, og bruker gjerne fritiden på å bidra til diverse prosjekter han er en bruker av. Han er også glad i blant annet elektronikk, radio og planter, og kombinerer gjerne disse prosjektene slik som for eksempel IoT sensorer som gir flotte temperaturgrafer fra drivhuset. Linker ------ - GitHub: <https://github.com/oddstr13> - LinkedIn: <https://www.linkedin.com/in/odd-str%C3%A5b%C3%B8/> - Instagram: <https://www.instagram.com/oddstrabo/> Språk ----- - Norsk: Morsmål - Engelsk: Flytende JPRM ---- **Beskrivelse**: Verktøy for kompilering av C# plugins, og vedlikehold av pakkebibliotek (plugin repository) for Jellyfin. **Mine bidrag**: Ide, design, implementasjon, vedlikehold, CI og publisering. **URL**: <https://github.com/oddstr13/jellyfin-plugin-repository-manager> **Status**: Aktiv (fullt ansvar) **Kompetanser**: Python, CLI, Git, GitHub, GitHub Actions (CI/CD), YAML, JSON, XML, C#, .NET, Zip, checksum, RegEx, PyTest, Click (Python), PyPI **Tidsrom**: 2020-07 til nå Utvikling og vedlikehold av komandolinjeverktøy for kompilering, og publisering av Jellyfin plugins. Opprinnelsen til dette verktøyet kommer fra behovet for å pålitelig kunne vedlikeholde pakkebiblioteket til Jellyfin-prosjektet. Han har stått for design og utvikling og vedlikehold av prosjektet, som inkluderer blant annet deler av pakke-metadata formatet, og hvordan dette blir lagret i pakkene, kommandolinjegrensesnittet, og all koden som skal til for å ta kildekoden av et plugin, gjøre det om til binærfiler klare for dirstibusjon (ved hjelp av kommandolinjeverktøyet dotnet) og selve publiseringen av pakker til biblioteket slik at Jellyfin kan finne og oppdatere pakkene. Jellyfin Cover Art Archive Plugin --------------------------------- **Beskrivelse**: Ett Jellyfin plugin for å hente metadata (CD-cover bilder) fra Cover Art Archive. **Mine bidrag**: Innledende implementasjon og oppsett av CI/CD, samt noe pågående vedlikehold. **URL**: <https://github.com/jellyfin/jellyfin-plugin-coverartarchive> **Status**: Aktiv (delt ansvar) **Kompetanser**: C#, .NET, dotnet, Git, GitHub, GitHub Actions (CI/CD), API, REST, YAML **Tidsrom**: 2020 til nå Utvikling av nytt plugin for henting av album-bilder fra Cover Art Archive. Oppsett av GitHub Actions CI for å enkelt kunne publisere nye versjoner. Jellyfin for Kodi ----------------- **Beskrivelse**: Jellyfin addon for Kodi mediasenter **Mine bidrag**: Opprydding og rebranding etter fork, optimalisering, vedlikehold, feilsøking, publisering **URL**: <https://github.com/jellyfin/jellyfin-kodi> **Status**: Aktiv (project lead) **Kompetanser**: Python, SQLite, PyTest, Kodi, API, REST, JSON, Git, GitHub, GitHub Actions (CI/CD), Devcontainers, Azure CI/CD **Tidsrom**: 2019 til nå Hans arbeidsoppgaver på dette prosjektet har inkludert blant annet modernisering av kodebasen, optimalisering, vedlikehold, feilsøking og feilretting. Han har hovedansvar for publisering av nye versjoner, samt review av pull-requests og issue-triage. Mye av arbeidet har gått ut på å modernisere kodebasen for å gjøre den lettere å vedlikeholde, samt å sette opp CI/CD for å lette arbeidet med å publisere nye versjoner. Solar panel monitoring ---------------------- **Beskrivelse**: Dette prosjektet går ut på å koble en generisk MPPT solcellekontroller til ett standardisert hjemmeautomasjons system. **Mine bidrag**: Idé, reverse engineering, feilsøking og programmering **URL**: <https://git.service.openshell.network/oddstr13/srne-mqtt> **Status**: Aktiv **Kompetanser**: Python, MQTT, logic analyzer, Git, PyTest, struct, JSON, Python typing, Serial (RS-232), RRD, Bluetooth, BLE, Home Assistant, Java, De-compile, reverse-engineering, elektronikk **Tidsrom**: 2021 til nå Dette prosjektet har hovedsaklig bestått i å finne ut av hvordan ett udokumentert grensesnitt fungerer, og hvordan trekke ut den interesange informasjonen fra enheten. Solcelleladeren hadde en blåtannmodul tilgjengelig som ekstra tilbehør, og med denne hørte det til en android app. Protokollen er blitt delvis dokumentert ved hjelp av opptak av blåtannkommunikasjon og logikkanalysator, samt tolking av den sterkt obfuskerte dekompilerte java app-koden. Ett Python bibliotek for å kommunisere med blåtannmodulen ble først utviklet, men siden ble denne modulen byttet ut med en direkte serielltilkobling for økt stabilitet. Data blir sendt til via MQTT til Home Assistant som gir tilgang til ett raskt overblikk i en android app samt styring av utstrøm, men også sendt vidre til Prometheus og InfluxDB for bruk til grafer i Grafana. Personlig nettside ------------------ **Beskrivelse**: Personlig blog og fotogalleri **URL**: <https://github.com/oddstr13-openshell-no/django-website> **Status**: Aktiv (Personlig nettside, fullt ansvar), maintainance backburner **Kompetanser**: Python, Django, PostgreSQL, SQLite, Docker, nginx, HTML5, CSS3, gunicorn, Linux, SSL, Git, GitHub, supervisord, JavaScript **Roller**: Systemutvilker / Devops / Backend / Frontend / Web admin **Tidsrom**: 2014 til nå Dette prosjektet består i en personlig nettside som er utviklet fra bunnen av ved hjelp av rammeverket Django. Store deler av koden består av Python, resten er stort sett Jinja templating, HTML 5 og ren CSS 3, med noe JavaScript for helt enkle funksjoner. I utgangspunktet var PostgreSQL brukt som database, men denne ble byttet ut med SQLite, da nettsiden ser veldig lett trafikk, og det er lettere å flytte en filbasert database enn en serverbasert løsning. Nettsiden består av en enkel blog, et galleri og en "pastebin" for deling av mindre kodesnippets. Hele prosjektet, inklusive programmering og server oppsett er ett enmannsprosjekt. Alt fra å installere operativsystemet på serveren til å konfigurere serverprogrammvaren med SSL sertifikat. Topptrim Oppdal --------------- **Beskrivelse**: Hjemmeside for frivillig organisasjon. **Mine bidrag**: Hele prosessen med design og programmering av frontend og backend, inklusive overføring av data fra den gamle nettsiden, etter bestilling fra kunde. Pågående drift, og publisering av nytt innhold. **URL**: <https://topptrimoppdal.no/> **Status**: Aktiv (fullt ansvar) **Kompetanser**: PHP, MySQL, HTML5, CSS3, JavaScript, Leaflet (maps), Git, SFTP, Click (Python), SQLAlchemy, CSV, JSON **Roller**: Systemutvilker / Devops / Backend / Frontend / Web admin **Tidsrom**: 2012 til nå Utviklet ny nettside for publisering av nye turmål ved nyttår, og overført data fra gammelt system. Oppdatering av nettsiden når endringer i underliggende teknologier gjør dette nødvending. Vedlikehold av nettsiden, oppdatering og publisering av ny informasjon. Utvikling av komandolinjeverktøy for å gjøre det lettere å normalisere data og publisere informasjon til databasen. Njord ----- **Beskrivelse**: IRC-bot skrevet i Python **Status**: Inaktiv **Kompetanser**: Python, IRC, Text parsing, Linux, Chatbot, hot-reloading, SVN, Mercurial, Pluginarkitektur, OOP, socket, XML, API, RegEx, JSON, REST, Unicode, UTF-8 **Roller**: Systemutvikler / Devops / Backend **Tidsrom**: 2009 til 2015 Utvikling av IRC chat bot med plugin system. Plugin kan hot-reloades. MinecartMeter ------------- **Beskrivelse**: Spillutvidelse **URL**: <https://github.com/oddstr13/MinecartMeter> **Status**: Inaktiv **Kompetanser**: Java, Maven, Git, GitHub, GitHub Actions (CI/CD) **Roller**: Systemutvikler **Tidsrom**: 2011, 2021 Utvikling av Bukkit plugin for Minecraft i Java. nRF52840 802.15.4 ----------------- **Beskrivelse**: Proof of concept for 802.15.4 kommunikasjon med nRF52840 devkit **URL**: <https://github.com/oddstr13/dk-rtic-smoltcp-6lowpan> **Status**: Inaktiv **Kompetanser**: Rust, Embedded, Git, GitHub, IEEE 802.15.4, RF, Radio, IoT, JTAG/SWD, nrf-hal, nRF52840, ARM Cortex-M4 **Roller**: Systemutvikler **Tidsrom**: 2021 Programmering av mikrokontroller. 2.4GHz trådløs IoT komunikasjon. Fiksing av bugs upstream. Arduino UKHASnet node --------------------- **Beskrivelse**: UKHASnet IoT sensor node **URL**: <https://github.com/OpenShell-no/openshell-ukhasnet-arduino> **Status**: Backburner **Kompetanser**: Arduino, C++, C, Makefile, Embedded, Radio, Git, GitHub, Mercurial, BitBucket, Jenkins, AVR, SPI, ESP8266, RFM69, Radio, GFSK, OneWire, Serial, GPS, IoT, Jenkins (CI/CD), KiCad EDA, Schematics, Soldering, Python, Multicast, NodeRED, JavaScript, Node.js, Home Assistant, MQTT **Roller**: Systemutvikler, Electronics engineer **Tidsrom**: 2015 til nå Valg av komponenter, PCB design, lodding, testing, feilsøking og programmering. Design av kretskort med KiCad. Sammenligning og valg av komponenter. Lese datablad for å forstå hvordan mikrokontrollere og sensorer fungerer internt. Programmering av mikrokontrollere og backend for å ta i mot data. Oppsett og konfigurering av InfluxDB og Grafana for å visualisere data i grafer. Bruk av Muticast, NodeRED og MQTT for å levere sensordata til Home Assistant lokalt, uten internett.