<?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>Skåne  (Taken with instagram)</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_m4akmjRZRE1qz6qu5o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Skåne  (Taken with &lt;a href="http://instagr.am" target="_blank"&gt;instagram&lt;/a&gt;)&lt;/p&gt;</description><link>http://www.laszlo.nu/post/23376445679</link><guid>http://www.laszlo.nu/post/23376445679</guid><pubDate>Sun, 20 May 2012 00:47:07 +0200</pubDate></item><item><title>København  (Taken with instagram)</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_m4ak476lRP1qz6qu5o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;København  (Taken with &lt;a href="http://instagr.am" target="_blank"&gt;instagram&lt;/a&gt;)&lt;/p&gt;</description><link>http://www.laszlo.nu/post/23375847591</link><guid>http://www.laszlo.nu/post/23375847591</guid><pubDate>Sun, 20 May 2012 00:36:07 +0200</pubDate></item><item><title>Christianshavn  (Taken with instagram)</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_m4aimzf93m1qz6qu5o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Christianshavn  (Taken with &lt;a href="http://instagr.am" target="_blank"&gt;instagram&lt;/a&gt;)&lt;/p&gt;</description><link>http://www.laszlo.nu/post/23374088061</link><guid>http://www.laszlo.nu/post/23374088061</guid><pubDate>Sun, 20 May 2012 00:04:11 +0200</pubDate></item><item><description>&lt;p&gt;&lt;iframe width="1000" height="538" src="http://www.youtube-nocookie.com/embed/jWFb5z3kUSQ?rel=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;</description><link>http://www.laszlo.nu/post/22654452437</link><guid>http://www.laszlo.nu/post/22654452437</guid><pubDate>Tue, 08 May 2012 17:36:15 +0200</pubDate><category>video</category><category>music</category></item><item><title>Arch Linux on HP Proliant DL380 G4</title><description>&lt;p&gt;
I recently got my hands on an &lt;a href="http://h18000.www1.hp.com/products/quickspecs/12028_div/12028_div.html" target="_blank"&gt;HP Proliant DL380 G4&lt;/a&gt;. After fiddling with it for a while, trying to get the VGA port to output anything whatsoever, I finally managed to get it up and running. The VGA fix was easy - just unplug all the memory and plug it again. No idea why that worked though&amp;#8230;
&lt;/p&gt;
&lt;p&gt;
The trickiest part was getting Grub2 to load &lt;a href="http://www.archlinux.org" target="_blank"&gt;Arch&lt;/a&gt; (in Ubuntu it just works though), so I thought I should make a note about it for future reference since a quick google search did not yield any results.
&lt;/p&gt;
&lt;p&gt;
The DL380 G4 comes shipped with an HP SmartArray RAID controller, version i6. Currently, the newer hpsa driver is not supported for the i6 SmartArray, instead you have to use the old CCISS driver. The two drivers have some interesting differences. The former uses the kernel SCSI interface and hence the drives get mapped to the well-known /dev/sda1 etc, whereas the latter maps to /dev/cciss/c0d0p0.
&lt;/p&gt;
&lt;p&gt;
So it turns out that Arch&amp;#8217;s setup script is not able to auto detect my RAID controller. Instead I get the annoying message &amp;#8220;root boot device could not be autodetected&amp;#8221;. To solve this, I did the following:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Follow the setup script until you get to the install bootloader step. Try it, it might work. At least it should generate a decent menu.lst for you. You will now probably watch it fail with the above message, though.&lt;/li&gt;
&lt;li&gt;You should now have your newly created partitions mounted under /mnt but before chrooting you will some devices etc:&lt;br/&gt;&lt;pre&gt;
# mount -o bind /dev /mnt/dev
# mount -t proc /proc /mnt/proc/
# mount -t sysfs /sys /mnt/sys/
# chroot /mnt bash
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Create the file /boot/grub/device.map and add this line to it:&lt;br/&gt;&lt;pre&gt;(hd0) /dev/cciss/c0d0&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Now, run &lt;code&gt;grub --device-map=/boot/grub/device.map&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;In the grub prompt, run grub as usual:
&lt;pre&gt;&amp;gt; root (hd0,0)
&amp;gt; setup (hd0)
&amp;gt; quit&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
If you get an error message in any of the steps above, investigate! Otherwise it should have worked and your OS should boot from your raid volume.</description><link>http://www.laszlo.nu/post/22412068194</link><guid>http://www.laszlo.nu/post/22412068194</guid><pubDate>Sat, 05 May 2012 02:11:00 +0200</pubDate><category>linux</category><category>grub2</category><category>proliant</category><category>raid</category><category>arch</category></item><item><title>life:

