Mini Bead Koishi Komeiji

Made this a while ago, but forgot to make a post about it.

Original artwork.

Mini Bead Flandre Scarlet

A weekend about a month ago I went to the local hobby store to buy some more bags of Hama beads, the glow-in-the-dark ones to be precise, in case I would find something interesting to do with them.

Turns out the store had a 25% discount on everything that weekend. Nice I thought, sadly it isn’t very useful for me since 3 bags of beads is quite cheap so the savings wouldn’t be very much. When I was in the bead section, I noticed they now stock Hama mini beads in various colors. Hama mini beads are half the size of regular beads (2.5mm instead of 5mm), meaning one could make higher resolution bead art without having them taking up a very large space (and would obviously look better at close range). In the end, I bought all of the mini bead colors they had, and various Hama Midi colors that I didn’t have yet. It got pretty expensive but I did a really nice saving after all.

The store only had about half of the colors Hama makes, and I wanted all colors for more freedom, so I had to order the rest directly from the Hama web shop, which includes a pretty expensive shipping fee (could get 7 bags of Hama Midi beads at the local store for the cost of shipping).

The first project I made was a design of Flandre Scarlet I found. It was quite a lot of work to get all the beads at the right places, and ironing was really hard since not all beads would melt properly and it would fall apart a bit, but I guess I need more practice.

The source of the bead design I used was by MagicPearls.

Cirno Bead Art

I recently got the idea to start creating bead art to pass time and calm down a bit after work, and I thought I’d share what I make here on my blog.

This one I didn’t really make now, but I did it at Dreamhack last summer. However, obviously I should put it here as well!

The story about this one is that I was working security at Dreamhack Summer 2015 together with a friend, and we were allowed to do everything when we weren’t on our shifts. There was this activity corner where people could create bead art. Having about 3 hours until our shift, me and my friend decided to give it a go, and obviously I wanted to do something Touhou-related, and I found this Cirno that were pixelated, perfect! However, it was so big that I didn’t manage to finish it in time for our shift. I asked if I could come back after my shift ended at 1am, but since it was the last day they told me they’ll pack everything down by 8pm. Feeling down, I went to my shift, leaving Cirno unfinished on the table. Luckily, about 1.5 hours into the shift we had a small 50 minute break where me and my friend rushed back to complete the Cirno.

Making Suwako Moriya’s Hat: Part 2

A continuation of the previous post, Making Suwako Moriya’s Hat: Part 1.

So it’s been a while since I posted about this, but now it’s done (and have been for a while), so let’s continue! If you only want to see a demo, there’s a video in the end.

After doing some basic stuff with coding and the 8×8 matrices, I took a little break while being busy with some other things. When I finally got some free time, I started on the other end, making the actual spheres that would be the eyes. I figured the easiest way would be to 3D print spheres.

My first try was to make a sphere, and have pipes going from the surface down to the LED matrix that would be placed in the middle of the sphere.

The first sphere I designed, with pipes to each LED

The first sphere I designed, with pipes to each LED

I used 123D Design to create a dome with 64 pipes to the edge. Was easy enough, just that I didn’t have any way to print it… Then a friend suggested 3DHubs to me, a site where you can find people near you that prints your models on their 3D printers for a fee. Unfortunately my sphere was big and the pipes used a lot of material, and the price was just too expensive. That’s when I got the idea to cut down the pipes to be shorter, but not too short, the matrix still has to fit inside. Doing that saved loads of material, and I could get it down to 180SEK ($21) for one dome at the cheapest place.

Unfortunately it was very hard to print right and still took a long time, and I quickly discovered that it didn’t really work as I had hoped, the pipes were leaking light, as can be seen in the video below. It’s also really really huge.

I decided to give up on the 8×8 matrix, the spheres were just too large and too expensive to print at higher detail. I decided to try with a 6×6 matrix instead, but I couldn’t find that dimension and figured I would have to create one myself. A friend of mine had suggested buying LEDs from Ali Express, and I bought loads of the same chip that’s used in NeoPixels for cheap, about $16 per 100 LEDs. These come in blocks of 10×10 LEDs, unless they break while shipping. Which they did. I ended up using superglue to glue LEDs back together to create a 6×6 matrix.

The only issue was soldering. I never soldered in my life, and I didn’t want to spend too much on tools. All I got was a cheap solder iron with adjustable temperature and inaccurate hands. It was extremely frustrating experience and took almost a week per matrix since I couldn’t stand working on it for too long (having to desolder several times, since the solder pads were really close to each other). I think I spent around 5 – 6 hours of soldering on each matrix. And since the solder pads were so close to each other, I couldn’t use straight wires since they would break however I tried, and had to bend them. I was really worried the soldering would break during me walking around.

From previous experience using white, thin pipes didn’t work very well. My next idea was to make a thin, white dome and a solid inner part made out of black material.

The inner part

The inner part

It was still quite expensive to make, but it worked a lot better than the old model. Unfortunately, the brightness on the surface wasn’t very great, it worked in a dark room but would probably be near invisible outside.

