Kodare, hur använder du chatGPT?

Permalänk
Medlem
Skrivet av talonmas:

Majoriteten av kod är ju boiler plate som bara måste göras. De spännande algoritmerna och optimeringarna är ofta en väldigt liten del av hela applikationen. Även för inbyggda system eller shader programmering så tycker jag det är så. Kanske bara haft otur med mina arbetsgivare?

Men allt blir vardag när man kodat några år. Enligt mig

Nyfiken på vad du räknar som boilerplate, anser du att syntax är boilerplate?

Gällande AI så tror jag att vi går mot en mer automatiserad framtid med hjälp från AI. I många andra branscher så talas det om en ny yrkeskategori för att övervaka AI för att förhindra fel. Inom programmering så tror jag att AI:n stundvis kommer producera buggig kod (antagligen mindre frekvent än människor) men jag är nyfiken på att kostnaden av att felsöka AI-genererad kod i förhållande till handskriven kod.

Jag har kodad i 11 år nu och jag tycker att yrket blir vad man gör det till. Jag inledde min karriär med en mentalitet där jag gjorde mina timmar och sedan lämnade jag jobb och intresserade mig inte mer för kod. Detta blev lätt vardag och ointressant.

Idag jobbar jag iofs fortfarande enbart 08-17 men jag har gjort kodning till min hobby och letar aktivt efter ämnen som intresserar mig och försöker hitta intressanta tekniker/projekt som jag kan introducera i mitt arbete. Det tyckte jag gjorde en positiv skillnad i min inställning till jobb.

Permalänk
Medlem

chat GPT hjälper mig som amatörkodare att skriva kod som fungerar på fem sekunder, eller hjälper mig att lösa problem som annars hade tagit mig otroligt mycket längre tid.

chat GPT är som att ha en professionell människa i alla områden (nästan), bredvid dig - dygnet runt - redo att ge dig svaret på det du undrar.

AI, när den blir nästintill felfri, kommer på sikt göra människor mer korkade eftersom att vi inte behöver lära oss saker. Om du ska skriva en uppsats så låter du bara chat GPT göra det åt dig.

Permalänk
Skrivet av evil penguin:

Och om man nu tänker sig ett scenario med en utvecklare som inte vet vad de sysslar med så riskerar de förstås att skjuta dig i foten oavsett om de använder ChatGPT, klipper och klistrar något från Stackoverflow eller vad de nu ser för alternativ i det läget.

Hursomhelst, just som ett *verktyg* för ett accelererat arbetsflöde för någon som åtminstone har hygglig ordning på vad de sysslar med ser jag det stora värdet. Ett verktyg som kan jämföras med något slags hjälpreda som snabbt kan producera utkast på väg fram mot lösningen, typ.

Ett par exempel som jag kommer att tänka på som visar lite vad ChatGPT ändå kan göra åt en gällande kodgenerering:

Ja, det är så här jag använder det just nu. Sitter och småfrågar små saker, främst RegEx i PHP som gett mig huvudvärk. Den stora fördelen med verktyget är att ett potentiellt korrekt svar kommer fortare till en jämfört med att googla fram 10+ år gamla stackOverflow-svar!

Beträffande kodgenerering så fick jag en kort JS-snippet för att slå av och på vald CSS-klass för att jag skulle få till en särskild CSS-effekt som inte går annars då jag ej får använda required i inmatningsfält då all validering ska skötas med PHP i nuvarande kurs:

// JS EventListener to toggle a CSS class. This is so PHP code can validate // Otherwise if I use input attribute required in text fields, PHP code would // not be the one to output demands or warnings which is required by this course. // Wait for entire HTML to be loaded first. document.addEventListener('DOMContentLoaded', function() { // Then select all elements with class name fieldListen let inputFields = document.querySelectorAll('.fieldListen'); // Only add EventListeners for such existing input fields. if (inputFields.length > 0) { for (let i = 0; i < inputFields.length; i++) { // Add class to existing fields with already existing values inside of them if(inputFields[i].value !== ''){inputFields[i].classList.add('notEmpty');} // Add event listener for when focus is lost inputFields[i].addEventListener('blur', function() { // Toggle between CSS class depending on field is empty or not if (this.value !== ''){this.classList.add('notEmpty'); }else {this.classList.remove('notEmpty');}});}}});

Samma kod bad jag skrivas som en klass i JS som jag nu fattar bättre då jag nött OO PHP i flera veckor (tidigare fattade jag inte ens vad constructor var i JS):

class toggleCSSEffect { constructor(className) { this.className = className; this.fields = document.querySelectorAll(`input.${className}`); this.addEventListeners(); } addEventListeners() { this.fields.forEach((field) => { field.addEventListener("input", () => { if (field.value !== "") { field.classList.add("notEmpty"); } else { field.classList.remove("notEmpty"); } }); }); } }

