APIer for Alle

ferdig implementert

Programmering og programbruk er blitt en helt ny ting. I gamle dager måtte man kjøpe programmene man ville ha i butikken og bære dem fysisk hjem for å installere på egen maskin. Det var dyrt og tok mye plass på disken. Hvis man i det hele tatt hadde harddisk - de første PCene hadde ikke det. Hjemmedatamaskiner hadde ikke en gang innebygd floppy disk stasjon; man lastet program fra kassett med kassettspiller og det kunne ta flere minutter. De som er født på 80-tallet eller senere tror vel at jeg fleiper. Men den gangen, på 70- og 80-tallet, var det rene science fiction å ha en personlig datamaskin. En maskin man selv eier og kan gjøre hva man vil med, og som ingen annen bruker! Svimlende vyer. På 60-tallet måtte man sende programmet på hullkort i papirposten til et datasenter for kjøring, og etter en uke eller to fikk man utskriften tilbake i posten, en 20 cm tykk bunke stripete datapapir. Det kunne koste 500 kr per kjøring med datidens pengeverdi!

Langt inn i internettets tidsalder måtte man kjøpe programmene på nettet og laste dem ned, installere på maskinen. Var man da en fattig student måtte man lage alle program selv, eller skrive av program publisert i datatidsskrifter eller som åpen kildekode på nettet. Forøvrig hadde man ikke annet å ty til enn programmeringsspråkets standardbibliotek og standardprogram i MSDOS eller Windows. Var man ikke rik kunne man aldri kjøre virkelig avanserte program; det ble program på noen hundre linjer og ikke mer.

Den tiden er forbi. Akkurat som man ikke lenger trenger å kjøpe CDer for å høre på musikk, trenger man ikke kjøpe programmer for å kjøre dem. I dag kan alle kjøre noen av verdens mest avanserte program gratis! Da kan man kjøre mange program man bare trenger en sjelden gang. At man kan kjøre dem manuelt via en nettside er imponerende nok, men det fantastiske, som legger uendeligheten for dine føtter, er APIene. Med dem kan programmene der ute kalles fra program på egen maskin. Det gjør det mulig å integrere hele verdens maskinpark og all verdens program i et program du selv lager. Snakk om syvmilsstøvler! Du kan koble sammen og bygge videre på program som tar millioner av linjer kode.

Programmene man trenger og begjærer er nå implementert som webtjenester, og kalles via APIer. Desværre er mange tjenester og APIer så kompliserte at folk flest ikke forstår seg på dem og ikke kan bruke dem. Man må tross alt kunne programmere - i det minste lage et enkelt skript. Vi kommer dere til unnsetning! I pakken api.zip finner du mange klienter for ulike APIer og tjenester, implementert som batch skripts for Windows. exe-programmene du trenger medfølger. Det vi skal gjøre her er å forklare bruken av dem, slik at alle kan bruke dem, enten man kan programmere eller ei.

Siden dette er skript kan du kalle dem fra egne skript og bygge videre på dem. Men hvert skript gjør en nyttig tjeneste som det er. Det er alt fra å hente data fra kilder på nettet til meget komplisert problemløsning. Et API kan sammenlignes med et kallgrensesnitt til en funksjon i et høynivå programmeringsspråk. Man må sende visse data på et visst format, og får svar på et visst format, men man behøver ikke vite hvordan tjenesten løser sin oppgave. Er parametrene gyldige skal man få et gyldig svar. Kompleksiteten er pakket inn i en sort boks.

Noe som kjennetegner webtjenester og APIer er at man ikke behøver å laste noenting ned. Dette er distribuert programmering; et program kan kjøre på mange maskiner samtidig slik at hver bidrar til løsningen av en enkelt oppgave. Interaktiv grafisk databehandling, med mus og klikking i menyer, er vel og bra når man bare gjør en ting en gang, men når en beregning skal gjentas mange ganger føler man svakheten ved dette konseptet. Sett at du har en liste på tusen lenker til nettsteder som du vil gå inn på hver dag og sjekke om de har interessante nyheter. Du kan ikke klikke deg inn på dem alle hver dag. Uten en skriptløsning kommer du til kort. Nøkkelordet er automasjon.

