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!