Eerder founderwerk · geen klantcase

MiTA hield een gebouw in twee richtingen bij, totdat de installatie het product werd.

Een korte meting, een gebouwtype en een plaats werden een schade-inschatting. De vraag die daarna telde was niet of de formule nog een parameter kon gebruiken, maar of iemand het apparaat kon aanzetten zonder dat er een ontwikkelaar naast stond.

Wat deze pagina wel en niet is

MiTA is eerder werk van Sina Esfahani. De eerste backend begint op 7 januari 2022, vóór de oprichting van OmniTechs in maart 2023. De Nederlandse herschrijving telt 219 commits van 23 februari tot 12 juli 2023. Het headless apparaat is van 13 tot 15 juli 2023. De monoliet die lokaal nagelezen is telt 1.379 commits tot 2 juli 2023.

Dit is geen klantcase, geen lopend product en geen bouwkundige keuring. De scorebanden en gewichten zijn wat de code doet. Ze vervangen geen constructeur, en deze pagina beschrijft geen repositories die niet geopend konden worden.

Hoe een meting een label werd

Het schema is een tekening van de code, geen screenshot en geen meting van een echt gebouw. X en Y zijn de twee horizontale richtingen van de plattegrond, niet hoogte.

X / Y
Twee horizontale richtingen. Y is hier niet de hoogte.
475 / 2475
Twee schudniveaus in de code. De lijn is een voorbeeld, geen meting.
De grenzen komen uit get_damage_state. Alleen exact 0 is volledig. Een negatieve score blijft onbepaald.

Labels in de Nederlandse herschrijving

De grenzen komen uit get_damage_state. Alleen exact 0 is volledig. Een negatieve score blijft onbepaald.
ScoreLabel in de code
> 15geen schade
> 10 tot en met 15licht
> 5 tot en met 10matig
> 0 tot en met 5uitgebreid
exact 0volledig
andersonbepaald

Wat er wanneer veranderde

  1. Eerste commit van de Django-backend. De berekening en de administratie groeien daarna in hetzelfde proces.

  2. Versnellingsgegevens voor andere delen van Nederland komen in de monoliet.

  3. De Nederlandse herschrijving begint: aparte apps, en dezelfde dag een Next.js-structuur.

  4. Laatste commit die van de monoliet lokaal gelezen is. 1.379 commits.

  5. Laatste commit van de herschrijving die lokaal gelezen is. 219 commits.

  6. sensor_network: hostnaam mita, SSH aan, en twee dagen vooral installatieherstel.

Het werk dat de software deed

Twee horizontale assen, twee herhalingstijden, één score

Een gebouw kreeg een bouwjaar, een aantal bouwlagen, een gebruiksfunctie en een draagconstructie in twee horizontale richtingen. Een meting kon een apparaatcode, een plaats en een reeks samples meenemen. Per plaats lagen twee versnellingen klaar, a475 en a2475: een vaker verwacht schudniveau en een zeldzamer, zwaarder niveau. In februari 2023 kwamen daar versnellingsgegevens voor andere delen van Nederland bij.

De herschrijving rekent elke as apart, houdt van een aantal deelscores de zwakkere kant, en weegt die daarna als 0,64, 0,10 en 0,26. Een controle weigert een uitkomst waarin het zeldzamere niveau zwaarder weegt dan de totaalscore. Boven 15 heet de uitkomst geen schade, van 10 tot en met 15 licht, van 5 tot en met 10 matig, boven 0 tot en met 5 uitgebreid, en alleen exact 0 volledig. Alles daarbuiten blijft onbepaald. Dat is een grens in het model, geen norm.

Januari 2022 tot juli 2023

De eerste backend werd een bedrijf in één proces

De monoliet is één Django-project met 1.379 commits. Naast de berekening zitten daar gebruikers, betalingen, abonnementen, coupons, supporttickets en vertalingen in. Er staan twee verschillende Analysis-modellen in, een map exception én een map exeptions, en in de compose-file staat de achtergrondwerker uitgeschreven als commentaar. Facade en factory verschenen wel, maar binnen dezelfde stapel.

