Till molnet och tillbaka igen

Den hälsosamme ekonomisten, Wednesday 12 June, 2019
Bild: 2017-09/dsc01062.jpg

Är lite obeslutsam angående var bloggen ska ligga. För tillfället ligger den på en virtuell server hos Google - en så kallad Compute engine. Det är en server som är väldigt snabb, men också hyfsat dyr. Egentligen onödigt då jag har en snabb server hemma i lägenheten som jag lika gärna kan använda. Äger också en Synology NAS av typen 1515+. Den är dock lite för långsam för att ha bloggen på, särskilt med tanke på att jag bara har 100 MBit.

Servern å sin sida är redan i dag hem för min virtuella värld, så problemet blir att kombinera två servrar med olika uppgifter. High Fidelity, alltså den virtuella världen, körs av praktiska skäl i Windows. Så jag behöver möjlighet att på samma dator även köra Linux.

Först installerade jag Windows på servern och försökte köra Virtual Box för Windows och sedan Ubuntu på en virtuell server i Virtual Box. Det var ingen bra idé, då Windows är högst instabilt och uppenbarligen inte lämpligt för servrar. Efter mycket om och men vände jag på steken och installerade i stället Ubuntu Server och därefter Linuxversionen av Virtual Box på servern. Därefter installerade jag Ubuntu Server i Virtual Box. 

Det går bättre. Den virtuella datorn är snabb och nätverket fungerar som det ska. Det är heller inga problem att installera Windows i Virtual Box och därefter High Fidelity i Windows.

Frågan är bara var man lägger databasen till bloggen? Det finns ingen bra backupfunktion om man använder Sqlite3 som databas och man vill inte manuellt spara ner kopior av de virtuella datorerna.

Lösningen blir därför att använda min Synology. Fördelen med den är att den är ytterst stabil - har inte krånglat sedan jag köpte den - och har stöd för MySQL i form av paketet MariaDB. Eftersom NAS:en ligger på samma nätverk kan bloggen med fördel försörja mitt CMS Bolt.cm med data, utan att jag behöver öppna några portar. Det går förstås att lägga databasen var som helst på nätet om man vill, men då bör man lämpligen slå på https. Hastigheten lär heller inte bli så hög.

Återstår att konvertera från Sqlite3 till MySQL. Det var svårare än väntat. Dels har formatet för lagring av inlägg ändrats något sedan jag började blogga, dels är det inte samma syntax i Sqlite som i MySQL. En kopia skapad med Sqlite går därför inte att omedelbart lägga in i MySQL.

Till min räddning kommer en gem, alltså ett program, i Ruby som heter Sequel. Sequel är en databashanterare som kan användas för att förändra data och som hanterar alla vanliga databasformat.

Det är inte helt uppenbart hur man ska göra om man aldrig använt en databashanterare, men när jag väl förstod var det extremt enkelt. Att justera tabellerna så att de blev konsistenta över tid var det första steget. Eftersom jag inte använt Sequel tidigare använde jag möjligheten att skriva SQL-kommandon direkt i Sequel. Så här i efterhand var det kanske inte det smartaste, men det var den metod som jag kände till.

DB = Sequel.sqlite('ekonomism.db')
items = DB.fetch "SELECT * FROM bolt_pages"
DB.run("UPDATE bolt_pages SET datedepublish='1900-01-01 00:00:00'")
items.each do |rad|
  image = rad[:image]
  id = rad[:id]
  # Ta bort datedepublish
  puts id, image
  # entries
  if !image.nil? then
    image = '{"file":"' + image + '"}' if image[0..1] == '20'
    DB.run("UPDATE bolt_pages SET image='#{image}' WHERE id='#{id}'")
    puts "pages"
    puts id, image
  end
end

Först måste datumet för kolumnen "datedepublish" fixas till så att MySQL inte slår bakut. Ett antal datum var nämligen inte verkliga datum. Därefter måste kolumnen där bilderna lagras förändras från vanligt textformat till JSON-Y. Lyckligtvis är teckenkodningen genomgående UTF-8 så det behöver jag inte tänka på.

Som ni ser använder jag raw SQL för att genomföra transaktionen, men lösningen är bristfällig av flera skäl. Framför allt lyckades jag aldrig klura ut hur man använder placeholders och flera placeholders i samma transaktion, så ovanstående kod skulle inte vara lämplig att använda i det fria.

Så hur ska man då konvertera allt, om det inte går att använda raw SQL? Lösningen blev som sagt att använda Sequels syntax, som visade sig betydligt enklare än SQL när allt kom omkring.

