Måndag 14 Feb 2022
2022-02-14 17:04:08

Lade till träningsmål / utmaningar

Dom senaste åren har jag deltagit i endel Strava utmaningar, fungerar hyfsat okej för motivationen så jag implementerade liknande här på denna hemsidan: Cyckling & Rodd Har bara lagt till års-mål/utmaningar hittills, 4'500km för cykling i år, satte ett mål på 3'500km förra året & råkade cykla runt 4'300km, så jag lade bara till lite extra, lade även till 25'000m som mål för höjdmeter, förra året blev det ca 18'000 höjdmeter, cyklade ganska platt förra året så med några extra back-träningar i år så bör det målet inte vara några problem Sen när det gäller rodd, säger alltid att jag borde ro mer men av någon anledning blir det aldrig av, jättenyttigt för ryggen så jag borde göra det oftare men inomhusmotion är inte supermotiverande, har bara haft ca 400'000m rodd totalt sedan 2014, riktigt dåligt. Men iaf, satte ett mål på 100'000 meter för rodd i år, det borde ju inte vara några problem, når jag inte upp till det målet i år så ja, då är det fan bedrövligt... Får se vilka andra utmaningar jag lägger till, Strava har ju många olika att välja på så kanske härmar några av dom, tex: "February Cycling Climbing Challenge" (7'500m) "February Cycling Challenge" (400km/1'250km) "February Gran Fondo" (1 runda på över 100km) ...300 minuters aktivitet mellan datum X & Y, Cykla 1 gång om dagen mellan datum X & Y osv osv, om jag implementerar "segment" så kan jag ju kanske lägga till utmaningar som tex: "Sätt 4:a personbästa i April" & liknande men jag har inte orkat påbörja utvecklingen av segment än, det är ju ett ganska stort projekt, troligen ganska roligt att fippla lite med geodata osv, förhoppningsvis har jag gjort klart det lagom till jag börjar cykla regelbundet senare i vår Finns ju många utmaningar att hitta på för att motivera sig, skall nog inte lägga till för många för det märkte jag förra året att det kan bli tvärt om, text när jag skulle cykla 800km en månad så när jag "bara" hade kört 600km & bara hade 3 dagar på mig så cyklade jag nästan ihjäl mig & stressade som fasen trots att kroppen sa ifrån, vilket inte är så bra, kan ju få motsatt effekt av att träna för mycket så man kör slut sig; tappar ju suget rätt lätt då Så ja, sålänge man blir motiverad är det ju bra men jag kommer ta dom bara som "förslag" & det är okej att "misslyckas" lite då & då, inget att hetsa upp sig över
Söndag 29 Nov 2020
2020-11-29 17:08:59

Dags att hoppa på ML trenden

Marknadsföring förstör mycket för mig, alla minns väl när "molnet" blev ny trend-ordet som spammades sönder i all marknadsföring från ALLA IT företag trots att ingen av deras infrastruktur förändrades, samma med AI & ML för massa år sedan, såfort marknadsförings-avdelningen fick nys om dom nya trend-orden så spottade dom ur sig det all marknadsföring trots att inget i deras företag förändrades, vissa gjorde precis som den där "AI/ML if statements memen" & påstod sig erbjuda tjänster som byggde på ML & AI trots att inget i deras stack hade någon som helst med AI/ML att göra När det sker & man matas med vilseledande marknadsföring så tappar jag alltid intresset av den äkta varan, tyvärr, för AI/ML är ju faktiskt något roligt att jobba/experimentera med & senaste åren har det ju tagit rejält med fart inom detta segmentet & numera är det ju något som i många fall är väldigt användbart, så det är dags att ta sig en titt på det, kommer inte djupdyka i det då många implementationer som jag faktiskt vill använda "kräver" en GPU vilket jag inte har, eller kräver gör det ju inte men vill man inte vänta 384893473983 miljarder år på resultat så... Så, det är en hel djungel av AI/ML verktyg där ute men dom senaste åren har jag tittat mest på YOLO, verkar vara det som är mest intressant för mig så tänkte börja lära mig det genom att implementera det på denna hemsidan, tänkte i början använda det för att auto-tagga bilder som också kan användas till att söka efter bilder osv, får se vad mer det blir i framtiden Så som sagt har jag ju tyvärr inte tillgång till en GPU med CUDA så tyvärr får jag köra YOLO med CPU vilket inte är helt optimalt, speciellt när webbserverns CPU inte ens har AVX så jag har ingen hårdvaru-accelerering av YOLO så tyvärr kan jag inte träna nätet på mina egna bilder då varje iteration med min CPU tar mellan 10-20 sekunder & med tio-tusentals iterationer om jag vill ha ett dussin egna klasser så skulle detta ta en evighet, skulle gå åt 100% CPU i flera veckor på min slöa webbserver så istället valde jag att använda färdiga vikter & efter att testat YOLOv4(light), Open Images, YOLO9000 osv osv så valde jag tillslut YOLO9000, alla har sina styrkor & svagheter men YOLO9000 blev den bästa kompromissen för dom bilderna jag för tillfället har laddat upp. I en perfekt värld; om jag haft en GPU så hade jag använt både YOLOv4 & YOLO9000, men nuvarande lösning får duga sålänge Får ju ganska vettigt resultat, ibland hittar den lite fel objekt i bilderna: Men på dom flesta av mina bilder blir det ett väldigt exakt resultat, om än ibland lite väl lågt förtroende: Så, YOLO9000 är väldigt säker på att bilden innehåller en cykel, den klassar också cykeln som en mountainbike, om än med bara 55% säkerhet, den har rätt men ja, den är inte så säker på att den gissat korrekt Spenderade väldigt mycket tid med att experimentera med width/height också vid detection för med rekommenderade 608/608 tar ungefär 10-15s per bild för igenkänning & för tillfället har jag ju över 2'000 bilder så det kommer ju ta en stund att auto-tagga alla bilder, minst 5-6 timmar jämfört med 10-20s om jag hade haft en hyfsad vettig GPU, extremt stor skillnad mellan CPU & GPU, 0.1 fps jämfört med 100-300 fps, men iaf, så 608 ger ju bäst precision så tillslut fick jag välja det, testa många multipler av 32, ända ner till 320/320 vilket gjorde att igenkänningen tog så lite som 1-2s per bild men precisionen blev lite väl lidande Det dumma är att på vissa bilder, speciellt på syrrans Grand Danois så var 512/512 bättre, det var mycket oftare som den kände igen korrekt ras MEN med 512/512 på syrrans Old English Sheepdog så blev resultatet absurt, blev helt fel ras, ibland helt fel djur också; oftast ett får ;) Det är ändå imponerande hur exakt ML har blivit, bästa vore ju att träna med YOLO på mina egna bilder men att använda färdiga vikter duger gott för tillfället, tex, när man tänker på det så är det ju ganska otroligt att det går att få detta resultatet: Så, ja, det är en kompromiss, vilket "nät"/vikter man skall använda & vilken storlek på detekteringen, som sagt, bästa hade ju varit om jag tränade mitt egna men tyvärr, får vänta tills jag skaffat en vettig GPU Har bara kört igenom några av mina befintliga bilder, det tar ju som sagt 5-6 timmar att köra igenom hela mitt bibliotek så jag tar en bild lite då & då istället, alla nya bilder kommer gå igenom YOLO direkt när jag laddar upp bilden så alla framtida bilder kommer åtminstone auto-taggas Kollar man på bilderna i singelvy så dom bilderna som processats av YOLO har en liten ML ikon längst uppe till höger, går klicka på ikonen också för att se vilka objekt som YOLO hittat, det skapas också taggar efter dom taggarna som jag vanligtvis lägger in, dom taggarna som är genererade med YOLO har ett "!" framför taggen
Fredag 31 Jan 2020
2020-01-31 19:01:34

Ännu mera statistik

Detta börjar bli lite överdrivet, vad ska man med all statistik till? Troligen ingenting men ändå är det lite intressant att se ens träningsstatistik, jag hade ju redan lite statistik på #cykling (distans per cykel & totaldistans) men tydligen ville jag ha mer så jag fixade en dedikerad sida för cykling Har inte lagt in så mycket än, skall fixa in mycket mer så man får en överblick likt Stravas profilsida med genomsnittlig distans per vecka, tid per vecka + massa annat men detta får räcka sålänge: har lagt in så jag kan se dom 3 längsta turerna, dom 3 "högsta" turerna, fixade in ett stapeldiagram också där jag kan filtrera träningen efter vecka osv, skall utöka det också så man kan filtrera per år, per månad, per cykel, per allt... Sedan GPX Parser inlägget har jag fortsatt laddat upp min backlog av cykelturer men det tar ju en evighet men har åtminstone kommit fram till mitten av 2019 nu så det är ju inte SÅ långt kvar till dagens datum, får försöka få tummen ur & fixa det en kväll så statistiken blir komplett 👍
Fredag 16 Aug 2013
2013-08-16 14:04:23

Projektlogg för en bildhost-sida

Ok, så för att dämpa rastlösheten lite så började jag slänga ihop något som jag alltid viljat knåpa ihop men som inte har blivit av, en bildhosting sida. Skapade en tråd på Sweclockers för att se om det fanns något intresse för typ en projektlogg, ungefär så som Sweclockers har för byggloggar för datorer. Tanken var mest att öka mina chanser på att göra klart hela projektet, brukar ju alltid bli att jag gör 80-90% av ett projekt men sen tappar jag lusten och börjar på något annat, men med en projektlogg, när man har ögonen på sig så är det ju lite mer motivation att få skiten gjord. Iaf, började på den ändå och har kommit ganska långt, det blev ju ingen projektlogg så ja, jag sammanfattar väl lite av projektet, steg för steg, inte mycket att se egentligen men skit samma. Designen påminner väldigt mycket om mitt CMS också, speciellt galleridelen i CMS:et för att hitta bilder i bildgalleriet för att lägga till i inläggen. Aja, iaf, första steget är ju att slänga ihop någon form av användarstystem, slängde ihop ett sådant för något år sedan som inkluderar registrering/login, användarkonton med tillhörande information osv osv, så tog inte många minuter att bara slänga in det (hade jag gjort en riktig projektlogg hade jag ju gjort allt från grunden men blev några genvägar nu när det inte blev någon projektlogg) och sen styra upp grundläggande layouten med HTML/CSS, med användarsystemet blir ju första steget inte direkt så mycket visuellt, det mesta är ju bakom kulisserna :P Användarsystemet inkluderar även en inställningsdel, även här är det ju väldigt sparsmakat när man precis har lagt in det och inte börjat med dom sidospecifika inställningarna Då var det dags för att börja på själva bildupplanningsskiten, inte så mycket visuellt här heller men extremt mycket bakom kulisserna, just bildbehandling/bearbetning är det jag hatar mest inom webbutveckling så det blir mest att man skriver en rad kod, sen lugnar man ner sig i något spel, sen kodar man en rad till osv osv så håller man på så tills det är klart, måste fixa någon vettig class känner jag så jag slipper göra om skiten hela tiden. Petade in drag-and-drop upload också, det går att dra bilder till vilken sida som helst på hemsidan och så laddas bilderna upp, just jQuery delen av drag-and-drop funktionen är det inte jag som har kodat ihop, hittade någon på nätet för ett antal år sedan som har fungerat rätt bra, men det är en del som jag kommer att göra en egen version någongång i framtiden, den jag använder nu har lite brister, ganska tung också och svår att skicka med $_POST och $_GET värden om man nu vill det. Men japp, det är ett framtida projekt Bildgalleriet, inget märkvärdigt direkt, bara lista bilderna som användaren har laddat upp, trycker man på bilden så laddas den in direkt, så slipper man hållla på och hoppa fram och tillbaka i webbläsaren. Albumssidan, inget konstigt där heller, just vid detta tillfället så var det bara frontend som var gjort, allt backend gjordes senare, var faktiskt ganska drygt, men mer om det senare. Inget konstigt på bilden egentligen, bara att klicka på "Skapa album" så får man fram en liten ruta att döpa sitt album till något. Efter att man har skapat sitt första album så ändras sidan lite, knappen för att skapa nytt album är längst upp till höger på albumsidan, tror inte folk missar den, var ju i mitten första gången man skapade sitt första album men ja, den lyser ju grönt så det bör ingen missa. Bilden visar 4 album och 2 olika typer av album, eller ja, det är egentligen 1 typ av album men 2 olika backend funktioner, ett album har en stor bild på 210x210px, den bilden skapas när en användare lägger till en bild i albumet för första gången, den stora bilden är kvar där tills användaren laddar upp sin 10:e bild, då tar en annan funktion vid och hämtar 9 bilder från albumet, bygger ihop bildlänkarna till en kommaseparerad sträng i Album tabellen och pekar mot 9st 70x70 bilder istället. Lite småbökigt att fixa, eller ja, tar ju inte lång tid men lite småbuggar är ju förväntade :P Såhär ser det ut i ett album, precis som i själva fotogalleriet osv, albumen är ju bara ett sätt att sortera in bilderna Hur lägger man till bilder i galleriet då? Jo, ganska simpelt, man bara går in i ett av sina album, trycker på "Lägg till bilder" och så får man fram alla sina bilder man laddat upp och dessutom en liten sökruta så man kan söka efter sina bilder, sökningen är givetvis instant search så såfort man trycker på en tangent så sorterar dom fram bilderna som passar in på sökningen, sen klickar man bara på valfri bild och så läggs den till i albumet, själva sökrutan är lite väl anonym kanske, finns ingen text som säger att det är en sökruta men aja, skit samma :P Och så bildvyn då, bara att klicka på valfri bild så ploppar den fram i full storlek Har endel kvar att göra, men det är ganska små saker så det fixas nog snart :P Bildvyn: Den visar bara bilden nu, skall givetvis lägga till så man får fram bbCode och andra delningsmöjligheter och information om bilden, dessutom vilka storlekar bilden finns i, i framtiden kanske även så man kan spara en egen bildstorlek. Taggar: Det finns inga taggar än men det skall jag lägga till, kommer nog sno funktionen som jag gjorde för mitt CMS, den fungerar helt ok nu, så blir taggar för bilder åtminstonde, kanske album med, får se Sökning: Just nu kan man bara söka efter bilder när man vill lägga till dom i sitt album, men skall givetvis gå att bara göra en helt vanlig sökning sen med Ändra namn: Japp, detta gäller både bilder och album Diverse grejer: Kunna ta bort bilder/album och ta bort bilder från album, anledningen till att jag inte lagt till det än är för att det är lite drygt, ganska mycket som måste hända när man tar bort en bild, tex, ta bort bilden (duh), ta bort databasraden för bildens album tillhörighet, ta bort all metadata om bilden (storlek, taggar, dimensioner, osv), minska användarens bildcount med -1, ändra användarens använt utrymme (jag sparar för tillfället hur många MB utrymme en användare har använt, jag räknar dock bara orginalbildens storlek, alla andra storlekar som görs får användaren "på köpet"), albumen som bilden var inlaggd i måste också minska sin AlbumPhotoCount-1. Så japp, lite småpyssel, inget svårt men ja; det är inget jag ser fram emot att göra :P Detta projektet var ju mest för skojs skull, kommer inte göra en riktig tjänst av det då det finns alldeles för mycket bildhosting-sidor, men ja, som sagt, något för att dämpa rastlösheten och något som jag länge velat göra, sidan är uppe och fungerar precis som bilderna visar, men jao, vetifan, tänkte släppa in lite alfa-testare snart för skojs skull, är ju vissa designelement som jag tänkt använda på en annan kommersiell sida så vore kul med input från några och se om det fungerar.
Söndag 11 Aug 2013
2013-08-11 12:40:34

Nya admindelen i mitt CMS

Det var ju inte överdrivet längesen jag byggde ihop det första adminsystemet för min nya sida efter det att jag gick ifrån WordPress, men det systemet kändes som ett riktigt hastverk, det var så oerhört grötigt och massa annan skit i det, mest under ytan, men det slängdes ju bara ihop för att kunna posta lite inlägg och ladda upp lite bilder, inte mer än så. Men nu när jag har migrerat sidan från WordPress, med alla inlägg och bilder så tänkte jag att det var dags att göra ett riktigt adminsystem, eller CMS, eller whatever. Det gamla såg ut såhär: (och baserades på Squarespace design, eller ja, snudd på stulen :S) Och nya ser ut såhär: Skall försöka ta det bästa från dom existerande CMS:en och lite eget lullull. Lagt in stöd för taggning av inläggen, den funktionen är krångligare än vad man tror, kanske skall göra ett separat inlägg för det så jag kommer ihåg det till nästa gång, för visst, att bara lägga in taggar i databasen är ju inga problem, men att matcha redan existerande OCH hålla koll så inga dubletter läggs till för versaler/gemener i olika blandningar men samma "slug", dessutom databasen tycker det är en jättebra idé att Apple och Äpple är samma ord, fastän det inte är det, så det måste man kolla upp och hålla på och krångla med så databasen inte gör något dumt osv. Har även lagt till ett smidigare bildgalleri, med instant search så det är enkelt att hitta bilder som man lagt till i inlägget, eller hitta andra bilder från det globala bildbiblioteket om man nu vill lägga in samma bild i flera inlägg osv. Detta är ju givetvis inte klart på långa vägar men det är en liten början iaf :P
Tisdag 6 Nov 2012
2012-11-06 14:47:55

Kodar lite på ett Community

Japp, blev lite kodningssugen häromdagen så började koda på ett forum från scratch, första gången jag kodar på ett forum helt från scratch, tog inte så lång tid som jag först trodde att det skulle göra. Är dock lite kvar på forumet, eller ja, den mest dryga funktionen att koda på: en läst/olästa trådar funktion, alltså det är ju inte överdrivet svårt att koda själva funktionen men det är en sjukt tung funktion för databasen, det går att göra en funktion som sparar allt i $_SESSION eller i $_COOKIE men jag vill att funktionen skall fungera oavsett vilken dator personen loggar in på. Finns 100 olika sätt att göra det på också, just nu har jag valt en ganska basic version, den är inte så jätteresurskrävande för servrarna och hyffsat stabil. En sådanhär funktion kommer alltid använda en jäkla massa rader i databasen, speciellt om det är massa användare, jag kommer att använda en MEMORY databas då datan som lagras är extremt tillfällig och inte speciellt mycket data per rad. När någon besöker en tråd så skapas det en rad i databasen som sparar “user_id” och “thread_id” värdena, sen när man besöker ett forum så hämtas alla rader i databasen som stämmer överens med användarens “user_id” och slänger in dessa i en array, för att sen visa om en tråd är oläst eller inte så är det bara att använda i PHP:s in_array() funktion. När någon sen postar i en tråd så tas alla rader i databasen bort som innehåller det “thread_id” som användaren postade sitt inlägg i. Då blir tråden oläst igen för alla. Ett alternativ är ju att slänga in alla besökare i en egen kolumn i trådens rad, när någon då besöker tråden så lägger man till vilka “user_id” som har besökt tråden, efter några besök ser kolumnen ut ungefär såhär: “3,5,7,33,7733,5454,835,345,44″, då är det ju bara att göra en explode på den kolumnen, matchar då något av värdena användarens “user_id” så markeras tråden som läst. Problemet med detta är att det kan bli väldigt många som besöker en tråd och då kanske inte alla “user_id” får plats i kolumnen, så för att kompensera för detta får man kanske använda en LONGTEXT eller något annan storage i MySQL som kan rymma väldigt många tecken. Att göra en “Markera alla forumtrådar som lästa”-funktion är väldigt enkelt, när någon trycker på den knappen så läggs datumet in i en kolumn, så trådar vars senaste inlägg är äldre än denna tidpunkten kommer att markeras som lästa. Gjorde en enkel liten chatt också, går ju att expandera denna i framtiden också, kanske med en privatchatt del osv. Har även börjat lite på användarprofilerna. Skall göra Community koden så heltäckande som möjligt men ändå så “ren” som möjligt utan en massa lullull, detta för att man skall kunna återanvända koden för en rad olika Communities som man kanske kan lansera i framtiden, så är det ju bara att lägga ett par dagar på att customizera koden för just den sidan.
Söndag 26 Feb 2012
2012-02-26 09:00:57

Har gjort om hemsidan ännu en gång :P

Japp, hade inget att göra så jag gjorde om hemsidan lite, änsålänge är det bara utseendet som skiljer men skall fixa till lite saker under skalet med och lägga till lite fler funktioner, men får bli lite senare, ganska drygt att rota bland gammal kod. Den gamla koden skrev jag dessutom när jag inte orkade döpa funktioner till relevanta namn så det är som sagt inte roligt att rota i, kanske skall ta bort allt gammalt istället och ersätta med helt nytt, aja, en sak i taget :P