<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description></description><title>laszlo.nu</title><generator>Tumblr (3.0; @instabil)</generator><link>http://www.laszlo.nu/</link><item><title>Simple linked list (C) for OSP lab</title><description>&lt;p&gt;A simple linked list (FIFO-queue) for future generations ;) &lt;a href="http://pastebin.com/3HT6yTXb" target="blank"&gt;Get the source&lt;/a&gt;.&lt;/p&gt;

&lt;div style="font-size: 10px; line-height: 12px;"&gt;
&lt;pre style="color:#000000;background:#ffffff;"&gt;&lt;span style="color:#696969; "&gt;/*&lt;/span&gt;
&lt;span style="color:#696969; "&gt;  Description: Very simple single linked list. Intended for use in the OSP lab&lt;/span&gt;
&lt;span style="color:#696969; "&gt;  at Chalmers. In the OS course at Chalmers, you are allowed and even&lt;/span&gt;
&lt;span style="color:#696969; "&gt;  encouraged to use an existing linked list instead of implementing your own -&lt;/span&gt;
&lt;span style="color:#696969; "&gt;  just remember to add a reference (or else it's cheating!).&lt;/span&gt;
&lt;span style="color:#696969; "&gt;&lt;/span&gt;
&lt;span style="color:#696969; "&gt;  Author: André Laszlo &lt;/span&gt;&lt;span style="color:#0000e6; "&gt;&lt;&lt;/span&gt;&lt;span style="color:#7144c4; "&gt;andre@laszlo.nu&lt;/span&gt;&lt;span style="color:#0000e6; "&gt;&gt;&lt;/span&gt;&lt;span style="color:#696969; "&gt;&lt;/span&gt;
&lt;span style="color:#696969; "&gt; */&lt;/span&gt;

&lt;span style="color:#004a43; "&gt;#&lt;/span&gt;&lt;span style="color:#004a43; "&gt;include &lt;/span&gt;&lt;span style="color:#800000; "&gt;&lt;&lt;/span&gt;&lt;span style="color:#40015a; "&gt;stdlib.h&lt;/span&gt;&lt;span style="color:#800000; "&gt;&gt;&lt;/span&gt;
&lt;span style="color:#004a43; "&gt;#&lt;/span&gt;&lt;span style="color:#004a43; "&gt;include &lt;/span&gt;&lt;span style="color:#800000; "&gt;&lt;&lt;/span&gt;&lt;span style="color:#40015a; "&gt;stdio.h&lt;/span&gt;&lt;span style="color:#800000; "&gt;&gt;&lt;/span&gt;

&lt;span style="color:#800000; font-weight:bold; "&gt;typedef&lt;/span&gt; &lt;span style="color:#800000; font-weight:bold; "&gt;struct&lt;/span&gt; node_s &lt;span style="color:#800080; "&gt;{&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;void&lt;/span&gt; &lt;span style="color:#808030; "&gt;*&lt;/span&gt;data&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;struct&lt;/span&gt; node_s &lt;span style="color:#808030; "&gt;*&lt;/span&gt;next&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
&lt;span style="color:#800080; "&gt;}&lt;/span&gt; NODE&lt;span style="color:#800080; "&gt;;&lt;/span&gt;

&lt;span style="color:#800000; font-weight:bold; "&gt;typedef&lt;/span&gt; &lt;span style="color:#800000; font-weight:bold; "&gt;struct&lt;/span&gt; list_s &lt;span style="color:#800080; "&gt;{&lt;/span&gt;
  NODE &lt;span style="color:#808030; "&gt;*&lt;/span&gt;first&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  NODE &lt;span style="color:#808030; "&gt;*&lt;/span&gt;last&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;int&lt;/span&gt; length&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
&lt;span style="color:#800080; "&gt;}&lt;/span&gt; LIST&lt;span style="color:#800080; "&gt;;&lt;/span&gt;

&lt;span style="color:#696969; "&gt;/* Create a new list */&lt;/span&gt;
LIST&lt;span style="color:#808030; "&gt;*&lt;/span&gt; new_list&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;
&lt;span style="color:#800080; "&gt;{&lt;/span&gt;
  LIST &lt;span style="color:#808030; "&gt;*&lt;/span&gt;l&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;if&lt;/span&gt; &lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#808030; "&gt;!&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;l&lt;span style="color:#808030; "&gt;=&lt;/span&gt;&lt;span style="color:#603000; "&gt;malloc&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; font-weight:bold; "&gt;sizeof&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;LIST&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;
    &lt;span style="color:#800000; font-weight:bold; "&gt;return&lt;/span&gt; &lt;span style="color:#7d0045; "&gt;NULL&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;

  l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;length &lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#008c00; "&gt;0&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;first &lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#7d0045; "&gt;NULL&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;last &lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#7d0045; "&gt;NULL&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;return&lt;/span&gt; l&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
&lt;span style="color:#800080; "&gt;}&lt;/span&gt;

&lt;span style="color:#696969; "&gt;/* Create a new node that can be inserted into the list */&lt;/span&gt;
NODE&lt;span style="color:#808030; "&gt;*&lt;/span&gt; new_node&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; font-weight:bold; "&gt;void&lt;/span&gt; &lt;span style="color:#808030; "&gt;*&lt;/span&gt;data&lt;span style="color:#808030; "&gt;)&lt;/span&gt;
&lt;span style="color:#800080; "&gt;{&lt;/span&gt;
  NODE &lt;span style="color:#808030; "&gt;*&lt;/span&gt;n&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;if&lt;/span&gt; &lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#808030; "&gt;!&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;n&lt;span style="color:#808030; "&gt;=&lt;/span&gt;&lt;span style="color:#603000; "&gt;malloc&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; font-weight:bold; "&gt;sizeof&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;NODE&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;
    &lt;span style="color:#800000; font-weight:bold; "&gt;return&lt;/span&gt; &lt;span style="color:#7d0045; "&gt;NULL&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  n&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;next &lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#7d0045; "&gt;NULL&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  n&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;data &lt;span style="color:#808030; "&gt;=&lt;/span&gt; data&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;return&lt;/span&gt; n&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
&lt;span style="color:#800080; "&gt;}&lt;/span&gt;