Jag lade dock till en rad i första JS-snippet som jag fick från GPT:

// Add class to existing fields with already existing values inside of them if(inputFields[i].value !== ''){inputFields[i].classList.add('notEmpty');}

Detta behövdes för händelselyssnaren är blur och inmatningsfält som tidigare varit ifyllda (t.ex. man skrivit fel i annat fält men rätt i något som inte borde försvinna när php-sidan laddas om) påverkades inte längre vid omladdning av sida. Hade jag varit helt nybörjare inom webbutveckling så hade jag aldrig fattat vad jag hållit på med här.

Så helt klart mer verktyg än en "kodar-ersättare". En intressant sak att utmana GPT är hur Big-O-optimerad dennes kod är eller kan bli efter upprepade försök?

Visa signatur

<WKL:"En kodrad i taget!";/>

Permalänk
Medlem
Skrivet av orp:

Nyfiken på vad du räknar som boilerplate, anser du att syntax är boilerplate?

Gällande AI så tror jag att vi går mot en mer automatiserad framtid med hjälp från AI. I många andra branscher så talas det om en ny yrkeskategori för att övervaka AI för att förhindra fel. Inom programmering så tror jag att AI:n stundvis kommer producera buggig kod (antagligen mindre frekvent än människor) men jag är nyfiken på att kostnaden av att felsöka AI-genererad kod i förhållande till handskriven kod.

Jag har kodad i 11 år nu och jag tycker att yrket blir vad man gör det till. Jag inledde min karriär med en mentalitet där jag gjorde mina timmar och sedan lämnade jag jobb och intresserade mig inte mer för kod. Detta blev lätt vardag och ointressant.

Idag jobbar jag iofs fortfarande enbart 08-17 men jag har gjort kodning till min hobby och letar aktivt efter ämnen som intresserar mig och försöker hitta intressanta tekniker/projekt som jag kan introducera i mitt arbete. Det tyckte jag gjorde en positiv skillnad i min inställning till jobb.

Ska nog försöka ta till mig den mentaliteten. Vill ha kul igen på jobbet

Visa signatur

Processor: Motorola 68000 | Klockfrekvens: 7,09 Mhz (PAL) | Minne: 256 kB ROM / 512 kB RAM | Bussbredd: 24 bit | Joystick: Tac2 | Operativsystem: Amiga OS 1.3

Permalänk
Keeper of the Bamse
Skrivet av sniglom:

Har du prövat?

Tom Scott låter ChatGPT skriva skript för att sortera mail
https://www.youtube.com/watch?v=jPhJbKBuNnA

Kaze försöker att optimera c-kod med ChatGPT. ChatGPT förstår koden och ger rimliga optimeringsförslag, däremot leder det ingenstans då det redan är noga handoptimerad kod för Nintendo 64. Hade det varit "vanlig" kod till x86 hade det nog gått betydligt bättre.
https://www.youtube.com/watch?v=9QZlQMpNk-M

Jag prövade att be om följande:
"Jag vill ha ett program i python som först skriver ut fizzbuzz och sedan gör hello world. Slutligen ska det ladda hem html från google och skriva ut titeln på hemsidan."

# FizzBuzz for num in range(1, 101): if num % 3 == 0 and num % 5 == 0: print("FizzBuzz") elif num % 3 == 0: print("Fizz") elif num % 5 == 0: print("Buzz") else: print(num) # Hello World print("Hello World") # Hämta HTML från Google och skriv ut titeln import requests from bs4 import BeautifulSoup url = "https://www.google.com" response = requests.get(url) soup = BeautifulSoup(response.text, "html.parser") title = soup.title.string print("Title of Google's homepage is:", title)

Det fungerade direkt när jag provkörde det. Simpelt exempel så klart, men ChatGPT kan skriva kod.

Ja jag har prövat såklart

Såg du själv Toms video? Vid 7:39 säger han "The code it gave back was a bit wrong", första den gjorde var fel.

Att göra en hello world och hämta html är ju riktigt simpelt, något man bör kunna göra för att chatGPT ska var användbart öht. Att säga att ChatGPT "kan koda" är ju nästan enhetligt felaktigt, då man måste kunna koda själv för att hoppa in och rätta till fel, eller helt enkelt bara kunna förstå vad man ska säga åt den. Den kan göra ett första draft, men att bara be att skriva en transaktionsmotor eller något mer specifikt än en kalkylator eller en json-parser kommer inte gå.

Det är coolt, och hjälper mig då och då i jobbet, men den genererar absolut inte någon komplett kod som bara kan kompileras och köras i prod. (Inte för att man någonsin ska stoppa in faktiska programmerares kod rakt in i prod, programmerare kan oftast inte heller koda )

Visa signatur

