Bygga världens minsta spellåda

IMG_20150418_170721 IMG_20150418_170337På vårat öppna makerspace så saknade vi en aktivitet som vi tyckte passade. Efter mycket gnuggande av geniknölar så kom jag på att vi kunde bygga ett väldigt simpelt spel förpackat i en väldigt liten låda.

Spelet kräver att man är två(eller tävlar mot sig själv). Spelarna fattar var sin knapp(vit eller grön( Heja Brage! ) ). När neopixeln i mitten blir grön så spammar du på din knapp allt vad du kan. Efter tio sekunder blir neopixeln röd och tänds sedan i samma färg som den knapp som tryckt flest gånger. (Eller oavgjort då blir det blå). Trycker man ner en knapp igen så startar spelet om!

Receptet är ungefär så här(lite förenklat):

1. Skaffa en låda. Jag skar ut den här med en laserskärare. Men vilken låda som helst funkar. Tänk på att den bör vara ganska stabil då det blir att spammas ganska hårt. Jag limmade alla kanter utom två så att lådan var stabil men ändå öppen för att bygga.

2. Jag använde en Gemma. Den är liten, och den har exakt det antal digitala portar som vi behöver(3). Till det hade vi en neopixel och två stycken tryckknappar. Se bild ovan för vad jag använde.

3. Koppla neopixeln till D1(om du ska använda min kod). De två andra pinsen på en neopixel går till GND och V-Out. Koppla en knapp till varje av de två ovanstående pinsen som finns. Vi kommer att använda den interna PULLUPen på microchipet så vi behöver inga motstånd.

4. Ladda upp den här koden. Gemman kan vara en jä&&%¤el när det kommer till att programmera. På min laptop dyker det inte upp så jag kan välja port. På en windowsdator så måste det vara rätt drivrutiner. Bästa resursen är helt klart den här.

5. Vi kom under bygget på två saker:

a) Det visade sig att Gemman spottar ut sig samma volt ut på V Out som den blir matad med. Eftersom vi hade tänkt bygga in ett 9V batteri i lådan så ville inte neopixeln leka längre. För att lösa det så var vi tvungna att montera en 5V -spänningsregulator på  batterikabeln. Den blev varm men inte het, så det kändes okej.

IMG_20150418_184148

b) Vi hade glömt att det måste på en strömbrytare! Oops! Det blev så trångt i lådan att man omöjligt kunde hålla på och ta av och på kabeln från batteriet för att sätta på den. Det blev vi tvungna att bygga på.  Det löste vi med en enkel vippbrytare på sidan som var kopplad direkt på batterimatningen.

Sammanfattningsvis så var det ett väldigt varierat projekt. Laserskärare, borrning, limning, lödning, programmering och väldigt väldigt mycket tänkande. Alla har inte tillgång till en laser-skärare, men det går att bygga med vilken stabil låda som helst.
Gemman kan krångla innan man kommer igång. Men när den gör det så är den en fruktansvärt häftig liten pryl.

 

 

Inte så subtil påminnelse

Hittade det här i min crontab:

*/10 8,9,10,11,12,13,14,15 * * 1,2,3,4,5 echo \"Hej Emil. Mitt namn är Stephen Hawking. 
Jag har en hälsning från din kollega Ole. Du måste skriva tid i Dalnix Customerpanel. 
Det tar bara tre minuter. Jag lovar. Kanske fyra, om du räknar med tiden det tar 
att ta bort cronjobbet som läser upp detta meddelande. 
Jag kommer repetera detta meddelande var 10:e minut. 
Försök inte fuska och ta bort cronjobbet utan att ha skrivit tid.
Jag kommer såklart se om du fuskat. Jag är trots allt ett geni. 
Ha en bra dag! Hej då..\" | espeak -v sv -k20 -p 20 >/dev/null 2>&1

Och ja. Det där läses upp var tionde minut i mina högtalare.

Vad facebook KAN göra på din telefon.

När man installerar en app på sin telefon så beviljar man den applikationen rättigheter. De rättigheterna använder appen sedan för att göra det den ska. Om du installerat en ny sms-app så behöver den alltså rättigheter att skicka och ta emot sms. Om appen ska spara dina bästa svampställen så måste den alltså ha rättigheter att veta vart du befinner dig.