&lt;span style="color:#696969; "&gt;/* Insert element at the end of the list */&lt;/span&gt;
&lt;span style="color:#800000; font-weight:bold; "&gt;void&lt;/span&gt; append&lt;span style="color:#808030; "&gt;(&lt;/span&gt;LIST &lt;span style="color:#808030; "&gt;*&lt;/span&gt;l&lt;span style="color:#808030; "&gt;,&lt;/span&gt; &lt;span style="color:#800000; font-weight:bold; "&gt;void&lt;/span&gt; &lt;span style="color:#808030; "&gt;*&lt;/span&gt;data&lt;span style="color:#808030; "&gt;)&lt;/span&gt;
&lt;span style="color:#800080; "&gt;{&lt;/span&gt;
  NODE &lt;span style="color:#808030; "&gt;*&lt;/span&gt;n &lt;span style="color:#808030; "&gt;=&lt;/span&gt; new_node&lt;span style="color:#808030; "&gt;(&lt;/span&gt;data&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;if&lt;/span&gt; &lt;span style="color:#808030; "&gt;(&lt;/span&gt;l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;length &lt;span style="color:#808030; "&gt;=&lt;/span&gt;&lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#008c00; "&gt;0&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt; &lt;span style="color:#800080; "&gt;{&lt;/span&gt;
    l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;first &lt;span style="color:#808030; "&gt;=&lt;/span&gt; n&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
    l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;last &lt;span style="color:#808030; "&gt;=&lt;/span&gt; n&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800080; "&gt;}&lt;/span&gt; &lt;span style="color:#800000; font-weight:bold; "&gt;else&lt;/span&gt; &lt;span style="color:#800080; "&gt;{&lt;/span&gt;
    l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;last&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;next &lt;span style="color:#808030; "&gt;=&lt;/span&gt; n&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
    l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;last &lt;span style="color:#808030; "&gt;=&lt;/span&gt; n&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800080; "&gt;}&lt;/span&gt;

  l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;length&lt;span style="color:#808030; "&gt;+&lt;/span&gt;&lt;span style="color:#808030; "&gt;+&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
&lt;span style="color:#800080; "&gt;}&lt;/span&gt;

&lt;span style="color:#696969; "&gt;/* remove from head of list and return data */&lt;/span&gt;
&lt;span style="color:#800000; font-weight:bold; "&gt;void&lt;/span&gt;&lt;span style="color:#808030; "&gt;*&lt;/span&gt; pop&lt;span style="color:#808030; "&gt;(&lt;/span&gt;LIST &lt;span style="color:#808030; "&gt;*&lt;/span&gt;l&lt;span style="color:#808030; "&gt;)&lt;/span&gt;
&lt;span style="color:#800080; "&gt;{&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;if&lt;/span&gt; &lt;span style="color:#808030; "&gt;(&lt;/span&gt;l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;length &lt;span style="color:#808030; "&gt;=&lt;/span&gt;&lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#008c00; "&gt;0&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt; &lt;span style="color:#800080; "&gt;{&lt;/span&gt;
    &lt;span style="color:#800000; font-weight:bold; "&gt;return&lt;/span&gt; &lt;span style="color:#7d0045; "&gt;NULL&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800080; "&gt;}&lt;/span&gt; &lt;span style="color:#800000; font-weight:bold; "&gt;else&lt;/span&gt; &lt;span style="color:#800000; font-weight:bold; "&gt;if&lt;/span&gt; &lt;span style="color:#808030; "&gt;(&lt;/span&gt;l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;length &lt;span style="color:#808030; "&gt;=&lt;/span&gt;&lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#008c00; "&gt;1&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt; &lt;span style="color:#800080; "&gt;{&lt;/span&gt;
    &lt;span style="color:#800000; font-weight:bold; "&gt;void&lt;/span&gt; &lt;span style="color:#808030; "&gt;*&lt;/span&gt;data &lt;span style="color:#808030; "&gt;=&lt;/span&gt; l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;first&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;data&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
    &lt;span style="color:#603000; "&gt;free&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;first&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
    l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;first &lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#7d0045; "&gt;NULL&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
    l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;length &lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#008c00; "&gt;0&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
    &lt;span style="color:#800000; font-weight:bold; "&gt;return&lt;/span&gt; data&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800080; "&gt;}&lt;/span&gt; &lt;span style="color:#800000; font-weight:bold; "&gt;else&lt;/span&gt; &lt;span style="color:#800080; "&gt;{&lt;/span&gt;
    &lt;span style="color:#800000; font-weight:bold; "&gt;void&lt;/span&gt; &lt;span style="color:#808030; "&gt;*&lt;/span&gt;data &lt;span style="color:#808030; "&gt;=&lt;/span&gt; l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;first&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;data&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
    NODE &lt;span style="color:#808030; "&gt;*&lt;/span&gt;tmp &lt;span style="color:#808030; "&gt;=&lt;/span&gt; l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;first&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;next&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
    &lt;span style="color:#603000; "&gt;free&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;first&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
    l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;first &lt;span style="color:#808030; "&gt;=&lt;/span&gt; tmp&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
    l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;length&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
    &lt;span style="color:#800000; font-weight:bold; "&gt;return&lt;/span&gt; data&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800080; "&gt;}&lt;/span&gt;

&lt;span style="color:#800080; "&gt;}&lt;/span&gt;

&lt;span style="color:#696969; "&gt;/* Return the position of an element in the list, or -1 if it does not exist */&lt;/span&gt;
&lt;span style="color:#800000; font-weight:bold; "&gt;int&lt;/span&gt; find&lt;span style="color:#808030; "&gt;(&lt;/span&gt;LIST &lt;span style="color:#808030; "&gt;*&lt;/span&gt;l&lt;span style="color:#808030; "&gt;,&lt;/span&gt; &lt;span style="color:#800000; font-weight:bold; "&gt;void&lt;/span&gt;&lt;span style="color:#808030; "&gt;*&lt;/span&gt; data&lt;span style="color:#808030; "&gt;)&lt;/span&gt;
&lt;span style="color:#800080; "&gt;{&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;int&lt;/span&gt; i &lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#008c00; "&gt;0&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  NODE &lt;span style="color:#808030; "&gt;*&lt;/span&gt;current &lt;span style="color:#808030; "&gt;=&lt;/span&gt; l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;first&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;while&lt;/span&gt; &lt;span style="color:#808030; "&gt;(&lt;/span&gt;current &lt;span style="color:#808030; "&gt;!&lt;/span&gt;&lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#7d0045; "&gt;NULL&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt; &lt;span style="color:#800080; "&gt;{&lt;/span&gt;
    &lt;span style="color:#800000; font-weight:bold; "&gt;if&lt;/span&gt; &lt;span style="color:#808030; "&gt;(&lt;/span&gt;current&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;data &lt;span style="color:#808030; "&gt;=&lt;/span&gt;&lt;span style="color:#808030; "&gt;=&lt;/span&gt; data&lt;span style="color:#808030; "&gt;)&lt;/span&gt;
      &lt;span style="color:#800000; font-weight:bold; "&gt;return&lt;/span&gt; i&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
    current &lt;span style="color:#808030; "&gt;=&lt;/span&gt; current&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;next&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
    i&lt;span style="color:#808030; "&gt;+&lt;/span&gt;&lt;span style="color:#808030; "&gt;+&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800080; "&gt;}&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;return&lt;/span&gt; &lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#008c00; "&gt;1&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
&lt;span style="color:#800080; "&gt;}&lt;/span&gt;

&lt;span style="color:#696969; "&gt;/* Clean up list. &lt;/span&gt;&lt;span style="color:#ffffff; background:#808000; "&gt;TODO: Test this (since it's not used in lab) &lt;/span&gt;&lt;span style="color:#696969; "&gt;*/&lt;/span&gt;
&lt;span style="color:#800000; font-weight:bold; "&gt;void&lt;/span&gt; destroy_list&lt;span style="color:#808030; "&gt;(&lt;/span&gt;LIST &lt;span style="color:#808030; "&gt;*&lt;/span&gt;l&lt;span style="color:#808030; "&gt;)&lt;/span&gt;
&lt;span style="color:#800080; "&gt;{&lt;/span&gt;
  NODE &lt;span style="color:#808030; "&gt;*&lt;/span&gt;current &lt;span style="color:#808030; "&gt;=&lt;/span&gt; l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;first&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  NODE &lt;span style="color:#808030; "&gt;*&lt;/span&gt;next&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;while&lt;/span&gt; &lt;span style="color:#808030; "&gt;(&lt;/span&gt;current &lt;span style="color:#808030; "&gt;!&lt;/span&gt;&lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#7d0045; "&gt;NULL&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt; &lt;span style="color:#800080; "&gt;{&lt;/span&gt;
    next &lt;span style="color:#808030; "&gt;=&lt;/span&gt; current&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;next&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
    &lt;span style="color:#603000; "&gt;free&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;current&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;data&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
    &lt;span style="color:#603000; "&gt;free&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;current&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
    current &lt;span style="color:#808030; "&gt;=&lt;/span&gt; next&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800080; "&gt;}&lt;/span&gt;
  &lt;span style="color:#603000; "&gt;free&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;l&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
&lt;span style="color:#800080; "&gt;}&lt;/span&gt;

&lt;span style="color:#696969; "&gt;/* Return pointer to an integer with value n */&lt;/span&gt;
&lt;span style="color:#800000; font-weight:bold; "&gt;int&lt;/span&gt;&lt;span style="color:#808030; "&gt;*&lt;/span&gt; intpointer&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; font-weight:bold; "&gt;int&lt;/span&gt; n&lt;span style="color:#808030; "&gt;)&lt;/span&gt;
&lt;span style="color:#800080; "&gt;{&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;int&lt;/span&gt;&lt;span style="color:#808030; "&gt;*&lt;/span&gt; num &lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#603000; "&gt;malloc&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; font-weight:bold; "&gt;sizeof&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; font-weight:bold; "&gt;int&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#808030; "&gt;*&lt;/span&gt;num &lt;span style="color:#808030; "&gt;=&lt;/span&gt; n&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;return&lt;/span&gt; num&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
&lt;span style="color:#800080; "&gt;}&lt;/span&gt;

&lt;span style="color:#696969; "&gt;/* Test and demo subroutine */&lt;/span&gt;
&lt;span style="color:#800000; font-weight:bold; "&gt;int&lt;/span&gt; &lt;span style="color:#400000; "&gt;main&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;
&lt;span style="color:#800080; "&gt;{&lt;/span&gt;
  LIST &lt;span style="color:#808030; "&gt;*&lt;/span&gt;l &lt;span style="color:#808030; "&gt;=&lt;/span&gt; new_list&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  
  &lt;span style="color:#696969; "&gt;/* Should be zero */&lt;/span&gt;
  &lt;span style="color:#603000; "&gt;printf&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; "&gt;"&lt;/span&gt;&lt;span style="color:#0000e6; "&gt;Length: &lt;/span&gt;&lt;span style="color:#0f69ff; "&gt;%d&lt;/span&gt;&lt;span style="color:#0f69ff; "&gt;\n&lt;/span&gt;&lt;span style="color:#800000; "&gt;"&lt;/span&gt;&lt;span style="color:#808030; "&gt;,&lt;/span&gt; l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;length&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;

  &lt;span style="color:#696969; "&gt;/* Add some stuff to the list */&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;int&lt;/span&gt; i&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;int&lt;/span&gt; &lt;span style="color:#808030; "&gt;*&lt;/span&gt;n&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;int&lt;/span&gt; &lt;span style="color:#808030; "&gt;*&lt;/span&gt;thing&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;for&lt;/span&gt; &lt;span style="color:#808030; "&gt;(&lt;/span&gt;i &lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#008c00; "&gt;0&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt; i &lt;span style="color:#808030; "&gt;&lt;&lt;/span&gt; &lt;span style="color:#008c00; "&gt;10&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt; i&lt;span style="color:#808030; "&gt;+&lt;/span&gt;&lt;span style="color:#808030; "&gt;+&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt; &lt;span style="color:#800080; "&gt;{&lt;/span&gt;
    n &lt;span style="color:#808030; "&gt;=&lt;/span&gt; intpointer&lt;span style="color:#808030; "&gt;(&lt;/span&gt;i&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
    &lt;span style="color:#800000; font-weight:bold; "&gt;if&lt;/span&gt; &lt;span style="color:#808030; "&gt;(&lt;/span&gt;i &lt;span style="color:#808030; "&gt;=&lt;/span&gt;&lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#008c00; "&gt;4&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;
      thing &lt;span style="color:#808030; "&gt;=&lt;/span&gt; n&lt;span style="color:#800080; "&gt;;&lt;/span&gt; &lt;span style="color:#696969; "&gt;/* Keep this for searching, later */&lt;/span&gt;
    append&lt;span style="color:#808030; "&gt;(&lt;/span&gt;l&lt;span style="color:#808030; "&gt;,&lt;/span&gt; n&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800080; "&gt;}&lt;/span&gt;

  &lt;span style="color:#696969; "&gt;/* Test find() */&lt;/span&gt;
  &lt;span style="color:#603000; "&gt;printf&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; "&gt;"&lt;/span&gt;&lt;span style="color:#0000e6; "&gt;Pos &lt;/span&gt;&lt;span style="color:#0f69ff; "&gt;%d&lt;/span&gt;&lt;span style="color:#0000e6; "&gt;: &lt;/span&gt;&lt;span style="color:#0f69ff; "&gt;%d&lt;/span&gt;&lt;span style="color:#0f69ff; "&gt;\n&lt;/span&gt;&lt;span style="color:#800000; "&gt;"&lt;/span&gt;&lt;span style="color:#808030; "&gt;,&lt;/span&gt; &lt;span style="color:#808030; "&gt;*&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; font-weight:bold; "&gt;int&lt;/span&gt;&lt;span style="color:#808030; "&gt;*&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;thing&lt;span style="color:#808030; "&gt;,&lt;/span&gt; find&lt;span style="color:#808030; "&gt;(&lt;/span&gt;l&lt;span style="color:#808030; "&gt;,&lt;/span&gt; thing&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;int&lt;/span&gt; &lt;span style="color:#808030; "&gt;*&lt;/span&gt;other_thing &lt;span style="color:#808030; "&gt;=&lt;/span&gt; intpointer&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#008c00; "&gt;12&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#603000; "&gt;printf&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; "&gt;"&lt;/span&gt;&lt;span style="color:#0000e6; "&gt;Pos &lt;/span&gt;&lt;span style="color:#0f69ff; "&gt;%d&lt;/span&gt;&lt;span style="color:#0000e6; "&gt;: &lt;/span&gt;&lt;span style="color:#0f69ff; "&gt;%d&lt;/span&gt;&lt;span style="color:#0f69ff; "&gt;\n&lt;/span&gt;&lt;span style="color:#800000; "&gt;"&lt;/span&gt;&lt;span style="color:#808030; "&gt;,&lt;/span&gt; &lt;span style="color:#808030; "&gt;*&lt;/span&gt;other_thing&lt;span style="color:#808030; "&gt;,&lt;/span&gt; find&lt;span style="color:#808030; "&gt;(&lt;/span&gt;l&lt;span style="color:#808030; "&gt;,&lt;/span&gt; other_thing&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;

  &lt;span style="color:#696969; "&gt;/* Test iteration */&lt;/span&gt;
  NODE&lt;span style="color:#808030; "&gt;*&lt;/span&gt; iter &lt;span style="color:#808030; "&gt;=&lt;/span&gt; l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;first&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#603000; "&gt;printf&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; "&gt;"&lt;/span&gt;&lt;span style="color:#0000e6; "&gt;List: &lt;/span&gt;&lt;span style="color:#800000; "&gt;"&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;while&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;iter &lt;span style="color:#808030; "&gt;!&lt;/span&gt;&lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#7d0045; "&gt;NULL&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt; &lt;span style="color:#800080; "&gt;{&lt;/span&gt;
    &lt;span style="color:#603000; "&gt;printf&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; "&gt;"&lt;/span&gt;&lt;span style="color:#0f69ff; "&gt;%d&lt;/span&gt;&lt;span style="color:#0000e6; "&gt; &lt;/span&gt;&lt;span style="color:#800000; "&gt;"&lt;/span&gt;&lt;span style="color:#808030; "&gt;,&lt;/span&gt; &lt;span style="color:#808030; "&gt;*&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; font-weight:bold; "&gt;int&lt;/span&gt;&lt;span style="color:#808030; "&gt;*&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;iter&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;data&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
    &lt;span style="color:#696969; "&gt;/* Note: if reappending while iterating we might end up with an infinite&lt;/span&gt;
&lt;span style="color:#696969; "&gt;       loop. Try keeping a reference to the first reappended item if you want&lt;/span&gt;
&lt;span style="color:#696969; "&gt;       to break, or create a copy of the list */&lt;/span&gt;
    iter &lt;span style="color:#808030; "&gt;=&lt;/span&gt; iter&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;next&lt;span style="color:#800080; "&gt;;&lt;/span&gt; 
  &lt;span style="color:#800080; "&gt;}&lt;/span&gt;
  &lt;span style="color:#603000; "&gt;printf&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; "&gt;"&lt;/span&gt;&lt;span style="color:#0f69ff; "&gt;\n&lt;/span&gt;&lt;span style="color:#800000; "&gt;"&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#603000; "&gt;printf&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; "&gt;"&lt;/span&gt;&lt;span style="color:#0000e6; "&gt;Length: &lt;/span&gt;&lt;span style="color:#0f69ff; "&gt;%d&lt;/span&gt;&lt;span style="color:#0f69ff; "&gt;\n&lt;/span&gt;&lt;span style="color:#800000; "&gt;"&lt;/span&gt;&lt;span style="color:#808030; "&gt;,&lt;/span&gt; l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;length&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;

  &lt;span style="color:#696969; "&gt;/* Test pop() */&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;int&lt;/span&gt; &lt;span style="color:#808030; "&gt;*&lt;/span&gt;popped &lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; font-weight:bold; "&gt;int&lt;/span&gt;&lt;span style="color:#808030; "&gt;*&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;pop&lt;span style="color:#808030; "&gt;(&lt;/span&gt;l&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;while&lt;/span&gt; &lt;span style="color:#808030; "&gt;(&lt;/span&gt;popped &lt;span style="color:#808030; "&gt;!&lt;/span&gt;&lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#7d0045; "&gt;NULL&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt; &lt;span style="color:#800080; "&gt;{&lt;/span&gt;
    &lt;span style="color:#603000; "&gt;printf&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; "&gt;"&lt;/span&gt;&lt;span style="color:#0000e6; "&gt;Pop result: &lt;/span&gt;&lt;span style="color:#0f69ff; "&gt;%d&lt;/span&gt;&lt;span style="color:#0f69ff; "&gt;\n&lt;/span&gt;&lt;span style="color:#800000; "&gt;"&lt;/span&gt;&lt;span style="color:#808030; "&gt;,&lt;/span&gt; &lt;span style="color:#808030; "&gt;*&lt;/span&gt;popped&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
    &lt;span style="color:#603000; "&gt;printf&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; "&gt;"&lt;/span&gt;&lt;span style="color:#0000e6; "&gt;Length: &lt;/span&gt;&lt;span style="color:#0f69ff; "&gt;%d&lt;/span&gt;&lt;span style="color:#0f69ff; "&gt;\n&lt;/span&gt;&lt;span style="color:#800000; "&gt;"&lt;/span&gt;&lt;span style="color:#808030; "&gt;,&lt;/span&gt; l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;length&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
    popped &lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; font-weight:bold; "&gt;int&lt;/span&gt;&lt;span style="color:#808030; "&gt;*&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;pop&lt;span style="color:#808030; "&gt;(&lt;/span&gt;l&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800080; "&gt;}&lt;/span&gt;

  &lt;span style="color:#603000; "&gt;printf&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; "&gt;"&lt;/span&gt;&lt;span style="color:#0000e6; "&gt;Length: &lt;/span&gt;&lt;span style="color:#0f69ff; "&gt;%d&lt;/span&gt;&lt;span style="color:#0f69ff; "&gt;\n&lt;/span&gt;&lt;span style="color:#800000; "&gt;"&lt;/span&gt;&lt;span style="color:#808030; "&gt;,&lt;/span&gt; l&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;length&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;

  &lt;span style="color:#696969; "&gt;/* Free up some memory */&lt;/span&gt;
  destroy_list&lt;span style="color:#808030; "&gt;(&lt;/span&gt;l&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
  &lt;span style="color:#800000; font-weight:bold; "&gt;return&lt;/span&gt; &lt;span style="color:#008c00; "&gt;0&lt;/span&gt;&lt;span style="color:#800080; "&gt;;&lt;/span&gt;
&lt;span style="color:#800080; "&gt;}&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;</description><link>http://www.laszlo.nu/post/14017371992</link><guid>http://www.laszlo.nu/post/14017371992</guid><pubDate>Sat, 10 Dec 2011 17:11:53 +0100</pubDate><category>programmering</category><category>c</category><category>chalmers</category><category>os</category></item><item><title>Automatic Facebook replies using Gmail</title><description>&lt;p&gt;
Yesterday I noticed that you can reply to your Facebook notification emails to answer wall posts and messages. Since I have decided not to use Facebook as actively as I used to now that Google+ is around, I thought I should use this feature to send an “out of Facebook” response to my Facebook friends.
&lt;/p&gt;

&lt;p&gt;
Here’s how you do it, using canned responses and filters in Gmail:
&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;To be able to send automatic replies in Gmail, you need to enable the “Canned responses” feature. Look in Gmails settings → “Labs” tab and make sure it’s enabled. Don’t forget to save your changes.&lt;/li&gt;

&lt;li&gt;It’s time to create the automatic response. Start writing a new email. I wrote something like &lt;em&gt;“Automatic reply: I have not been using Facebook very much lately. Please come see me at Google+ instead!”&lt;/em&gt;. Now, click the “Canned responses” menu (just below the subject line) and select “New canned response…”. Select an intelligent name for your response.&lt;/li&gt;

&lt;li&gt;Now you need to find out which email address your notification comes from. Look in your inbox for a Facebook notification and look at the sender’s email address. It should look something like this: notification+xyz@facebookmail.com where xyz is a seemingly random string. Copy this address.&lt;/li&gt;

&lt;li&gt;To tie it all together, create a new filter (there’s a link to the right of the search box). Enter the following settings:&lt;br/&gt;&lt;b&gt;From:&lt;/b&gt; &lt;code&gt;update+xyz@facebookmail.com OR notification+xyz@facebookmail.com&lt;/code&gt; (where xyz is the value you found in the previous step)&lt;br/&gt;&lt;b&gt;Subject:&lt;/b&gt; &lt;code&gt;"new messages from" OR "new message from" OR "commented on your wall post" OR "posted on your wall"&lt;/code&gt;
&lt;/li&gt;

&lt;li&gt;Click “Test search” to see if your filter matches the notifications you want to reply to. If it doesn’t, chances are that you don’t have English as your current language setting on Facebook. Either change it on Facebook or enter the equivalent subject lines in your language.&lt;/li&gt;

&lt;li&gt;Final step: Click “Next step” and check the box next to “Canned response”. Select your message and save your filter.&lt;/li&gt;

&lt;/ol&gt;&lt;p&gt;
&lt;em&gt;Note:&lt;/em&gt; You can remove any of the strings in the subject line filter, to match only the kinds of notifications that you want to reply to.
&lt;/p&gt;</description><link>http://www.laszlo.nu/post/9052614439</link><guid>http://www.laszlo.nu/post/9052614439</guid><pubDate>Thu, 18 Aug 2011 00:01:14 +0200</pubDate><category>facebook</category><category>gmail</category><category>google+</category></item><item><title>Cameron vs Twitter</title><description>&lt;p&gt;Faran med att avpolitisera upploppen i England: man söker enkla sätt att komma åt symtomen istället för &lt;a href="http://www.guardian.co.uk/commentisfree/2011/aug/08/context-london-riots" target="_blank"&gt;sjukdomen&lt;/a&gt; (klassklyftor, social orättvisa och enorm [ungdoms]arbetslöshet) och lyckas på sitt eget totalitära sätt hugga huvudet av patienten istället för att ge henne en ipren.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Mr Speaker, everyone watching these horrific actions will be stuck by how they were organised via social media.&lt;/p&gt;

&lt;p&gt;Free flow of information can be used for good. But it can also be used for ill.&lt;/p&gt;

&lt;p&gt;And when people are using social media for violence we need to stop them.&lt;/p&gt;

&lt;p&gt;So we are working with the Police, the intelligence services and industry to look at whether it would be right to stop people communicating via these websites and services when we know they are plotting violence, disorder and criminality.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;
- &lt;a href="http://www.number10.gov.uk/news/pm-statement-on-disorder-in-england/" target="_blank"&gt;David Cameron&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Vart är man på väg om man börjar förhindra människor att kommunicera fritt? När en premiärminister gör såna här uttalanden förstår jag att folk börjar tvivla på demokratin…&lt;/p&gt;</description><link>http://www.laszlo.nu/post/8781594726</link><guid>http://www.laszlo.nu/post/8781594726</guid><pubDate>Thu, 11 Aug 2011 18:26:38 +0200</pubDate><category>Politik</category></item><item><title>http://yxen.se</title><description>&lt;a href="http://yxen.se"&gt;http://yxen.se&lt;/a&gt;: &lt;p&gt;Mamma och Oves projekt.&lt;/p&gt;</description><link>http://www.laszlo.nu/post/8382896792</link><guid>http://www.laszlo.nu/post/8382896792</guid><pubDate>Tue, 02 Aug 2011 14:52:00 +0200</pubDate></item><item><title>"Dear Windows, your logic is flawed, sincerely Linux"</title><description>“Dear Windows, your logic is flawed, sincerely Linux”</description><link>http://www.laszlo.nu/post/7278589403</link><guid>http://www.laszlo.nu/post/7278589403</guid><pubDate>Wed, 06 Jul 2011 00:22:19 +0200</pubDate></item><item><title>Condensed happiness</title><description>&lt;p&gt;&lt;iframe title="YouTube video player" width="570" height="570" src="http://www.youtube.com/embed/hktTdd91M14?rel=0&amp;hd=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;</description><link>http://www.laszlo.nu/post/3997411571</link><guid>http://www.laszlo.nu/post/3997411571</guid><pubDate>Mon, 21 Mar 2011 05:57:01 +0100</pubDate><category>video</category><category>music</category></item><item><title>Kvinnodagen</title><description>&lt;p&gt;
Kvinnodagen: &lt;a href="http://www.uniteforwomen.se/" target="_blank"&gt;Barnvagnsrace&lt;/a&gt; och &lt;a href="http://www.dn.se/nyheter/sverige/malin-frenning-maktigaste-kvinnan" target="_blank"&gt;artiklar om “lyckade” damer&lt;/a&gt; — jättebra, fast det är nog mest fokus på var den godaste semlan i stan finns. Okej. Läste igår att den tredje vanligaste dödsorsaken hos världens fertila kvinnor är komplikationer efter en dåligt utförd abort. Varför inte ge lite pengar till något bra ändamål istället för att svulla semla?
&lt;/p&gt;

&lt;p&gt;
Föreslår:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ippf.org/en/help/" target="_blank"&gt;International Planned Parenthood Foundation&lt;/a&gt; - En jätteorganisation som kämpar för kvinnors rätt att välja när de ska bli gravida, inte bara i “U-länder” utan även i Europa och Amerika.
&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.humanisterna.se/index.php?option=com_content&amp;view=article&amp;id=349&amp;Itemid=218" target="_blank"&gt;Oum El Banine (mor och barn)&lt;/a&gt; - En organisation i Marocko som ger stöd till fördrivna gravida kvinnor (PayPal-knapp finns längre ner på sidan, varje krona går direkt till organisationen).&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amnesty.se/ommanskligarattigheter/tematiskinformation/kvinnorsrattigheter/8mars/" target="_blank"&gt;Amnesty&lt;/a&gt; - Amnesty har på senare år uppmärksammat inte bara samvetsfångar utan även kvinnors mänskliga rättigheter.&lt;/li&gt;
&lt;/ul&gt;</description><link>http://www.laszlo.nu/post/3721125007</link><guid>http://www.laszlo.nu/post/3721125007</guid><pubDate>Tue, 08 Mar 2011 13:06:00 +0100</pubDate></item><item><title>Svensk diesel eller europadiesel? Lars Beckman rör till det för sig.</title><description>&lt;p&gt;Jag såg nyss &lt;a href="http://www.alliansfrittsverige.nu/2011/03/moderater-inspireras-av-oljebolag-igen.html" target="_blank"&gt;en grej&lt;/a&gt; som gjorde mig lite förvånad, trots allt. Källkritisk som jag är så kollade jag upp det och hittade följande.&lt;/p&gt;

&lt;p&gt;Den här snubben heter Lars Beckman och är moderat riksdagsledamot, han är även suppleant i skatteutskottet och i miljö- och jordbruksutskottet:&lt;/p&gt;

&lt;img src="http://data.riksdagen.se/filarkiv/bilder/ledamot/0588282566419_192.jpg" alt="Lars Beckman"/&gt;&lt;p&gt;Han skrev nyligen &lt;a href="http://www.riksdagen.se/webbnav/index.aspx?nid=410&amp;dok_id=GY02Sk258" target="_blank"&gt;en motion&lt;/a&gt; tillsammans med en moderatkollega. Frågan är om den är betald av Statoil. Statoil har nämligen en broschyr på sin hemsida som heter &lt;a href="http://www.statoil.se/file_archive/kampanjer/Kom_3proc_langre.pdf" target="_blank"&gt;“Kom 3% längre”&lt;/a&gt;. Det är ju bara att jämföra:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;
Statoil:&lt;br/&gt;
“I Sverige har vi en egen diesel, MK1. Den introducerades för snart tjugo år sedan och var då världens första svavelfria diesel.”&lt;br/&gt;
Lars:&lt;br/&gt;
“I Sverige använder vi vår egen diesel, MK1. Den introducerades för snart tjugo år sedan och var då världens första svavelfria diesel.”
&lt;/li&gt;
&lt;li&gt;
Statoil:&lt;br/&gt;
“Idag är all diesel inom EU svavelfri, men i Sverige har vi fortfarande kvar 1991 års MK1-diesel. Den är tre procent mindre energieffektiv och den ger totalt sett högre utsläpp av koldioxid.”&lt;br/&gt;
Lars:&lt;br/&gt;
“Trots att all diesel inom EU idag är svavelfri använder Sverige fortfarande 1991 års MK1-diesel, som är tre procent mindre energieffektiv och som totalt sett ger högre koldioxidutsläpp.”
&lt;/li&gt;
&lt;li&gt;
Statoil:&lt;br/&gt;
“En unik dieselkvalitet för en liten marknad driver upp priserna. Av Europas alla raffinaderier är det bara fem som tillverkar MK1.”&lt;br/&gt;
Lars:&lt;br/&gt;
“En unik dieselkvalitet för en liten marknad driver upp priserna. Av Europas alla raffinaderier är det bara fem som tillverkar MK1-diesel.”
&lt;/li&gt;
&lt;li&gt;
Statoil:&lt;br/&gt;
“Produktionskostnaden för att tillverka en liter MK1 är ungefär 10 öre högre än det kostar att tillverka svavelfri europadiesel. Men skatten på svavelfri europadiesel är 40 öre högre (50 öre inklusive moms).”&lt;br/&gt;
Lars:&lt;br/&gt;
“Produktionskostnaden för att tillverka en liter MK1 är cirka 10 öre högre än kostnaden för att producera svavelfri Europadiesel. Men skatten på svavelfri Europadiesel är 40 öre högre (50 öre inklusive moms).”
&lt;/li&gt;
&lt;li&gt;
Statoil:&lt;br/&gt;
“Med samma skatt på svavelfri europadiesel som på MK1 skulle därför dieselpriserna kunna sänkas. Det skulle vara möjligt eftersom vi skulle spara i produktionskostnad samt köpa på en mer konkurrensutsatt marknad.”&lt;br/&gt;
Lars:&lt;br/&gt;
“Skulle man sänka skatten på den svavelfria Europadieseln till samma nivå som MK1 skulle dieselpriserna kunna sänkas, då man sparar i produktionskostnad och kommer in på en mer konkurrensutsatt marknad.”
&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;
Alla argument och all information i motionen kommer alltså direkt från Statoil. Men det är ju ganska bra argument? Eller?
&lt;/p&gt;

&lt;p&gt;
Inte om man får tro &lt;a href="http://www.preem.se/upload/Press/AVL%20Dieselrapport%20emissioner%20081203.pdf" target="_blank"&gt;en undersökning gjord av AVL MTC&lt;/a&gt;, “värdens största privatägda och oberoende företag inom drivlineutveckling samt utveckling och tillverkning av mät- och testinstrument”:
&lt;/p&gt;

&lt;blockquote&gt;
Gällande de reglerade avgaskomponenterna uppmättes inte någon signifikant 
skillnad mellan kolväten, kväveoxider, koldioxid (därmed också bränsleförbrukning) 
från de olika bränslekvaliteterna. Mängden partiklar från MK1 diesel är 30 % lägre 
jämfört med EN 590 vilket ger en signifikant höjning av negativa hälsoeffekter vid 
användandet av EN 590 diesel. Även emissionerna av kolmonoxid var högre för 
EN590 jämfört med MK 1.
&lt;/blockquote&gt;

&lt;p&gt;
Den här studien är beställd av Preem, som tillverkar MK1. Nu undrar jag varför de inte också köpt en moderat. Studiens slutsats är alltså, för den som inte orkar läsa akademikersvenskan, att koldioxidutsläppen är likadana för båda typerna av diesel, men att europadieseln ger upphov till betydligt mer hälsoskadliga partiklar än MK1.
&lt;/p&gt;

&lt;p&gt;
Min slutsats är att antingen AVL eller Lars Beckman bara hittar på när det gäller koldioxidutsläppen. Skillnaden är väl att AVL gjort en ganska grundlig studie och publicerat både metod och resultat, men mister Beckman har bara kopierat en broschyr. Pinsamt.
&lt;/p&gt;

&lt;p&gt;
Källor:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.statoil.se/file_archive/kampanjer/Kom_3proc_langre.pdf" target="_blank"&gt;Statoil - Kom 3% längre&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.riksdagen.se/webbnav/index.aspx?nid=410&amp;dok_id=GY02Sk258" target="_blank"&gt;Riksdagen - Motion 2010/11:Sk258 Europadiesel till Sverige&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.preem.se/upload/Press/AVL%20Dieselrapport%20emissioner%20081203.pdf" target="_blank"&gt;Preem/AVL - Dieselstudie MK1 kontra Europadiesel&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;&lt;p&gt;
&lt;b&gt;Edit:&lt;/b&gt; Tidigare gick det här inlägget till personangrepp mot Lars Beckman. Det ångrar jag, det är egentligen mot mina principer. Så ska man inte hålla på. Förlåt.
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;Edit 2:&lt;/b&gt; Lars Beckman har gjort något som jag sällan sett en politiker göra, nämligen &lt;a href="http://www.alliansfrittsverige.nu/2011/03/moderater-inspireras-av-oljebolag-igen.html#comment-161984245" target="_blank"&gt;svarat på det jag skrev&lt;/a&gt; online. Det ska han ha creds för. Jag tycker visserligen inte att han svarar på det jag skrev här ovanför, men ändå. Här är hans svar, och mina:
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;i&gt;Lars&lt;/i&gt;:&lt;br/&gt;
Jag har kommenterat hur jag ser på frågan på &lt;a href="http://www.larsbeckman.se" target="_blank"&gt;&lt;a href="http://www.larsbeckman.se" target="_blank"&gt;www.larsbeckman.se&lt;/a&gt;&lt;/a&gt; [dvs &lt;a href="http://larsbeckman.blogspot.com/2011/03/socialdemokraterna-sd-och-de-rod-grona.html" target="_blank"&gt;här&lt;/a&gt;]&lt;br/&gt;&lt;/p&gt;

&lt;p&gt;&lt;i&gt;Jag&lt;/i&gt;:&lt;br/&gt;
Jag tycker att du missar poängen lite i ditt svar. Visst kan man diskutera om man gynnar ett företag eller ett annat. Det jag tycker är viktigare än femtioöringar hit och dit är om den ena dieseln faktiskt är hälsoskadligare än den andra, och om den ena har större miljöpåverkan än den andra. Studien som beställdes av Preem hävdar att växthusemmisionerna är ekvivalenta, men partikelutsläppen är 30% mindre för MK1, en svensk forskare &lt;a href="http://www.rod.se/ekonomi-skatter/br%C3%A4nsleforskare-d%C3%B6mer-ut-b%C3%A5da-sidorna" target="_blank"&gt;hävdar att det är försumbart&lt;/a&gt;. Men frånsett kortsiktiga ekonomiska vinster, är inte miljön och människors hälsa viktigare? Om det nu finns forskning som säger emot dina argument, ge gärna en referens till någon studie som stödjer dem. Inte bara en broschyr producerad av någon som råkar hålla med dig.&lt;br/&gt;&lt;br/&gt;

Hur ser du på det Lars? För mig verkar det som att politik är som vetenskapens motsats, där man väljer slutsats och sedan letar argument som passar - istället för att ta reda på fakta först.
&lt;/p&gt;

&lt;p&gt;&lt;i&gt;Lars&lt;/i&gt;:&lt;br/&gt;
Frågan handlar i det första blogginlägget om jag har påverkats av Statoil när jag skrev motionen, men det har jag inte. Frågan är då på vilket sätt som Preem har påverkat socialdemokraterna eftersom de använder just Preems argument i frågan, och som tidningen Riksdag och departement påpekar idag så tjänar just Preem mycket pengar på att skatteförmånen för deras diesel blir kvar. Som Riksdagsledamot tycker jag att det är viktigt att företräda allmänintresset och inte ett oljebolag. Samma tidning har en artikel där en erkänt välkänd professor konstaterar att ur miljösynpunkt kan man inte mäta någon miljöeffekt av MK 1 i förhållande till Europadiesel. Men jag har full respekt för Preems agerande eftersom de självklart ur affärsmässiga skäl ska försöka slåss för sin produkt.
&lt;/p&gt;

&lt;p&gt;&lt;i&gt;Jag&lt;/i&gt;:&lt;br/&gt;
Nåväl, som jag skrev tidigare tycker jag att du missar poängen där. Lobbyister kan ha rätt och de kan ha fel, det bryr jag mig inte så mycket om. Det jag egentligen undrade över var om du kunde förklara var du fått uppgifterna om att koldioxidutsläppen för MK1 “totalt sett är högre” ifrån. Läser man motionen är det ju uppenbart att du helt enkelt litat blint på Statoils version, trots att det finns forskning som visar motsatsen (även om man kan ifrågasätta om studien verkligen är oberoende, när den beställts av Preem som du påpekar).&lt;br/&gt;&lt;br/&gt;

Trevligt att du svarar på kritik online.
&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://www.laszlo.nu/post/3708386640</link><guid>http://www.laszlo.nu/post/3708386640</guid><pubDate>Mon, 07 Mar 2011 22:42:00 +0100</pubDate></item><item><title>Reversing Wordpress Audioplayer url obfuscation</title><description>&lt;p&gt;
One of my favourite artists recently posted a new song to his blog. I wanted to download the mp3 file but he uses the &lt;a href="http://wpaudioplayer.com/" target="_blank"&gt;Wordpress Audioplayer plugin&lt;/a&gt;, which obfuscates the original url of the file being played. The plugin is released under the open source &lt;a href="http://www.opensource.org/licenses/mit-license.php" target="_blank"&gt;MIT license&lt;/a&gt; so I had a look at the &lt;a href="http://tools.assembla.com/1pixelout/browser/audio-player/trunk/source/classes/Application.as" target="_blank"&gt;source code for decoding these urls&lt;/a&gt;. It turns out that the algorithm is really simple. Just look up each character in the obfuscated string in a key. Make a string of the position of each character’s position, represented as a six bit binary number, then just treat this string as a binary representation of an ordinary ascii string. My python version of the algorithm looks like this (&lt;a href="http://paste.laszlo.nu/pastebin.php?dl=110" target="_blank"&gt;download it&lt;/a&gt;):
&lt;/p&gt;

&lt;div style="font-size: 10px; line-height: 12px;"&gt;
&lt;pre style="color:#000000;background:#ffffff;"&gt;&lt;span style="color:#800000; font-weight:bold; "&gt;def&lt;/span&gt; int2bin&lt;span style="color:#808030; "&gt;(&lt;/span&gt;n&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#808030; "&gt;:&lt;/span&gt;
    &lt;span style="color:#800000; font-weight:bold; "&gt;assert&lt;/span&gt; n &lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt;&lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#008c00; "&gt;0&lt;/span&gt;&lt;span style="color:#808030; "&gt;,&lt;/span&gt; &lt;span style="color:#0000e6; "&gt;"Number must be positive"&lt;/span&gt;
    res &lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#0000e6; "&gt;""&lt;/span&gt;
    &lt;span style="color:#800000; font-weight:bold; "&gt;if&lt;/span&gt; n &lt;span style="color:#808030; "&gt;=&lt;/span&gt;&lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#008c00; "&gt;0&lt;/span&gt;&lt;span style="color:#808030; "&gt;:&lt;/span&gt; &lt;span style="color:#800000; font-weight:bold; "&gt;return&lt;/span&gt; &lt;span style="color:#0000e6; "&gt;"0"&lt;/span&gt;
    &lt;span style="color:#800000; font-weight:bold; "&gt;while&lt;/span&gt; &lt;span style="color:#e34adc; "&gt;True&lt;/span&gt;&lt;span style="color:#808030; "&gt;:&lt;/span&gt;
        &lt;span style="color:#800000; font-weight:bold; "&gt;if&lt;/span&gt; n &lt;span style="color:#808030; "&gt;=&lt;/span&gt;&lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#008c00; "&gt;0&lt;/span&gt;&lt;span style="color:#808030; "&gt;:&lt;/span&gt;
            &lt;span style="color:#800000; font-weight:bold; "&gt;return&lt;/span&gt; res
        &lt;span style="color:#800000; font-weight:bold; "&gt;elif&lt;/span&gt; n &lt;span style="color:#808030; "&gt;%&lt;/span&gt; &lt;span style="color:#008c00; "&gt;2&lt;/span&gt; &lt;span style="color:#808030; "&gt;=&lt;/span&gt;&lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#008c00; "&gt;0&lt;/span&gt;&lt;span style="color:#808030; "&gt;:&lt;/span&gt;
            res &lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#0000e6; "&gt;"0"&lt;/span&gt; &lt;span style="color:#808030; "&gt;+&lt;/span&gt; res
        &lt;span style="color:#800000; font-weight:bold; "&gt;else&lt;/span&gt;&lt;span style="color:#808030; "&gt;:&lt;/span&gt;
            res &lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#0000e6; "&gt;"1"&lt;/span&gt; &lt;span style="color:#808030; "&gt;+&lt;/span&gt; res
            n &lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#008c00; "&gt;1&lt;/span&gt;
        n &lt;span style="color:#808030; "&gt;/&lt;/span&gt;&lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#008c00; "&gt;2&lt;/span&gt;

&lt;span style="color:#800000; font-weight:bold; "&gt;def&lt;/span&gt; decode&lt;span style="color:#808030; "&gt;(&lt;/span&gt;source&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#808030; "&gt;:&lt;/span&gt;
    key &lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#0000e6; "&gt;"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-"&lt;/span&gt;
    binary &lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#0000e6; "&gt;""&lt;/span&gt;

    &lt;span style="color:#800000; font-weight:bold; "&gt;for&lt;/span&gt; char &lt;span style="color:#800000; font-weight:bold; "&gt;in&lt;/span&gt; source&lt;span style="color:#808030; "&gt;:&lt;/span&gt;
        code &lt;span style="color:#808030; "&gt;=&lt;/span&gt; key&lt;span style="color:#808030; "&gt;.&lt;/span&gt;find&lt;span style="color:#808030; "&gt;(&lt;/span&gt;char&lt;span style="color:#808030; "&gt;)&lt;/span&gt; &lt;span style="color:#696969; "&gt;# look up each char in the code key&lt;/span&gt;
        binary &lt;span style="color:#808030; "&gt;+&lt;/span&gt;&lt;span style="color:#808030; "&gt;=&lt;/span&gt; int2bin&lt;span style="color:#808030; "&gt;(&lt;/span&gt;code&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#808030; "&gt;.&lt;/span&gt;rjust&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#008c00; "&gt;6&lt;/span&gt;&lt;span style="color:#808030; "&gt;,&lt;/span&gt; &lt;span style="color:#0000e6; "&gt;"0"&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt; &lt;span style="color:#696969; "&gt;# append char index as a six bit binary string&lt;/span&gt;
    
    chunks &lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#808030; "&gt;[&lt;/span&gt;&lt;span style="color:#808030; "&gt;]&lt;/span&gt; 
    &lt;span style="color:#696969; "&gt;# split string into segments of length 8&lt;/span&gt;
    &lt;span style="color:#800000; font-weight:bold; "&gt;while&lt;/span&gt; &lt;span style="color:#e34adc; "&gt;len&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;binary&lt;span style="color:#808030; "&gt;)&lt;/span&gt; &lt;span style="color:#808030; "&gt;&gt;&lt;/span&gt; &lt;span style="color:#008c00; "&gt;0&lt;/span&gt;&lt;span style="color:#808030; "&gt;:&lt;/span&gt;
        chunks&lt;span style="color:#808030; "&gt;.&lt;/span&gt;append&lt;span style="color:#808030; "&gt;(&lt;/span&gt;binary&lt;span style="color:#808030; "&gt;[&lt;/span&gt;&lt;span style="color:#808030; "&gt;:&lt;/span&gt;&lt;span style="color:#008c00; "&gt;8&lt;/span&gt;&lt;span style="color:#808030; "&gt;]&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt; 
        binary &lt;span style="color:#808030; "&gt;=&lt;/span&gt; binary&lt;span style="color:#808030; "&gt;[&lt;/span&gt;&lt;span style="color:#008c00; "&gt;8&lt;/span&gt;&lt;span style="color:#808030; "&gt;:&lt;/span&gt;&lt;span style="color:#808030; "&gt;]&lt;/span&gt;

    chars &lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#808030; "&gt;[&lt;/span&gt;&lt;span style="color:#e34adc; "&gt;chr&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#e34adc; "&gt;int&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;x&lt;span style="color:#808030; "&gt;,&lt;/span&gt; &lt;span style="color:#008c00; "&gt;2&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt; &lt;span style="color:#800000; font-weight:bold; "&gt;for&lt;/span&gt; x &lt;span style="color:#800000; font-weight:bold; "&gt;in&lt;/span&gt; chunks&lt;span style="color:#808030; "&gt;]&lt;/span&gt; &lt;span style="color:#696969; "&gt;# convert the segments to chars&lt;/span&gt;
    &lt;span style="color:#800000; font-weight:bold; "&gt;return&lt;/span&gt; &lt;span style="color:#0000e6; "&gt;""&lt;/span&gt;&lt;span style="color:#808030; "&gt;.&lt;/span&gt;join&lt;span style="color:#808030; "&gt;(&lt;/span&gt;chars&lt;span style="color:#808030; "&gt;)&lt;/span&gt;

&lt;span style="color:#696969; "&gt;# &lt;a href="http://www.mabd.se/?p=682" target="_blank"&gt;http://www.mabd.se/?p=682&lt;/a&gt;&lt;/span&gt;
test &lt;span style="color:#808030; "&gt;=&lt;/span&gt; &lt;span style="color:#0000e6; "&gt;"aHR0cDovL3d3dy5tYWJkLnNlL3VwbG9hZC8yMDEwLzEyL0RlbWVudG9yZXIubXAzA"&lt;/span&gt;
&lt;span style="color:#800000; font-weight:bold; "&gt;print&lt;/span&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;test&lt;span style="color:#808030; "&gt;,&lt;/span&gt; decode&lt;span style="color:#808030; "&gt;(&lt;/span&gt;test&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;</description><link>http://www.laszlo.nu/post/2567437671</link><guid>http://www.laszlo.nu/post/2567437671</guid><pubDate>Sun, 02 Jan 2011 15:14:00 +0100</pubDate><category>python</category><category>programmering</category></item><item><title>http://wikimirrors.laszlo.nu/</title><description>&lt;a href="http://wikimirrors.laszlo.nu/"&gt;http://wikimirrors.laszlo.nu/&lt;/a&gt;</description><link>http://www.laszlo.nu/post/2134486199</link><guid>http://www.laszlo.nu/post/2134486199</guid><pubDate>Tue, 07 Dec 2010 19:59:00 +0100</pubDate><category>programmering</category></item><item><title>Det var bättre förr</title><description>&lt;p&gt;
Såg just i min &lt;a href="http://www.transmissionbt.com/" target="_blank"&gt;bittorrent-klient&lt;/a&gt; att dagens genomsnittliga uppladdningshastighet låg på 1,44MB/s, dvs lika mycket som får plats på såna där 3,5-tums disketter jag använde när jag var liten (&lt;a href="http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/floppy-discs-are-90mm-not-3-and-a-half-inches.html" target="_blank"&gt;specifikationen säger faktiskt 90,0mm och ingenting om några dumma tummar&lt;/a&gt;). Eftersom en diskett är 3,3mm tjock så innebär det att all information jag skickat ut det senaste dygnet lagrat på disketter skulle skapa en stapel på 290 meter,  ungefär lika hög som &lt;a href="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;sll=37.0625,-95.677068&amp;sspn=56.06887,114.169922&amp;ie=UTF8&amp;t=h&amp;layer=c&amp;cbll=48.859629,2.292373&amp;cbp=12,142.2,,0,-26.25&amp;ll=48.857776,2.295123&amp;spn=0.00576,0.013937&amp;z=17&amp;panoid=41U3iaFwiKgVqSFQfLvudQ" target="_blank"&gt;Eiffeltornet&lt;/a&gt;.
&lt;/p&gt;</description><link>http://www.laszlo.nu/post/1081591556</link><guid>http://www.laszlo.nu/post/1081591556</guid><pubDate>Tue, 07 Sep 2010 17:00:00 +0200</pubDate></item><item><title>Dagens pajas</title><description>&lt;p&gt;
En av Filipstads &lt;a href="http://filipstad.sverigedemokraterna.se/category/vara_foretradare/" target="_blank"&gt;ledande sverigedemokrater&lt;/a&gt;, &lt;em&gt;Levi Klausen&lt;/em&gt; blev ju lite nätkändis efter att han gjort bort sig i en intervju genom att bara vara sig själv:
&lt;/p&gt;

&lt;p&gt;
&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube-nocookie.com/v/g9dJtGUvtcE?fs=1&amp;hl=en_US&amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube-nocookie.com/v/g9dJtGUvtcE?fs=1&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/p&gt;

&lt;p&gt;
Idag påminde Pär mig om den roliga intervjun. Jag började kolla upp mister Klausen (källkritik, blah blah…) och ramlade över &lt;a href="http://www.freewebs.com/leviklausen/" target="_blank"&gt;hans hemsida&lt;/a&gt;… jävlar i min lilla låda. Geocitiesinspirerad design och 90-talsångest. Det blir inte bättre. Trodde jag!
&lt;/p&gt;

&lt;p&gt;
När jag som bäst klickar runt på sidan, eller “Klausen’s partyland” menar jag såklart, så hittade jag hans musikvideos. Partyvarning!
&lt;/p&gt;

&lt;p&gt;
&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube-nocookie.com/v/Iz8ouDycw5I?fs=1&amp;hl=en_US&amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube-nocookie.com/v/Iz8ouDycw5I?fs=1&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube-nocookie.com/v/e7HonaUciH8?fs=1&amp;hl=en_US&amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube-nocookie.com/v/e7HonaUciH8?fs=1&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/p&gt;

&lt;p&gt;
Ett av &lt;a href="http://www.freewebs.com/leviklausen/skivor.htm" target="_blank"&gt;hans skivomslag&lt;/a&gt;. Kommentarer överflödiga.
&lt;/p&gt;

&lt;p&gt;
&lt;img src="http://sites.google.com/a/laszlo.nu/bloggextra/Home/2010-09-06-klausen.jpg" alt="Levi Klausen, skivomslag"/&gt;&lt;/p&gt;

&lt;p&gt;
Vad ska man säga? Jag dör lite av skratt. Dessutom förklarar det här ju mycket av SDs politik, de är inte elaka - de är helt enkelt bara lite efterblivna!
&lt;/p&gt;</description><link>http://www.laszlo.nu/post/1076277966</link><guid>http://www.laszlo.nu/post/1076277966</guid><pubDate>Mon, 06 Sep 2010 19:10:00 +0200</pubDate><category>politik</category><category>video</category></item><item><title>
Tänkte bara säga det.</title><description>&lt;a href="http://www.sverigedemokraterna.de/" title="Jag röstar inte på Sverigedemokraterna – läs mer på www.sverigedemokraterna.de" target="_blank"&gt;&lt;img src="http://www.sverigedemokraterna.de/wp-content/uploads/2010/04/sverigedemokraterna.gif" height="150" width="150" alt='”sverigedemokraterna"' border="0"/&gt;&lt;/a&gt;
&lt;p&gt;Tänkte bara säga det.&lt;/p&gt;</description><link>http://www.laszlo.nu/post/1059350545</link><guid>http://www.laszlo.nu/post/1059350545</guid><pubDate>Fri, 03 Sep 2010 19:37:54 +0200</pubDate><category>politik</category></item><item><title>Lite ekonomisk evolutionspsykologi</title><description>&lt;object width="446" height="326"&gt;&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;param name="bgColor" value="#ffffff"&gt;&lt;param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/LaurieSantos_2010G-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/LaurieSantos-2010G.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=927&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=laurie_santos;year=2010;theme=animals_that_amaze;theme=a_taste_of_tedglobal_2010;theme=not_business_as_usual;theme=new_on_ted_com;theme=unconventional_explanations;event=TEDGlobal+2010;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;"&gt;&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgcolor="#ffffff" width="446" height="326" allowfullscreen="true" allowscriptaccess="always" flashvars="vu=http://video.ted.com/talks/dynamic/LaurieSantos_2010G-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/LaurieSantos-2010G.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=927&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=laurie_santos;year=2010;theme=animals_that_amaze;theme=a_taste_of_tedglobal_2010;theme=not_business_as_usual;theme=new_on_ted_com;theme=unconventional_explanations;event=TEDGlobal+2010;"&gt;&lt;/embed&gt;&lt;/object&gt;

&lt;p&gt;Laurie Santos berättar om ett experiment där hon och hennes kollegor introducerar en slags valuta hos labbaporna. Frågan var om aporna tenderar att begå samma slags ekonomiska misstag som vi människor. Ungefär tio minuter in börjar det bli riktigt roligt. Jag känner igen mig.&lt;/p&gt;</description><link>http://www.laszlo.nu/post/1055434768</link><guid>http://www.laszlo.nu/post/1055434768</guid><pubDate>Fri, 03 Sep 2010 01:32:59 +0200</pubDate><category>video</category></item><item><description>&lt;p&gt;&lt;object width="450" height="300"&gt;&lt;param name="movie" value="http://rodgron.awshosting.delorean.se/app/banner/rodgron_banner.swf?uid=8145&amp;bid=miljo"&gt;&lt;param name="allowFullScreen" value="false"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://rodgron.awshosting.delorean.se/app/banner/rodgron_banner.swf?uid=8145&amp;bid=miljo" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="false" width="450" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;</description><link>http://www.laszlo.nu/post/1022195358</link><guid>http://www.laszlo.nu/post/1022195358</guid><pubDate>Sat, 28 Aug 2010 02:01:00 +0200</pubDate><category>politik</category></item><item><title>How to kill an unresponsive ssh session</title><description>&lt;p&gt;I often find myself in the somewhat cumbersome situation that a currently running ssh session stops responding, often due to a lost connection. The normal ctrl+c of course doesn’t work, the ssh client catches all the usual commands, which is very handy while you are still connected to the host but not very handy at all in this case.&lt;/p&gt;

&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-3542806687645384";
/* laszlo_nu utvalda sidor */
google_ad_slot = "3858207963";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;p&gt;My usual approach has been to switch to another terminal window or shell and then killing the process in question. Today I happened to be skimming through the ssh client’s man page and I found a section about escape characters. Suddenly I gazed upon the glory of the disconnect key sequence: a newline followed by &lt;code&gt;~.&lt;/code&gt;. It works like a charm. As always, I thought I should share.&lt;/p&gt;

&lt;script type="text/javascript"&gt;
	var flattr_url = 'http://www.laszlo.nu/post/553591402/how-to-kill-an-unresponsive-ssh-session';
	var flattr_btn='compact';
&lt;/script&gt;&lt;script src="http://api.flattr.com/button/load.js" type="text/javascript"&gt;&lt;/script&gt;</description><link>http://www.laszlo.nu/post/553591402</link><guid>http://www.laszlo.nu/post/553591402</guid><pubDate>Tue, 27 Apr 2010 17:23:00 +0200</pubDate><category>ssh</category><category>linux</category></item><item><title>Emacs, Facebook and lisp</title><description>&lt;p&gt;I’m still learning new stuff in Emacs every day. It’s probably one of the main reason why Emacs is my favourite text editor; it’s just plain fun.&lt;/p&gt;

&lt;p&gt;I happen to know a little Lisp, which come in handy sometime. Changing or extending the behavíour of a program is seldom easy, fun or even productive. Emacs is of course an exception. Once you know the basics you can do pretty much whatever comes to mind.&lt;/p&gt;

&lt;p&gt;Today I made my first attempt at building an “interactive” function. A function that you can run by entering M-x &lt;em&gt;function-name&lt;/em&gt;, that is. It’s called facebook-log-fix and I needed it because I really like saving my online conversations. Pidgin does this for me most of the time but when I chat on Facebook I need to save them myself. The problem is that Facebook’s stylesheets takes care of the layout of the chat, so when you simply copy the conversation to a text editor it gets all jumbled up. This simple little function takes care of this for me. Maybe you’ll like it, or just learn something about how to modify Emacs a little. Please tell me if you have got any suggestions for improvements — I’m a pretty big noob when it comes to lisp and Emacs.&lt;/p&gt;

&lt;p&gt;Here it goes, just paste it into your .emacs file or whatever.&lt;/p&gt;

&lt;pre style="color:#000000;background:#ffffff;"&gt;&lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; font-weight:bold; "&gt;defun&lt;/span&gt; facebook-log-fix &lt;span style="color:#7d0045; "&gt;nil&lt;/span&gt;
  &lt;span style="color:#0000e6; "&gt;"Make proper adjustments to a cut'n'pasted Facebook chat"&lt;/span&gt;
  &lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; font-weight:bold; "&gt;interactive&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt; &lt;span style="color:#696969; "&gt;; make the function available to the user&lt;/span&gt;
  &lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; font-weight:bold; "&gt;message&lt;/span&gt; &lt;span style="color:#0000e6; "&gt;"Trying to cleanup Facebook chat"&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;
  &lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; font-weight:bold; "&gt;save-excursion&lt;/span&gt; &lt;span style="color:#696969; "&gt;; restore stuff (point, mark and current buffer) when done&lt;/span&gt;
    &lt;span style="color:#696969; "&gt;; Fancy regexp: (name)\n((anything+\n)*?[non-greedy])(time of day)&lt;/span&gt;
    &lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; font-weight:bold; "&gt;replace-regexp&lt;/span&gt; &lt;span style="color:#0000e6; "&gt;"\\(.*?\\)\n\\(\\(?:.*\n\\)*?\\)\\([0-9][0-9]:[0-9][0-9][a|p]m\\)"&lt;/span&gt;
                    &lt;span style="color:#0000e6; "&gt;"\\3 \\1 \\2\n"&lt;/span&gt;
                    &lt;span style="color:#7d0045; "&gt;nil&lt;/span&gt; &lt;span style="color:#008c00; "&gt;0&lt;/span&gt; &lt;span style="color:#808030; "&gt;(&lt;/span&gt;&lt;span style="color:#800000; font-weight:bold; "&gt;buffer-size&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;&lt;span style="color:#808030; "&gt;)&lt;/span&gt;
&lt;/pre&gt;</description><link>http://www.laszlo.nu/post/541709699</link><guid>http://www.laszlo.nu/post/541709699</guid><pubDate>Fri, 23 Apr 2010 01:52:00 +0200</pubDate><category>programmering</category><category>lisp</category><category>emacs</category><category>facebook</category></item><item><title>Loggbok 1997-2010 (to be cont'd)</title><description>&lt;p&gt;När jag var tolv år gammal insåg jag en sak. Jag insåg att livet oundvikligen kommer att innebära en rad besvikelser, sorger, förluster, misslyckanden, katastrofer och misstag.&lt;/p&gt;

&lt;p&gt;När jag var sexton år gammal insåg jag en sak. Jag insåg att allt som är vackert och bra oundvikligen kommer att ta slut på ett eller annat sätt.&lt;/p&gt;

&lt;p&gt;När jag var tjugotre år gammal insåg jag en sak. Jag insåg att ett slut även kan vara en början.&lt;/p&gt;

&lt;p&gt;När jag var nästan tjugofem år gammal insåg jag en sak. Jag insåg att ju hårdare man anstränger sig för att inte halka omkull, desto mer gör man illa sig när man väl tappar fotfästet.&lt;/p&gt;</description><link>http://www.laszlo.nu/post/523621494</link><guid>http://www.laszlo.nu/post/523621494</guid><pubDate>Thu, 15 Apr 2010 18:33:57 +0200</pubDate></item><item><title>"Silhuetter"</title><description>&lt;p&gt;
Såg just att min vän &lt;em&gt;AT&lt;/em&gt; blev &lt;a href="http://arbetarbladet.se/noje/1.1480489" target="_blank"&gt;intervjuad i Arbetarbladet&lt;/a&gt;. Han pratar om skräckserieantologin &lt;a href="http://mylingmedia.com/shop/" target="_blank"&gt;“Silhuetter”&lt;/a&gt; som gavs ut förra hösten på deras egna, ganska nystartade, förlag &lt;a href="http://www.mylingmedia.com" target="_blank"&gt;Myling Media&lt;/a&gt; (vars hemsida jag för övrigt totade ihop för länge sedan när de fortfarande hette &lt;em&gt;SIC Mediagroup&lt;/em&gt; eller något i den stilen).
&lt;/p&gt;
&lt;p&gt;
Tyvärr har jag inte läst &lt;i&gt;Silhuetter&lt;/i&gt; än; när Myling var på bokmässan förra året i samband med boksläppet blev jag såklart sjuk. Gillar du serier, speciellt i skräckgenren, så gå in på deras hemsida och kolla runt lite!
&lt;/p&gt;</description><link>http://www.laszlo.nu/post/370906410</link><guid>http://www.laszlo.nu/post/370906410</guid><pubDate>Thu, 04 Feb 2010 20:06:00 +0100</pubDate><category>myling,</category><category>silhuetter</category><category>hemsidor</category></item><item><title>TechnoFeminism</title><description>&lt;p&gt;Första uppgiften i kursen &lt;em&gt;Genus och teknik i vår värld idag&lt;/em&gt;, eller bara &lt;em&gt;Genus och teknik&lt;/em&gt;, blev att översätta en del av kursboken &lt;em&gt;TechnoFeminism&lt;/em&gt; av &lt;a href="http://polsc.anu.edu.au/staff/wajcman/index.htm" target="_blank"&gt;Judy Wajcman&lt;/a&gt; till svenska. Så här kan det se ut:&lt;/p&gt;

&lt;blockquote&gt;Pierre Bourdieu’s concepts of habitus and embodied cultural capital are in vogue as a way of grounding cultural theory in a sociology of practice. The habitus of social relations and practices include machines; but what is less well understood is how machines themselves have a habitus and embody particular forms of cultural capital.&lt;/blockquote&gt;

&lt;p&gt;Det är ganska svårt. Speciellt med alla engelska genusteoretiska och sociologiska begrepp, men det ger ändå en mycket djupare förståelse av texten så det känns helt klart värt det. Det är tur att det bara är några sidor; det tar sjukt lång tid.&lt;/p&gt;</description><link>http://www.laszlo.nu/post/361454287</link><guid>http://www.laszlo.nu/post/361454287</guid><pubDate>Sat, 30 Jan 2010 16:22:00 +0100</pubDate></item></channel></rss>