I started looking around for ideas, and that’s when I found the best thing possible, in the local hobby chain store. There was this clear Christmas ball that had an inner wall in the middle that could be removed. And amazingly, it had the exact same dimension as the sphere I made for the 6×6 matrix, meaning it would fit just perfectly!

Unfortunately, being in the middle of the summer, it wasn’t in stock. But they had it in their warehouse, and a week later I could go and collect them. I bought some white, acrylic spray paint and painted one side of the inner wall white, and the inside of one of the domes white, but prior to painting I drilled a small hole for the wires to enter the sphere. Placing the LED matrix on the wall and closing worked alright, but needed some effort. I didn’t have to use any glue or anything, since the wires would actually fit just enough into the dome that it would push the matrix against the wall. After some testing, it worked really great and it was extremely bright. Nice!

Well then. Now we have the LED matrices and the eyes. What about the hat? This was a bit harder.

I figured I would buy some thick paper in the same hobby store, but how would I cut it? Since Suwako’s hat isn’t really a top hat, I can’t just roll it up. Luckily, I figured if I made a cone of a specific size and cut that in half it would work. Said and done, after doing some calculation, cuttings and gluing, I had a Suwako hat. But the paper looks really ugly and doesn’t look as a proper hat at all. I got some fabric, but how would I cut the fabric and wrap it around the hat? Since I had already assembled the paper, I figured it would be a bit harder. And I wasn’t very happy with the hat either, as it was a bit smaller than I had hoped, since the papers dimension was a limiting factor (the store only had sheets of 64x46cm).

I went to a store that specializes in paper and paper products, and found a thick sheet of paper that were 100x70cm, perfect. But I wanted to do the perfect cuts too, and be able to visualize the hat before assembling. Back to 123D design we go!

Model of the hat

Model of the hat

I modeled up a hat with the dimensions I wanted and made hole for the eyes. But how do I make a template out of it? With Pepakura Designer, of course! Pepakura is a software to import 3D models and make paper crafts of them by unfolding the 3D model onto 2D. Usually I’d guess it wouldn’t be used on this kind of scale, but it’s worth a shot! Unfortunately, it didn’t like the STL’s that 123D Designer exported. There were tens of thousands of faces, and Pepakura warned for this. The resulting unfold was rather messy. I talked to a friend of mine on Steam that I makes paper craft and I’d figure also know about Pepakura. They looked at it for a bit and cleaned it up, and I got back the template. Thank you!

Obviously I didn’t have a printer that could print to a 100x70cm sheet, but luckily Pepakura can split a template up into several A4’s, that I assembled and cut out from the sheet, and cut out some bigger parts from the fabric. After some work, I had a hat assembled. Unfortunately I’m rather bad at creating stuff with my hands so the hat got a bit skewed but it wasn’t very noticeable. Inserting the eyes were quite hard to get right, and I had to have the matrix powered on to know the correct orientation. Unfortunately the hole wasn’t always oriented properly with the eye (using the arrow eyes for orientation), but that was easily fixed in code later, as long as the arrow pointed top, left, right or down and not in between. Unfortunately it was a bit hard and I didn’t manage to get it completely right, but it still turned out alright.

Then, back to the code! I had most things worked out, except for the Android app. And it was only a few days left for the convention. It was some hectic days, but after a while, it was all done!

Going to the convention was a weird experience, since I got there by taking a 4 hour bus. But to get to the bus I had to take the local tram to the larger bus station. Some people looked a bit confused at me, but no one really cared at all. Hat in action

It worked really well during the convention, but it was rather heavy and uncomfortable to wear, since the hat would press down and bend my ears at all time. Sadly, my fear of soldering slightly came true on the second day, when one of the eyes started acting up, where the colors wouldn’t be the proper color or the LEDs weren’t bright. A friend at the convention suspected it being a power issue, and might as well, but after accidentally putting the hat down a bit too hard, it started working again!

It was fun and I enjoyed making it, but I’ll probably make something that’s easier on my ears next time! Source code is still available on GitHub!

Complex data structures with node-ffi

I recently got tasked with creating a node.js wrapper around one of our C libraries at work. Since I already created a java wrapper around the same C library, I knew what I needed to do and started looking into some options, which were to either create a node addon or using node-ffi. I was tired of writing stuff in C (a language I’ve barely used) since I made the java wrapper in JNI, I chose to try node-ffi.

Node-ffi was really easy to get started with, as long as your library functions used primitive datatypes. However, our C library uses a lot of structs, and that’s where things got complicated. Fortunately, there is the ref-struct node module, which makes it easy to define a struct. However, we had some string maps and string arrays that consisted of a struct holding a pointer and a length, something like this:

On the javascript side, it would be mapped like this:

Easy enough? Here’s where I got stuck. The C library would return a struct with a length of 7 (len set to 7).

You can probably get the issue, how do I get all of the elements? It took me quite a while, but here’s how I did:

This will create a javascript object of the StringMap, using the keys as object keys.

Let’s check the documentation for ref.get(buffer, offset, type). It accepts the buffer holding the data, an offset and the type. What we have to do is to iterate over the pointers, in steps of 4 bytes on 32-bit systems and 8 bytes on 64-bit systems. Using ref.sizeof.pointer we can get the correct size. This can also be used on a string array made the same way (a struct containing a pointer to a string (char *) and a length), just skip the key and push the return value of ref.get to an array).

