Johan Bjerre - bjerre.dev
2024-05-17

NextJs

I've rewritten this site using NextJs instead of .Net MVC.

NextJS

2023-04-26

Build your own smart meter with ESP8266

I've built my own smart meter to get real time stats for my local consumption and production.

The hardware is an ESP8266, a 10k resistor and a RJ12 cable. Total cost 90 SEK. See link below for code

ESP8266 smart meter

2023-04-09

Find wire break automower

I accidentally broke the wire for the lawn mower. This is how i fixed it. Watch below


2019-08-29

Continuous Deployment with Watchtower

By using GitLab you can have you docker images built automatically when doing a commit, ie Continuous Delivery. To get rid of the manual step of restarting my docker containers I've introduced Watchtower.

It detects when a new image if available, pulls it and restarts you container with the same parameters that it was started with, ie Continuous Deployment.

"docker run -d --name watchtower -e REPO_USER=user -e REPO_PASS=pass -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --interval 60"

"--interval 60" Watchtower will look every 60s for a new image (default 300)

"--cleanup" Watchtower will delete old images (default keep them)

Watchtower

2019-05-04

GitLab

I have been using a vps with OpenVZ with an old kernel which doesnt support docker. To be able to dockerize this site I hence switched to another supplier and also decided to use KVM as virtualization method. In that way you get an up to date kernel and you are not limited in a way as with a shared kernel.

By using docker and GitLab I can minimize the manual work effort when it comes to build and deployment of a new version. GitLab is a CI/CD tool and offers a free plan with fully acceptable limitations for a smaller private project. One is that you need to have your repo at GitLab.

By setting a pipeline you can specify what happens on every commit made. I have got two stages. First one builds and the second one pushes the new docker image to the GitLab Registry.

GitLab Logo

2018-12-03

New Job

After 4 years I decided to leave my role as consultant and to become a "normal" employee. From now on you'll find me at IST in Vaxjo.

IST

2017-02-04

En liten update

2.5 år är en lång tid, min avsikt är att bli bättre på att uppdatera denna sidan. Ett par månader efter mitt förra inlägg, närmare bestämt november 2014, så köptes min dåvarande arbetsgivare Prognosia upp av deras konkurrent Allra. Jag tackade nej till att följa med vidare på den resan, mestadels då jag inte lockades av en flytt till sthlm.

Jag började istället jobba som konsult på SoftHouse. Jag bytte Gbg mot Växjö. Under min tid hos SH har jag haft två större uppdrag, det första hos IST Roskilde och det andra (och nuvarande) hos Försäkringskassan i Karlskrona.

Både dessa bolag har byggt sin backend i Java. FK använder Angular (1.5 tror jag) och har en övergång till 2.x framför sig. För att förbättra mina Angularkunskaper och att stå väl rustad inför kommande utmaningar har jag byggt om denna sidan till just Angular 2.

PrognosiaSofthouseAngular

2014-08-22

Statistik över dina träningspass

Jag tycker Runkeeper har lite dåligt utbud när det gäller statistik.

Har därför mha Scraper och Runkeeper tagit ut all data från mitt konto och skapat egen statistik vilket går att beskåda under Training.

Lite intressant att äldre träningspass hos Runkeeper, kunde hämtas ut fritt, dvs ingen säkerhet som hindrade. Enda du behöver är personens userId (en nummerkombination).


2014-02-22

De mest efterfrågade programmeringsspråken

Vad bör du kunna för programmeringsspråk för att vara önsvärd på den svenska arbetsmarknaden? Följande statistik är endast baserad på arbetsförmedlingen. Grafen är statisk för att minska slagningar mot databasen. Insamlingen av data startades nån gång vid årsskiftet, därav de låga siffrorna för tiden innan.

Ska man tro dessa siffror är alltså Java det mest efterfrågade språket följt av c#, html, css och javascript.

Statistiken är framtagen med hjälp av reguljära uttryck, hör gärna av dig om du har tips på hur programmeringsspråket C kan regexas ut :) Annars tror jag att alla de stora kommit med?

En dagsfärsk sammanställning går att ta del av här Link(inaktiverat))


2013-08-18

Raspberry Pi

Köpte en Raspberry Pi rev B från Amazon UK den 12de, beräknad leverans var tidigast 22de men redan den 15de damp denna tidiga julklapp ner i brevlådan. Snabbt marscherat!

RPin behövde sättas i safe mode (hdmi_safe=1) för att fungera mot min skärm, förutom detta gick installationen smidigt. Efter att installationen av Raspian slutförts kvarstår vissa problem med hdmi, därför valde jag att under den initiella configurationen att köra med RCA istället. Efter installationen så öppnade jag för ssh access, detta i kombination med wifiadapter gör RPin väldigt flexibel gällande placering.

På förhand hade jag läst att RPin eventuella kunde ha svårt att mata flera externa enheter via usb, detta har dock inte varit nåt problem hittills. Har testat med webcam och wifiadapter vilket RPin har klarat av att mata, trots att båda enheterna alltså inte har egen (extern) matning. Men för att vara på den säkra sidan och även för att i framtiden kunna leka med tyngre externa komponenter är en usbhub beställd. På detta sätt kommer matningen för samtliga usbenheter läggas externt och alltså inte belasta RPin själv.

Raspberry Pi Logo

2013-06-27

Ny tjänst: Telefonväxel PBX

Har byggt en egen telefonväxel med hjälp av Asterisk vilket jag liksom AutoRobot kan tänka mig erbjuda för den intresserade.

Asterisk

2013-06-17

Robot

Har genom åren flera gånger ställts inför behovet att tjuva lite data. Detta är vanligtvis något som ägarna eller framställarna av datan starkt ogillar och motverkar genom att försvåra stölden.