i7 10770K, NH-D15. 16GB corsair. RTX 3080. 3TB nvme. Samsung G9. Fractal Torrent Compact. Corsair RM850.
Logitech G pro wireless mouse. Logitech TKL915 wireless. Logitech Pro X Wireless.
Macbook pro M1 (16GB, 512GB). HP Reverb G2.
www.bamseclockers.com

Permalänk
Medlem
Skrivet av WebbkodsLärlingen:

Ja, det är så här jag använder det just nu. Sitter och småfrågar små saker, främst RegEx i PHP som gett mig huvudvärk. Den stora fördelen med verktyget är att ett potentiellt korrekt svar kommer fortare till en jämfört med att googla fram 10+ år gamla stackOverflow-svar!

Beträffande kodgenerering så fick jag en kort JS-snippet för att slå av och på vald CSS-klass för att jag skulle få till en särskild CSS-effekt som inte går annars då jag ej får använda required i inmatningsfält då all validering ska skötas med PHP i nuvarande kurs:

// JS EventListener to toggle a CSS class. This is so PHP code can validate // Otherwise if I use input attribute required in text fields, PHP code would // not be the one to output demands or warnings which is required by this course. // Wait for entire HTML to be loaded first. document.addEventListener('DOMContentLoaded', function() { // Then select all elements with class name fieldListen let inputFields = document.querySelectorAll('.fieldListen'); // Only add EventListeners for such existing input fields. if (inputFields.length > 0) { for (let i = 0; i < inputFields.length; i++) { // Add class to existing fields with already existing values inside of them if(inputFields[i].value !== ''){inputFields[i].classList.add('notEmpty');} // Add event listener for when focus is lost inputFields[i].addEventListener('blur', function() { // Toggle between CSS class depending on field is empty or not if (this.value !== ''){this.classList.add('notEmpty'); }else {this.classList.remove('notEmpty');}});}}});

Samma kod bad jag skrivas som en klass i JS som jag nu fattar bättre då jag nött OO PHP i flera veckor (tidigare fattade jag inte ens vad constructor var i JS):

class toggleCSSEffect { constructor(className) { this.className = className; this.fields = document.querySelectorAll(`input.${className}`); this.addEventListeners(); } addEventListeners() { this.fields.forEach((field) => { field.addEventListener("input", () => { if (field.value !== "") { field.classList.add("notEmpty"); } else { field.classList.remove("notEmpty"); } }); }); } }

Jag lade dock till en rad i första JS-snippet som jag fick från GPT:

// Add class to existing fields with already existing values inside of them if(inputFields[i].value !== ''){inputFields[i].classList.add('notEmpty');}

Detta behövdes för händelselyssnaren är blur och inmatningsfält som tidigare varit ifyllda (t.ex. man skrivit fel i annat fält men rätt i något som inte borde försvinna när php-sidan laddas om) påverkades inte längre vid omladdning av sida. Hade jag varit helt nybörjare inom webbutveckling så hade jag aldrig fattat vad jag hållit på med här.

Så helt klart mer verktyg än en "kodar-ersättare". En intressant sak att utmana GPT är hur Big-O-optimerad dennes kod är eller kan bli efter upprepade försök?

Alltså, som student/någon som försöker lära sig programmering ser jag dessa verktyg som en nackdel. Du lär dig så otroligt mycket av att själv behöva söka upp informationen istället för att blint lita på vad ett chattverktyg säger åt dig är rätt - för hur ska du kunna avgöra om det är rätt eller ej om du inte förstår koden som genererats?

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB

Permalänk
Medlem

Jag har använt ChatGPT en del för kod. Satt typ tre dagar i rad när jag först upptäckte hur väl det fungerade och bad den skapa fullt med saker bara för skojs skull, samt ställde logiska frågor kring det. Givetvis gjorde den mycket fel, men det var nästan alltid "bara" kodfel, medan den nästan alltid förstod vad jag menade. Om ni har bett den skapa något lite större, oavsett om det är kod, en berättelse eller något annat, så ställ logiska följdfrågor. Det är helt chockerande hur väl den "förstår" de olika aspekterna och interaktionerna som är involverade.

Jag studerar fortfarande så för mer riktiga saker har det mest handlat om studier. Jag behöver sitta en hel del med Pandas, Numpy och Matplotlib, och för att vara branschstandard så är de otroligt jobbiga att använda. Fullt med förkortningar, strängar som argument, omvända ordningar på x och y för att passa någon Matlabstandard från 1998 och så vidare. För att inte nämna förvånande dålig dokumentation. "That's entirely the wrong kind of attitude" har blivit ett internskämt bland de jag pluggar med på grund av det vanligaste svaret på Stackoverflow när man googlar hur man gör saker i NumPy.

