Hack for Sweden

Jury till Hack for Sweden

I helgen har Hack for Sweden gått av stapeln och jag har medverkat som jury tillsammans med Pernilla Rydmark, Peter Krantz och Kristofer Sjöholm. Det var ingen lätt match att hitta vinnare i de olika kategorierna samt ta fram en bra motivering till varje vinnare.

Vinnare av det stora priset vid namn Hack for Sweden Award blev en app som visar hur farliga utsläpp från exempelvis en tankbil eller liknande påverkar området i närheten.

Motiveringen blev enligt följande:

För att på ett nyskapande sätt byggt en tjänst som visualiserar och simulerar konsekvenserna av giftiga utsläpp. Priset Hack for Sweden Award 2014 går till Ge0Hack3rs för RSN (Risk Simulation and Notification System).

Här skrev DN om vinnarna av stora priset. Och här delar jag ut priset till den yngsta hackern blott 11 år gammal som fick juryns specialpris:

Mest lovande hacker

Bildcredd till Malin Crona

Bonnier Accelerator

Bonnier Accelerator

Var just och lyssnade på Bonnier föreläsa om Bonnier Accelerator på deras fina huvudkontor beläget på Kungsgatan i Stockholm.

Bonnier Accelerator är en del av D2D vilket står för Decide to Develop som är ett program som riktar sig till digitala talanger inom och utom företaget, långsiktigt. Och från och med i dag så går det att ansöka om att vara med i deras inkubator.

Föreläste gjorde bl.a:

  • Ulrika Saxon som är VD för företaget Bonnier Growth Media.
  • Adrian Swartz berättade om resan som Cruitway (tidigare Studentlänken) gjorde då de blev antagna till första och förra omgången av Bonnier Accelerator.
  • Tyler Crowley berättade om hur man pitchar och når ut med sin idé bland mängden av ansökningar.

Vad är Bonnier Accelerator?

Det är ett tre månaders program då Bonnier hjälper till att stötta en idé och framförallt en produkt eller företag som redan finns på marknaden. De berättade att vid förra omgången så stöttade de även enbart idéer men inget som de avser att göra igen.

Bonnier kräver inget delägarskap och stöttar med lön samt kontorsplats på huvudkontoret under tre månader. För bra för att vara sant? Ansöker gör du genom att fylla i ett formulär där du ska skicka in en video där du pitchar din idé senast 2:a Maj 2014.

Du får även tillgång till samt hjälp att nyttja Bonniers nätverk med otroligt många företag och varumärken.

Så pitchar du din Startup

Tyler berättade mycket bra ur du lyckas med din pitch. Han har över 7 års erfarenhet av att lära ut bra pitch-tekniker från bl.a. Launch-konferensen som han anordnar tillsammans med Jason Calacanis.

Följande saker är bra att fokusera på när du ska leverera en bra pitch:

  • Försök att förmedla en känsla och lägg krutet på den första minuten. För du tävlar mot Facebook, E-post och allt annat som publiken har i sina telefoner/laptops.
  • Du förmedlar en känsla lättast genom att bygga upp en bra story med drama. Skriv ner din berättelse och använder en karaktär, som inte är dig själv.
  • När du berättar din story så märks det om du övat in den från en skriven text.
  • Om din tjänst är i form av att du skriver in något som de flesta webbtjänsterna är, dvs input -> output så ska output vara 100x mer än vad du skriver in.
  • Berätta vilket problem du löser och blanda gärna in känslor såsom hat, kärlek eller andra saker som fäster människor
  • Använd ej svåra nummer såsom att: Vi når ut till 543000 singel-mammor. Använd i stället: Vi når ut till 1/5 av Sveriges alla singel-mammor.
  • Om du presenterar en berättelse så fokuserar människors hjärnor på att lyssna på historien istället för att hitta brister eller fel på din produkt
  • Ingen bryr sig om vem du är eller vilken skola du har gått i, skippa det
  • Istället för att säga ”Med denna tjänst så kommer du att kunna.. ” så säger du ”Med X så kan du” dvs försök att använda tjänstens ord så ofta du kan så den sätter sig samt så undvik vaga ord såsom kommer, kanske, kunde.