Die stapel laat zien dat het product een dienst probeerde te worden, niet alleen een rekenblad. Een Iraanse betaalmodule en een PDF-link naar een ander domein horen bij die eerdere commerciële poging. De inloggegevens die in oude deploybestanden staan, horen niet op deze pagina.

23 februari 2023

De herschrijving trok het domein uit elkaar

Mita_The_Netherlands begint op dezelfde dag met een Django-structuur en een Next.js-structuur. Land, gebouw, gebouwklasse, meting, analyse, notificatie en betaling worden eigen apps. De analyse loopt via een interface, een service en een achtergrondtaak, en een mislukte berekening wordt als fout op de meting gezet in plaats van stil te verdwijnen. De resultatenroute in de frontend is opgedeeld in grafiek, samenvatting en kwetsbaarheid.

De instellingen noemen app.clever-safety.ir. Een oudere beheerhelper wijst een PDF naar app.clever-safety.com. Deze case behandelt geen van beide adressen als een product dat je nu kunt openen. De herschrijving is een modulaire monoliet met een expliciete grens tussen apps. Dat is het structuurwerk dat nagelezen kon worden.

Wat niet is geopend

Mobiel, microservices en de website blijven dicht

De founder beschrijft een mobiele fase na de backend, daarna een periode waarin de code in de knoop raakte, en later een microservice-poging. De repositories Mita_mobile, MiTA_mobile_new, MiTA_microservice en MiTA-website waren voor deze tekst niet te openen. Hun interne ontwerp wordt hier dus niet beschreven.

Wat wél open ging is de Next.js-resultatenapplicatie in de Nederlandse boom, niet een native app met schermen die ik zou kunnen nabouwen. Een map .expo in de monoliet is geen bewijs van een verzendbare app. De les die wel overeind blijft: een nieuwe servicelaag installeert nog geen meting in een gebouw.

13 tot 15 juli 2023

Het apparaat was vooral een installatie die moest lukken

sensor_network is een veel kleiner Django-project. Het bewaart bouwjaar, constructietype op X en op Y, en gebruiksfunctie. Gunicorn staat achter nginx. Het eerste opstartscript zet de hostnaam op mita en zet SSH aan. De commitgeschiedenis van die twee dagen is bijna helemaal installatieherstel: virtualenv, rechten, nginx, statische bestanden.

raspberry_headless is een korte openbare imaging-gids: Raspberry Pi Imager, Lite, een ssh-bestand, wifi. mita_automation is iets anders. Die openbare repository bereidt een serverschijf voor, met swap en /var, en verwacht een GitHub-token in de omgeving. Eén commando verborg dus nog steeds schijven, rechten en een geheim. Het Pi-image en het server-script zijn twee verschillende pogingen om installatie minder persoonlijk te maken.

Voor een opdrachtgever

Dit bewijst oordeel, geen pakket

Wie een meting, een proces of een apparaat heeft dat iemand zonder ontwikkelaar moet kunnen starten, herkent de volgorde. Eerst het domein klein genoeg maken om te rekenen. Dan de stapel uit elkaar trekken als betalingen, tickets en de berekening elkaar in de weg zitten. Dan pas de installatie tot het product maken, en de commitlog geloven als die vooral uit rechten en nginx bestaat.

MiTA is niet te bestellen. Een vergelijkbare opdracht begint bij het werk dat moet blijven kloppen als de formule, de app of de behuizing verandert. Maatwerksoftware is de route waarop OmniTechs dat nu onderzoekt. Een informatiescherm op een Raspberry Pi is een ander product en blijft op zijn eigen Lab-pagina.

Herken je de installatie, niet alleen de formule?

Beschrijf wie het systeem moet starten, wat er gemeten of overgedragen wordt, en waar het nu blijft liggen bij een ontwikkelaar. Dan kijken we of een kleinere eerste slice verantwoord is.