Där passar ChatGPT perfekt. Det jag ofta vill göra är trivialt, men svårt att söka efter, både i dokumentation och i Stackoverflow. T.ex. "This matmul function gives me this cryptic key error" och man får direkt svaret att Pandas matmul inte fungerar baserat på positioner utan på labels, och kod för att antingen infoga labels eller konvertera till NumPy för att göra beräkningen. Supersmidigt.

Eller typ "Jag har en dataframe. Hur gör jag cosine similarity på raderna". Givetvis någonting jag hade kunnat göra manuellt med en NumPy matrix, men ChatGPT ger mig direkt en SKlearn metod för det. Snabbt och smidigt. Jag hade säkert kunnat bett om en manuell NumPy lösning eller rent av en native Python lösning med genomgång av hur den skulle fungera. (ChatGPT kan inte räkna matte som en miniräknare över huvud taget, men den kan hitta vilka formler den bör använda och dess effekter relativt bra)

Skrivet av Pamudas:

Alltså, som student/någon som försöker lära sig programmering ser jag dessa verktyg som en nackdel. Du lär dig så otroligt mycket av att själv behöva söka upp informationen istället för att blint lita på vad ett chattverktyg säger åt dig är rätt - för hur ska du kunna avgöra om det är rätt eller ej om du inte förstår koden som genererats?

ChatGPT listar sina argument och orsaker till varför den väljer olika bibliotek och så vidare mycket bättre än folk på Stackoverflow i min erfarenhet. Och man kan be om vidareutveckling på ett helt annat sätt.

Det är ett riktigt trevligt verktyg för att få lite bristfällig stödhjälp just nu, men baserat på vad den klarar och vad den misslyckas med så tror jag att en kommande generation av liknande system helt kan förändra kodrelaterade branscher de närmaste tio åren.

Jag har testat att ge den lite större kodstycken och bett den förklara vad koden gör, samt översätta till något annat språk. Detta klarar den chockerande väl.

Visa signatur

i5-7600k . GTX 1080 . 16 GB

Permalänk
Medlem
Skrivet av johanandersson:

Jag har använt ChatGPT en del för kod. Satt typ tre dagar i rad när jag först upptäckte hur väl det fungerade och bad den skapa fullt med saker bara för skojs skull, samt ställde logiska frågor kring det. Givetvis gjorde den mycket fel, men det var nästan alltid "bara" kodfel, medan den nästan alltid förstod vad jag menade. Om ni har bett den skapa något lite större, oavsett om det är kod, en berättelse eller något annat, så ställ logiska följdfrågor. Det är helt chockerande hur väl den "förstår" de olika aspekterna och interaktionerna som är involverade.

Jag studerar fortfarande så för mer riktiga saker har det mest handlat om studier. Jag behöver sitta en hel del med Pandas, Numpy och Matplotlib, och för att vara branschstandard så är de otroligt jobbiga att använda. Fullt med förkortningar, strängar som argument, omvända ordningar på x och y för att passa någon Matlabstandard från 1998 och så vidare. För att inte nämna förvånande dålig dokumentation. "That's entirely the wrong kind of attitude" har blivit ett internskämt bland de jag pluggar med på grund av det vanligaste svaret på Stackoverflow när man googlar hur man gör saker i NumPy.

Där passar ChatGPT perfekt. Det jag ofta vill göra är trivialt, men svårt att söka efter, både i dokumentation och i Stackoverflow. T.ex. "This matmul function gives me this cryptic key error" och man får direkt svaret att Pandas matmul inte fungerar baserat på positioner utan på labels, och kod för att antingen infoga labels eller konvertera till NumPy för att göra beräkningen. Supersmidigt.

Eller typ "Jag har en dataframe. Hur gör jag cosine similarity på raderna". Givetvis någonting jag hade kunnat göra manuellt med en NumPy matrix, men ChatGPT ger mig direkt en SKlearn metod för det. Snabbt och smidigt. Jag hade säkert kunnat bett om en manuell NumPy lösning eller rent av en native Python lösning med genomgång av hur den skulle fungera. (ChatGPT kan inte räkna matte som en miniräknare över huvud taget, men den kan hitta vilka formler den bör använda och dess effekter relativt bra)

ChatGPT listar sina argument och orsaker till varför den väljer olika bibliotek och så vidare mycket bättre än folk på Stackoverflow i min erfarenhet. Och man kan be om vidareutveckling på ett helt annat sätt.

Det är ett riktigt trevligt verktyg för att få lite bristfällig stödhjälp just nu, men baserat på vad den klarar och vad den misslyckas med så tror jag att en kommande generation av liknande system helt kan förändra kodrelaterade branscher de närmaste tio åren.

Jag har testat att ge den lite större kodstycken och bett den förklara vad koden gör, samt översätta till något annat språk. Detta klarar den chockerande väl.

Sjukt imponerande att höra hur mycket nytta du har haft, även om det är "smågrejer", och det kan väl bara bli bättre!