Wow fick nog nästan med allt i Tylers presentation. Många bra godbitar där, men glöm framförallt inte att läsa på innan vem du presenterar för. Exempelvis: Vilka portföljbolag har de sedan tidigare?

Vilka är dina bästa pitch-tips? Skriv en kommentar nedan.

Bonnier Tyler

CoreOS

Så testar du nya CoreOS

Psst! Du vet väl att du kan hyra mig för att göra underverk när det gäller DevOps, IT-säkerhet eller högprestandasystem. Kontakt hittar du här >

CoreOS är ett nytt spännande lättviktigt operativsystem som är byggt för att användas i klusterinfrastrukturer.

Opertivsystemet (OS) är även byggt för att användas till att köra flertalet Docker containers samt så har CoreOS automatiska säkerhetsuppdateringar med två root-filsystem som växlas mellan beroende om det enda uppdateras eller ej. Filsystemen är read-only samt os:et startas om automatiskt vid uppdateringar (eller kexec). Detta innebär så klart att du ej bör lagra något på lokala filsystemet permanent.

Fler fräsiga finneser är en key-value-storage motor inbyggt vid namn etcd (skriven i Go) som även kan användas för service discovery. Etcd synkroniseras automatiskt i hela ditt kluster vilket gör det ypperligt bra för att exempelvis peka ut var dina tjänster håller hus.

CoreOS kluster

CoreOS har tre utvecklare på heltid som jobbar med projektet samt är baserat på Chromium OS som Goolge står bakom. Har även fått in kapital från Andreessen Horowitz samt  Sequoia Capital.

För att testa CoreOS på Mac OS X med Vagrant gör du bara enligt följande:

$ git clone https://github.com/coreos/coreos-vagrant/
$ cd coreos-vagrant
$ vagrant up
$ vagrant ssh

Här är en skärmdump när jag ansluter via vagrant ssh:

CoreOS VagrantOch sedan är det bara att dra igång vår en container i Docker. I detta fall kör jag Ubuntu 13.10:

Docker Ubuntu 13 10

Och här skapade jag en screencast som visar hela förfarandet:

Har du testat CoreOS? Lämna gärna en kommentar om dina erfarenheter.

Docker-hearts-WordPress

Docker med WordPress

Ni som läser denna blogg vet hur förälskad jag är i Docker. Jag tänkte nu försöka förklara hur du kan köra WordPress tillsammans med Docker. Det är ingen lätt process men det finns en stor uppsida:

  • Flexibilitet – Möjlighet att flytta komponenter mellan servrar lätt. Exempelvis lyfta ur databasmotorn eller webbservern.
  • Säkerhet - Allt separeras med hjälp av Linux Containers. Inte lika säkert som separata fysiska servrar eller virtuella maskiner.
  • Skalbarhet – Att växla upp delkomponenter är snabbt och enkelt. Lägga till och ta bort memcached exempelvis.
  • Driftsättning – Gå från utveckling, stage-miljö till driftsättning går snabbt och smidigt. Inga jobbiga beroenden som saknas eller är felaktiga.

Men hur gör man då? Jo först och främst är det några saker man måste tänka på:

  • En docker med Nginx + WordPress
  • Skrivbart filsystem för wp-content utanför dockern till WordPress.
  • En docker med MySQL (eller MariaDB, Percona)
  • Skrivbart filsystem för MySQL-databasen utanför dockern
  • Framtid: En docker med memcached.

Då sätter vi igång. Jag går ej igenom hur du installerar Docker utan det kan du läsa här eller köra Vagrant som jag gör på Mac OS X.

