Kategoriarkiv: 2019

Texter från 2019

Popularitet av spektrala namn

Jag tänkte på att byta mitt förnamn till julen som present åt mig själv. Inget drastiskt dock, min plan var bara att tillsätta en bokstav som helt klart fattas. Till min överraskning stod det på magistratens namnbytningssida att det fanns bara kring 50 ”Walther” i Finland, till skillnad från de 1000+ nämnda ”Walter”. Vi redde ut med assistenten Nisse populariteten av de flesta andra spektrumiternas förnamn, särskilt de som fanns i kafferumslistorna.

Utifrån denna data har jag snabbt skapat en popularitetschecker i JavaScript. Ta och testa den här nedan! Datan skickas inte ut till främmande makter, jag lovar 🙂

Skriv in ditt förnamn för att se vilken namnklass du tillhör. Kom ihåg stor bokstav. Om namnet inte hittas kan du använda magistratens sida rakt: https://nimenmuutos.maistraatti.fi/


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/>