Har du testat Chat GPT ännu?
7 minuter i lästid Java C++ AI

Har du testat Chat GPT ännu?

Jag utgår från att du inte missat vårvinterns stora teknik-snackis, nämligen Chat GPT från Open AI. Reaktionerna har varit allt från förundran till förskräckelse. Oavsett vad man själv tycker i frågan, så är det ett faktum att AI finns enkelt tillgängligt nu och man som verksam inom programutveckling bör bilda sig en egen uppfattning.

Du skapar ett konto via https://chat.openai.com/. Du kommer att få validera både e-postadress och telefonnummer, sedan är det bara att fråga på.

Jag kunde inte låta bli att fråga om Ribomation.

  • Jens: Vad är ribomation?
  • Svar: "Ribomation" är ett företag som specialiserar sig på utbildning och konsulttjänster inom området industriell automation, inklusive processkontroll, instrumentering, elkraft, maskinsäkerhet och programmering av automations- och styrsystem. Företaget grundades av Jens Ribo, som är en erfaren ingenjör och utbildare inom industriell automation. Ribomation erbjuder olika typer av utbildningar, workshops och konsulttjänster både online och på plats hos företagskunder runt om i världen.

Tja, helt rätt var det ju inte. Dessvärre är vi inte verksamma inom processkontroll, elkraft, maskinsäkerhet med mera. Emellertid, är ju många av våra kunder det. Sen, frågade jag om våra kurser.

  • Jens: Har ribomation kurser om c++?

  • Svar: Ja, Ribomation erbjuder kurser inom programmering, inklusive kurser om C++. Dessa kurser fokuserar särskilt på användning av C++ för att utveckla mjukvarulösningar för automations- och styrsystem, inklusive programmering av mikrokontrollers och PLC-enheter. Ribomations kurser om C++ är utformade för att ge både nybörjare och erfarna programmerare en praktisk och tillämpbar förståelse för språket, dess syntax och dess användning inom automations- och styrsystem. Du kan besöka Ribomations webbplats för mer information om deras kurser och utbildningar.

  • Jens: Har ribomation kurser om spring framework?

  • Svar: Ja, Ribomation erbjuder kurser om Spring Framework. Spring Framework är en populär och omfattande ramverk för Java-programmering, och används ofta för att utveckla webbapplikationer och andra mjukvarusystem. Ribomations kurser om Spring Framework täcker olika aspekter av ramverket, inklusive konfiguration, hantering av databasåtkomst, utveckling av webbapplikationer med hjälp av Spring MVC och implementering av säkerhetsfunktioner med hjälp av Spring Security. Kurserna är utformade för att ge en praktisk förståelse för hur Spring Framework kan användas för att bygga högpresterande och skalbara Java-applikationer. Du kan besöka Ribomations webbplats för mer information om deras kurser och utbildningar.

Eftersom vi för några dagar sedan hade den första april, så frågade jag om det mest ikoniska aprilskämtet i Sverige.

  • Jens: Berätta om aprilskämtet om nylonstrumpa och tv?

  • Svar: En klassiker bland aprilskämt i Sverige är det så kallade "nylonstrumpa- och tv-skämtet". Skämtet går ut på att man i förväg berättar för någon, till exempel en familjemedlem eller en vän, att man har hittat en fantastisk hemlighet för att rengöra TV-skärmen. Hemligheten är att använda en nylonstrumpa fuktad med vatten eller rengöringsmedel för att torka av skärmen. När personen väl försöker rengöra sin TV-skärm med en nylonstrumpa så märker hen snart att det inte fungerar alls, utan istället blir det smutsigt eller repigt. Detta skapar ofta förvirring och frustration hos personen, medan den som spelar skämtet kan ha svårt att hålla sig för skratt. Det här aprilskämtet har blivit mycket populärt i Sverige och har använts under många år. Det är ett relativt harmlöst skämt som oftast får folk att skratta åt sin egen naivitet. Men självklart är det viktigt att se till att personen som utsätts för skämtet inte blir alltför upprörd eller arg över det hela.

  • Jens: Nä, där har du helt fel! aprilskämtet om nylonstrumpa och tv var i början på 1970-talet och det sades att om man satte en nylonstrumpa över skärmen på en tv med svartvit bild, så skulle bilden visas i färg. många som fortfarande hade svartvit tv vid denna tid gick på aprilskämtet.

  • Svar: Du har helt rätt, och jag ber om ursäkt för mitt tidigare felaktiga svar. Jag hade missuppfattat vilket aprilskämt det handlade om och blandat ihop det med ett annat skämt som också involverar en nylonstrumpa och en TV-skärm. Du har helt rätt i att det klassiska aprilskämtet om nylonstrumpa och TV går ut på att sätta en nylonstrumpa över en svartvit TV-skärm och påstå att det gör att bilden visas i färg. Detta skämt var mycket populärt i början på 1970-talet och många personer gick på det. Tack för att du rättade mig och jag hoppas att mitt svar nu är mer korrekt och informativt.