But what about a struct containing an array of a different struct? Here it becomes complicated.

And on javascript:

The language struct takes 24 bytes to store on a 64-bit system (3 fields * 8 bytes). If you try to use the same code as we did for our string map:

You soon notice it will throw an exception that the passed in buffer needs to be at least 24 bytes. I assume it refers to language, so I tried to pass in a buffer with a size of 24 or more, or do a ref.alloc(language) since the documentation said it would create a buffer with the correct size and the correct type set. However, that would throw an error “could not determine a proper “type” from: [0,0,0,0,0,0,0,0,32,2,75,1,0,0,3,0,91,44,93,23,0,0,0,0]“. Well, not really helpful. I tried reading the documentation and trying out various things, but nothing worked. Then by sheer luck, when I was ready to give up, I managed to stumble upon one of the fields:

What the hell? So turns out that when calling ref.get with the type of ref.types.CString, we can get the values of the strings. They seem to come in the same order as the struct is defined, so at offset 0, we get the id field of the first struct, at offset 8 (element 0 + size of CString on a 64-bit os) we get the name field of element 0, at offset 16 we get the code field of element 0, at offset 24 we get the id field of element 1 and so on and so on. In this snippet, 3 is the number of fields in the struct, and is valid if each field is a string. If a field is something else than a string, you obviously need to make changes to the offset calculations and the size parameter (the last one).

This means you have to recreate your data structure and this may not be the correct way of doing it, but at least it works, and I hope it saves you from any headaches :D.

Making Suwako Moriya’s Hat: Part 1

Suwako Moriya and her hat

Suwako Moriya and her hat

Some months ago, around October, I was Skyping with a friend late at night and we started to talk about Touhou, Suwako Moriya and Arduinos. Having wanting to do something with Arduinos for a long while—my last project being my RFID-enabled door lock—I decided make myself Suwako’s hat, but with LED’s inside the eyes of the hat. My plan is to wear it at NärCon, Sweden’s largest convention.

The next day I went to a local store that sold Arduinos and a small variety of different components, and bought myself an Arduino Uno and a small 8×8 LED matrix to test with. The staff at the store didn’t know what color it was since it wasn’t specified anywhere, but it turns out it was a red LED matrix, not exactly what I wanted since I wanted RGB, but it was good enough to test some ideas with.

Next up was finding something to make the eyes from, where I could mount the LED matrices inside. It was hard to find, but in the end I found a Gashapon-style vending machine at my local food store that had large enough capsules to fit LED matrices inside. I bought two of them and planned to paint them white.

The LED matrix had some issues though, when put close to a surface, the dots would bleed together, not creating the effect I want.

I decided to continue with just creating something with LED matrices and worry about the actual hat and eyes later on. Since I didn’t like the LED matrix being single color, I decided to take a look at RGB LEDs. That’s when I found NeoPixels, and while the same store I bought the original matrix had some NeoPixel products, they didn’t have the 8×8 RGB NeoPixel Matrix. Fortunately a Swedish online store does stock them and other Adafruit products, so I ordered two 8×8 NeoMatrix and I had them two days later. Hooking them up to the Arduino wasn’t all that hard but I had to replace all my code so far to use the NeoPixel and NeoMatrix library instead.

These things are bright!

These things are bright!

One issue though, according to the specifications of the LED matrices they use a lot of power, about 60mA per LED that’s set to full brightness on white, that’s 3.84A for one panel and 7.68A for two panels, if all LEDs were set to full white! Fortunately I wont be using all LEDs at once, but even 32 LEDs on full light (16 LEDs on each panel) would end up at 2A. An AA battery for example would discharge in about 1 hour at that rate, but I don’t expect to use full brightness (the above picture is at 3% brightness), so it’ll probably last for a while. Since I’ll be wearing this hat for 4 days at NärCon, having it powered on when I’m not sleeping, I got myself two 12000mAh USB battery packs just in case. The plan was to use both batteries at the same time, one powering one of the LED matrices and the Arduino itself, and one powering the other matrix. So I ended up buying two mini-USB breakout boards to tap into the power of the batteries, unfortunately I never got it to work since I don’t think those battery packs are made for stuff like this, only one of the LED matrices would power on (occasionally, both matrices would power on), and with my limited knowledge of electronics I couldn’t figure it out, perhaps it was an issue with how I connected the grounds. In the end I decided to use only one battery pack for everything while the other is charging.

I started making a simple animation with regular eyes that randomly looks around. The plan is to have different kind of animations and different kind of eyes, as well as different colors.