Om du någon gång har tyckt att videokameror på stan eller i taxibilar kränker din integritet så ta en extra tankevända innan du installerar facebook på din telefon, för listan över vad Facebook får göra med din telefon är ganska lång. Bisarrt lång.

Appen har följande behörigheter:


Dina konton
hitta konton på enheten
skapa konton och ange lösenord
lägga till eller ta bort konton
läs om konfiguration av tjänster från Google

Din plats
exakt plats (GPS- och nätverksbaserad)
ungefärlig position (nätverksbaserad)

Dina meddelanden
läsa dina textmeddelanden (SMS eller MMS)

Nätverkskommunikation
visa nätverksanslutningar
ta emot data från Internet
fullständig nätverksåtkomst
ändra nätverksanslutning
hämta filer utan avisering
visa Wi-Fi-anslutningar
anslut och koppla från Wi-Fi

Personlig information
läsa kalenderuppgifter plus konfidentiell information
lägga till eller ändra kalenderuppgifter och skicka e-post till gäster utan ägarens vetskap
läsa ditt eget kontaktkort

Telefonsamtal
ringa telefonnummer direkt
läsa telefonens status och identitet

Lagring
ändra eller ta bort innehåll på USB-enheten
Systemverktyg
installera genvägar
testa åtkomst till skyddad lagringsenhet
Skicka sticky broadcast
läsa batteristatistik
Information i dina appar
köra vid start
hämta appar som körs

byta ordning på appar som körs

Kamera

ta bilder och spela in videoklipp

Gränssnitt i annan app

skriva över andra appar

Mikrofon
spela in ljud
Dina sociala uppgifter
skriva samtalslogg
läsa dina kontakter
ändra kontakterna

läsa samtalslogg

Påverkar batteriet
hindra aktivering av viloläge

styra vibration

Ljudinställningar

ändra ljudinställningarna

Statusfält

expandera/komprimera statusfält

Synkroniseringsinställningar
aktivera/inaktivera synkronisering

läsa synkroniseringsinställningar

Bakgrund
ange bakgrund

anpassa bakgrundsstorleken

Vad betyder det här då? Jo. Att Facebook har tillgång till vem du skickar sms med, vart du är, vilka andra appar som körs på telefonen, kan starta sig själv vid start av telefonen, vet vilka du pratat i telefon med, kan läsa dina filer, kontakter och kalenderuppgifter. Och allt detta innan du gjort en endaste statusuppdatering.

Skicka en foliehatt hitåt tack.

Colourful 2014 in fiery sparklers

Tjugohundrafjorton

2014 2014 2014. Man måste upprepa det några gånger för att förstå att det är ett nytt år. Det brukar dröja någon månad innan jag minns vilket år det är. Sån är jag.

Det här är ett inlägg som på något sätt beskriver de löften / förväntningar jag har inför det kommande året. Jag har flera löften. Små, enkla saker. Och en drös förväntningar.

Jag lovar:
att försöka komma igång med träningen. Minst en gång i veckan.
att minska ner på mitt behov av nätjättarnas tjänster.
att försöka engagera mig lite mer i något open source projekt.
att lägga ner lite mer tid i  mitt företag.

Mina förväntningar:
Att få se vart hela grejen med Daladevelop tar vägen. Det hände mycket under de senaste månaderna under 2013 och jag har mycket stora förväntningar på 2014.
Att hinna ha lite mer egentid med min sambo. Dansa, göra yoga, spela in film, gå i skogen. Sånt som gör oss glada.
Spännande äventyr med familjen! Vi börjar starkt med att invadera bowlingen imorgon.

Jag återkommer kanske med ett inlägg om 2013 och vad jag tyckte var mest spännande med det året.

GOTT NYTT NÖRDIGT ÅR!

IMG_20131222_201527

Utvärdering S4A.cat

 

Julen nalkas med stormsteg och med det så kände jag att det var dags för lite julpyssel tillsammans med min åttaåring. I mitt inlägg riktat till föräldrar vad man kan göra för sina teknikintresserade barn så nämnde jag hastigt S4a.cat och det var vad som stod på agendan för kvällen.