Permalänk
Medlem

Skulle vara intressant att ge den uppgifter man redan har kod och lösningar på och jämföra. Tror den främst agerar som en nybörjare, missar många detaljer och tolkar frågor fel (ingen förståelse av riktiga problemet utan löser något annat)

Man borde ju testa dock, tror det kan vara till viss del även om jag känner att själva kodskrivandet oftast inte är begränsningen i produktivitet

Permalänk
Medlem
Skrivet av medbor:

Skulle vara intressant att ge den uppgifter man redan har kod och lösningar på och jämföra. Tror den främst agerar som en nybörjare, missar många detaljer och tolkar frågor fel (ingen förståelse av riktiga problemet utan löser något annat)

Man borde ju testa dock, tror det kan vara till viss del även om jag känner att själva kodskrivandet oftast inte är begränsningen i produktivitet

Jag har testat den lite med frågor från tentor och labbar i kurser som jag varit teaching assistant i.

Till exempel "I have a long string of text and a list of indices of each starting position for every word in the text sorted according to the alphabetical order of the word it refrences. I want you to write a binary search algorithm in Python which accepts the text, the index list and a certain phrase and returns the first index in the list of indices which matches the phrase."

Jag skrev ungefär så här klumpigt och den gav mig ett perfekt svar.

Visa signatur

i5-7600k . GTX 1080 . 16 GB

Permalänk
Medlem

Jag provade lite oldschool

"could you show me how to make raster bars in amiga assembler?"

Svaret är ett gott försök men det är inte korrekt. Den fattar att det involverar en copperlista (en co-processor på amiga), men det är inte en rätt programmerad copper. Den hittar DMA registret. Den fattar att den skall vänta på vertical blank i main loop (VSync alltså) med det är fel register den jobbar med. Ganska gott försök är det ändå men fungerar absolut inte.

Jag kan inte se något syntaxfel dock, och programmet skulle ta sig igenom en assembler. En annan intressant grej är att den använder beq.s, bra.s för det kan man bara hoppa 128 bytes med. Så den har optimerat koden.

start: ; Set up the copper list move.l #CopperList, $dff080 move.l #0, $dff088 ; Set up the display mode move.w #$800, $dff096 move.w #$8, $dff0fc ; Enable copper DMA move.w #$c, $dff096 ; Main loop main: ; Wait for vertical blank move.w $dff01e, d0 btst #6, d0 beq.s main ; Update copper list lea CopperList, a0 move.l a0, $dff080 ; End of frame bra.s main ; Copper list CopperList: move.w #$81c0, $dff080 move.w #$0010, $dff082 move.w #$2000, $dff084 move.w #$00e0, $dff086 move.w #$01c0, $dff088 move.w #$f000, $dff08a move.w #$2000, $dff08c move.w #$0c00, $dff08e move.w #$31c0, $dff090 move.w #$0010, $dff092 move.w #$2000, $dff094 move.w #$00e0, $dff096 move.w #$0180, $dff098 move.w #$f000, $dff09a move.w #$2000, $dff09c move.w #$0c00, $dff09e move.w #$c1c0, $dff0a0 move.w #$0010, $dff0a2 move.w #$2000, $dff0a4 move.w #$00e0, $dff0a6 move.w #$01c0, $dff0a8 move.w #$f000, $dff0aa move.w #$2000, $dff0ac move.w #$0c00, $dff0ae move.w #$f7c0, $dff0b0 move.w #$0010, $dff0b2 move.w #$2000, $dff0b4 move.w #$00e0, $dff0b6 move.w #$01c0, $dff0b8 move.w #$f000, $dff0ba move.w #$2000, $dff0bc move.w #$0c00, $dff0be move.w #$ffff, $dff0c0

Permalänk
Medlem

Well…mina elever använder den flitig för deras ”English assignments” mindf_cking the teachers!

Visa signatur

My Rig https://classic.prisjakt.nu/list.php?ftg_check=on&exclude_ftg...
Fel av mig! Men sjutton vad snabba ni är på att kommentera vad andra gör och inte gör rätt och fel... :/

Permalänk
Medlem

Kan man koda så att koden kodar sig själv genom AI? Vore rätt skrämmande.

Visa signatur

If nobody hates you, you’re doing something wrong.

Permalänk
Medlem
Skrivet av Elakekocken:

Kan man koda så att koden kodar sig själv genom AI? Vore rätt skrämmande.

https://en.wikipedia.org/wiki/Technological_singularity

Visa signatur

i5-7600k . GTX 1080 . 16 GB

Permalänk
Medlem

Okej
Men är vi i närheten av detta?

Väldigt obehagligt om nån ”bättre vetande” utförde nån sjuk kod med hjälp av AI som sedan fortsatte själv.

Visa signatur

If nobody hates you, you’re doing something wrong.

