Tale til tekst spørring mot et API

Gratulerer med dagen folkens!

I dag er det 17. Mai 2018 og jeg tenker litt på HTTP verb og taletjenester. Vi har GET POST PUT DELETE som de gjeldende engelske verbene og vi kan oversette dem til FÅ POST OPPDATER og SLETT. Noen kan lage en taletjeneste for å spørre i HTTP og tjenesten kan lese opp oversatt XML eller JSON.

Mye arbeid har vært gjort på å gjøre API-tjenester velformede og det finnes også en del formater som ikke brukes i dag. Dagens tjenesteutviklere lager tjenester i JSON eller XML og bryr seg ikke om https://no.wikipedia.org/wiki/WSDL og SOAP. Det kan være noen lager tjenester som følger disse standardene men jeg har ikke vært borti å utvikle noe i disse formatene.

Jeg finner fremgangsmåter for forskjellige plattformer, og jeg har ikke mobilen min fra Samsung foran meg akkurat nå, men det er mulig jeg kan si VÆRET til den og den vil lese opp været hvor jeg er. Det er uansett litt interessant å fable om ting man kunne sagt bare ved å følge HTTP og da disse oversettelsene.

Man kan sette opp noen tjenester på www.etellerannetdomene.no og legge tjenester rett på domene og si til mobilen FÅ VÆR og utvikle en app som da kjører en GET (engelske HTTP-Verbet) mot www.etellerannetdomene.no/weather (husk at vær automatisk oversettes). Det begynner å bli mer avansert om man skal bruke de andre verbene til tjenester og man må vite noe om tjenesten på forhånd. Det er skrevet om tjenester for den semantiske weben men en agent som følger ideen om at man skal tilby sine tjenester i denne formen har ikke inntatt min verden i noe form.

Det er veldig mange problemstillinger som ligger i veien for at vi skal ha autonome agenter som er formet etter en åpen spesifikasjon av semantisk web-tjenester og mye ligger i incentivet bak å lage en tjeneste. Det finnes massevis av åpne data på weben og du kan gjerne lage en tjeneste som enten er betalt eller spiller av reklame hvor man syndikerer API-tjenester og blottlegger dem uten å gjøre så mye mer enn å benytte HTTP og lese opp svarene som kommer i responsen fra APIet. Men husk at i en sånn tjeneste kan du ikke se noe du har kun en talestyring og det er lett for brukeren å gjøre feil om man beveger seg lenger enn til FÅ (GET).

I en POST kan man tenke seg at man sier POST og deretter så er alt kodet informasjon enten det er XML eller JSON. I XML vil det være innhold og i JSON vil det se ut som {kode:»innhold»} eller noe sånn og datatyper er en utfordring.

Dette er egentlig et terreng som eksperter på semantisk web vet mye mer om enn meg og tankene om en «semantisk web» ligger i at folk følger standarder. Det finnes mange skjermlesere som leser opp innhold på weben og jeg tipper denne bloggen du leser nå lar seg lese av en skjermleser men jeg vet ikke for jeg har aldri prøvd en skjermleser.

Eneste jeg klarer å komme på som bruksområde for meg på eksempelet FÅ VÆR måtte være om jeg satt i bilen og kjørte eller kanskje noen andre stod på ski og hadde på seg håndfri og ville sjekke været i bakken. Kanskje man kunne sagt FÅ KALENDER. Da kan man jo tenke seg en POST KALENDER TID ATTENTRETTI TITTEL MIDDAG MED PER STED I HYTTEN som former en HTTP POST forespørsel mot for eksempel http://www.dittfirma.no/kalender med innmat i xml, siden den er fri for datatyper: <tid>18:30</tid><tittel>Middag med Per</tittel><sted>hytten</sted>

Men du kan se at datatyper spiller inn uansett, og dermed må man se nærmere på formatering uansett hva man gjør.

Og det er mulig din iPhone eller Samsung-telefon allerede kan denne jobben fra før. For min del så taster jeg inn avtaler og jeg søker etter været på skjermen. I tillegg er det ofte sprik i værtjenester.

Håper du har en fin 17. Mai, eller har hatt en fin dag i dag om du kommer til og leser på et senere tidspunkt.

Eiendomsmeglere bør skaffe seg VR

