Äntligen får jag rita och modellera med kod

Nu läser jag en kurs som jag alltså har längtat efter sedan årskurs ett! Då fick jag se att man kunde programmera för att dynamiskt bygga upp t ex 3D-modeller och textur istället för att göra allt för hand. Som att kunna dra i en slider för att justera antalet träd i ett landskap och att de då placeras ut i olika storlekar på positioner som ser naturligt ut. I slutet av kursen ska vi göra individuella projekt med väldigt fria tyglar, så jag klurar på idéer! Hittills har vi haft en första labb som gick ut på att skriva en procedurell shader vilket var superkul när polletten föll ner. Det som först kändes klurigt var att denna shaderfunktion bara tar emot pixelns position, men att det ändå skulle kunna bli ett sammanhängande mönster.. Här intill är några mina favoritresultat. Hörs!

Resultat av programmeringslabb med användning av Perlin noise. Varje pixel får sin färg av samma funktion!

Veckans kluring: Bästa sätt att driftsätta app och hemsida?

Den här veckan har jag och Ronja klurat mycket på hur vi ska driftsätta vår uppgradering av Campuskost. Den nuvarande hemsidan ligger uppe som en WordPress-installation på webbhotellet Binero och att det blev så var mest för att min mamma hade det webbhotellet när vi körde igång. Som jag minns det visste jag nog inte heller vilka andra alternativ till traditionella webbhotell det fanns och definitivt inte hur saker hängde ihop. Ett tag visste jag inte ens vad jag skulle googla på eller hur jag skulle formulera mina frågor till andra. Det var nog något i stil med ”How to deploy..” som jag letade efter. Jag önskar att jag hade kunnat säga att men nu är det glasklart men oh jag har fortfarande en hel del kvar att lära om den biten. Jag blir fortfarande extra imponerad när någon fått upp sin app för nerladdning eller sin hemsida up and running med databaser och allt, det blir väl så när något känns svårt och lite mystiskt. Som jag nämnde i förra inlägget så testade vi att driftsätta vår applikation i Microsoft Azure som verkar vara en typiskt bra grej att kunna. Att skapa en webbsida med statisk html tog bara några minuter men när vi ville ladda upp applikation som vi bygger med node.js blev det lite krångligare. Med node.js har vi nämligen möjlighet att använda moduler med kod från exempelvis npm (node package manager) och då behöver vi kunna konfigurera detta för att kunna köras när vi laddat upp till någon annans server. Två sätt att lösa det på som jag förstått det är att bygga ihop filerna via kommandotolken innan vi laddar upp filerna, eller att vi konfigurerar servern att köra rätt kommandon automatiskt åt oss när vi skickar upp ny kod. Det andra sättet är smidigare när det väl fungerar men samtidigt klurigt då felmeddelanden inte alltid är lika lättåtkomliga på målserven jämfört med när vi jobbar mot localhost på våra datorer. Hur som helst, när vi väl fick det att fungera på Azure kollade vi närmre på vad det skulle kosta oss efter det att provperioden är över – och då strök vi det alternativet haha. Lite kunskap rikare iallafall. Nu är vi mer inne på att använda Netlify (rätt likvärdigt GitHub Pages tror jag) verkar passa våra behov bättre –  wiho tack för tips Pontus! Det var hyffsat enkelt att sätta upp så att wehbsidan nu uppdateras så fort vi skickar upp kod. På många tjänster för att driftsätta sina applikationer finns möjligheten att ladda upp allt som en zip-fil men på det sättet förlorar man en hel del kontroll, t ex av versionshantering, så det kändes viktigt för oss att koppla till Git. Vi har stött på begreppet Continuous deployment som vi ska undersöka vidare vad det innebär och så har vi fått tips om Progressive Web App​s som alltså kan låta oss ha en och samma applikation för både mobil och webb men att det ändå ser ut som en mobilapp. Val av databas är annars nästa steg för oss. Jag har tidigare nästan enbart använt SQL när det kommer til databaser men nu ska vi kika på Firebase och MongoDB som alternativ. Vad vi får lära oss va! Vi har skapat en prototyp i verktyget Figma och denna ska vi nu använda som stöd när vi programmerar, och utveckla vidare vartefter. Sneak peak nedan! Var beredd att bli haffad som användartestade snart. Tills dess, ha det fint och nörda gärna ner dig i något du med.

Vår prototyp i Figma

Sommarjobb – update