Skript som kaller et API kan selv kalles av et skript slik at beslektede oppgaver kan løses massevis. Vi skal se flere eksempler på dette underveis. Det finnes i dag en enorm mengde tjenester med APIer ute på nettet. Man trenger sjelden lage et program fra grunnen selv. Det man må gjøre er å lage et skript som implementerer klientsiden av et API. Hvis ikke det finnes et ferdig skript i ditt foretrukne skriptspråk, hvilket det ofte gjør. I pakken her har du jo det. Men dette er bare et lite utvalg eksempler for å hjelpe deg på vei; hvilke behov akkurat du har vet bare du.

Det finnes API-portaler som programmableweb.com og rapidapi.com hvor du kan søke etter en passende tjeneste. Men en stor del av tjenestene på nettet har i dag et API så man kan like gjerne bruke en vanlig søkemotor. For å bruke en tjeneste/API må man som regel registrere seg og velge et abonnement. Alle eksemplene i pakken bruker APIer som har gratis-abonnement med raus gratiskvote. Mer eller mindre raus. Ikke i noe tilfelle behøver du oppgi kredittkort. Du får en API-nøkkel (i blant en token) som du må oppgi i kall til APIet. Våre skript må redigeres for å fylle inn API-nøkkel. Hvor det står DIN_API_NOKKEL skal du erstatte det med din API-nøkkel. Det kan også stå DIN_TOKEN.

Før vi går i gang vil jeg gjerne gi noen tips til dem som ikke er vant med å arbeide på kommandolinja i Windows. Først må du finne kommandotolken cmd.exe og sende den til skrivebordet, hvis den ikke ligger der alt. Så skal du høyreklikke på ikonet og velge Egenskaper. Gå til fliken Snarvei. Der er det to egenskaper du må stille. Først Start i hvor du skal angi banen til API-mappa. Så Mål hvor det skal stå C:\Windows\System32\cmd.exe /v:on /k miljo. Hvis cmd.exe ligger et annet sted enn dette så behold banen som står der. Men /v:on være med, og det er en fordel med /k miljo for ellers må du kjøre miljo.bat manuelt hver gang du åpner et kommando-vindu.

Lagre innstillingene og lukk vinduet. Nå kan du åpne et kommando-vindu. Første gang må du redigere miljo.bat hvis du skal bruke staverettings-APIet som vi selv tilbyr. Mer om det nedenfor. Miljøvariabelen ordbank må settes lik banen til ordbøkene. Merk at den må ende på \. F.eks.: set ordbank=C:\Users\ola\sprak\norsk\ordbank\. Ordbøkene ligger adskilt i pakken ordbank.zip.

Du har et kommando-vindu oppe. Ved å klikke i øvre venstre hjørne kan du stille inn egenskapene og endre vinduets utseende og størrelse. Når du skal arbeide på kommandolinja er det noen ting du bør kjenne til for å være effektiv. De elementære kommandoene cd og dir for å navigere og vise innholdet av en mappe er det første en nybegynner lærer. Du vil få bruk for andre, som md, rd og del. Men særlig help, f.eks. help md. Det gjør samme nytten å henge på /? slik: md /?. Du trenger ikke skrive ut hele navnet på en fil eller mappe: Ved å skrive begynnelsen og trykke TAB fullfører skallet navnet. Er det ikke entydig og du får opp et annet enn det du mente, er det bare å TABbe videre til du har det.

Uunnværlig er muligheten for å gjenta eller redigere forrige kommando ved å taste pil-opp. Du kan bla bakover i kommando-historikken, og framover med pil-ned. Enda nyttigere er F8: Du skriver begynnelsen av en kommando du har gitt før og trykker F8. Da får du opp den kommandoen på ny, eller trykker F8 gjentatte ganger til du har den. Du kan gjenta uten endring eller redigere. Har du begynt å skrive på en kommando men angrer deg og vil viske ut alt, trykker du Esc. Tekst som kommer ut av en kommando kan du sende til en fil slik: dir > fil.lst. Du kan også sende det til clipboard (utklippstavla): cd | clip. Siden kan du lime det inn i andre program. Du kan merke og kopiere tekst i vinduet slik: Alt Space D M Så trekker du musa og merker. Til slutt trykker du ENTER. For å lime noe inn på kommandolinja gjør du slik: Alt Space D L Snart får du dette i fingrene.