Installera NginxNginx

Den första dockern vi skapar ska ha Nginx samt WordPress installerat. Port 80 för http ska exponeras utåt.

Först och främst kör vi igång kommandotolken bash i Ubuntu 13.10 samt installerar Nginx.

# mkdir -p /data/wordpress/

Först enligt ovan kommando så skapar vi en gemensam katalog för våra containrar samt värdsystemet som ligger under /data.

# docker run -v /data/wordpress:/data/wordpress -p 80:80 -i -t ubuntu:13.10 /bin/bash
# apt-get update
# apt-get -y dist-upgrade
# apt-get -y install php5-fpm php5-gd php5-mysqlnd nginx php5-cli php5-curl php5-json

Ändra sedan /etc/nginx/sites-enabled/default och lägg till konfigurationsdirektiv enligt exempelvis den konfigg-template du hittar här. Du kan även konfigurera tonvis med andra inställningar i Nginx för att uppnå optimal prestanda, men det är ligger utanför denna guide.

Du måste även sätta root till den delade katalogen /data/wordpress/ i Nginx-konfen samt lägga till nedan i /etc/nginx/nginx.conf:

daemon off;

Vi avslutar dockern genom att trycka ctrl-D eller skriva exit.

Sedan kör vi följande för att spara ändringarna vi har genomfört i vår docker. Obs detta är viktigt annars går allt förlorat:

# docker ps -a

Kontrollera sedan vilket container ID den dockern vi just jobbade med och skriv ner ändringarna permanent genom en commit:

# docker commit 5d jonaslejon/nginx-wp:version1

Det räcker att skriva exempelvis de första två tecken i container ID. Ovan exempel så skriver jag bara 5d.

WordPress installationwordpress

Nästa steg är att ladda hem och installera WordPress. Detta görs genom att vi ansluter till dockern som vi just installerade Nginx på:

# docker run -v /data/wordpress:/data/wordpress -p 80:80 -i -t jonaslejon/nginx-wp:version1 bash

Sedan installerar vi wget samt går vi till root-katalogen för webbservern vilket i mitt fall är enligt följande:

# apt-get -y install wget
# chown www-data /data/wordpress/
# cd /data/wordpress/
# wget http://sv.wordpress.org/wordpress-3.8.1-sv_SE.tar.gz
# tar xvfz wordpress-3.8.1-sv_SE.tar.gz
# mv wordpress/* .
# exit

Då var WordPress och Nginx installerat. Och glöm framförallt inte att göra en commit på ändringarna:

# docker ps -a
# docker commit 7e6b550faa50 jonaslejon/nginx-wp:version3

Installation av MySQL, MariaDB eller Percona Server

Här ska vi inte glömma att skapa MySQL dockern i en helt ny docker och inte fortsätta med föregående Nginx-docker.

# mkdir -p /data/mysql

Först skapar vi en gemensam katalog där filerna till databasen ska leva kvar. Sen kör vi igång en docker och delar katalogen:

# docker run -v /data/mysql:/data/mysql -p 3306:3306 -i -t ubuntu:13.10 /bin/bash
# apt-get -y install mysql-server
# chown ubuntu /data/mysql
# vi /etc/mysql/my.cnf
# service mysql start
# echo "create database wordpress"|mysql -plösenord
# echo "GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost' IDENTIFIED BY 'wplösenord'" | mysql -plösenord
# exit 
# docker ps -a 
# docker commit 1f9b38696a7f jonaslejon/mysql:version1

Ovan så ändrar du även i konfigg-filen /etc/mysql/my.cnf där datadir finns (jag gör det med vi). Ändra katalogen från /var/lib/mysql till /data/mysql/.

Jag skapar även ovan en ny databas med namnet wordpress samt en användare med namnet wordpress och lösenordet wplösenord.

Om allt sedan fungerar och du har gjort en commit så kan du testa denna docker med:

