Corona Splatter 2020

2020-04-18

https://lazze.ziden.org/wp-content/uploads/2020/04/CoronaSplatter2020.zip

I haven’t coded any graphics or games since the Amiga period – during the easter hollidays I learned the 2D portion of
the framework monogame! It was great fun! Not hard at all if you already know how to code c#

Corona Splatter is a simple game – but I sure had lots of fun making it(even tough times are dire in the real world).

I’ve used Visual Studio 2019 / c# / monogame 3.7.1 – https://www.monogame.net/

All visuals are made by me in Adobe Photoshop 2020

Sounds are from https://freesound.org/ – thank you!

The game should run on any decent Microsoft Windows machine 🙂 Only tested on some Win 10 x64 machines.
(.Net framework 4.7.2 is needed, but is included in install package).

Be well and have fun!

Cheers,

Lars Siden

Stockholm, Sweden

HÀmta första

taggen som text

Sonen ville göra om ett Python program till c# sÄ han kunde bygga ett Winforms-GUI till det. SÄ med gemensamma krafter sÄ översatta vi lite ormkod till c#. Hans tanke Àr att han har en lista i en textfil och listan innehÄller ord som han vill slÄ upp mot Wikipedia för att sedan lyfta ut första paragrafen och konvertera HTML-texten till plain text.

För att fĂ„ till det sĂ„ skrev vi tre hjĂ€lpmetoder – första metoden hĂ€mtar in en webbsida och sparar i en string:

public static String GetHtml(string Url)
{
  string result;
  HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(Url);
  myRequest.Method = "GET";

  using (WebResponse myResponse = myRequest.GetResponse())
    using (StreamReader sr = new StreamReader(myResponse.GetResponseStream(), 
             Encoding.UTF8))
  result = sr.ReadToEnd();
          
  return result;
}

NÀsta metod lyfter ut första <p> taggen och returnerat allt innehÄll i den:

static string GetFirstParagraph(string inputHTML)
{
  Match m = Regex.Match(inputHTML, @"<p>\s*(.+?)\s*</p>");
  if (m.Success)
  {
    return m.Groups[1].Value;
  }
  else
  {
    return "";
  }
}

och till sist en metod för att rensa bort HTML-taggar – denna Ă€r inte bombsĂ€ker, men “good enough”:

public static string StripHTML(string input)
{
  return Regex.Replace(input, "<.*?>", String.Empty);
}

Hoppas det hjÀlper nÄgon!

RÀkna pÄ ditt sparande

Är du kanske som jag, trött pĂ„ bankens “generösa” 0% rĂ€nta pĂ„ dina pengar som sitter pĂ„ kontot. Har du tur och flera banker sĂ„ kanske du har mellan 0.8% och 1.2% i sparrĂ€nta – inte heller nĂ„got att hurra för. Finns ett antal olika spar-tjĂ€nster nuförtiden – dvs robotar som via historisk data kan fatta smarta investeringsbeslut Ă„t dig. Alla stora banker och andra finansiella aktörer erbjuder nĂ„gon form av robotsparande. Jag ska inte ge mig pĂ„ att ge en rekommendation pĂ„ vilken som Ă€r bĂ€st – för att se rekommendationerna sĂ„ fĂ„r du googla sjĂ€lv 🙂

DÀremot sÄ tÀnkte jag visa ett handgripligt verktyg för att göra en prognos för vad sparandet kan vara vÀrt pÄ sikt. BÄde för att det Àr intressant att sjÀlv veta nÀr det Àr rimligt att man uppnÄr ett sparmÄl och för att de flesta av dessa robotsparare kommer vilja att du gör en profil pÄ hur du vill spara. Det Àr egentligen bara tvÄ val som brukar dyka upp, aktiesparande via fonder eller sparande via rÀntebundna fonder. Aktiebundet sparande har chans till högre avkastning men har i gengÀld högre risk.

Vi rÀknar i Excel

