Kunskapsbanken

Artiklar, guider, tips och trix tillsammans med exempelprogram inom webbprogrammering och webbutveckling. Inläggen är listade i den ordning som de senast uppdaterats.

Att läsa filer som listor i Python

För att kunna spara data mellan två exekveringar av våra program kan filer användas.

Vi ska i denna övning läsa från filer och använda datan som finns i filen och övningen avslutas med att vi skriver till en fil.

Read more »

Category: python.

Debugger i Python

Vi ska lära oss hur man använder Pythons debugger, det är ett jättebra verktyg för att felsöka sin kod men även bara för att förstå hur ens kod fungerar.

#Vad är en debugger?

En debugger är ett program som låter oss undersöka ett programs tillstånd medans det körs. Med debuggern kan vi stega igenom programmet rad för rad (single stepping), se vad variabler har för värden och följa flödet av programmet när det exekveras. Det går även att sätta en Breakpoint i koden som gör att debuggern starta först när kodraden med breakpoint:en exekveras. Därifrån kan man då fortsätta att inspektera programmets tillstånd för att felsöka. Debuggern kan hjälpa oss att se om en variabel har fel värde och var i koden variabeln får det felaktiga värdet.

Debugger program finns till nästan alla programmeringsspråk och fungerar oftast likadant, därför är det jättebra att veta hur man använder en debugger. Att du som kodare använder debuggern på din kod innan du frågar efter hjälp anses som grundläggande.

I slutet av artikeln kan ni hitta en lista med debug kommandon.

#Hur använder vi debugger?

Med debuggern i Python kan vi inte bara inspektera koden utan även påverka den under exekvering. I Python heter debuggern pdb, det är ett interaktiv program som körs i terminalen. Det går även att använda debuggers direkt i vissa textredigerare, t.ex Atom och VSCode.

Vi börjar med att använda debuggern bara för att stega igenom ett program för att se vad vi kan göra med debuggern, sen försöker vi använda den för att felsöka kod.

Ett av sätten att köra debuggern på är att starta ens programmet med debuggern i terminalen:

python3 -m pdb file.py

-m pdb säger till Python att använda den inbyggda modulen pdb för att köra koden som finns i filen file.py. Vi går igenom hur man startar debuggern från koden i del 5.

#Introduktion, del 1

I videon nedanför introducerar Andreas hur man kan använda pdb för att stega igenom ett simpelt program. Han använder filen example/debugger/if.py som exempel. Följande kommandon används l(ist), pp, n(ext), exit/quit.

Andreas introducerar Python debuggern.

#Fler kommandon, del 2

I denna videon stegar vi igenom ett lite längre program och lär oss lite mer om l kommandot men även nya kommandon som ll(longlist), display och undisplay.

Andreas visar fler kommandon i debuggern.

#Breakpoints, del 3

I nästa video kollar vi på breakpoints och hur man kan använda debuggern för att felsöka ett program. Nya kommandon för denna videon är b(break), c(ontinue), cl(ear) och ctrl+d.

Andreas introducerar breakpoints

#Debugger i editorn VSCode

För er som använder editorn VSCode kan det vara intressant att använda debuggern som finns i editorn. Det är lättare att hänga med i koden jämfört med terminalen och är mer visuellt. I videon nedanför visar Andreas hur du kan komma igång med debuggern.

Andreas visar debuggern i VSCode.

#Debugger och funktioner, del 4

Vi kollar på kommandon som är användbara när man har funktioner i sin kod. s(tep), args och r(eturn) samt hur ll fungerar i en funktion.

Andreas visar hur man jobbar med debuggern och i funktioner.

#Starta debuggern från koden, del 5

Ibland vill man inte starta debuggern för att sätta ut breakpoints, därför ska vi lära oss hur man kan sätta breakpoints i koden.

Andreas visar hur man startar debuggern från koden.

#Debugger kommandon

Här kan du se en lista på de kommandon som vi går igenom ovanför.

Kommando Beskrivning
l(ist) Skriver ut raderna runt den aktiva raden. Använd “l .” för att skriva ut aktiva raden igen efter använt “l” redan.
p(rint) Skriver ut värdet för ett uttryck.
pp Som print fast försöker göra utskriften finare, med hjälp av modulen pprint.
n(ext) Exekvera kod tills nästa rad i scopet/functionen är nått eller functionen returnerar.
ll(longlist) Skriv ut all kodrade i den nuvarande funktion/scopet.
display Skriv ut värdet på variabler om de ändras.
undisplay ta bort variabler från display.
b(reak) Sätter ut en breakpoint på en specifik rad.
c(ontinue) Fortsätt exekvera programmet som vanlig, avbryt när stöter på en breakpoint.
ctrl+d Använd tangent kombinationen för att avbryta exekvering efter gjort continue.
cl(ear) Ta bort alla eller specifik breakpoint.
s(tep) Exekvera nuvarande kodrad och följ med funktionsanrop.
a(rgs) Skriv ut argumentlistan till den nuvarande funktionen.
r(eturn) Fortsätt exekvera kod tills den nuvarande funktionen returnerar.
q(uit)/exit Avsluta debuggern och programmet.

