Mål för idag
•Förstå vad programmering i Python innebär
• Kunna använda ”terminalen”
• Kunna installera pythonpaket
• Ha en kodeditor installerad och förstå den
• Kunna versionshantera med Github
• Veta vad StackOverflow är
PATH
• Inställning somfinns för både Mac och PC
• Lista med kataloger där terminalen ska leta när man
skriver ett kommando
• Kan behöva ändras när ni installerar Python 3!
Heroku
• Massor hostingtjänster:”Betala för att köra din kod
på vår server”
• Olika nivåer av automatisering
• Olika priser
• Heroku: Väldigt automatiskt, gratiskonto
Idé: En logg
Måndag13.00 Lade till två rader i fil1.txt
Måndag 13.10 Tog bort fil2.txt
Måndag 13.25 Skapa en ny fil bild1.jpg
Måndag 14.25 Lade till två rader i fil1.txt
… …
#4 Om ni ännu inte gått med, gör det! Jag kommer att posta länkar där till tutorials jag vill att ni ska följa.
#5 Låt aldrig någon annan skriva på din dator. Viktigt för att få in vanan i fingrarna. Skriv av istället för att kopiera. När du hjälper någon annan, låt den personen skriva själv
Inga priser. Duktig => Erfarenhet. Hjälp varandra. Om du motiveras av mål, fokusera på målet att ha en sajt live på fredag eftermiddag. Tufft, men jag tror det går.
Det är du som gör jobbet här. Ta ansvar för det, och se till att det blir så. Vi kan ge tips, råd, övningar, men det är inte säkert att det är rätt för dig. Behöver du anteckna? Gör det. Behöver du se flera förklaringar? Googla lite parallellt och läs på, allt det jag säger finns på internet.
#7 Här är sajten som vi kommer att bygga tillsammans. Frågesport.
Något som är oklart med upplägget innan vi går in på dagens presentation?
#8 Del 1: Setup, Del 2: Versionshantering
Ni med PC får gärna sätta er bredvid varandra!
#10 Ett sätt att beskriva en sekvens av saker man vill att datorn ska göra
För att förklara: Tittar på ett enkelt steg, och gå tillbaka till hur det fungerade förr i tiden…
#11 Processorn: Sätt registret som kommer snart till ett. Register 0x1040.
Ingen skriver maskinkod direkt, istället: skriver i assembler och översätt
#13 Ändring från förra året, mycket kod/förklaringar som bara försvann
#14 Olika namn: eller ett program, ett python-script, eller att script
En helt vanlig text-fil som man kan läsa i word om man skulle vilja
En filändelse .py som gör att python känner igen att det är en python-fil
Körs av python på samma sätt som en word-fil öppnas med word
Enklaste sättet att börja experimentera är “terminalen”
#15 Kommando-prompten på PC
(Din kan ha vit bakgrund, det spelar ingen roll, går att ändra i Inställningar)
En utforskare/finder som är helt textbaserad
Gör att man slipper använda musen, mer tangentbord
Effektivt sätt att skicka saker från ett program till ett annat
*Starta och skriv några kommandon*
Det här ska ni få prova att latja med under tutorialsen.
#16 Potentiellt problem sen när ni installerar…
Om installationsprogrammet frågar, svara JA!
Googla ”update PATH PC”
#17 Ett sätt att skriva program en rad i taget, där man ser resultatet av varje rad för sig
Bra för test (verkligheten: hel pythonfil som körs med `python fil.py`)
Prova lite enkel python (Vi kommer gå igenom python senare)
#18 Det mesta man vill göra har någon redan gjort, onödigt att börja från början
Istället: Använd saker som andra har gjort
Finns stort bibliotek med kod PyPi ~90.000 paket med kod (varav jag har tre!)
Många paket är tusentals rader kod
När vi sen installerar Django så är det ett paket därifrån
#19 Kod är helt vanlig text, inget formatering eller fetstil
Istället: Automatisk färgkodning för att göra koden lättare att läsa
Finns massor av olika texteditors att välja mellan
Vi kommer använda det populäraste just nu: Sublime Text
Alternativ:
Massor av kortkommandon: Emacs, Vim
Förstår mer av pythonkoden: PyCharm, Visual Studio
https://docs.google.com/document/d/1SrRUN7SEAv4hwb695god-wwBFfig4zREBD5Wj7S_jSQ/edit?usp=sharing
#20 Gratiskonto, max 18 av 24 timmar per dygn. Annars får man mail som säger ajja-bajja!
$7/månad, dygnet runt
Givet att ni inte kommer att surfa till er egen sajt dygnet runt, så går det alldeles utmärkt med gratiskonto. Jag har tre sajter som kör den utan att ha fått en enda varning.
#22 Förr i tiden (~15 år sedan) var det inte så vanligt med versionshantering (tyvärr finns det fortfarande företag som inte använder det!). Då utvecklade man kod på sin dator, och sen kopierade den till där den skulle köras. Klart!
Varför är det ett problem?
Inget sätt att ångra en uppdatering av koden. Om det visar sig att något fungerar lokalt men inte i produktionsmiljön
Svårt att jobba flera personer samtidigt, hur vet man vilka filer man ska skriva över och inte?
Ingen logg över vad som har ändrats
#23 Finns flera olika system för versionshantering: CVS, Subversion, Mercurial, Clearcase, Team Foundation (Microsoft), …
Linus Torvalds:
Linux
Han är en manschauvinistisk skitstövel (som tur var tjänar han inget på att vi använder Git eftersom det är gratis)
#24 Idé: Lagra en logg över alla ändringar tillsammans med filerna:
Ligger i en mapp som heter “.git” i samma katalog som projektet
Varje gång man gör en ändring så håller git koll på exakt vilken rad som har ändrats. Sen gör man en “commit” för att ta den ändringen och lägga till den till loggen.
Varje commit har också ett meddelande som förklarar vilken ändring man har gjort, gör att man får en läsbar logg som andra kan titta på: https://github.com/EmilStenstrom/django-components/commits/master?page=2
#25 Har vi löst problemen?
Ångra: Titta på loggen och hoppa tillbaka till en äldre version “checkout”
Jobba flera: Lättare att slå ihop två loggar (om jag har ändrat rad 10 och du rad 12 så går det ju mycket lättare att slå ihop “merge”
Logg: Hela poängen med Git, “log”
#26 Vanligaste stället: Github (gratis för publika projekt, $7/månad för privata). Vi kör publikt, så det det är gratis, och det gör också att ni kan hjälpa varandra.
Webbsajt för att se loggen, kommentera på andras ändringar, föreslå förslag.
https://docs.google.com/document/d/1eFnBjFygw0g1JS_BHO_w-lyC8sUtN-6jeQGcM5Kdmac/edit?usp=sharing
#28 Någon har garanterat undrat samma sak som du undrar
Börja med programeringsspråket, python, css, html, osv…
På engelska alltid bäst träffar
Lagom generell fråga: ”make left column purple” -> ”change background color”
#29 http://stackoverflow.com/
En frågor-och-svar för utvecklare
Baserat på poäng till både de som ställer frågor och de som svarar => Bästa svaren bubblar
Både nybörjarfrågor och extremt detaljerade expertfrågor
Ofta en träff som kommer högt upp när man googlar, ta den!
*Visa en sida och förklara de olika delarna*
#30 Kod är helt vanlig text, inget formatering eller fetstil
Istället: Automatisk färgkodning för att göra koden lättare att läsa
Finns massor av olika texteditors att välja mellan
Vi kommer använda det populäraste just nu: Sublime Text
Alternativ:
Massor av kortkommandon: Emacs, Vim
Förstår mer av pythonkoden: PyCharm, Visual Studio
https://docs.google.com/document/d/1SrRUN7SEAv4hwb695god-wwBFfig4zREBD5Wj7S_jSQ/edit?usp=sharing
#32 Om ni ännu inte gått med, gör det! Jag kommer att posta länkar där till tutorials jag vill att ni ska följa.