La oss nå gå gjennom skriptene. Det er naturlig å begynne med rapidapi.bat . Det er felles for alle APIer som bevertes av rapidapi.com . Du må registrere deg der og få en API-nøkkel. Erstatt DIN_API_NOKKEL i rapidapi.bat med den. Den er felles for alle tjenester på rapid, men du må likevel abonnere særskilt på hver tjeneste du bruker. Det koster ingenting, men du har en viss kvote som gjelder for en dag eller en måned, og hard limit. Det betyr at når kvoten er oppbrukt nektes du videre tjeneste inntil neste tidsperiode. Så noter deg kvoten og bruk tjenesten med måte.

alpha_vantage.bat er en finanstjeneste som kjører under rapid. Som eksempel har jeg valgt å vise valutakurser. Den kalles av valuta.bat som viser kursene på USD, EUR og SEK i NOK. valuta.bat kalles uten argument.

bonds.bat viser prisen og pålydende rente for en amerikansk statsobligasjon med 30 års løpetid. Pålydende beløp er alltid 100 dollar. Den kaller global_market.bat som er en tjeneste under rapid. Du kan bruke yield.exe til å finne den årlige avkastningen på papiret. Akkurat nå får jeg ut U.S. 30Y 101.91 4.0 av bonds.bat . Da tar du yield 101.91 4.0 30 og får ut 3.8910 . Det er renta (i prosent p.a.) du faktisk oppnår på papiret hvis du kjøper det akkurat nå. Når prisen ligger over 100 dollar ligger avkastningen under pålydende rente.