Jeg prøvde cardboard VR-briller for noen år siden og da Google Streetview med blant annet undervannsbilder. Det virket ganske bra.

Jeg tenker at det er en idé for eiendomsmeglere å eksportere tegninger for eiendommer slik at man kan få en VR-opplevelse. Dette kan de ha på kontorene sine.

Jeg har googlet litt rundt og det ser ut til at tegninger fra AutoCAD kan konverteres og skaleres litt ned slik at man kan få dem over i unity. Det kan godt være det kan være andre veier til en 3d opplevelse av en eiendom også.

Jeg har sett at man har 360-bilder på finn men hele 3d-modeller kunne vært noe som kunne gjort det lettere å velge bolig.

Universal React – testing av Next.js

Hei folkens!

Jeg fikk med meg at det har kommet et rammeverk for universell React. Dette betyr at React blir rendret på serveren, slik at browseren har HTML å begynne med slik utgangspunktet vil være etter du har kjørt ReactDOM.render(). Du kjører rett og slett render på serveren heller enn å gjøre det i React på klientsiden slik du vil gjøre det i utgangspunktet om du lager en React app etter mange av de fremgangsmåtene du finner på nettet i dag. Dette er greit for interne applikasjoner som skal brukes av en viss brukergruppe men ikke særlig greit om du vil Google skal se noe og du lager en applikasjon til den åpne weben.

Her finner du en oppstartsguide. Jeg ser at det har kommet en bok på Leanpub om Next.js men jeg tenker jeg skal klare meg med gratis dokumentasjon.

Planen min videre er å lage en universell versjon av Smileyhash. Jeg skal vurdere om jeg skal gjøre dette open source og blogge om det. Håper det kan skaffe meg noen lesere.

Tanker i dag fra meg som arbeidsledig

Jeg har vært arbeidsledig i 2 år. Jeg sliter også med at jeg ikke er inspirert og motivert. Jeg står opp sent og legger meg tidlig. Jeg trener ikke. Jeg har treningstøyet klart i gangen og medlemskap på SATS og tilgang til treningsstudio på psykiatrisk sykehus men jeg vegrer meg.

I dag kjenner jeg meg litt mer motivert og ser på Smileyhash at jeg kan gjøre mer. Jeg har lyst til å begynne på nytt igjen mer helhjertet og lage embed av tweets med smiley men det er et stort prosjekt. Og det er ingen som har laget en smileyhash tweet noensinne – alt som kommer inn av andre er støy.

Jeg så meg selv på TV i går og jeg kjenner at jeg er nødt til å komme meg ut av kjærlighetssorgen min. Jeg tenker at det er begrenset hvor mye jeg vil putte på bloggen min om dette men nå har jeg altså blitt vist på TV der jeg er på date og sier jeg «har bagasje» og at det er «godt å gråte litt av og til» og tviholder på at jeg er forelsket. Det var godt å se seg selv utenfra og jeg har lyst til å endre meg.

Det er sant at jeg har veldig sterke følelser for en som ikke ville være kjæresten min og som ikke ville ha kontakt med meg men jeg må slutte å la dette prege meg. Jeg må reise meg. Jeg kan ikke fortsette å sove til langt på dag og jeg kan ikke fortsette å la nederlag gå så sterkt innpå meg. Jeg må skape mine egne suksesser. Fylle dagene med innhold og klargjøre meg på å gå inn igjen i arbeidslivet.

Det ble veldig tydelig nå som legen har gitt meg råd om å trappe delvis opp og lete etter en arbeidsgiver som lar meg gå gradvis i gang at veldig få bedrifter ønsker seg noen som ikke stiller 100% klare. Jeg har hatt mange prosesser med å finne ny arbeidsgiver etter at jeg sluttet i jobben min i Computas AS og noen har jeg sagt nei til mens mange har sagt nei til meg. Jeg har mye solgt meg ned men jeg har også møtt krav jeg ikke har mestret i form av tester hvor jeg ikke har levert tilfredsstillende resultat. Jeg tenker at jeg må ta opp kampen og sitte meg ved PCen hver dag og komme inn igjen i rytmen. Jeg må tenke at jeg har hjemmekontor.