# docker run -v /data/mysql:/data/mysql -p 3306:3306 -i -t jonaslejon/mysql:version1 /usr/bin/mysqld_safe

Starta upp allt

Då var två stycken Docker-containers skapade. Vi ska nu starta upp dessa och hoppas på att allt går vägen. Skillnaden här är att vi anger -d så att containrarna läggs i bakgrunden:

# docker run -d -v /data/mysql:/data/mysql -p 3306:3306 -i -t jonaslejon/mysql:version1 /usr/bin/mysqld_safe
Det vi gör sedan är att titta med docker ps:
docker ps
Samt kontrollera loggarna från containern:
docker logs

Ser bra ut! Då ska vi starta upp webbservern Nginx:

# docker run -v /data/wordpress:/data/wordpress -p 80:80 -i -t jonaslejon/nginx-wp:version3 sh -c "service php5-fpm start && service nginx start"
Verifiera att allt körs med hjälp av docker ps-kommandot.

Avslutande anmärkningar

Nu behöver du bara konfigurera WordPress genom att surfa till localhost:80. Detta står även under PORTS när du kör docker ps.

IP-adressen som du behöver när du konfigurerar WordPress-installationen till MySQL-databasen kan du få ut genom att köra inspect på rätt container:

# docker inspect c6e0c1e4e5f0|grep -i ipaddress
 "IPAddress": "172.17.0.2",

Om du ansluter via Vagrant mot containrarna så måste du även konfigurera i Vagrantfile alternativt när du kör vagrant up på följande sätt:

# FORWARD_PORTS=80,3306 vagrant [up|reload]

Övrigt

  • Du behöver inte ha en delad /data-katalog som jag kör med. Men bra om du vill ha data som ska leva en längre tid.
  • Du kan även köra Nginx och MySQL på samma container.
  • Supervisord kan vara bra att använda för att starta upp och hålla koll på processer.
  • Det finns färdiga containers i det centrala docker-indexet. Sök genom kommandot docker search wordpress eller klicka här >
  • Det finns ett fiffigt sätt att automatiskt koppla ihop två containers genom att använda -link argumentet. Då läggs miljövariablar innehållandes port samt IP-nummer till automatiskt på följande sätt:

docker link

Gillar du detta blogginlägg? Donera gärna till min Bitcoin-adress nedan eller dela detta inlägg i sociala medier.

  • 13cxyC2sFvNfAAShcAaSs2YMW3Q4ygstD4
Alltid.se

Startups att hålla koll på

Det händer en hel del i Startup Sverige och flertalet intressanta projekt smyglanseras.

Tänkte lista några av mina favoriter:

Anton Johansson gör en pivot med Osom samt lanserar snart något på Alltid.se. Petter Palander promotar Malmös Startups via malmostartups.com.

Kristofer Björkman aka dojan har lämnat MyNewsdesk bakom sig för ett tag sedan och kör nu Outdoormap/naturkartan, din digitala friluftskarta. Väntar tills Västerås dyker upp på kartan!

vackertväderVackertväder.se som drivs av Tomas Wennström samt broder visar nu även kvävedioxid- och ozon-halter och först ut är Helsingborg. Och när vi ändå är inne på Helsingborg så har staden lyckats att rekryterat grymma Joakim Jardenberg samt Andreas Krohn.

Att Recepten.se är en besökskanon råder det ignen tvivel om. Susanne Jarl som driver sajten lagar alla recept samt fotograferar. Här hemma blir det bl.a. pannacotta i morgon.

appmagasinetFörutom att skriva en massa bra böcker om WordPress och driva OddAlice så har nu Thord Daniel Hedengren aka TDH även startat AppMagasinet. En tidning som skickas ut via E-post en gång i veckan.

Sist men inte minst så utvecklar Ted Valentin sitt nätverk med Populära Hotell, ny fin graf på Socialanyheter samt boutiquehotel.me som Ted har tillsammans med Jonatan Heyman.