DB = Sequel.sqlite('ekonomism.db')
DB2 = Sequel.mysql2('xxx', user: 'xxxx', password: 'xxxx', host: 'xxx.xxxxx.xx')
entries2 = DB2[:bolt_entries]
entries = DB[:bolt_entries]
entries.each do |rad|
  entries2.insert(id: rad[:id], slug: rad[:slug],  ....  )
end  

DB och DB2 öppnar förbindelsen till databaserna. De följande två raderna skapar två dataset av respektive tabell och loopen skriver i tur och ordning över alla kolumnerna till den nya databasen. Det är faktiskt inget mer som behöver göras, entries2.insert skriver nämligen direkt i databasen.

Visade sig att Sequel inte enbart kan fungera som en databashanterare, utan också är ett väldigt smidigt verktyg för att konvertera mellan olika databasformat. Överväger nu att även använda Sequel i mina andra projekt. Ska dock nämna att det kan vara svårt att tänka om från raw SQL till Sequelsyntax. Kanske lättare för dom som kommer från en Railsmiljö och använt Active Records.

Måste förstås även flytta min rubykod till servern, men den ligger på GitHub så det är i princip bara att klona koden numera. Jag börjar med att utveckla den på Code Anywhere, pushar sedan upp till GitHub och kan sedan klona den därifrån till valfri server. Ytterst behändigt. Och med NGINX och virtuella värdar kan allting köras på samma IP. Det är bara serverns hastighet och bandbredden till lägenheten som blir begränsningen.

Molnet är nog praktiskt, men rätt dyrt. Personligen ser jag störst fördelar i att lägga utvecklingen av programvaran i molnet, som man gör med Code Anywhere, och sedan flytta ner allt på egen server. Inget hindrar ju att man kör containrar och sånt på sina egna servrar och har man en anslutning på 1 000 Mbit lär man få betala mycket för att få samma kapacitet som med en egen server.

Hur skulle en libertariansk smittskyddsstrategi se ut?

Den hälsosamme ekonomisten
Bild: 2017-09/dsc01062.jpg

Skydd mot smittosamma sjukdomar brukar anges som typexempel på kollektiva nyttigheter i den ekonomiska litteraturen. Men i själva verket är det raka motsatsen. Skälet till att smittskydd betraktats som en kollektiv nyttighet är att det inte funnits något effektivt sätt att på ett effektivt sätt förmedla information om risken för smitta. Internet har dock förändrat detta. Smittskydd är numera i högsta grad en privat nyttighet, eftersom nyttan av att inte bli smittad nästan helt tillfaller den …

Läs mer!

Kommunerna och tystnaden

Den hälsosamme ekonomisten
Bild: 2017-09/dsc01062.jpg

Som jag tidigare noterat är öppenhet en viktig förutsättning för att bekämpa Covid-19 . Skälet är att smittan sprids i kluster och klustren är i sin tur ett hot mot det övriga samhället. Folkhälsomyndighetens strategi var ursprungligen att låta viruset sprida sig bland unga och friska och att skydda de äldre. Eller ... man trodde i alla fall att viruset skulle sprida sig bland de unga och friska och att man skulle kunna skydda de äldre. Men det blev inte så. Nu är det de unga och …

Läs mer!

Den nya finanspenningpolitiken

Den hälsosamme ekonomisten

Enligt OECD kommer de rikaste ländernas genomsnittliga skuld efter Coronakrisen att uppgå till 137 procent av BNP. Jag tror inte att skulden någonsin kommer att betalas tillbaka på traditionellt sätt. I stället lär vi hantera den som Japan gjort - som lät centralbanken trycka pengar för att betala kalaset. Erfarenheten därifrån är att det … Läs mer!

Unpoly fungerar väldigt bra ihop med Sinatra

Den hälsosamme ekonomisten

Har i helgen arbetat med en app som bygger på ramverken Unpoly och Sinatra . Sinatra är backend och Unpoly är frontend och dom matchar varandra oerhört bra.  Ibland kan det vara svårt att avgöra vilka funktioner som ska placeras var. Men rent generellt - går det att använda Ruby i stället för Javascript så gör jag det. Ruby har … Läs mer!

Sitt bara tyst och se hotfull ut

Den hälsosamme ekonomisten