Under studiene satt jeg masse foran maskinen og jobbet med forskjellige oppgaver og egne prosjekter. Dette må jeg komme inn igjen i. Jeg har laget meg et visittkort og har en svær eske av dem. Jeg kan gå på jakt etter en arbeidsgiver men det er en utfordring at jeg ikke kan fakturere noen fordi jeg har arbeidsavklaringspenger. Dette må jeg finne ut mer om. Nå må jeg reise meg og komme inn igjen i en konstruktiv hverdag. Er det ingen som banker på døren må jeg skape mulighetene selv.

Er du arbeidsgiver og leser dette syns jeg du skal ta kontakt med meg. Du finner kontaktskjema i menyen over.

Immaturus «Å eie noe(n)» – et fint men dystert teaterstykke

«Å eie noe(n)» er et teaterstykke som teatergruppen Immaturus har satt opp på Kvarteret og jeg valgte å ta turen ned dit i går for å se dette stykket selv om jeg visste det kom til å bli tungt.

Det handler om en mann som heter Simon som er med i en plantegruppe (en gruppe mennesker som driver med botanikk på fritiden) og en dame som heter Ravna som forelsker seg og utvikler et forhold. Simon og Ravna faller for hverandre, men Simon ødelegger for seg selv fordi han vil ha Ravna helt for seg selv. Han forteller henne at faren hans hadde «kustus» på moren og at moren ikke fikk se på andre menn og det var sånn det skulle være. Dette skremmer Ravna og Ravna drømmer mareritt om at de har små barn og at han slår henne. Ravna gjør det slutt og Simon ringer og ringer og legger igjen beskjeder på svareren hennes og publikum får se hvor ubehagelig det er for Ravna at Simon blir eiesyk og ikke ser seg selv. Det er tydelig at Ravna egentlig er glad i Simon men hans destruktive atferd og holdninger ødelegger alt. I begynnelsen får vi se en nedbrutt Simon som henger fast og ønsker å være venn med Ravna og det er tydelig at dette skjer i retrospekt.

Simon skulle egentlig bli botaniker men avslutter sine studier og begynner å jobbe på Rema 1000 mens han deltar i plantegruppen. Plantegruppen er tett koblet og består av flere par. Simon sprer løgner og setter folk opp mot hverandre, alt for å få Ravna vekk fra gruppen for han vil ikke dele henne med noen. Han er sjalu og lager mange paranoide forestillinger om at hun er utro. Det er klart for meg at det er helt umulig for Ravna å ha kontakt med Simon, selv om hun enkelte ganger får lyst til å svare.

Det er et slående teaterverk med mye bra effekter, en stilig scene og skuespillere som ikke har problemer med intimitet i det hele tatt, noe jeg aldri hadde fått til om jeg skulle være skuespiller tror jeg. Det var en fin men samtidig vond opplevelse fordi jeg selv kan kjenne meg igjen i enkelte, men ikke alle aspektene. Han har bare lyst til å ligge i sengen sammen med henne og at alle de andre bare skal forsvinne. Mye av det handler nok om at han strever mens andre ting er holdninger.

Sjalusi oppstår hos både menn og kvinner og jeg har hatt problemer med sjalusi. Simon i teaterstykket er spesielt sjalu på en annen mann i teatergruppen som han tror Ravna har et forhold med men dette er bare fantasi.

Det var dystert for meg å se dette og det føles nokså håpløst å tenke at Simon kanskje aldri noensinne får snakke med Ravna igjen, uansett hvor mye han jobber med å løse sine utfordringer. Jeg har fri fantasi og kan lage en lykkelig oppfølger i hodet hvor Simon går i terapi og endrer seg og at de blir venner igjen men jeg vet ikke hvor sannsynlig jeg klarer å tenke at det er. For hva har de egentlig i utgangspunktet? Det er jo selvfølgelig noe man kan si om alle par og det er litt dårlig gjort å peke på to som er forelsket og si at de ikke har noe til felles.

Men det er i hvert fall tydelig at Simon ødelegger noe som kunne vært veldig annerledes og veldig vakkert. Han snyter både seg selv og Ravna fra å være lykkelige og det virker håpløst når han har et ønske om vennskap men jeg drømmer om at Simon har noe mer å by på selv om han virker tvers gjennom usympatisk og drevet av ønsket om å ha Ravna for seg selv og bare ligge i sengen med henne hele tiden. For i utgangspunktet er det vakkert at de to utvikler følelser for hverandre og selv om intimiteten deres, som så godt er skildret av skuespillerne, var ganske ubehagelig fordi han var så utrolig overkåt på henne, så er det også en naturlig del av kjærlighen. Det er bare så synd at det blir så altoppslukende at det ødelegger hele forholdet.