boutique hotelGillar du JavaScript? Du missar väl inte konferensen NordicJS som går av stapeln 18-19 September. Och du har väl sett att HackerNytt har fått nytt utseende?

Min mentor: Carina Wigholm

Carina WigholmCarina Wigholm träffade jag första gången 2008 då jag gick ett program för nyföretagare. Då var Carina en av affärscoacherna som stöttade mig i frågor om bl.a. Bloggy. Nu träffas jag och Carina lite då och då och jag får hjälp med frågor om hur mitt entreprenörskap samt företag kan utvecklas.

Annars när hon inte hjälper mig så jobbar hon i ett par bolagsstyrelser, hjälper företag med affärsutvecklingsuppdrag, går in och driver strategiprocesser och hjälper till vid upphandlingar av IT- och webbprojekt. Carina driver även styrelsenätverket Boarding For Success tillsammans med en arbetande styrelse.

Jag rekommenderar alla som är entreprenörer eller egna företagare att ha en mentor eller rådgivare som du kan vända dig till med frågor. Att med externa ögon få råd är otroligt bra eller att bara bolla idéer med någon annan.

Jonas Lejon WordPress Säkerhet

Föreläsning om WordPress och säkerhet

Föregående fredag så höll jag en föreläsning om WordPress och säkerhet på Västerås Science Park. Föreläste gjorde även Christoffer Larsson från Aftonbladet och hur de använder Vagrant för utvecklingsmiljön.

På min föreläsning om säkerhet så berättade jag om en händelse som inträffade för några år sedan då en angripare lyckades utnyttja en sårbarhet på en av mina bloggar och placera ut ett antal bakdörrar. Genom att bakdörra angriparens bakdörrar samt spåra IP-adressen mot andra anrop på min webbserver så lyckades jag till slut hitta alla bakdörrar.

Här finnes presentationen:

Läs mer om #wpbar här. Och tack till Västerås Science park samt Flowcom som sponsrat + arrangerat detta trevliga event.

Hack for Sweden

Hack for Sweden 2014

Den 15-16 mars 2014 i Stockholm arrangeras för första gången Hack for Sweden och jag sitter i juryn tillsammans med grymma personer som Peter Krantz, Pernilla Rydmark och Kristofer Sjöholm.

Vi ska tillsammans se till att finfina priser delas ut i följande kategorier:

Hack for Sweden Award

Priset Hack for Sweden Award går till det bidrag som har bäst har kombinerat data på ett kreativt sätt och skapat den bästa och mest nyskapande applikationen eller tjänsten som helhet. Användandet av datamängder från flera myndigheter värderas extra högt.

Bästa visualisering

Med hjälp av data illustrera en komplex verklighet på ett nyskapande sätt.

Bästa affärsnytta

Applikation, tjänst eller produkt med förutsättningar att kommersialiseras.

Bästa nytta för allmänheten

Skapa ett värde för svenska medborgare och driva samhällsutvecklingen i en positiv riktning.

Helt grymt också att 13 stycken myndigheter är med på banan och tillhandahåller data samt kompetens i någon form. Hacket går av stapeln den 15-16 mars 2014 i Naturvårdsverkets lokaler på Valhallavägen 195 i Stockholm (fd Konstfacksskolan).

Sista anmälningsdag är söndagen den 2 mars 2014, observera att antalet deltagare är begränsat så det kan bli fullt innan dess. Så vänta inte för länge på att anmäla dig eller ditt lag!

Sthlm Tech Mettup

Sthlm Tech Meetup #sthlmtech

I går så var jag på eventet Sthlm Tech Meetup som anordnas av Tyler Crowley som har som jobb att gynna entreprenörsskap. Biljetter bokas via Eventbrite och kön in till lokalen på Hilton Slussen var ofantligt lång. Jag kom precis in och det var många som blev besvikna för att de ej fick plats.