De allra flesta har tillgĂ„ng till Microsoft top hit Excel – antingen pĂ„ sin hemma dator eller pĂ„ en jobbdator, sĂ„ det Ă€r det jag kommer anvĂ€nda i mina exempel. I Excel sĂ„ finns det ett stor formel-bibliotek som man kan anvĂ€nda för en hel massa saker. Den formel vi ska titta pĂ„ idag heter “SlutvĂ€rde” pĂ„ svenska och ligger under kategorin finans i Excel. PĂ„ engelska heter den “FV” (Future value). Funkar lika bra att köra svensk som engelsk Excel.

Decimaler i Excel kan kĂ€nnas lite knepigt. Som standard sĂ„ Ă€r det inga decimaler som syns nĂ€r man tittar i Excel. Dock sĂ„ kan det vara ett decimalvĂ€rde lagrat i cellen. För att se decimalerna sĂ„ högerklickar du pĂ„ en eller flera celler(eller en hel kolumn) och vĂ€ljer “Format cells” och sĂ„ vĂ€ljer du att celltypen skall vara numerisk. PĂ„ samma stĂ€lle vĂ€ljer du ocksĂ„ hur mĂ„nga decimaler som ska visas. För detta Ă€ndamĂ„l sĂ„ Ă€r 3 decimaler bra.

Excel

LĂ„t oss komma igĂ„ng – öppna en ny Excelbok – stĂ€ll in dina decimaler och sen kan du göra en inmatning liknande denna:

DĂ€r du ska mata in vĂ€rden pĂ„ raderna 3 till 6 – resten ska vi rĂ€kna ut.

StÀll dig i cell B7(slutgiltig belopp). Det Àr dÀr vi skall stoppa in vÄr formel. i listan med formler sÄ vÀljer du SlutvÀrde/FV och kommer dÄ fÄ upp en ruta med de vÀrden som formeln behöver för att kunna köras.

Rate Àr den förvÀntade avkastningen som vi har i cell B6(Ärlig avkastning) dÄ formel jobbar per mÄnad sÄ delar vi med 12.

Nper Àr antal perioder/mÄnader som vi vill rÀkna pÄ. DÄ vi anger Är i cell B5 sÄ tar vi det gÄnger 12.

Pmt Ă€r hur mycket du vill spara per mĂ„nad. DĂ„ Excel ser detta som en “betalning” sĂ„ anger vi den negativt för att fĂ„ ut ett positivt vĂ€rde pĂ„ vĂ„rt sparande.

Pv Ă€r det startbelopp som du börjar med. Ofta stoppar man in en slant för att komma igĂ„ng, vanligen 10.000kr. Även hĂ€r mĂ„ste vi ange ett negativt tal för att fĂ„ ut ett positivt sparande.

Type, hÀr anger du om första sparmÄnaden skall rÀknas eller ej. Dvs stoppar du in startbelopp + mÄnadssparande eller bara startbelopp.

Du ser redan i dialogen vad utrĂ€kningen blir – tryck OK för att komma tillbaks till ditt Excelblad. Nu Ă€r dina celler “bundna” till formeln.

För att tydligare visa hur mycket du sparar och hur mycket som Àr den prognostiserade vinsten sÄ stoppade jag inte tvÄ rader till.

Insatt = AntalmÄnader * mÄnatligt sparande + startbelopp

Vinst = Slutgiltigt sparbelopp – Insatt

Nu kan du experimentera med att Àndra tid, sparbelopp per mÄnad och förvÀntad avkastning för att se hur det slÄr. Du kan ocksÄ enkelt kopiera hela Excel stycket och klista in en eller flera versioner till med olika parametrar. T.ex. sÄ kanske du vill rÀkan pÄ en aktiedel och en rÀntebunden del, dÄ kan det se ut sÄ hÀr:

Du kan lÀgga in hur mÄnga kopior du önskar för att göra en prognos för olika scenarion.

Ladda ner min demo-Excel

Lycka till med ditt sparande!

WordPress media upload