Teaterstykket anbefales men det er veldig tungt å absorbere.

ul data-relation-list – social networking without a central server

At the time of writing this blog has almost no readers but I keep on blogging and this post is in English as I have an idea I think is timed well, knowing that social networking is established in the population and major companies in social networking are experiencing privacy issues.

Let’s say we all started blogging on our own web site instead of using social networks from commercial partners. I have made a scheme to implement a bidirectional list of relations that can be implemented on any website and it is possible to send and accept or deny relational requests using an API.

I have called the concept ul data-relation-list as it consists of an unordered list in html that is maintained by the webmaster’s server. I wrote about the concept using different terms in a previous post.

The concept is relying on html and the implementation of a standard API to handle requests for adding. If the sites you have in your list of relations implement feeds you can have a view that gives you status updates from all the sites in the list and we can start following each other in a new way not relying on the commercial actors in social networking.

See the readme on GitHub. Feel free to contribute by implementing the concept in various languages.

Webmaster friend protocol

I have been thinking about social networking and without mentioning social networks, I want to make the idea of a bidirectional mutual friendship to apply for webmasters. And anyone can become a webmaster. I think of bloggers.

What if there was a protocol for sending a friendship request to a blog from a different blogger? And how could it look?

I have an idea and I want to call it «webmaster friend protocol». WFP.

The idea is that a website must include its friends in such an unordered list as below in the example:

The example contains one friend.

A friend request is sent to a blog from a different blog on an api in json to a WFP endpoint which is an HTTP API that has three routes: request (POST), response(POST) drop(POST) and list(GET).

Request receives an HTTP post and to send a friend request one can send a json object for instance as such:


{
sender: "http://www.perandersen.no"
rss: "http://www.perandersen.no/feed/"
responseAddress: "http://wpf.perandersen.no"
}

Let’s say I sent this to a service you have installed at the address http://www.yourblog.com/wpf/request

When you were ready, through a front end, you could accept or decline. Let’s say you accepted. Your server would then contact my endpoint which was included in the request as http://wpf.perandersen.no and it could be sent as a JSON POST as such:


{
reply: "accepted",
friendList: http://www.yourblog.com
}

At this point, there should be a link in the unordered list in both directions between our websites and both servers could poll each other in case of cheating. Else drop should be called by one of the parties to drop the friendship.

In this way, your friendlist will be bidirectional, distributed and you can syndicate news from all your friends in a feed as such as made in social networks from commercial parties today. At the same time you are in control of the content and if you want ads the income from the ads will come directly to you and not a commercial third party.

This is a new though in my mind but if I don't drop the idea I will try to implement the WPF concept on my own blog. I might have to find a different name.

Mother of all demos – spennende fremtidsvisjon fra 60-tallet

I dag har jeg sett deler av denne youtubevideoen:

Det er spennende å se applikasjonen som her vises og tenke på hva vi har i dag. Han sitter og planlegger dagen sin og har laget et lite strekkart på hvor han skal og hva han skal de forskjellige stedene.

I dag bruker vi kalender og kart. Noe av grunnen til at det ikke var noe kalendersystem på denne videoen kan ha sammenheng med datidens maskinklokker, for UNIX time startet ikke før 1. Januar 1970.

Hvordan plotter maskinen en sirkel?

Jeg har grublet på spørsmålet med hvordan en sirkel blir formet i et koordinatsystem x y slik skjermen på en digital enhet er. Jeg fant noe som heter midpoint circle algorithm og jeg forstår ikke helt algoritmen men den tar imot et koordinat for senter av sirkelen som skal tegnes og en radius og tegner åtte punkter av gangen helt til sirkelen er komplett.

Når du lager en sirkel i et tegneprogram så vil jo den vises på skjermen med en gang fordi maskinen er så rask men egentlig så tegner den hvert punkt og sånn jeg forstår det så er det denne algoritmen som er i bruk men det kan hende det finnes andre. Selv begynte jeg å tenke på radianer og polarkoordinater og alt mulig for det naturlige ville jo være å finne hvert punkt i sekvens heller enn å tegne 8 steder på en gang. Men denne er ikke avhengig av radianer eller polarkoordinater.