Sen kollade jag om den kan skriva ett trivialt Java program.

  • Jens: Skriv ett program i Java, som hämtar och skriver ut https://www.ribomation.se/robots.txt
  • Svar: Här är ett Java-program som hämtar och skriver ut innehållet i robots.txt-filen på https://www.ribomation.se/:
import java.net.*;
import java.io.*;

public class RobotsTxtExample {
    public static void main(String[] args) {
        try {
            URL url = new URL("https://www.ribomation.se/robots.txt");
            BufferedReader in = new BufferedReader(
                                new InputStreamReader(url.openStream()));
            String line;
            while ((line = in.readLine()) != null) {
                System.out.println(line);
            }
            in.close();
        } catch (MalformedURLException e) {
            System.out.println("Invalid URL: " + e.getMessage());
        } catch (IOException e) {
            System.out.println("I/O error: " + e.getMessage());
        }
    }
}
  • Jens: Nä, bättre kan du! varför inte använda try-closable och lines() stream?
  • Svar: Absolut, det går att använda try-with-resources och lines() stream för att förenkla koden och minska risken för läckage av resurser. Här är ett exempel på ett Java-program som hämtar och skriver ut innehållet i robots.txt-filen på https://www.ribomation.se/ med hjälp av try-with-resources och lines() stream:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

public class RobotsTxtExample {
    public static void main(String[] args) {
        try {
            URL url = new URL("https://www.ribomation.se/robots.txt");
            try (BufferedReader reader = new BufferedReader( 
                                        new InputStreamReader(url.openStream()))) {
                reader.lines().forEach(System.out::println);
            }
        } catch (IOException e) {
            System.out.println("I/O error: " + e.getMessage());
        }
    }
}
  • Jens: Schysst!
  • Svar: Tack! Jag hoppas att det hjälper. Om du har fler frågor eller funderingar så tveka inte att fråga.

Jag bad också om ett litet program i C++.

  • Jens: Skriv ett program i Modern C++, som listar alla primtal mindre än 100
  • Svar: Här är ett program i modern C++ som listar alla primtal mindre än 100. Programmet använder sig av så kallad "siktning" för att lista alla primtal mindre än 100. Algoritmen fungerar genom att först anta att alla tal är primtal och sedan gå igenom varje tal från 2 upp till kvadratroten av 100. För varje tal som antas vara ett primtal, markeras alla dess multiplar som icke-primtal. Därefter skrivs alla primtal ut. I det här fallet har vi använt en vektor med bool-värden för att hålla reda på vilka tal som är primtal. För varje tal i vektorn är värdet true om talet är ett primtal och false annars. Efter siktningen skrivs alla tal vars värde är true ut till konsolfönstret.
#include <iostream>
#include <vector>
using namespace std;

int main() {
    const int limit = 100;
    vector<bool> is_prime(limit, true);
    
    for (int i = 2; i * i < limit; ++i) {
        if (is_prime[i]) {
            for (int j = i * i; j < limit; j += i) {
                is_prime[j] = false;
            }
        }
    }
    
    for (int i = 2; i < limit; ++i) {
        if (is_prime[i]) {
            cout << i << " ";
        }
    }
    cout << endl;
}

Du kan köra programmet direkt via Compiler Explorer och denna direktlänk: https://godbolt.org/z/xxGd9T44a

Som sagt var; AI är här för att stanna. Så sätt igång och bilda dig en egen uppfattning.