Wow, this photo: A little girl receiving tests gazes into...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_m1aqb4CwXi1qbz9meo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a class="tumblr_blog" href="http://life.tumblr.com/post/19736350784/wow-this-photo-a-little-girl-receiving-tests" target="_blank"&gt;life&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Wow, this photo&lt;/strong&gt;: A little girl receiving tests gazes into pool containing baby ducks — an early use of animals as part of medical therapy, 1956.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(see more photos &lt;a href="http://ti.me/GLOtqX%20" target="_blank"&gt;here&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://www.laszlo.nu/post/22409948201</link><guid>http://www.laszlo.nu/post/22409948201</guid><pubDate>Sat, 05 May 2012 01:38:10 +0200</pubDate></item><item><title>Polite revolt</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_m3hx4a9TGh1qz6qu5o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Polite revolt&lt;/p&gt;</description><link>http://www.laszlo.nu/post/22377790377</link><guid>http://www.laszlo.nu/post/22377790377</guid><pubDate>Fri, 04 May 2012 13:26:00 +0200</pubDate><category>photo</category></item><item><title>Ironic graffiti

Någon har uppenbarligen sett det här, fått...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_m3gqec4rLA1qz6qu5o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Ironic graffiti&lt;/p&gt;

&lt;p&gt;Någon har uppenbarligen sett det här, fått förklarat för sig att “fet” betyder “ungefär häftig, cool, bäst” och blivit glad över att fler än hon tycker att Jesus är fet. &lt;a href="http://notflipmo.se/blog/2010/11/30/jesus-ar-fet/" target="_blank"&gt;På flipmos blogg finns ett helt brev från den här personen att begapa&lt;/a&gt;. Det innehåller några sköna formuleringar som: “Är Jesus fet för dig?”, “Du är fet för Jesus” och sist (och värst) “En riktigt god fet jul önskar jag dig!”&lt;/p&gt;

&lt;p&gt;Antingen det eller så är hela grejen en del av något ironiskt konstprojekt av någon hipster-elev på &lt;a href="http://www.valand.gu.se/" target="_blank"&gt;Valand&lt;/a&gt;?&lt;/p&gt;</description><link>http://www.laszlo.nu/post/22334653483</link><guid>http://www.laszlo.nu/post/22334653483</guid><pubDate>Thu, 03 May 2012 22:03:00 +0200</pubDate><category>photo</category></item><item><title>Empty street</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_m3gknttGo81qz6qu5o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Empty street&lt;/p&gt;</description><link>http://www.laszlo.nu/post/22328530341</link><guid>http://www.laszlo.nu/post/22328530341</guid><pubDate>Thu, 03 May 2012 19:59:00 +0200</pubDate><category>photo</category></item><item><title>India</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_m33js3m5lV1qz6qu5o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;India&lt;/p&gt;</description><link>http://www.laszlo.nu/post/21854743976</link><guid>http://www.laszlo.nu/post/21854743976</guid><pubDate>Thu, 26 Apr 2012 19:12:00 +0200</pubDate><category>photo</category></item><item><title>The number you have dialed...</title><description>&lt;p&gt;&amp;#8230;is currently unavailable. Please try again later.&lt;/p&gt;

&lt;iframe width="100%" height="166" scrolling="no" frameborder="no" src="http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F44232525&amp;amp;auto_play=false&amp;amp;show_artwork=false&amp;amp;color=ff7700"&gt;&lt;/iframe&gt;</description><link>http://www.laszlo.nu/post/21728312393</link><guid>http://www.laszlo.nu/post/21728312393</guid><pubDate>Tue, 24 Apr 2012 21:36:43 +0200</pubDate></item><item><title>Duego, the company where I’m working, now has a...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_m2xp7m9EuD1qz6qu5o1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Duego, the company where I’m working, now has a &lt;a href="http://blog.duego.com" target="_blank"&gt;blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Also, we have deployed our &lt;a href="http://duego.com" target="_blank"&gt;pre-launch&lt;/a&gt; site in Sweden and a couple of other countries today.&lt;/p&gt;</description><link>http://www.laszlo.nu/post/21644897995</link><guid>http://www.laszlo.nu/post/21644897995</guid><pubDate>Mon, 23 Apr 2012 15:23:00 +0200</pubDate><category>work</category></item><item><title>Rivö</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_m2u651Fp4R1qz6qu5o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Rivö&lt;/p&gt;</description><link>http://www.laszlo.nu/post/21500827025</link><guid>http://www.laszlo.nu/post/21500827025</guid><pubDate>Sat, 21 Apr 2012 17:39:00 +0200</pubDate><category>photo</category></item><item><title>Fanny, Johan, Laleh</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_m2sm22LycR1qz6qu5o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Fanny, Johan, Laleh&lt;/p&gt;</description><link>http://www.laszlo.nu/post/21446583012</link><guid>http://www.laszlo.nu/post/21446583012</guid><pubDate>Fri, 20 Apr 2012 21:27:00 +0200</pubDate><category>photo</category></item><item><title>Gräsänkling</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_m2rdeaTuol1qz6qu5o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Gräsänkling&lt;/p&gt;</description><link>http://www.laszlo.nu/post/21419522581</link><guid>http://www.laszlo.nu/post/21419522581</guid><pubDate>Fri, 20 Apr 2012 05:22:00 +0200</pubDate><category>photo</category></item><item><title>F.UPS</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_m2qq8xDyP91qz6qu5o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;F.UPS&lt;/p&gt;</description><link>http://www.laszlo.nu/post/21390454113</link><guid>http://www.laszlo.nu/post/21390454113</guid><pubDate>Thu, 19 Apr 2012 21:02:00 +0200</pubDate><category>photo</category></item><item><title>Järntorget</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_m2kngdZJDY1qz6qu5o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Järntorget&lt;/p&gt;</description><link>http://www.laszlo.nu/post/21207412076</link><guid>http://www.laszlo.nu/post/21207412076</guid><pubDate>Mon, 16 Apr 2012 14:17:00 +0200</pubDate><category>photo</category></item><item><title>Fuktdis</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_m2doiwi0zl1qz6qu5o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Fuktdis&lt;/p&gt;</description><link>http://www.laszlo.nu/post/20972320466</link><guid>http://www.laszlo.nu/post/20972320466</guid><pubDate>Thu, 12 Apr 2012 19:56:00 +0200</pubDate><category>photo</category></item><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;&amp;lt;&lt;/span&gt;&lt;span style="color:#7144c4; "&gt;andre@laszlo.nu&lt;/span&gt;&lt;span style="color:#0000e6; "&gt;&amp;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;&amp;lt;&lt;/span&gt;&lt;span style="color:#40015a; "&gt;stdlib.h&lt;/span&gt;&lt;span style="color:#800000; "&gt;&amp;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;&amp;lt;&lt;/span&gt;&lt;span style="color:#40015a; "&gt;stdio.h&lt;/span&gt;&lt;span style="color:#800000; "&gt;&amp;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;&amp;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;&amp;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;&amp;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;&amp;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;&amp;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;&amp;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;&amp;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;&amp;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;&amp;gt;&lt;/span&gt;last&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&amp;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;&amp;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;&amp;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;&amp;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;&amp;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;&amp;gt;&lt;/span&gt;first&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&amp;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;&amp;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;&amp;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;&amp;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;&amp;gt;&lt;/span&gt;first&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&amp;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;&amp;gt;&lt;/span&gt;first&lt;span style="color:#808030; "&gt;-&lt;/span&gt;&lt;span style="color:#808030; "&gt;&amp;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;&amp;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;&amp;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;&amp;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;&amp;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;&amp;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;&amp;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;&amp;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;&amp;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;&amp;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;&amp;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;&amp;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;&amp;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;&amp;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;&amp;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;&amp;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;&amp;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;&amp;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 &amp;#8220;out of Facebook&amp;#8221; response to my Facebook friends.
&lt;/p&gt;

&lt;p&gt;
Here&amp;#8217;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 &amp;#8220;Canned responses&amp;#8221; feature. Look in Gmails settings → &amp;#8220;Labs&amp;#8221; tab and make sure it&amp;#8217;s enabled. Don&amp;#8217;t forget to save your changes.&lt;/li&gt;

&lt;li&gt;It&amp;#8217;s time to create the automatic response. Start writing a new email. I wrote something like &lt;em&gt;&amp;#8220;Automatic reply: I have not been using Facebook very much lately. Please come see me at Google+ instead!&amp;#8221;&lt;/em&gt;. Now, click the &amp;#8220;Canned responses&amp;#8221; menu (just below the subject line) and select &amp;#8220;New canned response&amp;#8230;&amp;#8221;. 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&amp;#8217;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&amp;#8217;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 &amp;#8220;Test search&amp;#8221; to see if your filter matches the notifications you want to reply to. If it doesn&amp;#8217;t, chances are that you don&amp;#8217;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 &amp;#8220;Next step&amp;#8221; and check the box next to &amp;#8220;Canned response&amp;#8221;. 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></channel></rss>

