Lurer du på hvordan du skal felle eller øke jevnt fordelt i strikkeprosjektet ditt? Nettsiden min regner det ut for deg!
Hva er prosjektet?
Strikkerne har nok allerede skjønt hva prosjektet dreier seg om fra ingressen, men dere kan kose dere med at jeg (en ikke-strikker) prøver å forklare strikketøy til andre. Og dere kan jo stikke innom selve kalkulatoren først som sist: https://hobbyhygge.com/nb/strikkekalkulator
For dere ikke-strikkere som likevel klikket seg inn på artikkelen (takk for engasjementet!): Jeg prøver mitt beste på å forklare problemstillingen.
Strikking består av et antall masker (løkker av garn) i rekkefølge. Når man strikker en omgang, strikker man alle disse maskene fra én strikkepinne til en annen. Men man kan gjøre litt forskjellig: Man kan f.eks. strikke to masker sammen, da blir to masker til én, så man får en maske mindre i omgangen. Man sier at man feller en maske. Eller man kan lage nye masker, da øker man. Feller man masker blir strikketøyet smalere, og øker man blir det videre. Det kommer godt med når man f.eks. skal strikke en genser som er smalere rundt midjen.
La oss si at man har 100 masker. Typisk kan det stå i strikkeoppskriften at man skal "felle 10 masker jevnt fordelt". Det betyr at man skal strikke 20 masker parvis sammen i løpet av runden. Man kunne tenkt seg at man bare kunne strikket 2 sammen 10 ganger etter hverandre i starten av runden, men da vil sluttproduktet se litt asymmetrisk ut. Etter litt tankevirksomhet kommer man kanskje fram til at man burde strikke 8 masker mellom hver gang man strikker to masker sammen, da får man det jevnt fordelt.
Spørsmålet er: Hvordan regner man ut dette på generelt grunnlag? Hvis man har x
masker og skal felle y
jevnt fordelt, hvor mange masker skal man strikke mellom hver gang man feller av en maske? Det er dette kalkulatoren min svarer på!
Her er et eksempel.
Men er ikke det veldig enkelt å regne ut?
Joda! Det finnes en ganske grei måte å regne det ut på. Det er bare å dele antall masker på antall fellinger. Med eksempelet over blir det 100/10 = 10, så for alle segmenter med 10 masker skal man strikke 2 sammen én gang - så 8 vanlige masker, så 2 sammen. Hvis man har 91 masker og skal felle 8, får man 91/8 ≈ 11.4. Da må man alternere mellom segmenter på 11 og 12 masker per felling - annenhver gang med 11 og 12 gir et godt resultat, siden 11.4 er omtrent midt mellom 11 og 12.
Generelt kan denne fremgangen oppsummeres slik: La oss si du har x
masker og skal felle y
. Da må du felle 1 maske per segment, og segmentene blir:
x % y
segmenter medceil(x/y)
masker, ogy - (x % y)
segmenter medfloor(x/y)
masker.
(Her er %
modulo-operatoren.) De fleste nøyer seg med dette. Men man burde strengt tatt også alternere riktig mellom de to segmentene - ikke ta alle segmentene med x % y
masker først, for eksempel.
Så hvordan kan man fordele dette riktig, og samtidig gi en oppskrift som er enkel å følge? Dette viste seg å være en skikkelig nøtt. Den initielle enkle løsningen kan kodes på noen minutter, men det som ligger ute i prod akkurat nå er er et produkt av sikkert mer enn hundre timer arbeid med å iterere på måter å regne ut og vise oppskriften. Og det er definitivt ikke ferdig, jeg har mange tanker og git branches på hvordan jeg kan forbedre produktet.
Hvorfor lager jeg det?
For noen år siden var jeg på utkikk etter et nytt hobbyprosjekt. Jeg ville gjerne løse et problem. Jeg snakker stadig vekk med kona mi om hva jeg interesserer meg for tiden, og hun visste jeg var på ute etter noe å lage. Hun var medlem av en strikkegruppe på Facebook der det stadig vekk var noen som spurte om hvordan man kunne felle jevnt fordelt. Hva med å løse det?
Jeg tenkte at "dette må jo finnes fra før". Men da jeg googlet det mest nærliggende begrepet jeg kom på, "strikkekalkulator", fikk jeg overraskende dårlige treff. Øverste treff var en lenke til et fysisk produkt, "Prym strikkekalkulator", som jeg ikke aner hva gjør, men det dekket i hvert fall ikke behovet jeg tenkte på. Det fantes noen engelskspråklige varianter av det jeg var ute etter, men UX-en var ikke særlig god.
Dette var perfekt: Her har vi et udekt behov, nemlig en gratis, norsk strikkekalkulator online! Ingen av konkurrentene mine, verken de engelskspråklige eller de norske appene, taklet det jeg så som en interessant utfordring: Hvordan fordele segmentene jevnt også? Og, ikke minst, hvordan formidle dette på en kortfattet måte til sluttbrukere som bare vil "ha svaret"?
Hva er tech-stacken?
Appen er laget i React med NextJS, og den hostes som statiske filer på Domeneshop.
Jeg har vært interessert i analytics for å følge med på bruken av appen, og har tidligere brukt Google Analytics, Plausible, BigQuery og Hotjar. Per nå brukes fremdeles Hotjar til noe, men jeg har også laget en egen feedback-funksjonalitet med Firestore.
Hva har jeg lært?
Dette har vært et skikkelig morsomt prosjekt som jeg har holdt på med over flere år. Noe av grunnen til at jeg har holdt på så lenge, er at det enkle problemet med å "felle jevnt fordelt" endte med å bli overraskende intrikat å løse. Jeg har skrevet mange versjoner av utregningen og visningen, iterert som følge av tilbakemeldinger fra brukerne, og fått vridd hjernen skikkelig. Og det er ofte sånn hverdagen er ute på oppdrag: Det som tilsynelatende er enkelt viser seg intrikat.
Noe annet jeg prøvde meg på var å implementere et eget system for internasjonalisering. Siden finnes på norsk, engelsk og dansk. Og det var overraskende enkelt å få til, uten en eneste avhengighet!
Dette er også det eneste hobbyprosjektet jeg har prøvd å tjene en slant på, så jeg har gått gjennom prosessen for å legge til reklame på siden. Inntjeningen er ikke så stor, men det er nok til å betale driftsutgiftene pluss litt til, og det er jo litt ekstra gøy!
Sist men ikke minst har jeg lært meg litt om søkemotoroptimalisering. Jeg ville jo lage noe som ble brukt, og da må det opp på Google. For tiden troner nettsiden som nr. 1 for søk på "strikkekalkulator", som var søkeordet jeg startet med.
Hvorfor "hobbyhygge.com"? Litt rart navn eller?
Jo! Jeg kjøpte domenet til strikkekalkulatoren, og ville ha et domene som passet til formålet. Men jeg ville gjøre navnet generelt nok til også å favne eventuelle andre hobbyprosjekter som jeg ville legge ut. Og det ligger faktisk et annet lite prosjekt ute: En gasskalkulator for deg som vil sjekke hvor mye gass du har igjen på boksen før teltturen! Du trenger bare en kjøkkenvekt. Den har ikke hatt noe særlig suksess på Google, men jeg ender stadig opp med å bruke den selv.