cache.bat bruker et program, ikke et API, men det er veldig nyttig for den som bruker Firefox. Programmet heter MZCacheView og må lastes ned. For å kunne bruke det må du tilføye banen til programmet i path %path%;%cd% i miljo.bat . Hvis banen er C:\Users\ola\Programfiler\MZCacheView skal det stå path %path%;%cd%;C:\Users\ola\Programfiler\MZCacheView . Du må redigere banen til cache-mappa i cache.bat . Der står det nå C:\Users\ola\AppData\Local\Mozilla\Firefox\Profiles\v21oax5o.default\cache2 . Her må du i hvert fall endre ola til ditt brukernavn, og v21oax5o til din profil. Når du akter å bruke cache.bat skal du først slette Firefox-cachen. Siden går du inn på nettstedet (https://www.eksempel.com) du vil lagre bilder fra. Det er bare å surfe rundt. Når du er fornøyd oppretter du en mappe og går til den. Så gir du kommandoen cache www.eksempel.com . Da får du ut alle jpeg-bilder som vistes på sidene du besøkte under https://www.eksempel.com .

latlon.bat brukes til å finne breddegrad og lengdegrad for en by på Jorda. F.eks gir latlon Oslo 59.9133301 10.7389701 . city.bat går den andre veien: city "59.9133301 10.7389701" returnerer Oslo. Glem ikke anførselstegnene her. Disse skriptene bruker tjenestene til opencagedata.com . Du må registrere deg der og få API-nøkkel. DIN_API_NOKKEL må som vanlig erstattes.

extractpdf.bat er et annet skript som ikke bruker API men program. Det er særlig nyttig i samband med OCR. Mer om det nedenfor. Programmet heter pdftk.exe og kan lastes ned gratis. Du må legge inn banen til programmet i PATH på samme måte som oven. Skriptet brukes slik: extractpdf doc.pdf "10 13 15-17" Her velger man ut sidene 10, 13 og 15-17 og lager et nytt pdf-dokument av dem (_doc.pdf). Glem ikke anførselstegnene. Dette er pdf-sidenumrene, ikke nødvendigvis boksidenumrene.

rotatepdf.bat bruker også pdftk.exe . Det dreier alle sidene 90, -90 eller 180 grader med urviseren. Dette angis med ordene east, west, south. Eks.: rotatepdf doc.pdf east. Et nytt dokument _doc.pdf lages.

Endelig har du splitpdf.bat . Bruker pdftk.exe . Hvis doc.pdf har ti sider og du kjører splitpdf doc.pdf får du ut ti nye pdf-dokumenter, ett for hver side i doc.pdf .

Det er en ting pdftk.exe ikke kan, og det er å fjerne sikringen fra sikrede dokument. Når du åpner et pdf-dok hender det at det står SIKRET der. Da kan du ikke gjøre noe med det. Men det finnes et annet pdf-program som tar bort sikringen: qpdf.exe . openpdf.bat bruker qpdf . Eks.: openpdf *.pdf avsikrer alle pdf-dokumentene i mappa. doc.pdf kommer ut som _doc.pdf .

Å lagre filer gratis i skyene (cloud) er noe mange har nytte av. Det vanligste formålet er å dele filene med andre. Man kan også bruke det til å frakte filer fra en maskin til en annen. Hvis du finner et dok på PCen hjemme som angår arbeidet ditt, kan du legge det ut i skyene og laste det ned på jobb-PCen i morgen. Dette er bedre enn å sende det som vedlegg i epost. Det kryr av lagringstjenester i skyene og det er vanskelig å finne noe som på alle måter er bra og gratis. Jeg liker pomf-systemet som har mange kloner. Jeg valgte å bruke fileditch. Det er veldig enkelt. Bruk fileditch.bat slik: fileditch minfil.jpg så får du ut URLen til fila. Den kan hvem som helst laste ned hvor som helst fra. Trenger bare URLen: wget /o minfil.jpg https://s1.fileditch.ch/GeMebzXCpaNjKjnqgXgr.jpg (ikke autentisk URL). Du kan laste opp alle slags filer. Ingen registrering, ingen nøkler. Men lagringen sies å være permanent. Hvis du vil at fila skal slettes etter noen dager uten at du behøver gjøre noe kan du prøve en av klonene. I pakken finner du litterbox.bat hvor filene slettes etter 24 timer.

Når vi først er inne på skylagring vil jeg ikke unnlate å nevne CloudFile som har en sinnrik løsning. Ikke alt er implementert i cloudfile.bat men det viktigste. Her må du registrere deg og få API-nøkkel. Du får 1 Gb gratis. Erstatt DIN_API_NOKKEL som vanlig. Skriv bare cloudfile så får du litt hjelp. Ta cloudfile upload bilde.jpg for å laste opp. Kjør cloudfile list for å vise alle filene som ligger i din mappe der oppe. I tredje kolonne ser du en ID for hver fil, og i fjerde en API-nøkkel. Denne siste trenger du ikke når du skal laste ned: cloudfile download 63b7169nd815f bilde2.jpg hvor 63b7169nd815f er fil-ID og bilde2.jpg hva den skal hete lokalt. Hvis du tar cloudfile list > liste.lst kan du siden laste ned samtlige filer slik: cloudfile download liste.lst men filer som allerede finnes lokalt overskrives ikke. Hva du skal med API-nøklene i fjerde kolonne? Når du skal dele filene med andre! I utgangspunktet er alle filer i mappa private, men du kan velge å dele noen av dem med andre. Du bestemmer selv hvem som skal få adgang til hvilke. Hvis IDen er 63b7169nd815f og API-nøkkelen (fjerde kolonne) er LQOxm88JkcD3AkyBxrl2WsuXkTC5ReN så tar du cloudfile share 63b7169nd815f LQOxm88JkcD3AkyBxrl2WsuXkTC5ReN så får du ut URLen du skal dele. Med den kan alle laste ned fila: wget /o fila.jpg URL . Erstatt URL her med URLen du fikk ut. Til slutt er det greit å vite at du kan slette alle filer i mappa slik: cloudfile clear

Flere finans-skript: prices.bat viser noen priser på populære verdipapirer og råvarer. Den kaller investing.bat som bruker en tjeneste under rapid. Det finnes mange andre data du kan få fram gjennom dette APIet. Glem ikke å abonnere på tjenesten hos rapid.

Noe helt annet: ip_location.bat er en morsom sak. Kjør den uten argument for å få geografiske opplysninger om stedet der du sitter. Eller bruk en IP-adresse som argument for å få geo-info om den. Kan med fordel brukes sammen med nslookup.exe som du har på Windows-maskinen din. Jeg tok nslookup pst.no og fikk ut ip-adressen 195.225.15.105 . Så tok jeg ip_location 195.225.15.105 og fikk success,Norway,NO,03,Oslo County,Oslo,0673,59.955,10.859,Europe/Oslo,Basefarm,BF IS,AS25148 Basefarm AS,195.225.15.105 . Ingen registrering er nødvendig.

Nasjonalbiblioteket har et API hvor du kan søke etter bøker og annet materiell. nbsok.bat implementerer noe av dette. nbsok "Quisling har sagt" gir ut en liste. Bøkene er sortert kronologisk fra eldst til yngst. Først kommer utgivelsesåret, så true hvis boka er digitalisert, så EVERYWHERE eller NORWAY eller NB alt etter hvor den er tilgjengelig fra i nettbiblioteket, så bokID, og til slutt forfatterne. En av bøkene har bokID 7eeb8abb7904b9b2c45134ad66d31651. For å få fram tittel og bokkode tar du nbsok - 7 . Du behøver bare skrive begynnelsen av bokID inntil den er entydig. Her klarer det seg med første tegn. Man får nå ut 1940 true EVERYWHERE URN:NBN:no-nb_digibok_2007011001015 Quisling har sagt -1Citater fra taler og avisartikler . Her er 2007011001015 bokkoden. Ikke det samme som bokID. Endelig kan man søke i bokas fulltekst: nbsok "bolsjevisme" 7 . Jeg fikk ut: maktopgjør, uten krig og revolusjoner. Så meget mer som demokratiet i sitt forfall glir ut i bolsjevisme, og denne har fått en mektig verdensoperasjonsbasis i Russland. I virkeligheten står vi da også og Rom 28. oktober 1922 begynner det som vi kan kalle den europeiske revolusjon mot demokrati, bolsjevisme og jødeherredømmet. 18. september 193 1 blev faktisk den nye verdenskrig innledet ved Japans besettelse . Korte utdrag av boka. Dette får man fram for alle bøker som noensinne er utgitt i Norge, bare de er digitalisert. Ingen krav til oppholdssted her. Man kan søke i alle bøker på en gang, men jeg har bare implementert søking i en bok om gangen.

Når man har fått tak i bokkoden kan man laste ned utvalgte sider fra boka med nb.bat : nb 2007011001015 43 46 gir deg sidene 43 til 46. De kommer ned som jpeg-bilder. Merk at dette bare virker hvis du har adgang til boka. I dette tilfelle er det EVERYWHERE så alle har det, men hadde det stått NORWAY og du befant deg i utlandet ville du blitt nektet. Står det NB nektes alle som ikke befinner seg i NBs lokaler (har ip-adresse hos NB). En annen måte å laste ned utvalgte sider på er å bla i bøkene online i NBs nettbibliotek og siden fiske fram boksidebildene fra Firefox-cachen med cache.bat (se oven): cache www.nb.no. Husk å starte cmd.exe med opsjonen /v:on ellers virker ikke nb.bat .

Selv om man kan søke i fullteksten og få fram korte utdrag er den ikke offentlig tilgjengelig, så vidt jeg vet. Det man ser i nettbiblioteket er jpeg-bildene av de skannede boksidene. Vil man ha tak i teksten må man laste ned bildene og utføre OCR selv. Da er det flaks at vi har førsteklasses OCR-tjeneste gjennom API med raus gratiskvote: OCR Space. Det er et tysk firma i Heidelberg som har laget det. Du må registrere deg og få API-nøkkel, erstatte DIN_API_NOKKEL i ocr_space.bat med den. Siden er det såre enkelt å bruke tjenesten. Legg bildene i en mappe for seg. Gå dit og ta ocr_space *.jpg . Etter noen sekunder har du tekstene. Gratiskvoten (sist jeg sjekket) er på 500 bilder i døgnet. Dessuten max 180 bilder i timen. Det er meget bra. Norsk finnes ikke som språk hos dem, men det går bra å bruke dansk, og det gjør ocr_space.bat . Du kan sende opp jpeg, png og pdf -bilder. jpeg-bildene må ha endelsen .jpg .

Nå ser du nytten av pdf-skriptene ovenfor. Finner du en pdf på nettet av en bok du vil gjøre OCR på må du først bryte den ned i enkeltsider. Siden kan du kalle ocr_space på hver av dem. Det nyttigste ved tekstene man får ut av ocr_space er at man kan søke gjennom hele boka og få ut sidetallene for alle forekomster. OCR-tekstene har alltid en del feil så de er ikke gode å lese. Men mange feil kan rettes av et staverettingsprogram. Vi har selv laget ett for norsk bokmål som medfølger i pakken, bortsett fra ordbøkene som må lastes ned for seg (se oven).

speak.bat er en artig greie. Den forvandler tekst til tale, og du kan velge språk og stemme. Du må registrere deg på voicerss.org og få API-nøkkel som vanlig. Språket er stilt til norsk og stemmen er Martes, men du kan gå inn i speak.bat og endre dette. Bruken er enkel: speak "Jeg elsker deg, Ola." elsker.mp3 Så lytter du på fila ved å ta play elsker.mp3.

Du kan gå andre veien også. revai.bat er det mest avanserte i pakken. Registrer deg på rev.ai og få deg en token som tar plassen til DIN_TOKEN. Så tar du revai elsker.mp3 . Tjenesten er asynkron og du får ut en ID for oppdraget med en gang, men jobben tar lengre tid. Vent ett minutt. Så kjører du revai kg6sblqu2 hvis kg6sblqu2 er IDen. Da får du beskjed om fremdriften. Er den ikke ferdig venter du en stund til og gjentar. Når den er ferdig: revai kg6sblqu2 + og du får ut teksten. Dette skal være verdens nøyaktigste talegjenkjennelse. Og du kan bruke den gratis :) revai spør etter en URL for lydfila så den må ligge på nettet. Jeg bruker fileditch til å laste den opp, men det er ikke noe lurt, for der blir den liggende for alltid. Jeg anbefaler at du går over til litterbox (se oven).

