Kategoriarkiv: 2019

Programmeringsspråk under tidens lopp

Image result for programming memes
Programmeringsmeme, tillsatt som clickbait.

Jag hade en tråkig sommardag i år och jag beslöt mig att undersöka vilka programmeringsspråk och -koncept som uppfanns under vilken tidspunkt och hur populära de blev på sin höjd. Från min extremt grundliga undersökning har jag plockat fram vissa betydelsefulla språk, i kronologisk ordning:

  • I begynnelsen, slutet på 50-talet: Fortran och LISP
    • Det kan argumenteras att Fortran var den första ”högre nivåns” språk. På 50-talet innebar detta begrepp att koden inte var skriven i ettor och nollor. Fortran introducerade också huvudvärken man får då man läser andras kod. Nuförtiden används Fortran främst av envisa fysiker som vägrar att flytta sig över till bättre designade språk som Rust, Erlang eller även C++.
    • LISP är den bästa språkfamiljen enligt vissa (ö)kända spektrumiter. LISP-kodare kännetecknas med bortslitna Shift-, 8- och 9-tangenter på tangetbordet. Alla viktiga koncept som t.ex. if-then-else lyftes upp av LISP.
Kodblock introducerades av ALGOL.
  • 60-talet: ALGOL och Simula
    • ALGOL är grand-daddy till C och med moderna standarder verkar nästan vettigt… nästan.
    • Simula introducerade bekanta koncept som klass, objekt, ärvandet av egenskaper samt dynamisk bindande av funktioner, whatever that means. Skapat av norrmän, heja Norge!
  • I början av 70-talet, programmeringsspråkens glansperiod: Prolog, C, Smalltalk och ML
    • Prolog, som namnet intyder, är ett språk för PROfessionella LOGiker för att klura ut livssanningar som t.ex.
      ?- help(life).
      No help available for life
      true.
    • C, ett helgat språk. Enligt ursprungsmyten visar C vägen till programmerarnas Nirvana. Predikas på kursen C-programmering där de få utvalda får de färdigt lagade testerna kompilerade utan problem.
    • Smalltalk introducerade metoder (dvs. funktioner som tillhör klasser av objekt) och var en stor inspiration för framtida objektorienterade språk. Men jo, detta betyder säkert inget åt en icke-datavetare. Jepp jepp… fint väder idag, inte sant?
    • ML är LISPs extroverta syster; ML har inte en fetish för parenteser men har en massa typer.
  • I mitten av 90-talet: Java och JavaScript
    • Java är varken vackert eller innovativt. Själva ryggraden, Java Virtual Machine, har dock revolutionerat plattformsoberoende körning. Man kan med andra ord köra sin Java kod på vad man vill, från hemmadatorer till telefoner till Nestes bensapump. (Givet att du har tillräckligt RAM såklart.)
    • JavaScript möjliggör interraktiva nätsidor och är grunden till viktiga applikationer som agar.io, 2048 och Universal Paperclips.

P.S. Data Is Beautiful presenterar de populäraste programmeringsspråken baserat på flera olika källor. Intressant är att man kan förutspå Javas kommande undergång. (Det lönar sig att sätta på 2x hastighet om man har bättre saker att göra med sitt liv).

Genererade Spotify låttexter

Ett kursprojekt under den senaste perioden har gått ut på att analysera data från Spotify-topplistor. Det huvudsakliga målet vi satte upp var att göra prognoser på vad som gör låtar framgångsrika. Vi laddade ner tusentals låtars data som beskriver allt från hur högljudda de är till hur mycket prat de innehåller. 

Men ett litet sidoprojekt visade sig vara mycket mer kul, åtminstone är slutresultatet lite komiskt. Jag tog nämligen alla mina låttitlar och laddade ner deras texter via Genius API. Sedan filtrerade jag bort alla tyska och spanska låtar (hejdå Despacito), samt andra språk, så endast engelska fanns kvar. En hel del av återstoden var aningen vulgära raplåtar, det kommer att märkas kan jag säga. 

Min idé var att träna någon form av maskininlärning/djupinlärning på texterna för att kunna generera egna låttexter. Jag testade mig fram med några Python paket för det ändamålet. Det visade sig krävas ganska mycket smart konfiguration och förhandskunskap för att göra det från scratch. Man kan använda sig av något som kallas Long short-term memory recurrent neural network (LSTM RNN), jag tänker inte ens försöka översätta det. 

En av mina tidigaste tester såg i varje fall ut ungefär såhär:

Yeah could someone got go higher
even gone like got bad
bitch like
got bitch
like got bitch
got bitch got bitch...