Permalänk
Medlem

Enkelt svar: inte.

Jag ser inte alls hur det skulle hjälpa om jag ska vara ärlig. Väldigt sällan programmerar man något som är enklare att beskriva i ord + noggrant granska och justera än att bara göra det själv.

I yrkeslivet är 95% av alla problem extremt specifika och jag vet inte ens hur jag skulle ställa frågan och Herr.Bot kommer inte heller förstår interna bibliotek och ändringar i API:t som kommer om 3 veckor. Det går ju knappast säga till den att "uppdatera koden så den fungerar med version X av hemligt bibliotek Y som kommer om Z dagar, du får inte dokumentationen."

Sen är hela grejen att ChatGPT är väldigt bra på att låta som den har rätt utan att ha det. Helt orelaterat till kod, men i Matkoma's senaste video på YouTube så tyckte ChatGPT med otroligt självförtroende att en svensk frukost består av varmkorv, fika och bakelser.

För att inte tala om den fina loopen som kommer uppstå när hela internet är AI genererat och man fortsätter mata internet som träningsdata....

Permalänk
Medlem
Skrivet av Elakekocken:

Okej
Men är vi i närheten av detta?

Väldigt obehagligt om nån ”bättre vetande” utförde nån sjuk kod med hjälp av AI som sedan fortsatte själv.

Nä tror jag inte. Sen är det nog också helt annorlunda än vad folk tänkte på 80-talet. En skillnad är att våra bästa modeller idag är byggda på statistik och gigantiska datamängder, snarare än symbolisk logik. Det är i sig absolut inte ett hinder, man kan få så kallat "emergent behavior" som säkert skulle kunna gå längre än kunskapen i träningsdatan, men det borde inte bli lika explosionsartat som man kanske tänkte att det skulle bli. Sen får man glömma vilken extremt kraftig hårdvara som behöver användas för att träna dessa modeller under en lång tid. Det är inte som att folket dyker upp på labbet efter en helg och möter en överlägsen AI, helt enkelt för att iterationstiden blir åtminstone månader mellan varje förbättring enbart på grund av träningen, plus miljoner i serverkostnader som de säkert inte råkar missa

Jag tror detta kommer komma mycket långsamt om det händer över huvud taget, men det kanske börjar om några år.

Visa signatur

i5-7600k . GTX 1080 . 16 GB

Permalänk
Medlem

Jag har fått tillgång till nya Bing med chat och det har underlättat felsökning något enormt. Man slipper ofta gräva igenom flera trådar på stackoverflow och ändlösa Medium artiklar som aldrig kommer till poängen. Ofta kan Bing ge ett bra svar på varför jag får ett visst felmeddelande eller hur man gör något i terminalen. Ofta ger den även några alternativ på lösningar vilket är väldigt uppskattat, samt länkar till källorna vilket också är bra.
I vissa fall ger den inte jättebra svar men då är det också ofta svårt för mig att hitta ett bra svar på frågan med traditionell googling (eller Bingande )

Permalänk
Skrivet av Pamudas:

Alltså, som student/någon som försöker lära sig programmering ser jag dessa verktyg som en nackdel. Du lär dig så otroligt mycket av att själv behöva söka upp informationen istället för att blint lita på vad ett chattverktyg säger åt dig är rätt - för hur ska du kunna avgöra om det är rätt eller ej om du inte förstår koden som genererats?

Jag använder inte kod jag inte förstår/kan kommentera i detalj så därför använder jag GPT till småfrågor än faktiska fullständiga kodlösningar. Kodförslagen från GPT ser jag som kod att testa/experimentera med och inte det sista ordet om saken!

Visa signatur

<WKL:"En kodrad i taget!";/>

Permalänk
Medlem

Detta kanske också inte är ett så bra exempel, men den kan skapa testobjekt som ärligt talat är supertråkigt att göra själv:

"I got a python class Employee with fields ID (10 numbers), first name, last name and boss (another Employee or None). I need examples to test. Please fill 20 constructor calls in a list with unique data. Put it directly in a python list."

[
Employee(1111111111, "John", "Doe", None),
Employee(2222222222, "Jane", "Doe", None),
Employee(3333333333, "Bob", "Smith", None),
Employee(4444444444, "Alice", "Johnson", None),
Employee(5555555555, "David", "Brown", None),
Employee(6666666666, "Mary", "Wilson", None),
Employee(7777777777, "Michael", "Lee", None),
Employee(8888888888, "Sarah", "Taylor", None),
Employee(9999999999, "James", "Miller", None),
Employee(1234567890, "Jennifer", "Jackson", None),
Employee(2345678901, "William", "Harris", None),
Employee(3456789012, "Elizabeth", "Davis", None),
Employee(4567890123, "Joseph", "Anderson", None),
Employee(5678901234, "Catherine", "Thomas", None),
Employee(6789012345, "George", "Wilson", None),
Employee(7890123456, "Isabella", "Martin", None),
Employee(8901234567, "Edward", "Thompson", None),
Employee(9012345678, "Olivia", "White", None),
Employee(1122334455, "Henry", "Jones", None),
Employee(2233445566, "Sophia", "Garcia", None)
]