scrapingant.bat er nyttig når du vil hente data fra nettet hvor det ikke tilbys API (eller man må betale for det). Du må registrere deg på scrapingant og få API-nøkkel. Erstatte DIN_API_NOKKEL som vanlig. Et eksempel på bruk av scrapingant.bat er strompriser.bat . Skriv strompriser uten argument og du får ut strømprisene i morgen for mange byer i Norge og mange land. Som du ser skrapes dataene fra en side hos nordpoolgroup.com . Det tar litt tid å få svar så vær tålmodig. Hvorfor man ikke kan hente siden direkte fra nordpoolgroup.com? Fordi den råe html-siden ikke inneholder noen data, de hentes med ajax og html-elementene som viser dem lages dynamisk av javascript. Man må kjøre html-siden gjennom en nettleser for å få ut den ferdige html-siden med dataene.

stock_prices.bat er best for å laste ned tidsserier av aksjekurser. Dette er en tjeneste under rapid, så du må abonnere på den der. Siden er det bare å ta stock_prices EQNR.OL så får du ut tidsserien for Equinor ASA. Argumentet er det globale aksjesymbolet (ticker) som du finner på finanssider. Det består av kortnavnet fulgt av en kode for børsen aksjen primært handles på. For Oslo børs er det .OL, Stockholm .ST, København .CO osv. Skriv symbolet med store bokstaver. Svaret kommer som et json-dokument. Skriptet er stilt for å gi siste 5 års kurser (5y) men det kan du endre til alt fra 1d (1 dag) til 10y (10 år) eller max, se kommentarene i skriptet. Du får ut hver børsdags åpningskurs, stengningskurs, dagstopp, dagsbunn, og volum.