Hade mysko problem med att de filer/bilder som jag försökte lĂ€gga in i artiklarna betedde sig konstigt. Kunde se thumbnail och kunde Ă€ven trycka edit. Men de syntes inte i artikeln och inte pĂ„ “attributes” sidan i Media-fliken. Visar sig att WordPress/PHP har en standardkatalog nĂ€r man laddar upp filer som Ă€r c:\windows\temp. NĂ€r filen Ă€r uppladdad sĂ„ flyttas den frĂ„n det katalogen in i wordpress content MED de rĂ€ttigheter som var satta pĂ„ filen. NĂ€stan ingen har behörigheter i c:\windows\temp – sĂ„ Application Pool anvĂ€ndaren som körde WordPress kunde inte komma Ă„t/lĂ€sa filerna lĂ€ngre. Man fixar det i PHP.INI genom att sĂ€tta “upload_tmp_dir ” till en lĂ€mplig katalog. Enklast Ă€r att ha en katalog under wordpress-installationen sĂ„ vet man att behörigheterna Ă€r OK.

PHP, WordPress och IIS

Php 5 anses förlegat och osĂ€kert, sĂ„ man uppmanas att uppdatera till nyaste versionen av PHP 7 ( just nu 7.3.8 ). NĂ€r man gör det sĂ„ försvinner stödet för det gamla API:t mot MySQL och man kan fĂ„ mystiska errors pĂ„ sin WordPress-sajt. Eller om man försöker installera WordPress sĂ„ gĂ„r inte sjĂ€lva installations-wizarden igĂ„ng alls. Det man behöver se till att göra dĂ„ Ă€r att aktivera “extensions” i php.ini samt att aktivera de MySQL extensions som krĂ€vs, Ă€ven det i PHP.ini. Vad jag kan se sĂ„ Ă€r detta denna extension som krĂ€vs:

extension=mysqli

Jag hade Àven en hel del huvudvÀrk över att jag aktiverat WinCache. DÄ den lÄser php.ini filen i sin cache och Àven om man stoppar IIS sÄ kan man inte redigera php.ini. Det finns en php.wincache.ini.bak som man kan redigera och den skall dÄ ersÀtta php.ini via automagi. Jag upplevde inte att det funkade. Googlar man detta sÄ Àr det mÄnga som upplever Wincache som mysko och svÄrt tillsammans med IIS.

Sista tipset, i wordpress-config.php sÄ kan man slÀnga in:

define( ‘WP_DEBUG’, true );

SÄ fÄr man tydligare felmeddelanden nÀr man ska felsöka.

VMWare problem win 10

Hade sjukt mycket problem med att fÄ VMWare workstation att funka pÄ Win 10 Enterprise efter senaste uppdateringen. Detta hjÀlpte mig:

https://communities.vmware.com/thread/588526

NĂ€r man kör det dĂ€r skriptet med BCEdit, sĂ„ stĂ„r det att nĂ€r man bootar om datorn sĂ„ mĂ„ste man trycka F3 TVÅ gĂ„nger och sedan enter, först dĂ„ fĂ„r man en bekrĂ€ftelse pĂ„ att funktionen Ă€r avstĂ€ngd(Credential Guard) – detta stĂ€mmer! Man ska trycka F3 2ggr annars sĂ„ funkar det inte. // LZ

Canon 6D och extern blixt

Plockade fram mina gamla Knight Flashgun 332:or – dvs radio utlösare för E-TTL blixtar. Tanken var att sĂ€tta en pĂ„ min gamla 580EX blixt och sen montera blixten med ett paraply pĂ„ ett stativ för att fĂ„ en OK portabel blixt som man t.ex. kan anvĂ€nda utomhus för portrĂ€tt eller bilfoto. Visade sig dock att Knighten inte ville fungera med Canon 6D MK II – lite Googlande visade att det var liknande problem med gamla 6D modellen. Kollade in CyberPhoto och de har ett gĂ€ng olika radiosĂ€ndare nu. TyvĂ€rr sĂ„ stĂ„r det sĂ€llan med vilka kameror och blixtar som de funkar. Har skickat ett mail till deras support och invĂ€ntar svar. Men just nu Ă€r det blixtlöst pĂ„ min himmel!