But having it work on its own is boring, right? Remote control! I bought a cheap IR receiver and control set at the local store, planning to use that to control which eyes are on and what colors, but that only gives limited options and would be awkward to use. So I head back to Lawicel, the Swedish retailer of Adafruit stuff, and bought the nRF8001 Bluetooth LE chip! The plan is to use my OnePlus One to control eyes, colors and other stuff, and when that’s implemented I would head on to make an Android Wear app for my LG G Watch R so I can control the hat from my watch. Implementing Bluetooth was quite hard at a first glance, especially since I don’t really know C++. I found some examples that I tried to modify to fit my project, but it just wouldn’t work, the LED matrices would just flash and misbehave. Took me a week of thinking to figure out what was wrong, and in the end it turns out I had ran out of RAM, since the Arduino only has 2KB of RAM and I was storing the eye patterns in a bad way, using around 192B RAM, which I later could optimize down to only 24B after someone in #arduino pointed out that I should use bitshifting instead.

Android app draft

Android app draft

The Android application is currently pretty much a draft and not much to see. When it’s done you should be able to select which eye to draw on each matrix or to enter random mode. You should also be able to select the color, or put it in fade/random color mode.

The hard part for me would probably be how to make the actual hat and eyes. For the eyes I’ve been thinking 3D printing would be my only choice, and I have to find a makerspace that would let me use their 3D printer for this. I have done some 3D modeling in Autodesk Maya trough my high school years, but it was quite a while ago and this time I’d have to use something free like Blender. The fact that I never done anything to be 3D printed before makes it even harder. My idea so far is to make a sphere that can be taken into two parts, much like those Gashapon capsules. I’m uncertain on how to solve the color bleed issue, but the plan was to have small pipes from each LED on the matrix to the surface of the sphere, but I’m unsure if that would work.

I have released all the source code on GitHub, but be warned I don’t know much about C++ and electronics like these, so there might be some weird stuff going on.

Lastly, below is a video of my progress so far with “random mode” and color fading. It still needs a lot of tweaks, obviously the eyes should not change that often. Currently it has a 3% chance of changing every tick, and there are about 50  – 60 ticks every second, so it changes pretty fast, but it’ll be updated later on to a much saner value. Stay tuned for part 2!

Piratpartiet – Konsten att bredda för snabbt

Existential Crisis Cat

Var det en bra idé att använda katter i valmaterialet?       Källa: felloffmybike

This post will be written entirely in Swedish unlike my other English posts. You are free to use Google Translate if you’d like to read it in case you don’t understand Swedish.

Nu har det varit val, och det gick som det gick, men valresultatet i helhet ska jag inte ta upp här. Utan det är specifikt om Piratpartiet resultat och kampanj jag ska diskutera.

Efter två val så kan vi se tydligt att något inte fungerade. I EU-valet blev vi övergivna av våra tidigare väljare och i riksdagsvalet är siffrorna inte klara än. Vad gick rätt? Lite. Vad fick fel? Mycket. Beroende på hur man ser det.

Det finns en sak jag irriterat mig på över Piratpartiet sedan jag blev aktiv ett år sedan, och jag tror det är en av de största anledningarna till att det inte går så bra. Det handlar om kommunikation. Sverige förstår inte problemet vi försöker lösa. De vet inte hur det påverkar dem. Det är här Piratpartiet missar stort. Det hjälper inte att säga att vi är emot massövervakning. Det hjälper inte att säga att vi är för att bevara nätneutraliteten. Inte förrän folk förstår hur de blir påverkade, vad problemet är och därför förstår man inte meningen med Piratpartiet.

Varför röstar man inte på Piratpartiet?

Det är ett uppenbart problem som man måste lösa, men det är ett extremt komplicerat problem och det finns tusentals anledningar till problemet, och flera olika lösningar.

  1. Jag förstår inte Piratpartiets politik
  2. Jag tycker inte Piratpartiet är seriöst
  3. Piratpartiet är ett enfrågeparti
  4. Jag har inte sett Piratpartiet tillräckligt
  5. Namnet är ett dåligt val
  6. Missförstånd över vad Piratpartiet vill

Denna lista är bara några få anledningar varför folk har valt bort Piratpartiet sedan partiet skapades. Under de senaste fyra åren har Piratpartiet fokuserat mest på nummer tre, att bredda partiets frågor. Jag tycker man borde ha fokuserat på nummer ett först.

Valde folk bort Piratpartiet för att det var ett enfrågeparti, eller för att de inte förstod problemet Piratpartiet tog upp?

Jag själv tror på det senare. Förstår man inte problemet eller hur det påverkar en så är det lätt hänt att man ignorerar det, eller helt enkelt inte ser det som problem alls.

Visst är det bra att ha flera frågor, men det är värdelöst när de inte är tillräckligt tydliga eller fokuserade. På senare tid har Piratpartiet blivit något av en Jack of all trades, master of none, eller tusenkonstnär.

“”Jack of all trades, master of none” is a figure of speech used in reference to a person that is competent with many skills, but is not necessarily outstanding in any particular one.” — Wikipedia

Piratpartiet har valt att bredda istället för att fördjupa sig i de frågor de redan hade. Effekten har blivit att Piratpartiet har många åsikter men är inte särskilt fokuserade i någon av dem. Vissa av åsikterna delas av andra partier redan och då blir det svårt att få folk att rösta på oss istället. Vissa av åsikterna är rätt kontroversiella och ifall de inte förklaras på rätt sätt så skadar det partiet istället för att hjälpa. Till exempel avkriminalisering av lättare droger, basinkomst och fri nedladdning håller de flesta borta ifall de inte förstår vad, hur och varför.

