TECH-DANSK ORDBOG Arkiv | Co-coders https://cocoders.dk/category/tech-dansk-ordbog/ #bringdiversitytotech Thu, 27 Apr 2023 08:12:01 +0000 da-DK hourly 1 https://wordpress.org/?v=6.1.12 https://cocoders.dk/wp-content/uploads/2022/08/cropped-Favicon-6-32x32.png TECH-DANSK ORDBOG Arkiv | Co-coders https://cocoders.dk/category/tech-dansk-ordbog/ 32 32 AI & machine learning https://cocoders.dk/ai-machine-learning/ Thu, 27 Apr 2023 08:06:30 +0000 https://cocoders.dk/?p=3678 … KUNSTIG INTELLIGENS ELLER MASKINLÆRING? KÆRT BARN HAR MANGE NAVNE

Alle taler om det, men hvor mange bruger det? Hvad betyder det? Og er det egentlig det samme eller er der forskel? Læs med her og få en bedre forståelse for, hvad de forskellige begreber dækker over, så du også kan tale med.

Indlægget AI & machine learning blev først udgivet på Co-coders.

]]>

tech-dansk ordbog

AI & machine learning

… kunstig intelligens eller maskinlæring?

Kært barn har mange navne…

AI/kunstig intelligens, machine learning/maskinlæring, data science… Kært barn har mange navne og er det egentlig det samme eller der forskel? Alle taler om det, men hvor mange bruger det?

Og hvad skal der til for, at man kan sige: ”nu har jeg en AI…”?

Når man bevæger sig i kredse, hvor der ofte bliver talt om AI, erfarer man hurtigt, at der findes cirka lige så mange fortolkninger af AI, som der findes mennesker, der taler om det. I et forsøg på at finde en objektiv, entydig og veldefineret beskrivelse af AI har jeg både googlet, spurgt ChatGPT og set en masse Youtube-videoer. I min søgen har den bedste (og mest udbredte) beskrivelse været, at

kunstig intelligens er en computer, der er i stand til at udføre og løse opgaver, der normalt udføres af mennesker og kræver menneskelig intelligens.

Denne beskrivelse giver i og for sig mening, men hvis man tænker lidt nærmere over det, så er den stadig lidt diffus og upræcis… Fordi hvad er menneskelig intelligens egentlig? Og hvordan definerer man, hvorvidt en opgave normalt udføres af mennesker?

Selvom beskrivelsen ikke er en præcis definition, er det heldigvis således, at AI eller kunstig intelligens ofte i daglig tale bruges omkring teknologier, der baserer sig på machine learning modeller og dermed data og algoritmer og DET er heldigvis veldefineret 😊 Så lad os tale om machine learning i stedet…

Machine learning

Machine learning er et begreb, som dækker over en samling metoder baseret på matematiske beregninger udført i en bestemt rækkefølge – også kaldet en algoritme. En algoritme er en slags opskrift, hvor hvert trin i opskriften hjælper computeren med at blive klogere på de data, der er tilgængelige. Data kan i denne sammenhæng ses som en slags erfaring, som computeren lærer fra vha. algoritmen.

Data kan være billeder, tekst eller tal, som algoritmen hjælper computeren med at finde mønstre og tendenser i. Det kan f.eks. være billeder af tal, hvor trinene i algoritmen hjælper computeren med at kunne kende forskel på 1-, 2-, 3- og 4-taller osv.

Når vi som mennesker har lært noget på baggrund af en erfaring, vi har fået igennem nogle oplevelser (som også kan ses som data), kan det stadig ske, at vi tager fejl. F.eks. kan et 1-tal ligne et 7-tal, hvis det er skrevet sjusket, og lægerne kan også være uheldige at komme med en fejldiagnose, hvis symptomerne er atypiske. Det er vigtigt at huske, at det samme gælder for machine learning modeller eller såkaldt AI. Outputtet af en machine learning model er altid en forudsigelse og modellen kan I visse tilfælde tage fejl.

Når man arbejder med machine learning og især hvis man har planer om at implementere modellen i et kritisk område – f.eks. indenfor diagnosticering af kritiske sygdomme eller kritisk infrastruktur såsom elnettet – er det vigtigt, at machine learning modellen eller AI’en i et vist omfang overvåges af mennesker, så man kan opdage, hvis modellen tager fejl eller bevæger sig i en uhensigtsmæssige retning.

Vi kan hurtigere og nemmere opnå bedre resultater, hvis vi bruger computere og machine learning, men computerne kan ikke stå alene. De bedste resultater opnåes ofte, når man sikrer, at det er et samspil imellem mennesker og teknologi.

Den mest simple form for machine learning – lineær regression

De fleste har sikkert lavet lineær regression i gymnasiet. Lineær regression er faktisk en af de mest simple former for machine learning og principperne bag lineær regression kan overføres til næsten alle former for machine learning.

Udgangspunktet for lineær regression er nogle nummeriske målepunkter (tal), som vi har observeret i virkeligheden. Målet med lineær regression er nu at definere en formel for en linie, der beskriver sammenhængen imellem disse målte værdier bedst muligt.

Det klassiske eksempel er en model, der er trænet til at beskrive sammenhængen imellem kvadratmeter i et hus og husprisen, men der er tonsvis af muligheder for at bruge lineær regression til alle mulige forskellige problemstillinger.