S4A är som jag nämnde en scratchversion gjord just för att prata med en arduino. En arduino är en mikroprocessor som man kan använda som hjärna i robotar, för att skapa snygga led-sekvenser, eller för att mäta temperaturer i olika rum. Den programmeras och fungerar enkelt förklarat ungefär såhär: Om knappen på pin 10 blir intryckt, blinka lampan på pin 11. Med s4a slipper man programmera, och kan istället pussla sina program vilket gör det väldigt överskådligt.

På hemsidan s4a.cat finns instruktioner om hur man kommer igång. Jag sammanfattar det här, men för mer detaljerade instruktioner kolla S4As instruktioner.

  • Ladda hem s4a. http://s4a.cat/#downloads. Det finns till flera plattformar. Installera det.
  • Om du inte har Arduino-miljön installerad så installerar du den.
  • Ladda in det här programmet i din arduino: http://s4a.cat/downloads/S4AFirmware15.ino. Ja du hörde rätt. Man laddar in ett program i arduinon, allt som sen programmeras i s4a kommuniceras seriellt till mikroprocessorn.
  • När programmet är inladdat så kom ihåg att stänga ner Arduino-IDEn och starta istället s4a.cat.

Nu är du klar att börja labba.  Under fliken rörelse så hittar man det mest intressanta godiset. Vårat Hello World blev att koppla en led på pin 10, och när man tryckte mellanslag så skulle den blinka 10 gånger.

s4a_1

Sen gjorde vi ett program kopplat till en RGB-diod där man kunde styra varje enskild färg med olika knappar på datorns tangentbord. Efter det så var åttaåringen i princip självgående när så han kopplade till en buzzer och någon till led som han gjorde olika saker med.

Först när man tittar så var det lite krångligt att hitta alla pins. Tog man digital pin on så fick man välja mellan tre pins. Men efter ett tag hittade jag alla. Dock är ett antal pins låsta till t.ex motorer. Om de går att använda till annat det vet jag inte.

Tillslut kommer det nog ändå tillbaka till en enda fråga: Är S4A bra för att lära elektronik  och programmering till barnen? Och svaret på det är helt klart: JA!

Det var både roligt, och intressant. Jag satt bredvid och hjälpte mest till, och åttaåringen var självgående efter en halvtimme. Vi kommer absolut sitta fler gånger.

IMG_20131222_201533 IMG_20131222_194203

 

screenshot-logstalgia-1

Using logstalgia to visualize apache logs.

Logstalgia is a neat program that lets you visualize different logs. For us that meant an graphical visualization of our website traffic.

Here is an example video of logstalgia.

For us we needed to tweak it a little as we have alots of virtual hosts on our webserver, and we did not want each filerequest to be shown, but rather only each host. For such a thing logstalgia offers a custom log format. Only problem was parsing the apache log to a custom log format.  For this we ended up with a small perl script.

#!/usr/bin/perl
use Date::Manip;
 
while(<>){
 
        $string = $_;
 
        #split log row
        @parms = split(" ",$string);
 
        #Format time in a form that UnixDate accepts. (2013/SEP/03 09:23:12). 
        $time = @parms[4];
        $time = substr($time, 1,20); 
        $time = join(" ",split("/",$time)); 
        $time = join(" ",split(":",$time));
        @time = split(" ",$time);
        $time = "@time[2]". "/". "@time[1]"."/". "@time[0]"." "."@time[3]".":"."@time[4]".":"."@time[5]";
 
        $time =  UnixDate($time,"%s"); 
 
        #print row in logstalgia custom log format. 
        print $time,"|", @parms[1],"|",@parms[0],"|",@parms[9],"|",@parms[10],"\n";
 
 
        #Do not buffer content. If this is not set, perl will buffer its i/o and burst lines into logstalgia. Having this it will do it line by line. 
        $| = 1;
}

First we tried using awk but it did – just as perl did – buffer the reads and writes to chunks which did not render a visualization that was continous but rather showed traffic coming in bursts.
Our command to run logstalgia was

tail -f /var/log/apache2/other_vhosts_access.log | customlog.pl | logstalgia -x --sync

To have perl not buffer any reads and writes you had to have this line at the end of your perl script.

$| = 1;