translate.bat bruker google translate gjennom rapid. Abonner på tjenesten der. Du kan oversette et enkelt ord eller en hel tekst: translate "Vi må sikre vårt folks eksistens og en framtid for hvite barn." no en. Språkkoder for språkene du vil oversette fra og til må oppgis. Ut fikk jeg We must ensure the existence of our people and a future for white children. Den offisielle ordlyden er We must secure the existence of our people and a future for white children. Men gratiskvoten er helt på knærne så tjenesten kan bare brukes når alt annet slår feil.

Derfor tilbyr vi straks et alternativ: translate2.bat brukes også gjennom rapid. Her går det bare med enkeltord eller korte fraser: translate2 "livet er kort" no de En frase kan bare oversettes hvis den er oversatt fra før av et menneske. Så du kan glemme tekster. Til gjengjeld er gratiskvoten raus. Her kan du oversette så ofte du har behov for det.

Vi har tatt med zip.bat og unzip.bat for 7zip som er et uunnværlig verktøy. Det er best å zippe en mappe: zip mappe og unzip mappe.zip .

weather.bat tror jeg du vil oppskatte. Den gir deg været akkurat nå, eller ved seneste måling, hvor som helst på Jorda, angitt ved breddegrad og lengdegrad. Vil du ha vær-rapport for Kirkenes finner du først beliggenheten ved å ta latlon Kirkenes og får ut 69.7271478 30.0448971. Så tar du weather 69.7271478 30.0448971 . Jeg fikk:

By:             Kirkenes
Temperatur:     -18
Nedbør:         0
Snøfall:                0
Solstråling:    0
UV-stråling:    0
Vindhastighet:  1.5
Skydekke:               0
Trykk:          1014.6
Sikt:           1
Soloppgang:     00:00
Solnedgang:     99:99
Måletidspunkt:  2023-01-07 18:52
Beskrivelse:    Clear sky

Tidspunktet er visstnok UTC/GMT, ikke lokal tid. Vi ser at solen er nede døgnet rundt. Jeg gjorde det samme for Sidney: latlon Sidney og weather -33.8698439 151.2082848 med følgende resultat:

By:             Sydney
Temperatur:     16.7
Nedbør:         0
Snøfall:                0
Solstråling:    3
UV-stråling:    1.1945597
Vindhastighet:  5.66
Skydekke:               46
Trykk:          1006.5
Sikt:           16
Soloppgang:     18:53
Solnedgang:     09:10
Måletidspunkt:  2023-01-07 19:14
Beskrivelse:    Scattered clouds

Solen går altså opp om kvelden og ned om morgenen! Men det er London-tid :) Tjenesten brukes gjennom rapid og det vanlige gjelder.

Noe man gjerne vil ha er muligheten for å sende epost og sms fra kommandolinja, og til å få innkommende meldinger levert rett til maskinen med et pling. Men det er lettere sagt enn gjort. Å sende og motta epost er blitt vanskelig på grunn av all spoofing og spamming som har framtvunget sikkerhetstiltak. Du finner nettsteder som er villige til å sende epost for deg gratis, men du må ha ditt eget domene og redigere DNS records. Du får ikke epostkonto hos dem. Hva gjør du med svarene? Du må abonnere på en tjeneste som fremmer dem til en annen epostadresse eller webhook, og redigere DNS records. Det vanskeligste og viktigste er å få beskjed med en gang når ny epost ankommer. Du kan bruke solnet på egen maskin som webhook, men du trenger en dll-utvidelse for å håndtere meldingene. Dette kan gjennomføres men er for komplisert til at jeg kan ta det opp her. sms kan man aldri sende gratis gjennom API, og virtuelle mobilnumre som går til nettet og videresendes til webhook koster også penger.

Én epost-tjeneste er dog lett tilgjengelig: Mottak av kortvarig epost. Når du registrerer deg i et forum på nettet kreves epostadresse, og dit sendes straks en kode for bekreftelse. Den må du kopiere og gi tilbake til forumets nettsted. Du har sikkert gjort dette mange ganger. Hvilken epostadresse skal du bruke? Ofte vil du være anonym og ikke oppgi din offisielle som er knyttet til din person. Man vil også gjerne unngå å bruke samme epostadresse når man registrerer seg i forum A og B som bruker X og Y. Ellers er det fare for at noen der ute får greie på at X og Y er samme person. Det kan bli ubehagelig hvis A er et faglig forum hvor du røper mye om deg selv, mens B er radikalt politisk. Altså en ny anonym epostadresse for hvert forum du registrerer deg på. Men det er brysomt og tidkrevende å skaffe seg ny epostkonto for hver av dem. Kinkig eller hva? Heldigvis finnes det en enkel løsning. 1secmail er så sjarmerende enkel at den fortjener særlig omtale.