Sjekk ut en sakte demonstrasjon:

(DU MÅ GÅ INN PÅ BLOGGPOSTEN FOR AT KODEN SKAL KJØRE HER)

Tegner sirkel på x=200 y=200 i et 400×400 felt

Radius:

Operasjoner:0

dx:

dy:

decisionOver2

I artikkelen jeg viser til på wikipedia bruker algoritmen i kode bitshift-operator til venstre. En artig ting jeg lærte her er at bitshifting av et heltall med en plassering er det samme som å gange tallet med to. Så det ble lettere å tenke på diameter som radius ganger 2 enn diameter som radius bitshift 1.

Hvis man har et binærtall: 0110 (4) og bitshifter dette til venstre: 1100 så blir det 8. Bitshifter man en gang til har man 11000 og det er det samme som 16 altså en dobling til. Det er litt stilig og egentlig logisk men jeg har aldri visst det før.

Midpoint circle algorithm er først implementert i Assembly for lenge siden og jeg tenker at å bitshifte radius en gang til venstre for å gange den med to sikkert er mer effektivt fordi en multiplisering antakeligvis inkrementerer noen tall så og så mange ganger og derfor er sikkert multiplikasjon en kostbar operasjon men jeg tror at dagens kode vil lese alle heltall ganger to som en heltall<<1 altså bitshifte heltallet en til venstre for jeg vet at det er gjort mye for å optimalisere. Algoritmen bruker kun heltall og et avvikstall bestemmer hvordan man skal justere x og y slik at det blir en sirkel. Noen variabler i koden forstår jeg ikke ut i fra navngivingen men jeg har refaktorert ut bitshiftoperasjonen:

Det er interessant at algoritmen kun bruker heltall altså ingen flyttall og «decisionOver2» er et avvik definert som 1-diameter i begynnelsen men det endrer seg. Det hele handler om å bestemme x og y og antall operasjoner øker med radius og det er helt sikkert et forholdstall men jeg føler det er så mye å tenke på på grunn av at hver iterasjon tegner utover fra fire punkter.

Jeg husker vi problematiserte sirkelen på barneskolen også med en passer og jeg ser at om man endrer dx i utgangspunktet vekk fra 1 vil man få noe annet enn en sirkel. Samme gjelder endringer i dy. Men sirkelen må være ganske rasjonell ut i fra at dx og dy begynner på 1 og senere i koden endres den hver gang den skal endres med 2.

For hver operasjon bestemmer man på bakgrunn av kriteriet «decisionOver2» i koden (definert som et avvik i C versjonen av koden) både om man skal øke y og om man skal minke x. «decisionOver2» endrer seg også hver gang man tar denne beslutningen og det er forbløffende at det skaper en sirkel for jeg klarer ikke vri hodet rundt konseptene. Ganske stilig.

Første innlegg på norsk hvor jeg snakker litt om Facebook fra mitt synspunkt

Jeg har bestemt meg for å bytte språk på domenet mitt til norsk. Da kan jeg kanskje nå et publikum hvor jeg tidligere har blogget i et intet hvor ingen har lest særlig mye for jeg har ikke fått en eneste seriøs kommentar.

Jeg er masterutdannet innen Informasjonsvitenskap fra Universitetet i Bergen. Etter mastergrad var fullført begynte jeg å jobbe i Oslo som IT-konsulent og dette var en fin tid men jeg bestemte meg for å si opp jobben i forbindelse med at jeg var litt lei av stillingen. Jeg er på utkikk etter ny jobb og veldig åpen for hva jeg skal kunne drive med men håper jeg får en jobb som er relevant for utdannelsen.

For den som ikke vet hva en informasjonsviter gjør så kan jeg fortelle at utdanningen har vært mye sentrert rundt programvareutvikling og ikt generelt. Jeg ser etter jobber som programmerer eller utvikler men lurer litt på om jeg kunne passet i en annen jobb. Jeg har for eksempel jobbet mye med brukerstøtte under utdanningen og kontakt med kunder per telefon og epost er noe jeg kunne ha trivdes med.