Nu har jag varit på Gaia och kodat i fyra veckor. Jag som tänkte uppdatera redan efter första dagarna men datorn hemma har mest stått och dammat. Det kan den gott få göra under sommaren, fast samtidigt finns det så många fritidsprojekt jag skulle vilja grotta ner mig i. Jag vill koda om den här hemsidan lite, göra ett uppswing med Campuskost, prototypa appidéer och leka runt med frameworks och kodbibliotek jag inte testat förr. Dras mellan det och att ge mig ut i sommaren och sommaren har fått prioritet. En helg åkte jag upp till Hälsingland för att hälsa på farmor, bli myggbiten i kantarellskogen och fiska med lillebror i den spegelblanka sjön intill stugan. Nu senast följde jag med Samuel till ett torp småland och hade det mysigt. Kom hem mätt och belåten efter en massa god mat, trötta ben efter fina löpturer i skogen och inte minst ett par liter bär. Vardagskvällar har fyllts med promenader, vänner och mysiga konserter. Andra kvällar har jag ringt upp blivande MT-studenter eller så har det plötsligt blivit läggdags innan jag hunnit gjort något vettigt alls. Försöker att inte hänga allt för mycket på mobilen och jämföra min sommar med andras.

Åter till sommarjobbet. Som jag nämnde i ett tidigare inlägg jobbar jag med ett projekt som rör kollektivtrafiken. Min uppgift i stora drag är att generera linjesegment utifrån listor av koordinater för alla busslinjer, med målet att kunna göra bättre uppskattningar av när en buss är framme vid en viss hållplats. Detta för att när är busslinjerna defineras av bara punkter är det svårt att plocka ur information om medelhastighet på en viss sträcka eller vart flera bussar går parallellt. Så det här problemet har jag klurat på, skissat, testat och gjort om fram och tillbaka. Det kändes lite frustrerande att tiden flyg förbi lite väl snabbt de första veckorna utan att jag fick till ett resultat jag var nöjd med. Lösningarna såg så enkla ut på skisspappret men när den rikiga datan kom in i bilden blev det allt krångligare. När linjerna gick parallellt bara för en kort stund i en rondell eller när den ena linjen svänger av på ett ställe där den andra inte ens har en punkt. Är väl inte helt nöjd i skrivande stund heller men det går framåt och jag är glad över att lära mig mer om Microsoft Azure. Lär mig om virtuella maskiner, build och release pipelines, stream-data och serverlösa funktioner. Jag börjar få en klarare bild om hur vilka steg man kan ta för att driftsätta sina projekt från att sitta och koda lokalt, sånt vi inte riktigt fått lära oss i programmeringskurserna. När det gäller segmenteringen av busslinjer har det krävt mycket tankekraft gällande datastrukturer och geospatial analys (avancerat begrepp tjoho). Nu får det vara läggdags så jag orkar tänka imorgon också. Hörs!

Tree Hacks Hackathon 2019!

Precis NU i skrivande stund är det deadline för att skicka in sitt resultat för Tree Hacks 2019. Nöjd och glad över att jag lyckades få ihop något! Jag hade egentligen planerat ända sedan i höstas om att vara men men sen hoff poff var helgen här och jag har tokmycket plugg. Min plan ändradet till att istället vara på plats, gå på workshops och plugga däremellan. Jag blev dock lite för peppad och nästan halvvägs in i hacket bestlutade jag mig för att skapa ett bidrag ändå. På TreeHacks GitHub finns en massa bra starter-packs för olika slags projekt (mobil, webb, IoT, ML osv) och jag blev taggad på att prova på ett Chrome-plugin. 

I år är de tre stora tävlingskategorierna Health, Safety och Awereness. Därpå finns det ett gäng tävlingskategorier som företag håller i, t ex använder man Docker, Google Cloud, Azure eller FireBase har man chans att vinna respektive företags utmaning. Jag såg till att få med ViX och fokuserade på Awereness-kategorin. Extra kul att det fanns utvecklare på plats från företagen ändå in på småtimmarna för tips och pepp. Istället för att googla kunde man alltså bara gå fram nappa åt sig en utvecklare!

Jag skapade ett Chrome-plugin som kan hinta om att innehåll på en webbsida möjligen är fake-news. I och med tidspressen kollade jag mest av att det fungerade mot Facebook, med det lär fungera även på t ex Twitter efter att ha finjusterat koden till att vara lite mer robust. Skapade alltså också en ViX-site som fick stå för en enkel exempelsamling av cirkulerande rykten. Liten databas med tillhörande REST API så att jag kunde hämta data från Chrome-projektet. 

HÄR har vi mitt bidrag inkludeat kod på GitHub, en filmsnutt, beskrivning och lite bilder. Om ett par timmar är det showcase och bedömning! Bland andra har vi en från Mythbusters-gänget med i juryn(?!) Udda och skoj, heja på mig tack!