Istället för att bredda ännu mera så måste vi nu sätta oss och fokusera på att utbilda. Vi måste få det svenska folket att förstå varför massövervakning är ett problem. Vi måste få det svenska folket att förstå varför vi måste värna om nätneutraliteten och integriteten.

Saken är den, dessa problem är svåra att förstå utan förkunskap. Frågar du någon med examen i datavetenskap och någon i ett icke-datarelaterat ämne kommer du få olika svar. Datavetaren vet (antagligen) vad du pratar om och ser problemet, medan den andre kanske förstår konceptet men ser inte problemet med det.

Ta massövervakning till exempel. Vi tycker massövervakning är fel på grund av att alla påverkas och rätten till privatliv försämras. De tycker att massövervakning är rätt för det har möjlighet att förhindra brott, och missar våran poäng helt och hållet, eller avfärdar den eftersom de inte ser hur de kan påverkas av det (men jag har ju inget att dölja). Massövervakning är en term som nog alla förstår, men inte nödvändigtvis problemen bakom.

Ta nu nätneutralitet. Här blev det genast svårare. Jag vet att jag själv hade problem med termen många år sedan. Själva termen säger inte mycket om vad exakt det handlar om. Frågar man en person på gatan om vad den tycker om nätneutralitet är det verkligen inte säkert vad du syftar på. Här krävs det att man förklarar det. Har man mot förmodan koll på vad termen betyder kan det vara svårt att se varför internetleverantörerna inte får bestämma över näten — för det är väl ändå en tjänst man beställer och den som levererar tjänsten är den som kan sätta reglerna, eller?

Jag hoppas ni förstår poängen. Vi måste bli bättre på att utbilda det svenska folket på dessa områden, och det behöver göras på ett sådant sätt som inte kräver förkunskaper. Det finns många sätt att göra detta, och det behöver nödvändigtvis inte vara kortfattat heller. Visst blir det svårt att få folk att ta in mycket information, men det finns alltid vägar att gå. Ordna föreläsningar, håll en kurs, skriva artiklar, böcker, skapa podcasts, video mm. Målet är helt enkelt att se till att alla har tillräckligt med kunskap, sen sprida politiken.

Och där kommer andra problemet med Piratpartiet in: kommunikation. Piratpartiet har svårt att nå ut och det knyter ihop med det föregående problemet jag diskuterade. Folk vet inte att Piratpartiet existerar och vad vi vill, dels för att vi inte syns och där vi syns är inte där folk tittar. Piratpartiet lever i sin egna lilla bubbla som är någorlunda ljudisolerad. Ibland kan man höra saker komma ut ur bubblan, men oftast stannar allting inom bubblan.

Att synas i media är svårt, men till slut måste vi hitta ett sätt att få media att skriva om oss. Att skriva artiklar på en blogg hjälper inte ifall det inte når ut till alla. Att dela något på Facebook hjälper heller inte mycket så länge det faktiskt inte sprider sig ordentligt. Med tanke på hur Facebooks algoritm fungerar, även ifall du har 600 kompisar kanske bara en handfull ser vad du skriver i deras nyhetsflöde (och har ju bara en kort tidsperiod att faktiskt se inlägget).

Jag har sett många bra diskussioner och argument i Piratpartiets Facebookgrupp. Tyvärr så dör de där de startar. Man sitter alltså och diskuterar saker med personer som redan håller med om åsikten, och åsikten kommer sällan ut till meningsmotståndare eller övriga. De som läser Piratpartiets Facebookgrupp är ju redan (oftast) Piratpartister, så att kampanja för sig själv skapar ingen spridning. Det hjälper dock med att utveckla politiken, dela förslag och utbilda oss själva, men som sagt så hörs det inte. Någon som inte är intresserad av Piratpartiet kommer inte sitta och läsa Facebookgruppen.

Valkampanjerna har varit allt för korta. Och då menar jag verkligen korta. Vi kanske startade samtidigt som alla andra partier, men det är just det, vi kan inte starta samtidigt som de etablerade partierna. Jag själv började kampanja inför EU-valet i oktober 2013, men eftersom det inte fanns något EU-material färdigt så blev det svårare. Frågan är ifall vi inte behöver ha en konstant kampanj. Alltså, inte kampanja i en månad sen praktiskt taget dö ut till nästa valperiod. Se till att valmaterial finns klart, och kampanja varje eller varannan helg, eller till och med en gång i månaden. Jag tror ni förstår min poäng. Det går inte att vara inaktiv i 4 år, utan behöver ha ett ständigt kampanjande.

Vi måste få folk att prata om massövervakning, integritet, nätneutralitet och allt annat vi tycker. Konstant. Ingen ska få glömma. Och då ska vi inte enbart nämna termerna utan även så utförligt som det går beskriva dem också. Ju mer folk är medvetna om problemet, desto enklare går det att sprida Piratpartiet och utbilda. Det går inte att vänta till nästa katastrof eller nästa avslöjande och bli högljudda då, vi måste konstant vara högljudda.