Inte särskilt bra, men en början. Ett mycket mer nybörjarvänligt sätt som jag vände mig till sedan var att använda textgenrnn. Nätverkets parametrar är i det paketet färdigt optimerade för texter av olika typer. Summa summarum gav det helt superbra resultat och jag bestämde mig för att ladda upp det på webben. 

Mästerverken tar ungefär 15 sekunder att generera på damp-harbor-56160.herokuapp.com Rekommenderar varmt att pröva. Kan hända också att det tar några sekunder för sidan att vakna ifall den har somnat, gratis hosting ¯\_(ツ)_/¯

Om någon är intresserad så finns den minimalistiska Flask-koden här: github.com/hd4niel/Lyrics-generation-webpage

<Daniel/>

Sömn: oundvikligt, livsviktigt och tidsödande

Du somnar alltid. Efter 48 timmar utan sömn börjar hjärnan försätta delar av sig i ”strömsparläge”. Dessa så kallade mikrosömnsekvenser varar uppemot 30 sekunder och kan lämna en individ desorienterad och förvirrad. Det är dock möjligt för en människa att hålla sig vaken betydligt längre än två dygn.

Världsrekordet för vakande är 264 timmar och 25 minuter eller dryga 11 dygn. Detta häpnadsväckande rekord sattes den 8 januari 1964 av den 17-åriga high school-eleven Randy Gardner. Bedriften utfördes som ett skolprojekt där två andra klasskamrater såg till att Gardner inte somnade. Experimentet övervakades av William Dement, en sömnforskare från Stanford University, och en läkare från den amerikanska flottan övervakade Gardners hälsa. Gardners kognitiva förmågor försämrades, föga förvånande, ju längre experimentet framskred. Han fick koncentrationssvårigheter, upplevde hallucinationer och försämrat närminne. Förvånansvärt lyckades Gardner slå Dement i pinball under den tionde dagen. Enligt sina kamrater blev han med tid också bättre på basket. Efter att rekordet hade slagits så övervakades Gardners sömn på ett sjukhus. Han sov över 14 timmar första natten, var vaken ett dygn, sov 10 timmar den andra natten och återgick sedan till normal sömnrytm. Inga långtidseffekter, varken mentala eller fysiska, observerades.

De flesta av oss har stundtals litid av sömnbrist och dess följder.

Ingen människa har avlidit som direkt resultat av sömnbrist. Tyvärr har folk dött i olyckor som förorsakats av följderna av sömnbrist. I laboratorieexperiment på möss har forskare hållit djuren vakna i över en månad innan de avled. Den slutliga dödsorsaken var dock oklar enligt en del forskare. I ytterst sällsynta sjukdomsfall kan sömnbrist ha fatala konsekvenser hos människor. Vid till exempel den ovanliga och dödliga sjukdomen FFI (Fatal Familjär Insomni) kan patienten inte somna p.g.a. en hopsamling av protein i talamus.

När vi sover återhämtar hjärnan och kroppen sig. Bland annat slaggprodukter avlägsnas från celler effektivare under sömn och vissa nyttiga hormoner produceras fördelaktigt då vi sover. Trots att rekordsättaren Gardner inte ådrog sig några långsiktiga effekter av sitt extrema vakande så är upprepade perioder av sömnbrist ohälsosamt och skadligt på längre sikt.

Du sover ca en tredjedel av ditt liv. Detta stämmer så länge du sover 7-8 timmar per natt. Människor har länge försökt effektivisera denna tidsanvändning av dygnet. I ett avsnitt av tv-serien Seinfeld hade grannen Kramer läst en bok om Leonardo da Vinci och blivit fascinerad av geniets sömncykel: da Vinci sov tydligen 20 minuter var tredje timme och hade således ett och ett halvt dygn mera vaken tid under en vecka. Kramer väljer att själv anamma detta sömnmönster men kollapsar efter några dagar av alldeles för lite sömn. Det finns dock få trovärdiga källor att da Vinci verkligen hade ett sådant sömnmönster.

Så kallad ”flerfassömn” med flera, kortare perioder av sömn under ett dygn, har många utövare och finns i många olika former. Bland annat Medelhavsländernas ”siesta”-filosofi kan räknas som ett flerfasmönster. Det finns även de som helt enkelt sover mindre: i japan sover mer än 39 procent av vuxna mindre än sex timmar per natt. Detta kompenseras med ”inemuri”, korta powernaps då det är möjligt: på bussen, i tunnelbanan eller på en parkbänk.

En dåre sover då han är trött, en vis man sover då han kan. – livstilscitat, 2018