"How would the first five look in in JSON?"

[
{
"ID": 1111111111,
"first_name": "John",
"last_name": "Doe",
"boss": null
},
{
"ID": 2222222222,
"first_name": "Jane",
"last_name": "Doe",
"boss": null
},
{
"ID": 3333333333,
"first_name": "Bob",
"last_name": "Smith",
"boss": null
},
{
"ID": 4444444444,
"first_name": "Alice",
"last_name": "Johnson",
"boss": null
},
{
"ID": 5555555555,
"first_name": "David",
"last_name": "Brown",
"boss": null
}
]

"In a CSV?"

ID,first_name,last_name,boss
1111111111,John,Doe,
2222222222,Jane,Doe,
3333333333,Bob,Smith,
4444444444,Alice,Johnson,
5555555555,David,Brown,

Givetvis kan man göra mycket mer intressanta saker än så

Visa signatur

i5-7600k . GTX 1080 . 16 GB

Permalänk
Medlem

Provade om den kunde hjälp mig bygga ett finanssystem, ser helt ok ut som en liten start.

show me a database suitable for a ledger in sql syntax

CREATE DATABASE ledger; USE ledger; CREATE TABLE accounts ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, balance DECIMAL(10, 2) NOT NULL DEFAULT 0.00 ); CREATE TABLE transactions ( id INT AUTO_INCREMENT PRIMARY KEY, account_id INT NOT NULL, amount DECIMAL(10, 2) NOT NULL, date TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (account_id) REFERENCES accounts(id) );

could you make it double-entry?