Det finns fler, men de är mer avancerade och du kommer troligen inte ha användning av dem. Du kan hitta alla i dokumentationen.

Avsluta

Då har vi tittat på debuggern i Python, det är ett jättebra verktyg för att felsöka och förstå sig på kod.

#Revision history

  • 2019-05-28: (A, aar) Första revisionen.

Document source.

Read more »

Kom igång med ditt första program i Python

Denna artikel visar hur du kommer igång med Python och visar hur du skriver ditt första program i Python.

Artikeln visar även hur du kan jobba med exempelfiler från kursrepot för python-kursen.

Read more »

Category: python.

Introduktion till variabler och datatyper

I denna artikel ska vi lära oss vad värden och variabler är i programmering. Vi ska titta på hur man skriver ut information till terminalen och hur man kan mata in information till programmet från terminalen. När du har jobbat igenom artikeln har du gjort ett program som tar emot ett namn och en ålder från användaren. Åldern används bland annat till att räkna ut födelseår. Namn, ålder och födelseår skrivs ut i terminalen som en del av en hälsning. Vi kommer gå igenom hur man skriver kod i en fil och kör den koden från terminalen.

Du kan hitta koden för detta exempel på Github och i example/greeting.

Read more »

Category: python.

BTH’s labbmiljö för databasen MySQL

BTH’s labbmiljö innehåller databasen MySQL och ett par olika klienter som kan användas för att koppla upp sig mot databasen. Här är en översikt av hur du går tillväga, som student vid BTH, för att få tillgång till MySQL.

Read more »

Category: labbmiljo, databas, mysql, mariadb.

Boken: The Pheonix Project

I denna roman får vi följa IT chefen Bill som jobbar på företaget Parts Unlimited. Parts Unlimited är beroende av sitt nästa projekt, The Pheonix Project, för att företaget ska överleva. Men projektet är över budget och försenat, Bill får 90 dagar på sig att styra upp skutan annars säger de upp hela IT-avdelning och outsourcar den istället.

Vi får följa Bills resa in i DevOps världen och filosofin The Three Ways för att rädda projektet.

Read more »

Category: bok.

Skapa Bash-skript med options, command och arguments

Bash-skript med options.

Bash-skript med options.

För att effektivisera sitt arbetsflöde som programmerare, i en server eller Linux-miljö, så är det bra att kunna de kommandon som finns tillgängliga. När man vill göra flera kommandon på rad så samlar man dem i ett skript.

För att gå ytterligare ett steg längre så kan man bygga upp skriptet som ett program som kan ta options, kommandon (commands) och argument till dessa kommandon.

Read more »

Category: unix.

Installera webbplatser med Apache Name-based Virtual Hosts

En virtuell host.

En virtuell host.

När man bygger många webbplatser så vill man ha möjligheten att köra dem i en och samma installation av Apache, på en och samma server. En så kallad virtualisering av webbplatser, om begreppet passar.

Apache har en konstruktion som heter Apache Virtual Hosts och en variant av den är Apache Name-based Virtual Hosts. Det är den namn-baserade varianter vi nu skall se hur man använder.

Read more »

Category: webbprogrammering.

Kom igång med tmux och terminalen

Tmux i en terminal.

Tmux i en terminal.

När man börjar använda terminalen så märker man snabbt begränsningen i ett terminalfönster, man börjar då ha flera terminalfönster uppe samtidigt, eller flera tabbar i ett terminalfönster. Efter ett tag så kommer man i kontakt med terminal multiplexer, program som gör terminalen till ett än mer kraftfullt verktyg. Två kända sådana program är screen och tmux. Denna guide handlar om tmux.

Read more »

Category: unix.

GPS och kamera i samarbete

Vi ska i denna övning använda cordova-plugin-camera för att kunna ta bilder och spara dessa i våra appar. Vi kommer även titta på hur vi kombinerar kameran med cordova-plugin-geolocation för att bilden ska få en position.

Read more »

Category: javascript.