Nog om det, jag tror ni förstår vad jag vill få sagt: fördjupning, utbildning och kommunikation är vad som krävs.

Nu till valmaterialet. Jag kan kort säga att jag inte gillade det mesta av valmaterialet. Budskapen var ibland otydliga, motiven och den grafiska designen var verkligen inte iögonfallande. Jag gillade dem helt enkelt inte. Sen kom EU-valmaterialet som faktiskt såg snyggt ut. Snygga affischer med klara budskap och man ser personerna man röstar på. Samma gäller flygbladen, valmanifesten och övrigt inför EU-valet.

Sen kom materialet inför riksdagsvalet och vi är återigen ett steg bakåt. Internet gillar katter, eller hur? Och här blir det återigen att tala till oss själva. De som inte är insatta i den specifika, lilla kultur som är “vi är internet, vi gillar katter”, kommer inte ta det seriöst. Jag har hört flera kommentarer från icke-piratpartister ifall vi är seriösa med vårt valmaterial, att de inte tycker att Piratpartiet ser seriösa ut med valmaterialet. Inget illa menat till de personerna som skapade dessa, jag vet själv hur svårt det kan vara att skapa något snyggt, men ibland behöver saker vara enkla att tyda och uppmärksamma samtidigt som de ser professionella ut (och ha relevanta motiv, för i slutändan har katter inget att göra med vår politik).

För att avrunda det hela, Piratpartiet behöver verkligen jobba med fördjupning, utbildning och kommunikation under nästkommande fyra åren. Ingen ska få glömma oss och alla ska veta vad vi vill. Jag hoppas att jag inte trampar på allt för många tår med denna text för det är inte meningen, utan jag vill föra fram mina synpunkter på hur partiet ska bli ännu bättre. Jag kommer självklart fortsätta vara aktiv Piratpartist – no matter what!

A new phase

What happened to me, and why was my site down? Well, I was busy with other things.

During the spring I was busy with doing my final thesis (which can be read in English here or here). That took a lot of my time and many hard weeks later I finally got my Bachelor of Science with a Major in Computer Science (in Swedish: Filosofie kandidatexamen med huvudämnet datalogi). So I guess I’m a web developer with a degree now!

Right after receiving my degree, I got a mail from someone at my university, offering me a job as a research assistant in the field of open source and open standards! At first, I was uncertain about it and was considering declining since I didn’t have a place to live after the summer (I didn’t pass the requirements for my student apartment any more), but I decided I would go to the interview to see what it was all about.

I left the interview with a couple of their previous research papers and I was invited to a second interview, leaving me some time to decide. I was still uncertain, but I was still thinking of declining since I didn’t where to live. However, at the second interview, I decided I would take the job. The pay was good and certainly better than nothing at all. That’s when the hunt for somewhere to live started.

Finding something to rent is pretty much impossible if you haven’t been in the queue for long enough. I’ve been in the queue at the company that ran the student apartments for three year, but you had to have been in the queue for five years before even having a chance. Even at other companies it was impossible, since I hadn’t placed myself in their queue previously. I looked far and wide, in all the nearby cities, with no luck.

I tried looking for renting apartments as a “second hand renter”, I would rent an apartment from someone who rents it from someone else. I did not get much replies on the mails I sent, and the ones I got was a bit dodgy and some sounded like a scam.

After about a month of this and still having nowhere to live, I got desperate. Then by chance, I was looking at apartments that you “buy” (called “bostadsrätt” in Swedish, it’s a type of apartment where you “buy” the apartment in an auction, but you don’t own the apartment, you own a share in the company owning the apartment and the right to live there. You still have to pay monthly.). I had disregarded this option in the beginning since they usually involve a huge investment (in Skövde, it’s not unusual for a one-room apartment to cost 200 000SEK ($29000), being a newly graduated student, I didn’t have anywhere near that).

I found an apartment in a nearby town, 20 minutes away by train, that was being sold at an opening bid of 15 000SEK ($2176) which I could definitely afford. The auction had been open for 7 days already with a bid at 25 000SEK ($3628), and was about to end, when I called them and requested a visit.

It was pretty close to the train station, which was pretty good. The apartment however was small and old. It was on the 3rd floor, no elevator but that didn’t matter. The walls in the room needed to be fixed since the previous owner had made huge holes in the wallpaper, but I knew about that since before since it was stated in the ad. The kitchen was small, could barely fit one person in there. Same with the bathroom, almost no place to move around. But I had no choice, I needed somewhere to live. So I made a bid at 27 000SEK ($3918).

All previous bidders left, and I thought I was safe, until a new bidder came. The price went all the way up to 51 000SEK ($7400). Luckily I got the GSoC stipend last year which I still hadn’t spent as well as some other savings from previous work and an Android app contest I once won, I managed to buy the apartment, but it was just on the limit.

The whole move has been quite stressful. It all started back in July. My old apartment had a terms of notice of 3 months, meaning I had to cancel the apartment 3 months before I move and I’d still have to pay the rent for those 3 months. June and July are free months, so if you are smart, you cancel the apartment in April and you can leave it in July, unfortunately I wasn’t smart and cancelled it a month too late. However, if the new renter would be interested in moving in in August instead of September, then I don’t have to pay the rent.