Läser på SVT-nyheter om mötet där SKR ville tvinga Arbetsmiljöverket att avskaffa kraven på munskydd i äldreomsorgen. Tydligen erbjöd sig en medarbetare till socialminister Lena Hallengren  också att vara med på mötet . Det framgår inte vad det var för typ av medarbetare, men förmodligen en politiskt sakkunnig. Det låter som ett riktigt … Läs mer!

Antikropparna och Folkhälsomyndigheten

Den hälsosamme ekonomisten

I dag menade Anders Tegnell på Folkhälsomyndighetens presskonferens att provsvaren i dag speglar smittoläget tre veckor tidigare då det tar tid att utveckla antikroppar mot viruset. " Siffrorna speglar coronapandemin från vecka 15, eftersom det dröjer ett tag innan kroppens immunförsvar utvecklar antikroppar. Det är inte 7 procent nu. Vi … Läs mer!

Lidar gör det möjligt att samarbeta i AR

Den hälsosamme ekonomisten

Ser en del rykten om vad som kommer att ersätta mobiltelefonen med tiden. Det logiska är förstås glasögon - som gör att AR (Augmented Reality) blir tillgängligt för gemene man. Problemet är att det inte finns något självklart sätt att mata in information med ett par glasögon. Man kan läsa av ögonrörelser, använda rösten eller något annat. Jag … Läs mer!

Sveriges coronadebacel kostar gränshandeln 10 miljarder

Den hälsosamme ekonomisten

Vad kostar det Sverige om det tar längre tid för oss att få ner coronasmittan än våra nordiska grannländer? Vi vet att gränshandeln mellan Sverige och Norge omsätter 26 miljarder årligen. Det mesta av varorna går åt det ena hållet - alltså från Sverige till Norge. Skälet är att den norska kronan i allmänhet är stark och att punkt- och … Läs mer!

Redan i februari visste vi att dödligheten var 0,5 till 1,0 procent

Den hälsosamme ekonomisten

Ju mer jag diskuterar dödligheten för Covid-19 , desto mer inser jag att synen om att viruset har låg dödlighet helt enkelt beror på att många är ovana vid att beräkna sannolikheter. Det förvånar mig inte att random person på internet har uppfattningar som inte stämmer överens med faktiska observationer, det förvånar mig mer att erfarna epidemiol… Läs mer!

Om bloggen

Den hälsosamme ekonomisten är en blogg som handlar om sjukvårdens organisation, incitament och klassisk liberalism - allt skrivet ur ett ekonomistiskt perspektiv. Webbplatsen använder tredjepartskakor (cookies) från Disqus, Piwik, Facebook, Google och Twitter för att anpassa innehållet och annonserna till användarna, tillhandahålla funktioner för sociala medier och analysera vår trafik. Vi vidarebefordrar information om din användning av vår webbplats till de sociala medier och annons- och analysföretag som vi samarbetar med. Du kan läsa mer om webbplatsens kakpolicy här. Denna sida drivs med webbverktyget Bolt. Av Mattias Lundbäck.

VR och Vårdvalssidan

Den hälsosamme ekonomisten finns även tillgänglig i VR. Har man HTC Vive eller Occulus Rift når man hifi://ekonomism genom att först installera appen High Fidelity som ger tillgång till en stor mängd olika virtuella världar. Sedan skriver man bara "ekonomism" i Goto-fältet i HiFi. Fältet motsvarar adressraden i en vanlig webbläsare.

Besök gärna www.vårdval.se - det enklaste sättet att hitta och jämföra vårdgivare.

Läs bloggkollegor

Anybodys Place Carl-Johan Westholm Cornucopia Danne Nordling Eskil Ullberg Fnordspottning Fredrik Malm Fredrik Segerfeldt Gustav Nipe Henrik Alexandersson Janerik Larsson Jonas Grafström Lennart Grundel Maria Abrahamsson Markus Uvell Mina Moderata Karameller Mattias Svensson Niclas Berggren Opassande Per Gudmundson Sjätte Mannen Tanja Bergkvist The Market Monetarist


Creative Commons-licens
Den hälsosamme ekonomisten av Mattias Lundbäck är licensierad under en Creative Commons Erkännande 4.0 Internationell licens.
Based on a work at https://www.ekonomism.us.

Sociala medier

Den hälsosamme ekonomisten är en blogg för dig som är intresserad av ekonomi, politik och teknik. Följ mig på Twitter för regelbundna uppdateringar. Läs mer om Den hälsosamme ekonomisten och Mattias Lundbäck här.


Linkonomism
Googelkonomism
Feedkonomism