A tiny tiny bit of code. But it makes perl skip buffering.

In the end we ended up with the following code to run logstalgia:

tail -f /var/log/apache2/other_vhosts_access.log | ./customlog.pl | logstalgia --sync -x -g " ,HOST=www,1" -1920x1080 -u 18 --no-bounce -b 000000 --glow-duration 0.50 --glow-multiplier 1.44 --glow-intensity 0.5

Happy visualisation!

JO-anmälan mot FRA.

Idag gjorde jag något jag aldrig gjort förut. En JO-anmälan.

Jag har i flera dagar läst om hur FRA är delaktiga i informationsläckandet till NSA och USA och tycker att det är helt absurdt. När FRA-lagen klubbades igenom så var det oerhört mycket prat om att det skulle vara oerhört reglerat och att ingen information skulle hamna på villovägar.

Något som nu visar sig inte vara sant.

Om du också vill göra en JO-anmälan så är det väldigt enkelt:

http://www.jo.se/sv/JO-anmalan/

Kör hårt!

Öppet brev till nördar i Dalarna!

Nördar! Vänner! Det här är ett öppet brev till er. Ett brev som handlar om något jag brinner för och som jag vill ha hjälp av er att genomföra. Daladevelop Junior. 

Jag brinner för att programmera, att utveckla och skapa med hjälp av en dator. Att hacka. Jag älskar också barn, och att utmana och lära barn nya saker. Nu vill jag kombinera de två sakerna. Jag vill genomföra ett hack för barn. Inspirerat av IIS och Coderdojo i Malmö vill jag skapa något liknande i Dalarna.

Iden är att köra en dag, där man bjuder in barn tillsammans med föräldrar som tar med en dator och så lär vi dem programmera. Vi bjuder på en kort genomgång över hur man gör, visar exempel och går sedan runt och hjälper till. Till lunch bjuder vi på något enkelt, typ korv med bröd och – såklart – Cola!

Så det är i princip två frågor jag skulle vilja att du svarade på här. Man får gärna svara på fråga två även om man svarar nej på första.

1. Vill du vara med?

2.a) Vad kan det kosta?
2b) När passar det?
2c) Förslag på lokal? (Elverket i Falun? )

Mitt förslag i övrigt är att göra slag i saken och registrera Daladevelop som en ideell förening och låta pengarna som kommer in gå till pizza och switchar och sånt som vi vill ha när vi hackar loss andra gånger. Ett konstituerande möte på daladevelop femte oktober.

Hoppas ni vill hjälpa till.

Tack på förhand,

Emil

Small howto on Kde Connect and Ubuntu

Kde Connect is a project aiming on integrating different devices with your KDE Desktop. It was a Google Summer of Code project and I have to say it is rather promising.

UPDATE

Albert Vaka has updated his blog with latest state of the software. Please read here

UPDATE2

http://blogs.kde.org/2013/09/10/kde-connect-kubuntu
In saucy kdeconnect is now in the repositories. No need to build yourself.

Update3
Latest version (03 okt 2013) lets you share files directly from your phone, to the kde connect app, and they show up on the desktop. This is good in so many ways.
 

Look at this short video on how it works

Update:

For everyone that has problems: I am not a KDE hacker. I reasoned out how to get this working reading comments and asking around. I am sorry I dont know how to solve the problems you have. Also as it is from a git – the source might have changed since i wrote the guide. 

 

To get it running on Ubuntu you need some dependencies sortet out first

sudo apt-get install cmake kdebase-workspace-dev libqjson-dev git libqca2-dev

When that is taken care of you can clone the repository

git clone git://anongit.kde.org/kdeconnect-kde

To compile do this:

cmake -DCMAKE_INSTALL_PREFIX=/usr ./
make
sudo make install

After that we just need to make kde aware of kde connect.
Important to run this as normal user

qdbus org.kde.kded /kded loadModule kdeconnect

This should return true. If not, it seems redoing the compilation can fix it. It did for me. So just try again.
After that we are almost there.

kbuildsycoca4 -noincremental

Now you can find devices in the kde system settings. Download the apk to your phone and make sure it is connected to the same network as your desktop.

Happy hacking!
Disclaimer: This is pre beta software. Dont expect it to work flawlessly.