So I made all the preparations in hope I wouldn’t have to pay for August. I needed a place to move my stuff though, and my mothers friend offered his storage for free, in a town about 130km away. So we moved all of the stuff there, which cost me 1600SEK ($232). Then it turns out the new renter didn’t sign until September, so I had to pay rent anyway, about 4500SEK ($653). Then we had to move all the stuff back to the new apartment when I got access to it, which again cost me about 2000SEK ($290), and I bought some new furniture at IKEA for roughly the same price.

I finally got my stuff moved in but I couldn’t put up much of my furniture since we need to paint the room and it would be a hassle with the furniture in the way. I decided I will do the painting myself together with a friend, since it would be extremely expensive to have a painter do it, so I hope it turns out okay (I chose a light blue paint, btw). I’ll try to document the process and post it here later when it’s done.

Enough of that though. Today marks 2 weeks at my new job. I don’t really know what to say about it. I’m collecting data about how Firefox implements various open web standards. So far I’ve read the Web Storage and the Indexed Database specifications and I have read a lot of bug reports and tried to summarize them. To be honest, it’s a lot to read and it isn’t particularly fun at times (but it’s still interesting). I had rather wanted to code something, but I knew what I was getting myself into, but I still think it’s great experience and good money right out of college. I’m still unsure what exactly I’m supposed to do, and I have a hard time to focus, but it’ll probably get better when I’m more used of it and have a clear path. It’s only a short-term position until the end of the year anyway, then I have to decide if I should sell my newly bought apartment and move somewhere else (closer to webdev jobs) or stay and do some freelancing or something I can do from home.

Varför jag kommer rösta på Piratpartiet

Jag röstar på Piratpartiet i EU-valet

This post will be written entirely in Swedish unlike my other English posts. You are free to use Google Translate if you’d like to read it in case you don’t understand Swedish.

Ni vet säkerligen att det är valår i år och inte enbart riksdagsval utan även EU-val. Med det så kommer det självklara valet om vilket parti man litar på som tar upp de åsikter man själv tycker är viktiga i dagens samhälle. Vissa kommer rösta på det de alltid röstat på, vissa kommer rösta på de som är mest aktuella idag och vissa kommer inte rösta alls.

Många av mina vänner vet säkerligen att jag är Piratpartist och dessutom aktiv inom partiet (dock inte lika aktiv som andra, men har på senare tid försökt att bli mer aktiv). Jag har suttit som vice kommunledare i Piratpartiet Skövde när det fortfarande existerade och sitter som sekreterare i Ung Pirat Skövde och möjligen kommer jag sitta i fler styrelser i framtiden.

Varför är jag aktiv inom Piratpartiet då? Jag är en webbutvecklare och hela mitt yrke går ut på att internet är fritt och tillgängligt för alla där alla har lika möjligheter. Ifall folk blir avskräckta från att använda internet, kvaliteten sänks eller att internet begränsas helt och hållet blir hela mitt yrke näst intill värdelöst då det inte kommer finna någon att utveckla för. Det är möjligt att det aldrig går så långt men ser man vad som sker med internet idag i flera länder så är det dit det är på väg.


Jag är helt emot massövervakning. Massövervakning har inte många fördelar, ifall några fördelar alls, för privatpersoner. Det kommer inte att förhindra brott förutom de kriminella som är dumma nog att planera sina brott på en öppen plattform. Även ifall e-mail eller andra “privata” meddelanden ser ut att vara privata så är de likställt till att skicka vykort på posten — alla som hanterar meddelandet kan läsa det. Det enda sättet att skydda meddelandet är genom stark kryptering och då har man direkt gjort massövervakningen helt värdelös.

Har man rent mjöl i påsen så har man inget att frukta

Fel. Det leder till självcensur, att man avstår att delta i diskussioner som skulle kunna vara kontroversiella eller helt enkelt pinsamt ifall personer som inte var avsedda att höra diskussionen hör den. Tänk dig att du sitter i ett rum med en person du vill diskutera något viktigt med som enbart angår dig och personen. Du vet att du aldrig hade vågat säga det du skulle säga ifall det fanns andra personer i rummet. Men nu helt plötsligt sitter en FRA-arbetare i rummet, dock har han sagt “låtsas som jag inte är här”. Du och personen byter rum och FRA följer med. I slutet av dagen fick du aldrig sagt det du ville säga. Ju mer övervakat internet blir ju mer kommer den situationen uppstå, dock kommer det kanske inte vara uppenbart för alla att det är någon som (kanske just nu, kanske senare, kanske aldrig) lyssnar. Självklart kan man inte vara hundra på att någon kommer läsa det man skriver, men vad väljer man oftast, det säkra före det osäkra eller tvärtom?