Att Startup-scenen i Sverige är het kan jag bara konstatera och många investerare samt startups var på plats för att göra sin röst hörd.

Några av de företag som fick utrymme att pitcha eller intervjuades var:

  • Videoplaza - Sorosh intervjuades via telefon
  • FatCal - Pitchade på scenen om sitt verktyg att förändra kalendern
  • Relation Desk - Fritjof genomförde en grym pitch om sitt CRM-verktyg för sociala medier
  • Uber - Babba berättade att de lanserade UberX i Stockholm. Vilket innebär mer än 30% billigare taxipriser
  • Creandum - Satt på scenen och berättade om varför och hur de investerar samt bedömde pitcharna
  • Revrise - Jonas och Jonas pitchade sitt analysverktyg på scenen
  • Vint - Har fått 11 miljoner kronor i investering från bl.a. Creandum, DN Capital, Kima Ventures, GP Bullhound, Edastra samt Richard Båge, Bryan Jonson och Mathias Ackermand.
  • Hansoft - Meddelande att Creandum investerat i dem
  • Confetti - Berättade om deras nya projekt. Kolla in!

Kortfattat kan man säga att dom som pitchade gjorde ett mycket bra jobb och investerare skiter i din PowerPoint utan vill se produkten samt höra lite siffror om hur bra det går, vilket problem du löser samt att det finns en rejäl uppsida. Extra många poäng får du om du redan har kunder som investeraren har i sin portfölj.

Tips till dig som vill besöka #sthlmtech är att köpa en biljett för 100 kr till nästa event via Eventbrite för att garantera en plats.

Och framförallt ett stort tack till Tyler som verkligen fått fart i Startup-scenen i Stockholm (och Sverige).

Vidare läsning: Fredrik Wass skrev om Tyler i Maj 2013 här.

Bildkälla: Creandum twitter

Facebook-XSS

Så hittade jag en säkerhetsbrist på Facebook

Det var en fredagskväll för ett tag sedan och jag hade lite tid över. Jag visste sedan tidigare att Facebook uppmuntrade dess användare att hitta och rapportera in säkerhetsbrister som kan identifieras på facebook.com.

Sagt och gjort så kollade jag runt lite på vad jag skulle kunna tänkas att fokusera på för någon typ av sårbarhet. Valde att titta närmare på  Adobe Flash-filer som fanns (dvs .swf) och det var en hel del.

Tittar man på OWASP-projektets hemsida om just Flash så inser man granska snabbt att det är rätt lätt att skita i det blå skåpet om man gör fel.

Använde mig av en proxy (Charles Proxy) för att göra mitm (man in the middle) på min Facebook-trafik och sedan sökte jag helt enkelt efter .swf-referenser i koden. Hittade efter ett tag en .swf-fil som tillhörde något som heter Open Graph och denna swf hade stöd för att ladda in ytterligare moduler externt.

Sagt och gjort så testade jag att skapa en egen swf-fil som bara exekverade ett JavaScript via flash.external.ExternalInterface.call()-funktionen. Fick dock ett felmeddelande från Facebooks swf att detta ej var en giltig modul men min egna JavaScript-kod exekverades ändå #win! Totalt tog det tre timmar att hitta denna sårbarhet.

Rapporterade detta direkt till Facebook Security och inom några dagar var sårbarheten åtgärdad och mitt namn finns med i ”hall of fame”.

En stor eloge till Facebook som har detta program och uppmuntrar till att sårbarheter identifieras och åtgärdas. Andra företag såsom Google och Microsoft har insett fördelarna och startat egna program. Även så utbetalas en summa till de som hittar sårbarheter: Facebook exempelvis har ett minimum på 3300 SEK (500$).

Här kommer en skärmdump som är censurerad då min kod exekveras och som gör en alert() med meddelandet XSS:

Facebook XSS

Jonas Lejon Facebook Whitehat