Det fina i det här är att jag lärt mig några knep gällande automatiseringen av interagerandet mellan människa och webbsida. Har sammanställt dessa kunskaper som en tjänst som jag kan tänka mig erbjuda för den intresserade.


2013-06-06

Väntar på google

Senaste dagarna har google kört intensiv indexering av de olika domänernas undersidor. Senaste timmen har google, enligt apache loggen, gjort lite drygt 1.5k anrop dvs nästan varannan sekund. Då det inte handlar om nån monster-VPS, utan snarare en budgetvariant med endast 512mb, är detta mer eller mindre heltidssysslan för tillfället. Om dom bestämt sig för att gå igenom allt material så kommer detta ta riktigt lång tid. I nuläget finns drygt 1.5M undersidor....

Mer konkret så handlar det om ca 42 dagar som det kommer ta google att ta sig igenom alla sidor. I fredags var även Bing igång och indexerade, så låt säga att detta kommer ta ca 80 dar. Så jag önskar VPSen en trevlig sommar...

Tillägg#1: En lösning på detta är att sänka hastigheten för indexeringen, detta görs i webmaster tools. Klicka Konfiguration->Inställningar

Tillägg#2: Under morgonen tryckte Bing stundtals in 7 anrop i sekunden...vilket resulterade i att knappt något material på servern var nåbart. Detta löser man genom att i Bing webmaster tools, sänka indexeringshastigheten alt lägga in följande i robotsfilen: "User-agent: bingbot" och "Crawl-delay: 10"


2013-06-04

Företagside: Konkurrera med 118118

Eniros tjänst 118118 tar ut 23.25 kr i minuten, dvs om en sk sökspecialist behåller hela vinsten själv, ger det en timlön på ITkonsultnivå med 1395kr/h.

Detta förutsätter att personen konstant sitter i samtal vilket inte är praktiskt möjligt. Men pressar du blåsan till yttersta samt håller nere tiden för foderintag, så kanske 60% av tiden är rimligt? Detta ger en timlön på 837kr/h.

Vad behövs för att realisera denna ide och vad kostar det? Rent tekniskt så går denna ide att realisera mha: 1. En siptrunk, vilket tex Cellip tar 99kr/månaden samt en startavgift på 1995kr för. 2. VPS från tex VPSFX, vilket kostar från 20kr. 3. Linux samt Asterisk installation, vilket är gratis.

Dvs en startkostnad på ca 2k samt en månadskostnad på minst 119kr. Antagligen klarar inte de billigaste VPSerna av en större mängd samtal samtidigt, utan en månadskostnad på 99 + ~200 =300 är nog mer rimligt. Räknat på ett år har man alltså utgifter på 5595kr. I Cellips lösning ingår 10 linjer mot telefonnätet, men om jag tolkat det rätt begränsar inte detta antalet inkommande parallella samtal som kan behandlas av växeln och portioneras ut bland klienterna. Låt säga att du startar lite blygsamt med 5 personer som sitter och svarar 8h om dygnet. 8h är 480min och med ovan nämnd arbetsförmåga på 60% ger det en total mängd minuter på 288. Du har 5 personer dvs 1440m totalt. Med Eniros taxa ger detta en inkomst på 33480 om dagen!


2013-06-03

Reguljära uttryck med robots.txt

Efter en omstrukturering råkade jag ut för sitsen med att ha ett stort antal oönskade länkar indexerade på google. Det går ju att reglera åtkomsten för googlebot (samt övriga sökmotorrobotar) genom filen robots.txt. I denna fil kan du tex ange att boten inte ska indexera en speciell mapp eller kanske alla filer som slutar på '.txt'.

I mitt fall ville jag ta bort alla länkar som inte innehöll siffror. Mer specifikt så är de korrekta adresserna utformade enligt /(text)/(siffror)/(text)/ och de felaktiga /(text)/(text)/. Om reguljära uttryck hade tillåtits i robots.txt hade detta kunna lösas med nåt i stil med /[a-zA-Z]/[0-9]+/[a-zA-Z]/.

I stället valde jag att skicka alla (2-3 st) fält vidare till nästa sida genom att i htaccess skriva 'rewriterule ([^/]*)/([^/]*)/([^/]*)/ index.php?arg1=$1&arg2=$2&arg3=$3'. På detta sätta kan man bearbeta fälten med reguljära uttryck fast i steget efter (i index.php).

För att sen undvika indexering för de omdirigeringar som inte uppfyller de reguljära uttrycken kan man dynamiskt bygga upp meta-robot taggen. Dvs vid matching av mönstret sätter du meta name='robots' content='INDEX, FOLLOW' annars meta name='robots' content='NOINDEX, FOLLOW'.


2013-06-01

Torrents över 3g/4g

Skulle tro att samtliga operatörer som förser marknaden med mobilt internet, stryper hastigheten vid bittorrenttrafik. Detta är självupplevt för Telenor och Tele2. Med samma operatörer går det däremot finfint att dundra ner data över andra protokoll, tex ftp.

Så hur löser man detta? Hur laddar man ner torrents via sitt mobila internet? Jo en lösning är att gå via en annan aktör, tex en VPS (virtuell privat server). En VPS kan du få tillgång till för ca 20kr i månaden från bla VPSFX.

Om du tex väljer en linuxdistro som OS, kan du använda dig av rTorrent tillsammans med gränssnittsverktyget ruTorrent. Via ruTorrents webbgränssnitt kan nerladdningar startas i rTorrent.

När nerladdningen är klar så hämtas filerna lämpligen mha ftp från din VPS, över 3g/4g, till din dator hemma.

Glöm inte stänga nerladdningarna strax efter att de är slutförda för att minimera risken att åka dit bara;)


Last update: May 31, 2024