1secmail.bat brukes slik: Du skal ikke registrere deg og trenger ingen nøkkel. Bare skriv 1secmail så får du ut en samling domener du kan bruke. Velg ett av dem, f.eks. bheps.com . Nå velger du fritt epostadresse med det domenet, f.eks. kjernekar@bheps.com . Du skal ikke registrere den hos 1secmail. Du bare oppgir den i forumet når du registrerer deg der. Da får du straks epost dit. Du lister din innboks ved å ta 1secmail kjernekar@bheps.com . Hver mottatt epost har en ID. For å lese den med ID 123456789 (eller hva det er) tar du 1secmail kjernekar@bheps.com 123456789 og får den skrevet ut. Enklere kan det ikke bli. Men dette er kortvarig epost; hver melding slettes etter 10 eller 20 minutter så du kan ikke bruke det til vanlig epost. Du kan heller ikke sende epost derfra.

Da gjenstår bare å omtale vårt eget API for staveretting på norsk bokmål. Tjeneren kjører på din egen maskin under solnet og heter stave.dll . Legg den sammen med solnet.exe . Så åpner du et nytt kommando-vindu. Før du starter solnet må du forvisse deg om at miljøvariabelen ipadresse ikke er definert (fordi solnet skal lytte på localhost). Er den det må den først slettes: set ipadresse= (ingen blanke på høyre side). Så må ordbank være satt lik banen til mappa hvor ordbøkene ligger (se oven), filene grunnord.lst og nyeord.lst. Når dette er i orden kjører du solnet.exe .

Tjenesten har tre funksjoner (endpoints) med hvert sitt batch-skript. stavetegn.bat renser teksten: stavetegn "Dette er en tek#t med no~en ra€e tegn" og ut kommer Dette er en tekt med noen rae tegn. staverettet.bat returnerer en tekst med stavefeilene rettet: staverettet "vifunderlig juulfeiring" gir ut vidunderlig julefeiring. Men som du snart vil oppdage er ikke dette noen vidunder-medisin. stave.dll er et program på bare litt over 300 linjer og retter ord for ord uten å skjønne mening eller sammenheng. Rettingen blir derfor ofte rar. Det finnes så mange ord i språket og så uendelig mange måter å sette dem sammen. Dette lille programmet kan ikke vite hva du mente. Når det bare finnes én mulighet kommer det riktig ut, men ofte finnes det mange. Det tredje og siste skriptet er stavefeil.bat . stavefeil "vifunderlig juulfeiring" spytter ut:

vifunderlig     vidunderlig
juulfeiring     julefeiring

Dette kan du ta som forslag til retting. Rediger det og legg det på retting.lst, siden kan du ta: type tekst.txt | filter retting.lst og får ut teksten med disse stavefeilene rettet. For alle tre skript kan du angi en fil i steden for en tekst på linja, f.eks. stavefeil tekst.txt. Du kan utvide ordforrådet ved å legge nye ord til nyeord.lst . type feil.lst | column 1 gir deg alle ord maskinen mener er feilstavet, og noen av dem kan legges til nyeord.lst . stavefeil.bat skriver ut alle forekomster av stavefeil, så samme feil kan gjentas, med samme forslag til retting. Hvis du bare vil se dem en gang tar du type retting.lst | union . Første gang du kaller staverettet.bat eller stavefeil.bat må stave.dll forberede arbeidet ved å laste ordbøkene og beregne tabeller. Det tar tid! I solnets vindu skrives et tidsstempel ut når dette begynner og ett når det er ferdig. På min maskin tar det 13 sekunder. Din er nok raskere.

Det var alt! Vel bekomme. Meld tilbake om feil. Hvis du en dag vil avinstallere pakken er det bare å kjøre solned.bat og slette alle filene. Det vi har vært gjennom er bare eksempler på bruk av APIer. Med verktøyene og forbildene du har i pakken kan du implementere andre APIer og bli mer produktiv i ditt data-arbeid. Hvor mange har ikke kastet bort halve livet sitt på å søke på nettet og klikke forgjeves?! Å peke og klikke er ikke det ultimate. Det er manuelt arbeid. Vi vil lage maskiner for å avlaste oss: Tjenester med APIer og skript for å bruke dem. Man kan utrette så mye mer på kortere tid. Og man har hele verdenshjernen til rådighet.

Erlend