Vad ifall det du sa igår helt enkelt blir olagligt idag? Helt plötsligt blir du flaggad för ännu mer övervakning för att du diskuterade något som var helt lagligt när du sa det. Är du säker på att det du precis sa kommer tolkas lika av alla? Något som är helt okej enligt dig och dina kompisar kanske startar en hel utredning om ditt liv i bakgrunden. Sarkasm fungerar inte så bra på nätet, vad ifall någon missförstår dig? Vad ifall det du sa är taget ur kontext? Det har redan hänt. Ett automatiserat övervakningssystem kommer inte kunna veta vad som är sarkasm och vad som inte är, det kommer heller inte kunna utgöra kontexten på samma sätt som en människa kan.

Du kan heller inte veta hur systemet fungerar och ifall det fungerar och används på rätt sätt. Vad ifall den sittande regeringen vill få bort de som säger emot dem? Då blir det väldigt enkelt att ta reda på vem som är emot dem — de har ju trots allt en databas av det du någonsin sagt (kanske inte i dagsläget, men det går åt det hållet).

Men Facebook, Google och andra företag samlar ju ändå in information? Ja, men du kan avstå från att använda deras tjänster. Du kan inte avstå från att använda samhället.

/u/161719 berättar om hans erfarenhet av massövervakning.


Censur är oftast dåligt. Det börjar bra med något alla nog håller med borde censureras, men det blir snabbt en nerförsbacke. Till slut finns det inget som hindrar en nation från att censurera information kors och tvärs.

Internetleverantörer i Storbritannien införde inte länge sedan censur mot all pornografi på nätet. Man kunde fortfarande komma åt porr ifall man kontaktade sin internetleverantör och sa åt dem att man ville titta på porr. Vilken sorts databas hamnar man i då?

Deras filter var helt automatiserat och censurerade alla sidor som nämnde svartlista ord som till exempel “sex”. Detta fungerade inte alls då massvis med sidor blockerades felaktigt (till exempel så skulle majoriteten av svenska sidor blockeras ifall de referera till siffran sex, till och med spel som League of Legends blockerade då några av filnamnen råkade innehålla bokstavskombinationen sex).

Vissa internetleverantörer gick till och med så långt att de implementerade filter som blockerade “olämpliga” nyhetstidningar och andra sidor.

Detta kanske inte är fullt så aktuellt i Sverige i dagsläget men det är definitivt aktuellt på EU-nivå och risken finns fortfarande att Sverige också kommer att gå ett liknande håll i framtiden.

 Straffavgift för lagringsmedia

Priset på teknik och hårdvara är redan högt i Sverige. Copyswede hjälper till att göra det ännu dyrare. Privatkopieringsavgiften var en gång menad för att ersätta artister varje gång du kopierar ett kassettband. Det är uråldrat och det är inte många som gör det längre. När du köpte en hårddisk senast, köpte du den enbart för att lagra musik på? Bara för att möjligheten finns så ska man inte behöva betala extra för det. Det hela är orimligt och till och med elektronikbranschen fått nog.


Nätneutralitet innebär att alla sidor på och användare av internet ska behandlas lika av internetleverantörerna. Internetleverantörerna ska inte få stänga ute konkurrenter av internetleverantörens tjänster. De ska heller inte få göra sidor långsammare. De ska heller inte få göra om internet till samma modell tv-industrin använder. I USA vann internetleverantörerna nyligen rätten att få bestämma vilka sidor deras användare ska kunna komma åt och till vilken hastighet. I Sverige har vi inte detta problemet ännu (vad jag vet) men det är viktigt att förebygga att det inte händer. Det har redan varit på tal från flera mobiloperatörer att blockera till exempel Skype, men än så länge vet jag inte ifall någon faktiskt har en riktig blockering.


Det är viktigt att vi ser till att internet förblir en öppen plattform där alla kan känna sig säkra. Man ska inte behöva oroa sig över att bli övervakad konstant och man bör ha rätten till ett privatliv på nätet där staten inte lägger sig i. För att veta mera läs gärna Piratpartiets valmanifest inför EU-valet.

Jag vet att det är svårt att förstå hur man blir drabbad och du kanske inte känner dig drabbad själv, särskilt ifall du inte använder internet lika mycket som jag, men vi är många som blir drabbade av detta. Jag kommer göra allt jag kan för att övertyga andra om varför man bör rösta på Piratpartiet och det här blogginlägget är starten till det hela.

One-click copy paste

Previously I’ve created an AutoIt script to enable one-click copy paste but unfortunately I lost it in my old blog. By request I’ve created a new, and in my opinion even better than the previous one.


To use it, simply select some text, press the hotkey and press the hotkey again to start pasting. By default, the hotkey is F4. Below is the source (I leave it up to you to install AutoIt).

Save this as an .au3 file and you should be able to run it by double-clicking on it (a good idea is to drop it in the auto-start folder if you don’t want to start it manually each time you start). It is possible to compile the .au3 file to a standalone executable that doesn’t require AutoIt to be installed, I haven’t done so as anti-virus and anti-spyware generally blocks it and you’d have to jump trough hoops to enable it.


Here is a direct download for the .au3 file if you don’t want to copy/paste the source code above.

Download “One-click copy paste” OneClickCopyPaste.au3 – Downloaded 889 times – 1 kB