Tidligere på bloggen har jeg blant annet vist et privat prosjekt basert på en Tvitter-integrasjon uten at dette har skaffet meg noe ny jobb. Det var fint å være uten jobb i begynnelsen men nå føler jeg at jeg har lyst på en hverdag hvor jeg gjør noe som føles nyttig. Jeg tror jeg skal fortsette å skrive og ser for meg mange emner jeg kan blogge om fremover. Det skjer mye og i media omtales mye jeg kan kommentere.

Jeg har tidligere skrevet om «trolling» på engelsk. Selv har jeg vært dårlig på å takle Facebook som et samfunnsfenomen og omtrent sluttet å bruke det. Facebook driver mange konflikter enten det er trolling, trusler eller sjikane som er i senter og sist uke gikk justisminister Sylvi Listhaug av etter at hun hadde postet et bilde og en kommentar som ble oppfattet som krenkende etter terroraksjonen 22. Juli 2011 på Utøya.

Jeg selv har brukt Facebook ganske ukritisk i perioder og har hatt uheldige mønstre. Det var aldri noe fasit på hvordan man skulle bruke sin Facebook-konto og Facebook utviklet seg etter hvert som vi brukte det. I dag bruker jeg det omtrent ikke i det hele tatt og føler ikke noe tilknytning til nettstedet. Jeg har en profil og jeg mener det kun ligger ett bilde der og det er mitt profilbilde.

Fra helt i begynnelsen da jeg ble medlem i 2007 til jeg slettet kontoen min i 2017 har jeg postet utallige statuser jeg angrer på, jeg har dannet avstand til mennesker jeg helst ville vært gode venner med og jeg har brukt funksjonaliteter på helt feil vis. Jeg er ikke alene. Noen av feilene har ført til at Facebook har blitt utbedret med tanke på funksjonalitet men i dag er mitt bruksmønster sånn at om jeg i det hele tatt sjekker facebook så er det sjelden jeg trykker på like eller kommenterer noe for jeg syns det er en utrolig sårbar ting å gjøre.

Jeg ser at mange som fortsatt ivrig deler i sosiale medier har flyttet seg over på Instagram, som også er eid av Facebook. Det er interessant å se gamle kjente fra skoletiden legge ut bilder av seg selv på reise eller på fjellet for jeg husker jo dem godt men det er lenge siden jeg har delt et bilde selv.

Jeg tror sosiale medier har truffet et behov vi mennesker har for å vise vår egen selvrealisering. Jeg tenker selv på at jeg har postet bilder av meg selv sammen med kjendiser eller foran kjente bygninger og ser mange som gjør det samme. Det minner meg på Maslow sin behovspyramide hvor status er noe vi trenger før vi kan oppnå selvrealisering. Jeg har alltid tenkt på at selvrealiseringen er noe som kunne være å bestige et fjell men her har altså bildet og statusen ved å bestige fjellet blitt grunnen til at vi deler. De sosiale mediene appelerer til vårt statusbehov og kvantifiserer veldig i form av at man kan telle hvor mange som liker, hvor mange som følger og så videre.

I likhet med dette kan jeg i min verden hvor jeg har denne bloggen tenke at jeg ikke mottar en eneste seriøs kommentar og derivere min sosiale person ut av dette. Jeg har ikke noe følgerskare men da jeg var i et forhold fikk jeg veldig mye likerklikk basert på poster som handlet om meg og mitt forhold på Facebook. Etter jeg slettet det og begynte på nytt igjen så hadde jeg aldri nok interesse. Jeg syns egentlig tiden med Facebook har vært veldig skremmende og det å leve i en verden hvor man poster noe og så venter på likes har vært sårbart.

Sist bloggpost jeg skrev skrev jeg på engelsk om trolling. Det er utrolig hvor mye personangrep som gjøres på Facebook. Det var ikke før jeg begynte å bruke LinkedIn at jeg fikk mer konkrete synspunkter på bruk av sosiale medier for mange spesialiserer seg på å være rådgivere men mitt råd får være: Gjør så lite som mulig på Facebook. Alle ser alt der inne og det du opplever som vanvittig morsomt klokken 4 om natten er en katastrofe i andres øyne neste dag. Egentlig burde vi ha brydd oss litt mindre om Facebook men jeg tror etter alt som har vært i media hvor det også blir straffesaker av feil bruk at mitt råd syns jeg er ganske godt.

Blogglistenhits