I stedet for at vi kaster os ud i en længere tekst omkring lineær regression, har vi linket til en kort video med en af verdens førende eksperter (og en eminent underviser) indenfor machine learning, Andrew Ng, hvor han tegner og fortæller om lineær regression.

For at finde formlen på den linie, der ligger tættest på vores målepunkter fra virkeligheden, bruger vi altså en algoritme – eller en slags opskrift – der trin-for-trin hjælper os med at forbedre formlen, indtil den ikke kan blive bedre. Hvert trin i algoritmen består af nogle matematiske beregninger, som hjælper os med systematisk at forbedre formlen lige så stille, indtil den ikke kan forbedre mere.

Hvis vi skal skrive det op som en opskrift, kan det gøres således:

  1. Definér en vilkårlig formel for din linie f(x) = a*x + b ved at give a og b tilfældige værdier.
  2. Beregn afstanden fra dine observationer/målepunkter til den nuværende linie f(x) – denne afstand kaldes tabet eller omkostningen.
  3. Undersøg om tabet eller omkostningen ved f(x) kan blive mindre, hvis a og b fik nye værdier. Der findes en metode, der hedder gradient descent, som matematisk hjælper med at minimere tabet. Vi går ikke i dybden med det, men nu har I hørt ordet og kan nævne eller google det, hvis det bliver nødvendigt 😉
  4. Hvis vi i step 3 finder ud af, at omkostningen kan minimeres yderligere, sættes a og b til de nye værdier. Gå derefter tilbage til pkt. 2. Hvis omkostningen er på et minimum, stop, og du har nu fundet den bedste beskrivelse af f(x).

OBS: Man kan sætte computeren til at lave disse beregninger og udføre den metode, der hedder gradient descent, så man behøver ikke at være et matematik-glad for at kunne lave machine learning 😉

Forskellige eksempler på brug af machine learning

I lineær regression bygges modellen op omkring en formel for en lige linie, men det er ikke altid tilfældet, at en linie passer på den problemstilling, man skal løse – en linie er f.eks. ret dårlig til at beskrive forskellige kundegrupper. Den bagvedliggende matematik afhænger altså af den problemstilling, som man forsøger at løse. Derfor skal man, inden man overhovedet kaster sig ud i at lave machine learning, først undersøge hvilken type opgave, man ønsker at løse og hvilke slags algoritme, der giver bedst mening.