Mitt Chrome-plugin varnar om det skrivs ett inlägg som låter misstänkt och tipsar om att läsa på lite innan en skapar sig en uppfattning.
Jury att möta om ett par timmar!

Procedurella kottar (?!)

Jag har alltid haft lite för kort tålamod för 3D-modelleringsprogram. Det kan börja med att jag föreställer mig att snart kunna modellera ett urhäftigt lejon där man ser varenda muskel arbeta i animationerna. Ett par timmar av frustration senare stänger jag mer – med en grå kub som resultat ungefär. Vill kunna allt på en gång och tar mig inte tiden att gå igenom grunderna.

Nu använder vi Houdini i en av mina kurser och jag gillar det (stundtals haha). Det är specialiserat för att kunna skapa procedurella modeller, animationer och simuleringar. Det vill säga att jag kan komma undan rätt bra med kod istället för att trixa manuellt. Jag tokgillar kottar av någon anledning så det fick bli min utmaning för veckans homework. Genom att skapa parametrar som justerar längd, form, täthet och taggar kan jag nu skapa många unika kottar på nolltid. Behöver alltså inte flytta runt på alla kottfjäll om jag vill testa ett nytt utseende. Det här är modellering mer i min smak – även om jag inte kände så i förrgår när ”kotte” såg ut som i första bilden.

Början till en procedurell kotte! Varje fjäll utgår från en box som jag modifierat formen på. Detta fjällobjekt kopieras sedan enligt matematiska uttryck till punkter på mittaxeln.
Efter två kvällar av slit! Vet inte om jag gillar kottar lika mycket länge men med tanke på att det ändå blev hyffsat kott-likt är jag nöjd.

Detaljer, För den kunskapstörstiga:

Dessa är parametrarna jag skapade. Ändrar jag värdet på någon så har jag sett till att det i sin tur påverkar egenskaper hos mina objekt.
Här kan ni se ett exempel av hur egenskaperna påverkas. Storleken av denna box (som utgör basen för ALLA kottfjällen) är direkt beroende på vad man väljer i slidern. Centerpositionen är dessutom beroende av radien på mittaxeln. Och så vidare!

Launching of our game ’Mars 2030’

Yay we’re launching our final project in the game development course!!

Interested in the multiplanetary idea, SpaceX etc?? Let’s see if you would enjoy the red planet. ツ
This is a RTS style game where you’re just arriving at the planet Mars, but your pod is crashing. This makes the start of your new life more difficult as you start off with absolutely nothing.. By exploring and collecting resources you can start building your home base and also train new units to grow your people/army. Try it! 

Created by Kristina Beck, Sara Olsson, and Maurice Chiang.
Course CS 146, Stanford University. Project time: ~5 weeks 

Make sure to also have a look at our trailer. Extra fun: The first 13 seconds show a visualization of the successful landing sequence of the Mars InSight lander on November 26th, 2018. Rendered using the open-source Astrovisualization framework OpenSpace which is a collaboration between Linköping University, the American Museum of Natural History, Goddard’s Community Coordinated Modeling Center, New York University, and the University of Utah.

Någon slags vardag: Homework, klätterhall och frat parties

Jag har låtit impulsivitet och magkänsla styra mig den här första tiden i USA. Försökt att inte planera för mycket, sänka kraven, ha roligt. Det är ändå en viss skillnad från när jag har pluggat hemma i Sverige med ett visst mål i sikte. Även om jag njöt av studentlivet då också så var jag mer strikt och planerande på något vis. Det kan vara rätt kul i perioder det också. Men nu har jag nått det mål jag hade och vill njuta av det fullt ut. Det är så lätt att direkt börja leta nya utmaningar, som att leverera på topp här, ta de mest populära kurserna eller skaffa ett häftigt internship. Jag försöker känna efter om något av det där är något jag faktiskt vill sträva efter.

Just nu trivs jag väldigt bra med sänkta prestationskrav. Jag har spenderat tid i klätterhallen, i solen, på fester. Stekt ett berg av pannkakor och bjudit över vänner. Simmat. Lunchat på tok för länge. 

Veckans hiss: Bokat resa till Mexico med Samuel (!!)
Veckans diss: När jag skulle skicka in mitt spelprojekt (se video) 10 minuter innan deadline och datorn krashade => förlorat arbete, sen inlämning och en smärre panik. Det verkar dock som att mitt bedjande mail till kursansvarig gick hem, puh! Hehe och sen kan jag väl tillägga att jag inte är särskilt imponerad av frat parties, än så länge. 

Bjussar på en dev-video från en hemuppgift jag hade förra veckan. (Inspirerad av den brutala mängd homeworks som hänger över de flesta studenterna här ). Hörs!