CREATE DATABASE ledger; USE ledger; CREATE TABLE accounts ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, balance DECIMAL(10, 2) NOT NULL DEFAULT 0.00 ); CREATE TABLE transactions ( id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR(255) NOT NULL, date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE entries ( id INT AUTO_INCREMENT PRIMARY KEY, transaction_id INT NOT NULL, account_id INT NOT NULL, debit DECIMAL(10, 2) NOT NULL DEFAULT 0.00, credit DECIMAL(10, 2) NOT NULL DEFAULT 0.00, FOREIGN KEY (transaction_id) REFERENCES transactions(id), FOREIGN KEY (account_id) REFERENCES accounts(id) );

Permalänk
Medlem

Testade och kom fram till att svaret man fick inte var bra kod på flera punkter. Helt fel ibland och dåligt när det kommer till hur man bör strukturera och skriva koden.

Häftigt? Ja
Använda i arbetet? Nej

Däremot var den förträfflig att skriva små utkast av berättelser.

Ytterligare så lär dessa typer av ai gå i graven med tanke på intrången och plagiat som den gör. Men det är klart, arbetar man om hur den hämtar och bygger så kan de kanske slå. Man skulle dessutom behöva skriva licens via html- element/attribut ( tar rättigheter för den lösningen) som dessa ai kan läsa och ge betalt...

Visa signatur

Fulburken:
| I9 9900K
| Gigabyte Aorus Z390 AORUS MASTER
| Asus RTX 3090 Strix OC

Permalänk
Medlem

Jag tycker den svarar ganska väl, byggde vidare på mitt finanssystem i python. Det är ju självklart inte ett färdigt program, men den visar vad jag kan se korrekt hur man utför en transaktion. Så även om den inte kan skriva hela program, så är det ju enkelt om man kanske vill lära sig ett nytt språk att få lite inspiration och känsla för syntax osv.

show me basic python code to use the ledger

- Here is some basic Python code that demonstrates how to use the ledger database we created earlier. This code connects to the database, adds a new transaction with two entries, and updates the account balances accordingly

import mysql.connector # Connect to the database db = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="ledger" ) # Create a cursor object for executing SQL queries cursor = db.cursor() # Add a new transaction with two entries description = "Payment for invoice #123" debit_account = 1 # ID of the "Accounts Receivable" account debit_amount = 1000.00 credit_account = 2 # ID of the "Checking" account credit_amount = 1000.00 query = "INSERT INTO transactions (description) VALUES (%s)" cursor.execute(query, (description,)) transaction_id = cursor.lastrowid query = "INSERT INTO entries (transaction_id, account_id, debit, credit) VALUES (%s, %s, %s, %s)" cursor.execute(query, (transaction_id, debit_account, debit_amount, 0.00)) cursor.execute(query, (transaction_id, credit_account, 0.00, credit_amount)) # Update the account balances query = "UPDATE accounts SET balance = balance + %s WHERE id = %s" cursor.execute(query, (debit_amount, debit_account)) cursor.execute(query, (credit_amount, credit_account)) # Commit the changes to the database db.commit() # Close the database connection db.close()

- This code assumes that the "Accounts Receivable" account has an ID of 1 and the "Checking" account has an ID of 2. You would need to modify these values to match the accounts in your database.

This is just a basic example to get you started with using the ledger database in Python. You can modify this code to suit your specific requirements and add additional functionality as needed.

Permalänk
Medlem

Frågade den om den kunde simplifiera JS kod och den gjorde det bra, dock använder inte senaste funktioner från ECMAScript men det gör inte jag heller. Fast vissa saker tycker jag är bättre att skriva ut än att simplifiera som botten gjorde för tydlighetens skull. Sedan har jag använt den nån gång för felsökning och specifika problem och den har klarat det hyfsat bra.

Permalänk
Medlem

Väldigt användbart för att hitta nya funktioner i ett nytt språk eller be den förklara en kodsnutt där jag inte har koll på vad allt gör. Har använt det en del för MATLAB och R.

Permalänk
Medlem

Provade lite svårare om den kunde visa hur jag skulle göra för att ändra finans-databasen ovan till att använda "optimistic locking". Vad det är spelar ingen roll, men det är iallafall halv-avancerat. Och den förklarade bra och visade i kod, med en ALTER TABLE sql och tillhörande pythonkod.

Nu är det ju så att det är alltid lätt att fråga en dator om något man vet svaret på och se att det stämmer. Men det känns som om jag kan fråga den här saker jag faktiskt vill lära mig också.

Permalänk
Medlem

Testade chatGPT lätt en gång och det kunde väl hjälpa med allmänt korta saker men när jag bad den översätta mellan språk körde ej resultatet.
Utöver det är ChatGPT bannat på arbetsplatsen då man ej vill ha problem med copyright.

Visa signatur

CPU: Ryzen 5600xGPU: 1080 TI ROG Strix RAM:2x16GB G.skill Trident @ 3600MHz MoBo: Asus B550FPSU: Corsair SF750
En resa till Nordkorea
2 dagar i Tjernobyl

Permalänk
Medlem

Tycker det är mycket praktiskt för att lära sig nya saker. Ber den förklara diverse koncept, sen kan man fråga om detaljer och exempel direkt, supersmidigt. Visst går det att googla. Men tycker många sidor är så fulla med orelevanta stycken för att få en att dröja kvar så länge som möjligt. Med GPT får man det man letar efter direkt.

Permalänk
Medlem
Skrivet av Baxtex:

Tycker det är mycket praktiskt för att lära sig nya saker. Ber den förklara diverse koncept, sen kan man fråga om detaljer och exempel direkt, supersmidigt. Visst går det att googla. Men tycker många sidor är så fulla med orelevanta stycken för att få en att dröja kvar så länge som möjligt. Med GPT får man det man letar efter direkt.

Det viktigaste när man ber ChatGPT att förklara något är att välja rätt stil så det blir lättare att läsa, till exempel:

"Explain the meaning of the first and second normal form in the style of a sarcastic and condescending Draco Malfoy"

"Oh, look who wants to learn about database design. Muggles, I swear. I suppose I could try to explain the first and second normal form, but it's not like you'll understand it anyway.

First normal form, or 1NF, is just the basic requirement that each column in a table contains only atomic values. What's an atomic value, you ask? It's just a single value that can't be broken down any further. But I suppose that's a bit too complicated for a Mudblood like you.

As for second normal form, or 2NF, it's even more complicated. Basically, it requires that all non-key attributes of a table are dependent on the table's primary key. In other words, every piece of data in the table has to be related to the primary key in some way. But I'm sure you'll just nod along and pretend to understand, won't you?

Honestly, it's no surprise that a Gryffindor like you would struggle with something as complex as database design. Stick to your Quidditch and leave the real thinking to us Slytherins."

Eller Yoda:

"The first normal form, hmm, a property it is, that requires atomic values for each attribute in a relation. Separating multi-valued attributes it does, to prevent redundancy and data inconsistencies.

The second normal form, a level of normalization higher it is, focusing on eliminating redundant data through partial dependencies. Only attributes that depend on the entire primary key they should, to avoid anomalies and make the data easier to manipulate it will."

Visa signatur

i5-7600k . GTX 1080 . 16 GB

Permalänk
Medlem
Skrivet av talonmas:

Ni som tvärvägrat att testa det hittills, använder ni inte IntelliSense heller när ni kodar?

Tvärvägrar inte, har bara inte orkat bry mig om att testa.

IntelliSense är väl sisådär. Ibland ger den bra förslag så man kan spara några tangenttryck, ibland har den rejält fel och är både irriterande och förvirrande.

Visa signatur

5950X, 3090