Eksempler på kendte problemstillinger, der er blevet løst med machine learning, kan nævnes:

  • en computer, der kan spille skak. Den første machine learning model, der slog verdensmesteren i skab hed Deep Blue. Deep Blue blev udviklet af IBM og den slog verdensmesteren Kasparov i 1997 – så altså for ret lang tid siden i forhold til, hvad mange tror, når vi taler om AI og machine learning 😊
  • robotter, der kan bevæge sig som levende væsner – enten hunde, mennesker eller Disney figurer… Disney har nemlig netop offentliggjort en robot, der ligner Judy Hopps fra Zootropolis, der potentielt kan optræde i Disneyland og interagere med gæsterne. https://www.youtube.com/watch?v=lPqzLE4KjhI Det skal dog siges, at det ikke er alle robotter, der er trænet med machine learning – f.eks. robotter, der skal udføre den samme type bevægelser, behøver ikke at blive trænet med machine learning. Den type robotter kan blot blive programmeret med et sæt regler, som definerer, hvordan robotten bevæger sig i forskellige situationer. Men flere og flere robotter bliver trænet med machine learning, så de er i stand til på egen hånd at tage en beslutning i en given situation.
  • en computer, der kan tage en bid tekst og omdanne det til et billede eller tekst. To efterhånden meget kendte modeller, der kan gøre dette, er ChatGPT og DALL-E (https://openai.com/). ChatGPT kan tage imod et stykke tekst og omdanne det til endnu mere tekst. F.eks. kan ChatGPT skrive digte, opskrifter og komme med forslag på tekster til sociale medier. DALL-E kan på den anden side generere et billede baseret på et stykke tekst. På den måde kan vi nemt og hurtigt generer billeder ved blot at lave en beskrivelse af billedet og sende det til machine learning modellen DALL-E. ChatGPT og DALL-E er ikke de eneste modeller, der er udviklet til denne type opgaver, men det er nok de mest kendte.
  • OpenAI, der står bag ChatGPT og DALL-E har netop offentliggjort deres nye machine learning model GPT-4, som både kan tage imod tekst, billeder og video som input og derefter generere hvad hjertet begærer.

    OBS: Man skal se machine learning som et menneske, der har læst en masse bøger, set en masse video og studeret en masse billeder og dermed opnået en masse viden og erfaring fra disse materialer. Fordelen ved computere er, at de kan kigge en masse tekst, billeder, tabeller eller video igennem mange gange hurtigere end mennesker.

    Hvis de data, som computeren lærer fra, indeholder forkerte oplysninger, kan machine learning modellen ikke vide bedre, hvilket er en af årsagerne til, at det er vigtigt at bygge machine learning modeller på gode data, der indeholder korrekte data uden bias. Det er derfor vigtigt, at man altid forholder sig kritisk både til de data, man fodrer machine learning algoritmen med, samt det svar, som machine learning modeller returnerer.

    Forskellige typer af machine learning

    Machine learning er som sagt blot en opskrift, der hjælper en computer med at lære fra data. Der findes mange forskellige problemstillinger, som kan løses med machine learning, og der findes derfor også mange forskellige machine learning metoder. De mange forskellige metoder inddeles som udgangspunkt i tre forskellige områder:

    Supervised learning
    Supervised learning er en samling machine learning metoder, der kan løse problemstillinger, hvor vi ønsker at forudsige en specifik kategori eller værdi. Det kan f.eks. være kategorisering af mails i spam eller ikke-spam, diagnosticering af patienter eller estimering af huspriser. Det er altså en type af metoder, der kan tage imod et datasæt og så forudsige og foruddefineret kategori eller værdi.

    Unsupervised learning
    Unsupervised learning metoder kan i modsætning til supervised learning hjælpe med at finde mønstre og tendenser, som vi ikke allerede kender. Det kan f.eks. være, at vi har en stor kundebase, hvor vi gerne vil finde ud af, om vi kan inddele dem i kundegrupper, men vi kender ikke grupperne på forhånd. I denne situation kan man bruge unsupervised learning til at finde ukendte mønstre i kundegruppen og baggrund af disse mønstre inddele kunderne i grupper. Baseret på disse grupper, som algoritmen finder for os, kan man blive klogere på hvilke karakteristika, kundegrupperne har.

    Reinforcement learning
    Reinforcement learning metoder fokuserer på at træne algoritmer og modeller til at tage beslutninger i en dynamisk og skiftende omgivelse. Det kan f.eks. være et spil skak eller en robot, som navigere rundt i en lagerhal, robotten eller computeren ved, hvad der er sket bagudrettet, men den ved ikke, hvilke træk modspiller vil foretage eller hvilke udfordringer den vil møde i lagerhallen fremadrettet. I modsætning til supervised learning, hvor algoritmen trænes på mærket data – dvs. data, hvor vi har defineret et udfald (kategori eller værdi), som vi leder efter – og unsupervised learning, hvor algoritmen opdager mønstre i data, bruger reinforcement learning en belønningsmekanisme til at lære, hvilke handlinger der fører til ønskede resultater.

    Hvis du har lyst til at lære mere, skal du bare holde øje med bloggen, hvor der i de kommende uger vil komme flere blogindlæg om AI, machine learning, algoritmer og data 😊

    Hvis du ikke kan vente, kan vi anbefale at tage et kig på kurset Elements of AI. Det er et ikke-teknisk kursus, hvor du får styr på begreber og metoder relateret til AI og machine learning. Kurset findes på både dansk og engelsk og er meget begyndervenligt 😊

    God fornøjelse!

    De bedste hilsner fra

    Idéer til nye blogindlæg?

    Skriv til os på hi@cocoders.dk og del dine ønsker til nye blogindlæg og guides.

    Indlægget AI & machine learning blev først udgivet på Co-coders.

    ]]>
    ChatGPT https://cocoders.dk/chatgpt/ Wed, 04 Jan 2023 19:57:33 +0000 https://cocoders.dk/?p=3556 UNDRER DU DIG OGSÅ OVER, HVAD DET DER CHATGPT EGENTLIG ER?

    Læs med her og få en simpel beskrivelse af, hvad ChatGPT er, samt hvilke metoder, teknologien baserer sig på. Vi viser dig også, hvordan du selv kan komme i gang med at lege med ChatGPT.

    Indlægget ChatGPT blev først udgivet på Co-coders.

    ]]>

    tech-dansk ordbog

    ChatGPT

    Hvad er det? Og hvorfor er der så meget hype omkring det?

    Har du også brugt det meste af december på at læse begejstrede LinkedIn-opslag om, hvordan ChatGPT kommer til at forandre verden, som vi kender den? Måske har du endda også brugt din juleferie på at høre venner og familiemedlemmer med enten skræk eller begejstring i øjnene fortælle om deres egne forsøg med netop ChatGPT?

    Men hvad er ChatGPT egentlig? Og er det noget, som vi skal frygte eller glæde os over?

    Hvad er ChatGPT?

    ChatGPT er en chatbot baseret på kunstig intelligens – sagt på en anden måde; ChatGPT er en online service, som man kan stille spørgsmål (som på tech-sprog hedder en ’prompt’), hvorefter ChatGPT vil formulere et svar, som både er realistisk og menneskeligt på trods af, at det kommer fra en computer. ChatGPT kan også svare på opfølgende spørgsmål, så man kan føre en dialog med den og ikke kun få svar på et enkelt spørgsmål.

    Du kan f.eks. spørge ChatGPT…

    ”Nævn tre forslag på aftensmåltider”

    Og derefter følge op med…

    ”Giv mig en indkøbsliste på de tre måltider”

    I videoen nedenfor kan du se, hvordan det fungerer i praksis 🙂

    Det er altså ikke nødvendigt, at man får alle detaljer med i første spørgsmål, da man kan fortsætte med spørge ind til emnet, hvis man ikke fik alle de nødvendige informationer i første omgang. Det minder om, når vi mennesker taler sammen. Når vi møder en person, som vi ikke har set i lang tid, starter man jo ofte med at spørge ”Hvordan går det?” og baseret på det spørgsmål, kan vi spørge ind til de detaljer, som vi ikke vidste på forhånd. Det samme kan man gøre med ChatGPT – starte med et indledende spørgsmål og derefter stille uddybende spørgsmål. Smart, ik?

    ChatGPT kan ikke kun give forslag på opskrifter, det er faktisk kun fantasien, der sætter grænser for, hvad vi kan bruge ChatGPT til. Man kan se det lidt som det nye Google – når vi mangler noget information, så kan vi spørge ChatGPT om hjælp. Forskellen er blot, at ChatGPT selv kan sætte informationerne sammen til et forståeligt svar – vi behøver ikke at gennemsøge et utal af hjemmesider for at sætte de relevante informationer sammen. Det gør ChatGPT for os 😊

    Som I kan se i videoen ovenfor, kan den også forstå flere forskellige sprog, hvilket ellers kan være lidt besværligt – tænk bare på lange gebrokne oversættelser fra Google Translate. Du kan altså stille spørgsmål på lige netop det sprog, der passer dig bedst, og så svarer ChatGPT tilbage i samme sprog.

    Hvordan er ChatGPT blevet udviklet?

    ChatGPT er i stand til at give realistiske og menneskelige svar, da teknologien er blevet trænet til at forstå mønstre og tendenser i almindelig menneskelig dialog vha. det, der kaldes machine learning. ChatGPT er altså en machine learning model, som har modtaget en masse information og erfaring igennem en stor portion data og derefter lært, hvordan det skal kommunikere, så det minder om menneskers dialog.

    Det er lidt ligesom et lille barn, der observerer hans/hendes forældre. I starten har barnet slet ikke et sprog. Når sproget er på plads, er der måske nogle sociale spilleregler – hvad er passende og hvad er upassende at sige højt – som lige skal finpudses og til sidst er barnet vokset op, har set så mange mennesker interagere og tale med hinanden at både sproget og de sociale spilleregler er på plads. Det er det samme, der sker med data og machine learning – her er det bare matematik og det, der hedder algoritmer, der hjælper computeren på vej.

    Når man ser på det på den måde, så er det også nemmere at forstå, hvorfor kunstig intelligens aldrig kan blive bedre end de data, man putter ind i modellen. Hvis et barn vokser op i en verden, hvor vi slår på hinanden og taler grimt til hinanden, vil barnet også kopiere det.

    OBS: Der er et blogindlæg om machine learning på vej, så stay tuned og hold øje med bloggen 😉

    Prøv det selv…

    ChatGPT er lige nu gratis, hvilket betyder, at alle har mulighed for at oprette en bruger og kaste sig ud i at føre en dialog efter eget valg med ChatGPT. For at få lov til at prøve ChatGPT på egen hånd, skal du:

    1) gå til OpenAI’s hjemmeside
    2) opret en bruger
    3) herefter kan du bare spørge løs i teksten, som du kan se i videoen ovenfor

    HUSK: at du også kan stille opfølgende spørgsmål og du kan stille spørgsmål på flere forskellige sprog!

    Lad os inspirere hinanden og lære sammen, så del gerne dine både vellykkede og mislykkede forsøg med ChatGPT. Du kan f.eks. dele en video eller beskrivelse på LinkedIn eller Instagram. Tag gerne vores profil eller brug #cocoderslearn, så vi ser det 😊

    God fornøjelse! 

    De bedste hilsner fra

    Idéer til nye blogindlæg?

    Skriv til os på hi@cocoders.dk og del dine ønsker til nye blogindlæg og guides.

    Indlægget ChatGPT blev først udgivet på Co-coders.

    ]]>
    Få en idé om, hvad et “IDE” er https://cocoders.dk/faa-en-ide-om-hvad-et-ide-er/ Wed, 23 Nov 2022 12:38:10 +0000 https://cocoders.dk/?p=3340 PSST: ET "IDE" ER ET PROGRAM TIL AT PROGRAMMERE I!

    Læs med i dette blogindlæg for bedre at forstå, hvad der gør et IDE vigtigt for programmering, og hvordan du finder et.

    Indlægget Få en idé om, hvad et “IDE” er blev først udgivet på Co-coders.

    ]]>

    tech-dansk ordbog

    Få en idé om, hvad et “IDE” er

    Psst: Et “IDE” er et program til at programmere i!

     

    Læs med i dette blogindlæg for bedre at forstå,                                                                          hvad der gør et IDE vigtigt for programmering,                                                                                og hvordan du finder et

    Vil du redigere et billede i Excel? Eller lave et budget i Paint? Næppe!

    Vi har nemlig forskellige programmer, som hjælper os med de opgaver nemt og hurtigt. For på samme måde, som der findes Photoshop til billedredigering, findes der også programmer til programmering. Og de kaldes for IDE’er!

    Hvad er et IDE?

    IDE står for Integrated Development Environment, og er et program med integrerede værktøjer, der bruges til at udvikle programmer og apps. De gennemgående værktøjer alle IDE’s har er en teksteditor, en compiler og en debugger.

    En teksteditor er præcis, hvad navnet tyder på, nemlig der vi redigerer tekst. Det er her, hvor vi har mulighed for at skrive vores programmer i det sprog, vi har lyst til f.eks JavaScript, Python, C#, Java og så videre. 

    Al vores kode i skal nu køres af vores computer. Problemet er dog, at computeren ikke forstår, hvad vi har skrevet. Den kan simpelthen ikke læse programmeringssprog fordi, at den kun forstår maskinsprog, som er enkle binære instruktioner. Det vil dog være utrolig svært og besværligt, hvis vi skal skrive vores program i maskinsprog. Derfor skal vi bruge en compiler, som oversætter, hvad vi har skrevet i programmeringssprog til maskinsprog, så computeren forstår det. Vi kan ikke direkte se compileren i IDE’et, men når vi kan vælge at køre eller “run” vores program betyder det, at IDE’et har compiler-værktøjet.

    Til sidst af de vigtigste værktøjer en IDE har er debugger-funktionen. Debugging eller fejlfinding er en måde at sikre os, at vores program kører korrekt. Hvis vi ikke får det tiltænkte resultat fra vores program, bliver vi nødt til finde fejlen i vores kode. Denne fejl er, hvad man kalder et “bug”. At debugge er en process, hvor vi først skal identificere problemet, finde kilden til problemet og til sidst enten rette fejlen eller finde en måde at arbejde omkring det. Debugging værktøjet i en IDE gør det muligt for os at trinvis gå igennem vores program og se resultatet af hver linje kode. Hvis man ikke havde et debugging værktøj vil man kun være i stand til at køre hele programmet igennem, og det er derfor sværere at identificere kilden til problemet. 

    Hvilket IDE skal jeg vælge?

    Der er mange forskellige slags IDE’er, så udvalget kan virke overvældende!

    Det du først skal tage stilling til er, hvilket programmeringssprog du skriver i. Nogle IDE’er understøtter nemlig kun specifikke programmeringssprog, hvor andre understøtter flere. Derudover kan nogle IDE’er være platform specifikke, hvilket betyder, at de f.eks kun kan køre på et macOS- eller Windows-system. Dit valg af IDE er derfor baseret på nogle af disse valg, men generelt handler valget også meget om præferencer. Nogle af de features IDE’er kan have er f.eks. autosuggestion når man skriver kode, split-view funktion af en fil, kode-skabeloner, syntax-fejlfinder osv. 

    Et startsted i valget af et IDE kan være at søge på dit programmeringssprog + IDE, se hvilke muligheder der er, og derefter bare vælge et at starte med. Du kan altid vælge et nyt IDE, åbne dine filer heri og arbejde videre der.

    I Co-Coders arbejder vi tit med det gratis IDE Visual Studio Code, som understøtter mange forskellige programmeringssprog f.eks. Python og JavaScript. 

    Opbygningen af et IDE

    Når du har valgt, hvilket IDE du vil arbejde i, kan vi se nærmere på opbygningen af et IDE’s brugerflade. IDE’et jeg bruger i det her eksempel er WebStorm lavet af firmaet JetBrains, derfor kan knapperne se forskellig ud i forhold til, hvilket IDE man vælger. Der er dog fællesnævnere i de fleste IDE’er, som vi går igennem her: 

    Man har tit en oversigt over ens filer og mapper i den ene side. Oversigten gør det nemt at se, hvor filen du arbejder i hører til samt nem adgang til andre filer.

    Teksteditoren er det store vindue, hvor du kan rette og skrive din kode. Der er også et konsol-vindue, hvor programmets output bliver vidst. I mit eksempel vælger jeg at printe sætningen “hello world” til min konsol, hvor det så bliver vist. 

    I hjørnet af eksemplet har vi en play-knap og en insekt-knap. Når jeg trykker på play-knappen kører mit program, hvilket betyder, at IDE’ets compiler oversætter koden til maskinsprog, og herefter kører min computer programmet. Insekt-knappen er til at debugge med, hvor jeg så kan vælge, hvor i min kode jeg vil have den til at stoppe. Du kan næsten også altid finde en “Run”- og “Debug”-fane i menulinjen for dit IDE. 

    Hvordan kommer jeg videre?

    Hvis du er blevet mere interesseret i dele af IDE’et f.eks. debugging-processen, er der mange gode youtube-videoer, som går mere i dybden.

    Ellers kast dig ud i at finde et IDE, som passer til dine behov eller blot nyd, at du nu kan snakke med om IDE’er, debugging, compiler osv. Send gerne din ven, kollega eller søster blogindlægget, hvis vores tech-dansk ordbog kunne være noget for dem!

    Hvis du mangler et kodesprog at gå i gang med, har vi en intro-guide til Python på vores platform.

    Som altid er du mere end velkommen til at hoppe ind på vores Discord-server og spørge løs, hvis du møder udfordringer eller har spørgsmål.

    Vi hepper på dig!

    De bedste hilsner fra

    Idéer til nye blogindlæg?

    Skriv til os på hi@cocoders.dk og del dine ønsker til nye blogindlæg og guides.

    Indlægget Få en idé om, hvad et “IDE” er blev først udgivet på Co-coders.

    ]]>
    Hvad er et API? Vi oversætter det til dig! https://cocoders.dk/api/ Thu, 15 Sep 2022 08:35:39 +0000 https://cocoders.dk/?p=2970 LÆS MED HER OG FÅ BEDRE STYR PÅ DET TEKNISKE ORD API.

    I dette blogpost vil vi kradse i overfladen af, hvad et API er. Det vil hjælpe dig til at kunne snakke med, når en kollega, ven eller onkel ryster et term som API ud af ærmet til frokosten. 

    Indlægget Hvad er et API? Vi oversætter det til dig! blev først udgivet på Co-coders.

    ]]>

    tech-dansk ordbog

    Hvad er et API? Vi oversætter det til dig!

      Læs med her og Få bedre styr på Det tekniske ord API

      API’er er meget populære og mange inden for programmering snakker om det. Derfor skal du selvfølgelig også være en del af den samtale, og du kommer allernemmest i gang ved at læse vores blogpost! I dette blogpost vil vi kradse i overfladen af, hvad et API er. Det vil hjælpe dig til at kunne snakke med, når en kollega, ven eller onkel ryster et term som API ud af ærmet til frokosten. 

      Kort fortalt står API for Application Programming Interface,og det generelle koncept for et API er, at det er software, som faciliterer interaktion med et andet stykke software, som f.eks en server eller database. For bedre at forstå det koncept kan en ikke it-relateret analogi hjælpe en del!

       

      Restaurant-analogi

      Forestil dig, at du sidder på en dejlig restaurant. På restauranten interagerer vi med en tjener. Her kan vi få information om menuen, bestille vores mad, betale regningen og så videre. Tjeneren går derefter ud i køkkenet for at give din bestilling videre, for at få information om maden, og for at give dig din bestilling, når det er tilberedt.

      Tjeneren skærmer dig for at skulle forstå alt det komplekse, som foregår ude bagved i restauranten: om ovnene er tændt, hvordan grøntsagerne tilberedes, hvordan anretning skal være, have styr på beholdningen af fødevarer, eller hælde drikke op.

      Tjeneren fungerer som et interface mellem dig og den service, som restauranten tilbyder. Du kan derfor stadig interagere med restauranten uden at skulle have forståelse for alt dens kompleksitet.

      Vi kan derfor sige, at tjeneren fungerer som restaurantens API.

      Restaurant-analogi

      Forestil dig, at du sidder på en dejlig restaurant. På restauranten interagerer vi med en tjener. Her kan vi få information om menuen, bestille vores mad, betale regningen og så videre. Tjeneren går derefter ud i køkkenet for at give din bestilling videre, for at få information om maden, og for at give dig din bestilling, når det er tilberedt.

      Tjeneren skærmer dig for at skulle forstå alt det komplekse, som foregår ude bagved i restauranten: om ovnene er tændt, hvordan grøntsagerne tilberedes, hvordan anretning skal være, have styr på beholdningen af fødevarer, eller hælde drikke op.

      Tjeneren fungerer som et interface mellem dig og de servicer restauranten tilbyder. Du kan derfor stadig interagere med restauranten uden at skulle have forståelse for alt dens kompleksitet.

      Vi kan derfor sige, at tjeneren fungerer som restaurantens API.

      Hvorfor er API’er smarte?

      API’er er brugbare for mange, og de bliver brugt konstant. API’ets facilitering af interaktionen mellem et stykke software med et andet stykke software kan nemlig bruges til at give adgang til data eller en evne fra andet software. Hvis du vil lave en app, der skal fortælle om, der er solskin over Aarhus, kan du gøre brug af Vejrdata i Din Bys API. Her vil API’et være tjeneren på restauranten, som går til køkkenet eller Vejrdata i Din Bys server og viderebringer din anmodning om at få data om Aarhus’ vejr. Serveren processerer anmodningen og giver svaret til tjeneren eller API’et, som serverer data til dig. API’et gemmer kompleksiteten og gør det muligt for dig at bygge software uden f.eks. at skulle være ekspert i, hvordan man måler vejrdata oveni. 

      REST og HTTP

      I din videre forståelse af API’er vil du måske også støde på en betegnelse kaldet REST. REST står for REpresentational State Transfer, det er en softwarearkitektur og mange API’er er lavet herefter. Det vil sige, at de overholder nogle regler og krav, som gør, at de er RESTful. Grunden til, at man bruger REST, er for at gøre det enklere for udviklere at interagere med API’er og de ressourcer, som de kan tilbyde over nettet. Du behøver ikke at vide mere foreløbigt om REST end, at informationen eller data fra REST API’et bliver leveret i et af flere dataformater (se vores blogindlæg om dataformater)  via HTTP protokollen. 

      HTTP står for HyperText Transfer Protocol og er den protokol eller kontrakt, som er grundlaget for enhver dataudveksling på nettet. Du kan måske også genkende det fra din adresselinje på din webbrowser, hvor der står “https” foran URL’en, som er siden du vil tilgå (det kan f.eks. se sådan ud: https://www.google.dk/). HTTP gør, at vi kan anmode et web-baseret API om data ved brug af dets URL, det kan du gøre både gennem din egen browser eller programmatisk. En offentlig API har en dokumentationsside tilknyttet, hvor du kan finde, hvad URL’en skal bestå af for at hente data. 

      Hop ud i det!

      Dyk gerne mere ned i REST, HTTP og deres forbindelser til API, men vi er også af den tro, at alt bliver sjovere, hvis man hurtigst muligt selv får fingrene ned i det. Ved at følge vores guide “Få fingrene i noget JSON” på dataformat-blogindlægget, kan du hurtigt komme i gang og både få kaldet et API, tilgå noget data, samt præsentere det. 

      Hvis du gerne vil se et eksempel på, hvad man kan bygge ved hjælp af et API, kan vi anbefale et interaktivt verdenskort, som viser, hvor SMK’s malerier af C.W. Eckersberg har været udstillet. Kortet er lavet af Max Odsbjerg Pedersen fra Aarhus Universitets Bibliotek ved hjælp af Statens Museum for Kunsts API, som også har en god dokumentationsside. 

      Psst: Hvis du leger med API’er i din browser, kan et gratis plugin gøre det hele mere læsevenligt f.eks. JSONview (til Google Chrome) eller JSON Peep (til Safari). 

      Hvorfor er API’er smarte?

      API’er er brugbare for mange, og de bliver brugt konstant. API’ets facilitering af interaktionen mellem et stykke software med et andet stykke software kan nemlig bruges til at give adgang til data eller en evne fra andet software. Hvis du vil lave en app, der skal fortælle om, der er solskin over Aarhus, kan du gøre brug af Vejrdata i Din Bys API. Her vil API’et være tjeneren på restauranten, som går til køkkenet eller Vejrdata i Din Bys server og viderebringer din anmodning om at få data om Aarhus’ vejr. Serveren processerer anmodningen og giver svaret til tjeneren eller API’et, som serverer data til dig. API’et gemmer kompleksiteten og gør det muligt for dig at bygge software uden f.eks. at skulle være ekspert i, hvordan man måler vejrdata oveni. 

      REST og HTTP

      I din videre forståelse af API’er vil du måske også støde på en betegnelse kaldet REST. REST står for REpresentational State Transfer, det er en softwarearkitektur og mange API’er er lavet herefter. Det vil sige, at de overholder nogle regler og krav, som gør, at de er RESTful. Grunden til, at man bruger REST, er for at gøre det enklere for udviklere at interagere med API’er og de ressourcer, som de kan tilbyde over nettet. Du behøver ikke at vide mere foreløbigt om REST end, at informationen eller data fra REST API’et bliver leveret i et af flere dataformater (se vores blogindlæg om dataformater)  via HTTP protokollen. 

      HTTP står for HyperText Transfer Protocol og er den protokol eller kontrakt, som er grundlaget for enhver dataudveksling på nettet. Du kan måske også genkende det fra din adresselinje på din webbrowser, hvor der står “https” foran URL’en, som er siden du vil tilgå (det kan f.eks. se sådan ud: https://www.google.dk/). HTTP gør, at vi kan anmode et web-baseret API om data ved brug af dets URL. En offentlig API har en dokumentationsside tilknyttet, hvor du kan finde, hvad URL’en skal bestå af for at hente data. 

      Hop ud i det!

      Dyk gerne mere ned i REST, HTTP og deres forbindelser til API, men vi er også af den tro, at alt bliver sjovere, hvis man hurtigst muligt selv får fingrene ned i det. Ved at følge vores guide “Få fingrene i noget JSON” på dataformat-blogindlægget, kan du hurtigt komme i gang og både få kaldet et API, tilgå noget data samt præsentere det. 

      Hvis du gerne vil se et eksempel på, hvad man kan bygge ved hjælp af et API, kan vi anbefale et interaktivt verdenskort, som viser, hvor SMK’s malerier af C.W. Eckersberg har været udstillet. Kortet er lavet af Max Odsbjerg Pedersen fra Aarhus Universitets Bibliotek ved hjælp af Statens Museum for Kunsts API, som også har en god dokumentationsside. 

      Psst: Hvis du leger med API’er i din browser, kan et gratis plugin gøre det hele mere læsevenligt f.eks. JSONview (til Google Chrome) eller JSON Peep (til Safari). 

      Hvordan kommer jeg videre?

      Efter dette blogindlæg har du fået et bedre kendskab til API’er. For at dykke mere ned i den tekniske del af det og lege videre kan du f.eks.:

      Lære mere om HTTP for bedre at forstå, hvordan et webbaseret API fungerer her

      Gøre brug af lærerige Youtube-videoer

      Hoppe ind på vores Discord-server og spørge løs, hvis du møder udfordringer

      Vi hepper på dig!

      De bedste hilsner fra

      Idéer til nye blogindlæg?

      Skriv til os på hi@cocoders.dk og del dine ønsker til nye blogindlæg og guides.

      Indlægget Hvad er et API? Vi oversætter det til dig! blev først udgivet på Co-coders.

      ]]>
      Data a-hvad-formater? https://cocoders.dk/data-a-hvad-formater/ Mon, 22 Aug 2022 19:20:45 +0000 https://cocoders.dk/?p=2302 CSV, JSON OG MANGE ANDRE.... DATA KOMMER I MANGE FORMER OG STØRRELSER.

      Data bliver ofte kaldt det nye olie… Ligesom olie har data dog ingen værdi, hvis vi ikke kan finde ud af at håndtere og bearbejde det.

      Indlægget Data a-hvad-formater? blev først udgivet på Co-coders.

      ]]>

      tech-dansk ordbog

      Data af-hvad-formater?

      CSV, JSON og mange andre…

      Data kommer i mange former og størrelser.
      Læs med og lær mere om de mest udbredte formater 🙂

      Data bliver ofte kaldt det nye olie… Der sker især noget magisk, hvis man kan kalde det Big Data – så har det høj værdi. Ligesom olie har data dog ingen værdi, hvis vi ikke kan finde ud af at håndtere og bearbejde det. Hvis vi skal være gode til at bearbejde data, er det først og fremmest vigtigt at forstå de former og strukturer, data kommer i – også kaldet dataformater.

      Hvad er et dataformat?

      Før vi dykker ned i de mest udbredte dataformater, er det vigtigt at forstå, HVAD et dataformat overhovedet er?

      Et dataformat er en standardiseret måde at strukturere data på og pakke data ind – dvs. en måde, som man er blevet enige om bredt i IT-miljøet. F.eks. kan vi have data i et tabelformat, som de fleste kender 🙂 Det betyder i bund og grund, at vi strukturerer data i rækker og kolonner. De fleste kender til et Excel-ark, hvor det er tydeligt, at data struktureres i rækker og kolonner. Et andet format, der understøtter rækker og kolonner, men hvor det er knap så tydeligt, er csv-filer. I csv-filer adskilles kolonner med et komma og en ny række indikeres med et linieskift. Længere nede gennemgår vi csv-filer lidt mere dybdegående.

      Når vi sender data frem og tilbage imellem databaser eller til programmer, så er det selvfølgelig først og fremmest vigtigt, at data er rigtige – dvs. at værdierne er rigtige – men det er også vigtigt, at databasen eller programmet kan forstå at aflæse data, og det bliver meget nemmere, når vi allesammen er blevet enige om en struktureret måde at læse data på.

      Vi gennemgår derfor nedenfor to af de mest udbredte dataformater, så du er godt klædt på til at gå ud i verden og begynde med at flytte rundt på data og bearbejde data.

      De vigtigste dataformater

      Herunder gennemgår vi nogle af de mest udbredte dataformater. Når du har nogenlunde styr på nedenstående, er du godt rustet til at kaste dig ud i at importere, bearbejde og strukturere data fra filer eller måske endda API’er.

      De vigtigste dataformater

      Herunder gennemgår vi nogle af de mest udbredte dataformater. Når du har nogenlunde styr på nedenstående, er du godt rustet til at kaste dig ud i at importere, bearbejde og strukturere data fra filer eller måske endda API’er.

      CSV

       

      På billedet ses et skærmprint af en csv-fil. Den øverste linie er alle kolonnenavnene. Kolonnenavnene er ikke altid inkluderet i en csv-fil – nogle gange starter data bare på linie et – men det er altid rart, når de er der, fordi så får man bedre en forståelse for data og man er også sikker på, at man har de rigtige kolonnenavne, hvis man f.eks. skal sammenligne med data fra en anden datakilde, som relaterer sig til disse data.

      Når man kigger ned igennem rækkerne er det tydeligt, at der optræder en del kommaer, og hvis man kigger godt efter, kan man måske også se, at der for hver række er lige mange kommaer. Årsagen til dette er, at kommaerne angiver en ny kolonne. Data bliver altså ordnet i kolonner, hvor den første hedder “_id”, den næste kolonne hedder “time” osv. Hver gang der er et linieskift, starter en ny række i data. For hver række ordnes data under de korrekte kolonner alt efter hvilken position værdien står på i forhold til kommaerne.

      Hvis du gerne vil kigge nærmere på csv-filen fra billedet, kan du downloade den oprindelige fil her.

      JSON

      I modsætning til CSV, som imiterer en tabelstruktur, er JSON et dataformat, der minder mere om en træstruktur eller et hierarki. Dvs. der er et topelement, som er selve JSON-elementet, og så forgrener data sig under dette JSON-element.

      På billedet til venstre ses et eksempel på et JSON-element med informationer om Co-coders, som forgrener sig ned i underelementer med supplerende info, medarbejdere og andet.

      Nedenfor har vi forsøgt at illustrere, hvordan JSON-elementet på billedet kunne se ud, hvis man skulle tegne det.

      Når man tegner elementet, er det ret tydeligt at se, hvordan strukturen minder om et træ eller hierarki.

       

      Få fingrene i noget JSON

       

      Hvis du er nysgerrig på at lege med og se nogle data på JSON-format, så prøv at:

      1) gå til følgende link (API for solcelledata fra Aarhus),

      2) markér og kopier al tekst/data fra den nye fane,

      3) gå til JSON viewer,

      4) indsæt alle data fra link i pkt. 1 til ‘Text’-fanen i JSON viewer og

      5) tryk derefter på ‘Viewer’-fanen.

      Du har nu mulighed for at kigge ned i JSON-elementet på en brugervenlig måde og gå på opdagelse i de data, du har hentet fra API’et. Når du kigger på ‘Text’-fanen får du data i et råt JSON-format og på ‘Viewer’-fanen bliver det præsenteret på en overskuelig måde 🙂

        God fornøjelse!

      Nu hvor du har fået styr på lidt forskellige dataformater, kan du prøve at kaste dig ud i et Python-projekt, hvor du indhenter og bearbejder data. Hvis du ikke har kodet Python før, kan du hoppe over og tage et kig på vores guide til at komme godt i gang med Python her.

      Vi hepper på dig!

      De bedste hilsner fra

      Idéer til nye blogindlæg?

      Skriv til os på hi@cocoders.dk og del dine ønsker til nye blogindlæg og guides.

      Indlægget Data a-hvad-formater? blev først udgivet på Co-coders.

      ]]>