<?xml version="1.0"?>
<rss version="2.0">

<channel>
	<title>Planet Arch Linux</title>
	<link>http://planet.archlinux.org/</link>
	<language>en</language>
	<description>Planet Arch Linux - http://planet.archlinux.org/</description>

<item>
	<title>Eduardo Romero: My First Video Upload to YouTube</title>
	<guid>http://kensai.team88.org/10 at http://kensai.team88.org</guid>
	<link>http://kensai.team88.org/node/10</link>
	<description>&lt;p&gt;I have just &lt;a href=&quot;http://www.youtube.com/watch?v=YV63a9jYQWY&quot;&gt;uploaded a video&lt;/a&gt; to YouTube, today. It really isn't that great, is just me playing neverball on Arch Linux, and I just even am not that good at it, you will notice, believe me. But what makes me feel proud is that all is done with Linux tools and on Arch Linux. I will keep playing and learning more of the tools that I used to make this video and then encode it on a size and format that would be easier to upload to YouTube.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://kensai.team88.org/node/10&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Thu, 15 May 2008 22:37:42 +0000</pubDate>
</item>
<item>
	<title>Leslie Polzer: Unicode nickname support in UnrealIRCd</title>
	<guid>http://blog.viridian-project.de/?p=76</guid>
	<link>http://blog.viridian-project.de/2008/05/15/unicode-nickname-support-in-unrealircd/</link>
	<description>&lt;p&gt;A recent release of UnrealIRCd has brought us support for some latin codepages and even mulitbyte encodings. Unicode, however, is not included, so that it looks a bit like a kludge.&lt;/p&gt;
&lt;p&gt;But there&amp;#8217;s a &lt;a href=&quot;http://bugs.unrealircd.org/print_bug_page.php?bug_id=2852&quot;&gt;comprehensive discussion along with patches&lt;/a&gt; for better codepage support in the project&amp;#8217;s bug tracker. Unfortunately, some of the patches are not done right, and the rest of them are a bit, uh, stale.&lt;/p&gt;
&lt;p&gt;This procedure worked for me:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Get UnrealIRCd 3.2.5 (3.2.x might work, too)&lt;/li&gt;
&lt;li&gt;Patch with &lt;code&gt;unreal3.2.5.cvs.codepages-2.diff&lt;/code&gt; (allowed fuzz of five or so)&lt;/li&gt;
&lt;li&gt;Edit &lt;code&gt;src/modules/Makefile.in&lt;/code&gt; manually (the patch was rejected here for me), adding &lt;code&gt;m_names.so m_codepage.so&lt;/code&gt; to R_MODULES and COMMANDS.&lt;/li&gt;
&lt;li&gt;To allow full UTF8 nick names, change the conditional in &lt;code&gt;src/modules/m_nick.c&lt;/code&gt; around line 150 to read:

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;c&quot;&gt;        &lt;span&gt;/* For a local clients, do proper nickname checking via do_nick_name()
         * and reject the nick if it returns false.
         * For remote clients, do a quick check by using do_remote_nick_name(),
         * if this returned false then reject and kill it. -- Syzop
         */&lt;/span&gt;
&amp;nbsp;
        &lt;span&gt;if&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;!do_remote_nick_name&lt;span&gt;&amp;#40;&lt;/span&gt;nick&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt; &lt;span&gt;/* just do some basic checking */&lt;/span&gt;
        &lt;span&gt;&amp;#123;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;That way you still won&amp;#8217;t have&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;c&quot;&gt;\xA0!+%@&amp;amp;~&lt;span&gt;#$:'\&amp;quot;?*,.&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;but I guess this is a limitation of the IRC protocol.&lt;/p&gt;
&lt;p&gt;After that you should be ready to run &lt;code&gt;./Config &amp;#038;&amp;#038; make&lt;/code&gt;, and set up your &lt;code&gt;unrealircd.conf&lt;/code&gt;. It&amp;#8217;s best to also enabled UTF-8 as the default in &lt;code&gt;codepage.conf&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Happy hacking!&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
	<pubDate>Thu, 15 May 2008 08:05:13 +0000</pubDate>
</item>
<item>
	<title>Leslie Polzer: Spaghetti Aglio e Olio</title>
	<guid>http://blog.viridian-project.de/?p=75</guid>
	<link>http://blog.viridian-project.de/2008/05/15/spaghetti-aglio-e-olio/</link>
	<description>&lt;p&gt;This is a simple Italian dish of pasta with garlic, spices and olive oil that tastes just great.&lt;/p&gt;
&lt;p&gt;An excellent base recipe can be found at the bottom of &lt;a href=&quot;http://www.parshift.com/ovens/Secrets/secrets051.htm&quot;&gt;Family Secrets #51&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For your convenience:&lt;/p&gt;
&lt;h3&gt;Spaghetti Aglio e Olio&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Serves four&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 lb. dried long pasta&lt;/li&gt;
&lt;li&gt;1/2 cup olive oil&lt;/li&gt;
&lt;li&gt;4 medium garlic cloves&lt;/li&gt;
&lt;li&gt;Paprika&lt;/li&gt;
&lt;li&gt;1 tsp. salt&lt;/li&gt;
&lt;li&gt;Freshly ground black pepper&lt;/li&gt;
&lt;li&gt;Red pepper flakes (optional)&lt;/li&gt;
&lt;li&gt;1 or 2 Tblsp. minced fresh herbs such as parsley, fresh oregano or a mixture (optional)&lt;/li&gt;
&lt;li&gt;Freshly grated Parmesan (pass separately)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bring a large pot of salted water to the boil. Cook the pasta al dente and drain, saving about 1/2 cup of the pasta water. While the pasta is cooking, gently warm the olive oil in a large sauté pan, add the garlic either slivered or minced and heat just until the garlic turns golden. If you are using the red pepper flakes, add them here. Remove garlic or not according to your taste. Set oil aside until pasta is drained. Place oil back on medium low flame and toss pasta, in the sauté pan, with salt until well coated. If the pasta seems dry add dribbles of the pasta water. Add herbs and just heat through. Serve immediately with a good grind of black pepper, and pass the grated cheese at table. I also like to have a cruet of olive oil on the table so diners may add a drizzle if they wish.&lt;/p&gt;</description>
	<pubDate>Thu, 15 May 2008 07:53:21 +0000</pubDate>
</item>
<item>
	<title>Daniel Isenmann: Holux M-241 and (Arch)Linux</title>
	<guid>http://ise.is.ohost.de/?p=46</guid>
	<link>http://ise.is.ohost.de/?p=46</link>
	<description>&lt;p&gt;Now my Holux M-241 GPS logger works perfectly with my ArchLinux. Things you need for getting it working:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;gpsd (community repo of ArchLinux)&lt;/li&gt;
&lt;li&gt;gpsbabel (cvs version with following &lt;a title=&quot;gpsbabel patch&quot; href=&quot;http://sourceforge.net/mailarchive/attachment.php?list_name=gpsbabel-code&amp;message_id=alpine.DEB.1.10.0805041926190.14048%40ronzinante.ccd.uniroma2.it&amp;counter=1&quot; target=&quot;_blank&quot;&gt;patch&lt;/a&gt; and this &lt;a title=&quot;Reference data&quot; href=&quot;http://sourceforge.net/mailarchive/attachment.php?list_name=gpsbabel-code&amp;message_id=alpine.DEB.1.10.0805041926190.14048%40ronzinante.ccd.uniroma2.it&amp;counter=2&quot; target=&quot;_blank&quot;&gt;reference data&lt;/a&gt;). You can download the PKGBUILD from AUR and change it for fetching the cvs tree and patch it there.&lt;/li&gt;
&lt;li&gt;&lt;a title=&quot;tangogps&quot; href=&quot;http://www.tangogps.org/&quot; target=&quot;_blank&quot;&gt;tangogps&lt;/a&gt; (available at &lt;a title=&quot;AUR link&quot; href=&quot;http://aur.archlinux.org/packages.php?ID=16636&quot; target=&quot;_blank&quot;&gt;AUR&lt;/a&gt;) (optional, but very good gps mapping application)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;First of all, you must install the mentioned software. After the installation start gpsd with:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/etc/rc.d/gpsd start&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Plug your M-241 to your PC and start &lt;code&gt;xgps&lt;/code&gt;, it&amp;#8217;s available through the gpsd package. You will see something like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ise.is.ohost.de/images/xgps.jpg&quot; alt=&quot;&quot; width=&quot;550&quot; /&gt;&lt;/p&gt;
&lt;p&gt;It means, that your PC (gpsd) receives the live GPS data from your M-241. Now, you can start any mapping tool or anything else, which shows your position on a map. I mentioned tangogps, because it&amp;#8217;s very small, has great features and looks really great. You can even change the source of the maps, standard are the maps of openstreetmap.org, but you can create more repos of other maps source. Look at the forum of tangogps there was a description.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ise.is.ohost.de/images/tangogps.jpg&quot; alt=&quot;&quot; width=&quot;492&quot; height=&quot;673&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The functionality as a GPS mouse works flawlessy. Now, the logger functionality is our next part. After you have logged some data on your logger, you must plug it to your PC. For reading those data you will need the patched cvs version, I mentioned above. A single command reads the data and stores it as a gpx file:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;gpsbabel -t -r -w -i mtk,m241 -f /dev/ttyUSB0 -o gpx -F your_filename.gpx&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This command is just an example, you can do lot more things with gpsbabel (saving as kml, transfering to another GPS device, etc.). Have a look at the documentation of gpsbabel for further information. With the gpx or kml file you can do funny things like &lt;a title=&quot;Hiking tour&quot; href=&quot;http://ise.is.ohost.de/?page_id=43&quot; target=&quot;_blank&quot;&gt;that&lt;/a&gt;. I haven&amp;#8217;t try the bluetooth interface of the logger, because I have no second bluetooth device around. Maybe someone else can give me more information to post it here.&lt;/p&gt;
&lt;p&gt;Have fun with your GPS logger under (Arch)Linux. &lt;img src=&quot;http://ise.is.ohost.de/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; /&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 12 May 2008 18:32:41 +0000</pubDate>
</item>
<item>
	<title>James Rayner: netcfg3</title>
	<guid>http://iphitus.wordpress.com/?p=5</guid>
	<link>http://iphitus.wordpress.com/2008/05/11/netcfg3/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;netcfg2 has been out for long enough, and i&amp;#8217;m looking towards netcfg3.&lt;/p&gt;
&lt;p&gt;In netcfg3 I hope to fix all that things about netcfg2 that I think _suck_.&lt;br /&gt;
* Move from iwconfig -&amp;gt; wpa_supplicant&lt;br /&gt;
* Access wpa_supplicant via dbus rather than crappy autogen configs&lt;br /&gt;
* Replace all scanning and &amp;#8216;detection&amp;#8217; code&lt;br /&gt;
* Move from ifconfig/route -&amp;gt; iproute&lt;br /&gt;
* Gut existing attempts at &amp;#8216;automagic&amp;#8217; - they all suck.&lt;br /&gt;
* Distro independent&lt;br /&gt;
* Route handling&lt;br /&gt;
* Not break current profile config syntax (no promises)&lt;br /&gt;
* More detailed status output&lt;/p&gt;
&lt;p&gt;As for feature additions:&lt;br /&gt;
* A better auto connection system, packaged separately&lt;br /&gt;
* Possibly a daemon of some sort to monitor connection state and act upon changes&lt;br /&gt;
* Closing of existing feature requests on Arch bug tracker&lt;/p&gt;
&lt;p&gt;Small goals, but should make a significant difference. The implementation will be cleaner and more flexible.&lt;/p&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/iphitus.wordpress.com/5/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/iphitus.wordpress.com/5/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/iphitus.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/iphitus.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/iphitus.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/iphitus.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/iphitus.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/iphitus.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/iphitus.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/iphitus.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/iphitus.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/iphitus.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=iphitus.wordpress.com&amp;blog=13907&amp;post=5&amp;subd=iphitus&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 11 May 2008 13:32:47 +0000</pubDate>
</item>
<item>
	<title>James Rayner: netcfg2 disappointment</title>
	<guid>http://iphitus.wordpress.com/?p=10</guid>
	<link>http://iphitus.wordpress.com/2008/05/10/netcfg2-disappointment/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;For netcfg2, I made lots of it&amp;#8217;s guts reusable. I hoped that people would take it and develop it further, making &lt;i&gt;separate&lt;/i&gt; auto-connect scripts and things. netcfg2 was meant to be a foundation for people to work with. Just source functions from /usr/lib/network/ and use them.&lt;/p&gt;
&lt;p&gt;And it&amp;#8217;s cool. You can do useful things with those functions. My ~/.xinitrc starts up different applications depending on what network I connect to. Or you could write a really good detection/automatic script. &lt;/p&gt;
&lt;p&gt;That kinda didn&amp;#8217;t happen. I don&amp;#8217;t think I&amp;#8217;ve seen a single third party script. Slightly my fault, I should have advertised it better, though I&amp;#8217;m surprised nonetheless.&lt;/p&gt;
&lt;p&gt;netcfg2 wasn&amp;#8217;t mean to be the automatic network magic tool either. I probably didn&amp;#8217;t do myself any favours including the auto-wireless and EXCLUSIVE= hacks though.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ll release another netcfg 2.0.x bugfix, and netcfg 2.1. After that the work will be on netcfg3 which will remedy netcfg 2.0&amp;#8217;s flaws and bring it up to date with current standards. More on that another time&amp;#8230;&lt;/p&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/iphitus.wordpress.com/10/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/iphitus.wordpress.com/10/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/iphitus.wordpress.com/10/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/iphitus.wordpress.com/10/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/iphitus.wordpress.com/10/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/iphitus.wordpress.com/10/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/iphitus.wordpress.com/10/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/iphitus.wordpress.com/10/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/iphitus.wordpress.com/10/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/iphitus.wordpress.com/10/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/iphitus.wordpress.com/10/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/iphitus.wordpress.com/10/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=iphitus.wordpress.com&amp;blog=13907&amp;post=10&amp;subd=iphitus&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 10 May 2008 01:42:27 +0000</pubDate>
</item>
<item>
	<title>Leslie Polzer: Ironclad hashes in SBCL</title>
	<guid>http://blog.viridian-project.de/?p=74</guid>
	<link>http://blog.viridian-project.de/2008/05/08/ironclad-hashes-in-sbcl/</link>
	<description>&lt;p&gt;Getting a SHA1 digest from Ironclad turned out to be a quite bumpy ride; its “convenience functions” are not convenient enough to take a string, they only operate on octets.&lt;/p&gt;
&lt;p&gt;There&amp;#8217;s a helper function that converts an ASCII string to octets, but I needed to be able to supply Unicode strings as well. I ended up finding STRING-TO-OCTETS:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;lisp&quot;&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;defun&lt;/span&gt; sha1 &lt;span&gt;&amp;#40;&lt;/span&gt;str&lt;span&gt;&amp;#41;&lt;/span&gt;
  &lt;span&gt;&amp;#40;&lt;/span&gt;ironclad:&lt;span&gt;byte&lt;/span&gt;-array-to-hex-string
    &lt;span&gt;&amp;#40;&lt;/span&gt;ironclad::&lt;span&gt;digest&lt;/span&gt;-sequence :&lt;span&gt;sha1&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;SB-EXT:&lt;span&gt;STRING&lt;/span&gt;-TO-OCTETS str&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If someone knows an easier or more portable way, I&amp;#8217;m all for it. I&amp;#8217;m also interested in other free implementations&amp;#8217; functions to convert their strings to octets.&lt;/p&gt;</description>
	<pubDate>Thu, 08 May 2008 07:47:12 +0000</pubDate>
</item>
<item>
	<title>James Rayner: The History?</title>
	<guid>http://iphitus.wordpress.com/?p=9</guid>
	<link>http://iphitus.wordpress.com/2008/05/07/the-history/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;I was considering posting something terribly boring about present influx of users disregarding the &amp;#8220;Arch Way&amp;#8221;&lt;/p&gt;
&lt;p&gt;Instead, there&amp;#8217;s:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://wiki.archlinux.org/index.php/ArchHistory&quot;&gt;The History?&lt;/a&gt; according to schivmeister&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://phraktured.net/patching-patching-patching.html&quot;&gt;Patching&lt;/a&gt; from phrakture&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://wiki.archlinux.org/index.php/The_Arch_Way&quot;&gt;The Arch Way&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These should all be required reading&amp;#8230;&lt;/p&gt;
&lt;p&gt;Arch is what you make of it. It&amp;#8217;s yours to adapt to your liking, but don&amp;#8217;t expect anyone else to adapt it for you, and don&amp;#8217;t expect to get anything by demanding it.&lt;/p&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/iphitus.wordpress.com/9/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/iphitus.wordpress.com/9/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/iphitus.wordpress.com/9/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/iphitus.wordpress.com/9/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/iphitus.wordpress.com/9/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/iphitus.wordpress.com/9/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/iphitus.wordpress.com/9/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/iphitus.wordpress.com/9/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/iphitus.wordpress.com/9/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/iphitus.wordpress.com/9/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/iphitus.wordpress.com/9/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/iphitus.wordpress.com/9/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=iphitus.wordpress.com&amp;blog=13907&amp;post=9&amp;subd=iphitus&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 07 May 2008 10:09:36 +0000</pubDate>
</item>
<item>
	<title>Forum Annoucements: Arch Linux Newsletter for May 5, 2008 Discussion</title>
	<guid>http://bbs.archlinux.org/viewtopic.php?id=48171</guid>
	<link>http://bbs.archlinux.org/viewtopic.php?id=48171</link>
	<description>&lt;p&gt;Once again this thread is created to discuss any topic that is covered on the Arch Linux Newsletter. And if you have suggestions, please share them with us here.&lt;br /&gt;&lt;br /&gt;The Arch Linux Newsletter team has been reduced, consisting of Dusty Phillips, Ronald Van Haren, and me (Eduardo Romero). This simplifies our work and makes us better organize our thoughts, ideas and newsletter improvements. Later on, we might start looking for Translators again.&lt;br /&gt;&lt;br /&gt;I hope the next newsletter have more stuff on it, I am on a tight schedule since I am on finals, hopefully, next week is the last one of University.:D&lt;br /&gt;&lt;br /&gt;Non visible improvements in this newsletter is the usual code cleanup, fo better performance, I know it isn't a heavy page, but still is better to have a clean code to work with, removing obsolete HTML code.&lt;/p&gt;-- posted by kensai</description>
	<pubDate>Mon, 05 May 2008 16:46:09 +0000</pubDate>
</item>
<item>
	<title>Official News: AUR Cleanup</title>
	<guid>http://archlinux.org/news/393/</guid>
	<link>http://archlinux.org/news/393/</link>
	<description>From the TUs:
The AUR has a large number of obsolete packages which could use cleaning
up.  Examples of packages that may be cleaned up are:
 - packages that have been renamed or replaced
 - old and unmaintained developmental (cvs/svn/etc) packages

This is where you can help.  Post suggestions of packages in the AUR
Cleanup wiki page (&lt;a href=&quot;http://wiki.archlinux.org/index.php/AUR_CleanUp_Day&quot;&gt;http://wiki.archlinux.org/index.php/AUR_CleanUp_Day&lt;/a&gt;).
TUs will get together and go though the list in a couple of weeks and
confirm which packages should be removed.  Please do not remove suggestions
from the wiki page but add a comment on why it should be kept instead.  TUs
will take great care not to delete any useful package.</description>
	<pubDate>Mon, 05 May 2008 04:00:00 +0000</pubDate>
</item>
<item>
	<title>Official News: Newsletter for May 5, 2008</title>
	<guid>http://archlinux.org/news/392/</guid>
	<link>http://archlinux.org/news/392/</link>
	<description>Current: &lt;a href=&quot;http://archlinux.org/static/newsletters/newsletter-2008-May-05.html&quot;&gt;http://archlinux.org/static/newsletters/newsletter-2008-May-05.html&lt;/a&gt;

Archive: &lt;a href=&quot;http://archlinux.org/static/newsletters/&quot;&gt;http://archlinux.org/static/newsletters/&lt;/a&gt;</description>
	<pubDate>Mon, 05 May 2008 04:00:00 +0000</pubDate>
</item>
<item>
	<title>Forum Annoucements: AUR Cleanup</title>
	<guid>http://bbs.archlinux.org/viewtopic.php?id=48145</guid>
	<link>http://bbs.archlinux.org/viewtopic.php?id=48145</link>
	<description>&lt;p&gt;The AUR has a large number of obsolete packages which could use cleaning up.&amp;nbsp; Examples of packages that may be cleaned up are:&lt;br /&gt;&amp;nbsp; - packages that have been renamed or replaced&lt;br /&gt;&amp;nbsp; - old and unmaintained developmental (cvs/svn/etc) packages&lt;br /&gt;&lt;br /&gt;This is where you can help.&amp;nbsp; Post suggestions of packages in the AUR Cleanup wiki page (&lt;a href=&quot;http://wiki.archlinux.org/index.php/AUR_CleanUp_Day&quot;&gt;http://wiki.archlinux.org/index.php/AUR_CleanUp_Day&lt;/a&gt;) or as a reply to this thread.&amp;nbsp; TUs will get together and go though the list in a couple of weeks and confirm which packages should be removed.&amp;nbsp; Please do not remove suggestions from the wiki page but add a comment on why it should be kept instead.&amp;nbsp; TUs will take great care not to delete any useful package.&lt;/p&gt;-- posted by Allan</description>
	<pubDate>Mon, 05 May 2008 03:23:12 +0000</pubDate>
</item>
<item>
	<title>Leslie Polzer: Function encapsulation in SBCL</title>
	<guid>http://blog.viridian-project.de/?p=73</guid>
	<link>http://blog.viridian-project.de/2008/05/04/function-encapsulation-in-sbcl/</link>
	<description>&lt;p&gt;The advice functionality allows the programmer to replace or encapsulate an existing function binding (akin to :AROUND methods in the CLOS). See Gary King&amp;#8217;s &lt;a href=&quot;http://www.metabang.com/unclogit/?p=208&quot;&gt;“What is advice”&lt;/a&gt; for some useful links and explanations on this.&lt;/p&gt;
&lt;p&gt;CLISP and SBCL, my favourite Common Lisp implementations, do not seem to supply this functionality. I haven&amp;#8217;t checked whether CLISP has advice under its hood, but SBCL does, and it&amp;#8217;s termed “Function encapsulation” there. Once you know how to do it, it&amp;#8217;s surprisingly simple to use.&lt;/p&gt;
&lt;p&gt;This is the definition of SB-INT:ENCAPSULATE in SBCL&amp;#8217;s &lt;code&gt;src/code/fdefinition.lisp&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;lisp&quot;&gt;&lt;span&gt;;;; Replace the definition of NAME with a function that binds NAME's&lt;/span&gt;
&lt;span&gt;;;; arguments to a variable named ARG-LIST, binds name's definition&lt;/span&gt;
&lt;span&gt;;;; to a variable named BASIC-DEFINITION, and evaluates BODY in that&lt;/span&gt;
&lt;span&gt;;;; context. TYPE is whatever you would like to associate with this&lt;/span&gt;
&lt;span&gt;;;; encapsulation for identification in case you need multiple&lt;/span&gt;
&lt;span&gt;;;; encapsulations of the same name.&lt;/span&gt;
&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;defun&lt;/span&gt; encapsulate &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;name&lt;/span&gt; type body&lt;span&gt;&amp;#41;&lt;/span&gt;
  &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;let&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;fdefn &lt;span&gt;&amp;#40;&lt;/span&gt;fdefinition-object &lt;span&gt;name&lt;/span&gt; &lt;span&gt;nil&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
    &lt;span&gt;&amp;#40;&lt;/span&gt;unless &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;and&lt;/span&gt; fdefn &lt;span&gt;&amp;#40;&lt;/span&gt;fdefn-fun fdefn&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
      &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;error&lt;/span&gt; 'undefined-&lt;span&gt;function&lt;/span&gt; :&lt;span&gt;name&lt;/span&gt; &lt;span&gt;name&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
    &lt;span&gt;;; We must bind and close over INFO. Consider the case where we&lt;/span&gt;
    &lt;span&gt;;; encapsulate (the second) an encapsulated (the first)&lt;/span&gt;
    &lt;span&gt;;; definition, and later someone unencapsulates the encapsulated&lt;/span&gt;
    &lt;span&gt;;; (first) definition. We don't want our encapsulation (second) to&lt;/span&gt;
    &lt;span&gt;;; bind basic-definition to the encapsulated (first) definition&lt;/span&gt;
    &lt;span&gt;;; when it no longer exists. When unencapsulating, we make sure to&lt;/span&gt;
    &lt;span&gt;;; clobber the appropriate INFO structure to allow&lt;/span&gt;
    &lt;span&gt;;; basic-definition to be bound to the next definition instead of&lt;/span&gt;
    &lt;span&gt;;; an encapsulation that no longer exists.&lt;/span&gt;
    &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;let&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;info &lt;span&gt;&amp;#40;&lt;/span&gt;make-encapsulation-info type &lt;span&gt;&amp;#40;&lt;/span&gt;fdefn-fun fdefn&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
      &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;setf&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;fdefn-fun fdefn&lt;span&gt;&amp;#41;&lt;/span&gt;
            &lt;span&gt;&amp;#40;&lt;/span&gt;named-&lt;span&gt;lambda&lt;/span&gt; encapsulation &lt;span&gt;&amp;#40;&lt;/span&gt;&amp;amp;rest arg-&lt;span&gt;list&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
              &lt;span&gt;&amp;#40;&lt;/span&gt;declare &lt;span&gt;&amp;#40;&lt;/span&gt;special arg-&lt;span&gt;list&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
              &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;let&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;basic-definition &lt;span&gt;&amp;#40;&lt;/span&gt;encapsulation-info-definition info&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
                &lt;span&gt;&amp;#40;&lt;/span&gt;declare &lt;span&gt;&amp;#40;&lt;/span&gt;special basic-definition&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
                &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;eval&lt;/span&gt; body&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;From this we can figure out that basic advice can be gotten from SBCL like this:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;lisp&quot;&gt;CL-USER&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;19&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;: &lt;span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;defun&lt;/span&gt; gorm &lt;span&gt;&amp;#40;&lt;/span&gt;x&lt;span&gt;&amp;#41;&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;+ x&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
GORM
&amp;nbsp;
CL-USER&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;20&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;: &lt;span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;SB&lt;/span&gt;-INT:&lt;span&gt;ENCAPSULATE&lt;/span&gt; 'gorm '&lt;span&gt;identity&lt;/span&gt; '&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;apply&lt;/span&gt; sb-int:&lt;span&gt;basic&lt;/span&gt;-definition sb-int:&lt;span&gt;arg&lt;/span&gt;-&lt;span&gt;list&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
#&amp;lt;closure &lt;span&gt;&amp;#40;&lt;/span&gt;SB-C::&amp;amp;OPTIONAL-DISPATCH SB-IMPL::&lt;span&gt;ENCAPSULATION&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt; &lt;span&gt;&amp;#123;&lt;/span&gt;ACE428D&lt;span&gt;&amp;#125;&lt;/span&gt;&amp;gt;
CL-USER&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;21&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;: &lt;span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;gorm&lt;/span&gt; &lt;span&gt;10&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
&lt;span&gt;11&lt;/span&gt;
&amp;nbsp;
CL-USER&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;22&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;: &lt;span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;SB&lt;/span&gt;-INT:&lt;span&gt;ENCAPSULATE&lt;/span&gt; 'gorm 'add-five '&lt;span&gt;&amp;#40;&lt;/span&gt;+ &lt;span&gt;5&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;apply&lt;/span&gt; sb-int:&lt;span&gt;basic&lt;/span&gt;-definition sb-int:&lt;span&gt;arg&lt;/span&gt;-&lt;span&gt;list&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
#&amp;lt;/closure&amp;gt;&amp;lt;closure &lt;span&gt;&amp;#40;&lt;/span&gt;SB-C::&amp;amp;OPTIONAL-DISPATCH SB-IMPL::&lt;span&gt;ENCAPSULATION&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt; &lt;span&gt;&amp;#123;&lt;/span&gt;ACEE31D&lt;span&gt;&amp;#125;&lt;/span&gt;&amp;gt;
&amp;nbsp;
CL-USER&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;23&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;: &lt;span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;gorm&lt;/span&gt; &lt;span&gt;10&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
&lt;span&gt;16&lt;/span&gt;
&amp;nbsp;
CL-USER&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;24&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;: &lt;span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;SB&lt;/span&gt;-INT:&lt;span&gt;ENCAPSULATE&lt;/span&gt; 'gorm 'add-seven '&lt;span&gt;&amp;#40;&lt;/span&gt;+ &lt;span&gt;7&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;apply&lt;/span&gt; sb-int:&lt;span&gt;basic&lt;/span&gt;-definition sb-int:&lt;span&gt;arg&lt;/span&gt;-&lt;span&gt;list&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
#&amp;lt;/closure&amp;gt;&amp;lt;closure &lt;span&gt;&amp;#40;&lt;/span&gt;SB-C::&amp;amp;OPTIONAL-DISPATCH SB-IMPL::&lt;span&gt;ENCAPSULATION&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt; &lt;span&gt;&amp;#123;&lt;/span&gt;ACF84ED&lt;span&gt;&amp;#125;&lt;/span&gt;&amp;gt;
CL-USER&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;25&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;: &lt;span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;gorm&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
&lt;span&gt;23&lt;/span&gt;
&amp;lt;/closure&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;We have built a pretty onion, each layer of which calls the next inner layer via BASIC-DEFINITION (the analog to CALL-NEXT-METHOD). Let&amp;#8217;s peel specific layers from it:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;lisp&quot;&gt;CL-USER&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;26&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;: &lt;span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;SB&lt;/span&gt;-INT:&lt;span&gt;UNENCAPSULATE&lt;/span&gt; 'gorm 'add-five&lt;span&gt;&amp;#41;&lt;/span&gt;
T
&amp;nbsp;
CL-USER&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;27&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;: &lt;span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;gorm&lt;/span&gt; &lt;span&gt;10&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
&lt;span&gt;18&lt;/span&gt;
&amp;nbsp;
CL-USER&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;28&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;: &lt;span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;SB&lt;/span&gt;-INT:&lt;span&gt;UNENCAPSULATE&lt;/span&gt; 'gorm 'add-seven&lt;span&gt;&amp;#41;&lt;/span&gt;
T
&amp;nbsp;
CL-USER&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;29&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;: &lt;span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;gorm&lt;/span&gt; &lt;span&gt;10&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
&lt;span&gt;11&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 04 May 2008 16:32:48 +0000</pubDate>
</item>
<item>
	<title>Eduardo Romero: Programming, Do I have what it... [Revisited]</title>
	<guid>http://kensai.team88.org/9 at http://kensai.team88.org</guid>
	<link>http://kensai.team88.org/node/9</link>
	<description>&lt;p&gt;Well, lets revisit this subject and see how I have progressed. Since I first wrote that I was going to begin learning programming, I did really started to learn programming using Ruby. Alongside with a great tutorial/book by &lt;a href=&quot;http://pine.fm&quot;&gt;Chris Pine&lt;/a&gt; (he names his kids after programming languages), programming seemed just fine for me. I got pretty good with Ruby, well not good enough to write a complicated program but I did understood most of the tutorial and even accomplished the exercises.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://kensai.team88.org/node/9&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Sat, 03 May 2008 19:47:44 +0000</pubDate>
</item>
<item>
	<title>Leslie Polzer: A kind of magic</title>
	<guid>http://blog.viridian-project.de/?p=72</guid>
	<link>http://blog.viridian-project.de/2008/05/01/a-kind-of-magic/</link>
	<description>&lt;p&gt;One often has to checking file uploads for correctness, for example with respect to size, file type or file name.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s a sketch for checking the type of image files:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;lisp&quot;&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;defun&lt;/span&gt; matches-magic &lt;span&gt;&amp;#40;&lt;/span&gt;file magic &amp;amp;optional &lt;span&gt;&amp;#40;&lt;/span&gt;offset &lt;span&gt;0&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
    &lt;span&gt;&amp;#40;&lt;/span&gt;with-open-file &lt;span&gt;&amp;#40;&lt;/span&gt;s file :&lt;span&gt;element&lt;/span&gt;-type '&lt;span&gt;&amp;#40;&lt;/span&gt;unsigned-byte &lt;span&gt;8&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
      &lt;span&gt;&amp;#40;&lt;/span&gt;file-position s offset&lt;span&gt;&amp;#41;&lt;/span&gt;
      &lt;span&gt;&amp;#40;&lt;/span&gt;loop for c across magic
            unless &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;eql&lt;/span&gt; c &lt;span&gt;&amp;#40;&lt;/span&gt;code-char &lt;span&gt;&amp;#40;&lt;/span&gt;read-byte s&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
            &lt;span&gt;do&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;return-from matches-magic&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
      t&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;defun&lt;/span&gt; jpeg-p &lt;span&gt;&amp;#40;&lt;/span&gt;file&lt;span&gt;&amp;#41;&lt;/span&gt; &lt;span&gt;; won't catch Exif files with JPEG inside&lt;/span&gt;
  &lt;span&gt;&amp;#40;&lt;/span&gt;matches-magic file &lt;span&gt;&amp;quot;JFIF&amp;quot;&lt;/span&gt; &lt;span&gt;6&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;defun&lt;/span&gt; png-p &lt;span&gt;&amp;#40;&lt;/span&gt;file&lt;span&gt;&amp;#41;&lt;/span&gt;
  &lt;span&gt;&amp;#40;&lt;/span&gt;matches-magic file &lt;span&gt;&amp;quot;PNG&amp;quot;&lt;/span&gt; &lt;span&gt;1&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;defun&lt;/span&gt; gif-p &lt;span&gt;&amp;#40;&lt;/span&gt;file&lt;span&gt;&amp;#41;&lt;/span&gt;
  &lt;span&gt;&amp;#40;&lt;/span&gt;matches-magic file &lt;span&gt;&amp;quot;GIF89a&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;defun&lt;/span&gt; canonical-image-extension &lt;span&gt;&amp;#40;&lt;/span&gt;file&lt;span&gt;&amp;#41;&lt;/span&gt;
  &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;cond&lt;/span&gt;
    &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;png-p file&lt;span&gt;&amp;#41;&lt;/span&gt; &lt;span&gt;&amp;quot;png&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
    &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;gif-p file&lt;span&gt;&amp;#41;&lt;/span&gt; &lt;span&gt;&amp;quot;gif&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
    &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;jpeg-p file&lt;span&gt;&amp;#41;&lt;/span&gt; &lt;span&gt;&amp;quot;jpeg&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;defmacro&lt;/span&gt; any-predicate &lt;span&gt;&amp;#40;&lt;/span&gt;preds &amp;amp;rest args&lt;span&gt;&amp;#41;&lt;/span&gt;
    `&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;or&lt;/span&gt; ,@&lt;span&gt;&amp;#40;&lt;/span&gt;loop for p in preds
                 collect `&lt;span&gt;&amp;#40;&lt;/span&gt;,p ,@args&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;defun&lt;/span&gt; valid-image-p &lt;span&gt;&amp;#40;&lt;/span&gt;file&lt;span&gt;&amp;#41;&lt;/span&gt;
  &lt;span&gt;&amp;#40;&lt;/span&gt;any-predicate &lt;span&gt;&amp;#40;&lt;/span&gt;jpeg-p png-p gif-p&lt;span&gt;&amp;#41;&lt;/span&gt; file&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;ANY-PREDICATE could also be written as a function (with a slightly different form of arguments), here&amp;#8217;s another   quick  draft:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;lisp&quot;&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;defun&lt;/span&gt; any-predicate &lt;span&gt;&amp;#40;&lt;/span&gt;preds &amp;amp;rest args&lt;span&gt;&amp;#41;&lt;/span&gt; &lt;span&gt;; largely untested&lt;/span&gt;
  &lt;span&gt;&amp;#40;&lt;/span&gt;some #'&lt;span&gt;identity&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;mapcar&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;lambda&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;x&lt;span&gt;&amp;#41;&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;apply&lt;/span&gt; x args&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;  preds&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;defun&lt;/span&gt; valid-image-p &lt;span&gt;&amp;#40;&lt;/span&gt;file&lt;span&gt;&amp;#41;&lt;/span&gt;
  &lt;span&gt;&amp;#40;&lt;/span&gt;any-predicate &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;list&lt;/span&gt; #'jpeg-p #'png-p #'gif-p #'exif-p&lt;span&gt;&amp;#41;&lt;/span&gt; file&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Of course, you could also chain SYMBOL-FUNCTION to get rid of the sharp-signs in the call. Whatever suits you.&lt;br /&gt;
I like the macro better, though, since it&amp;#8217;s clearer and probably more efficient. &lt;em&gt;Update: see below for a comment by Zach Beane on this.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Homework would be writing a simple DSL to jot down file type data:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;lisp&quot;&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;define-file-type &lt;span&gt;&amp;quot;jpeg&amp;quot;&lt;/span&gt; JFIF &lt;span&gt;6&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Alternatives from the outer world would be calling &lt;code&gt;file(1)&lt;/code&gt; or parsing &lt;code&gt;magic(4)&lt;/code&gt;.&lt;/p&gt;</description>
	<pubDate>Fri, 02 May 2008 09:16:30 +0000</pubDate>
</item>
<item>
	<title>Forum Annoucements: gpm 1.20.3-1 in Core</title>
	<guid>http://bbs.archlinux.org/viewtopic.php?id=47981</guid>
	<link>http://bbs.archlinux.org/viewtopic.php?id=47981</link>
	<description>&lt;p&gt;In case you haven't seen the front page news: &lt;a href=&quot;https://dev.archlinux.org/news/391/&quot;&gt;https://dev.archlinux.org/news/391/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When attempting to update to gpm 1.20.3-1, you will most likely get the following error message:&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;codebox&quot;&gt;&lt;div class=&quot;incqbox&quot;&gt;&lt;h4&gt;Code:&lt;/h4&gt;&lt;div class=&quot;scrollbox&quot;&gt;&lt;pre&gt;error: could not prepare transaction
error: failed to commit transaction (conflicting files)
gpm: /usr/lib/libgpm.so.1 exists in filesystem
Errors occurred, no packages were upgraded.&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;This error arises because the /usr/lib/libgpm.so.1 symlink became disassociated from the package (&lt;a href=&quot;http://bugs.archlinux.org/task/9949&quot;&gt;FS#9949&lt;/a&gt;). This is fixed in gpm 1.20.3-1 but its upgrade needs to be forced:&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;codebox&quot;&gt;&lt;div class=&quot;incqbox&quot;&gt;&lt;h4&gt;Code:&lt;/h4&gt;&lt;div class=&quot;scrollbox&quot;&gt;&lt;pre&gt;# pacman -Syf gpm
# pacman -Syu&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;-- posted by Snowman</description>
	<pubDate>Thu, 01 May 2008 16:42:18 +0000</pubDate>
</item>
<item>
	<title>Official News: gpm 1.20.3-1 in Core</title>
	<guid>http://archlinux.org/news/391/</guid>
	<link>http://archlinux.org/news/391/</link>
	<description>When attempting to update to gpm 1.20.3-1, you will most likely get the following error message:

error: could not prepare transaction
error: failed to commit transaction (conflicting files)
gpm: /usr/lib/libgpm.so.1 exists in filesystem
Errors occurred, no packages were upgraded.

This error arises because the /usr/lib/libgpm.so.1 symlink became disassociated from the package (FS#9949). This is fixed in gpm 1.20.3-1 but its upgrade needs to be forced:
# pacman -Syf gpm
# pacman -Syu</description>
	<pubDate>Thu, 01 May 2008 04:00:00 +0000</pubDate>
</item>
<item>
	<title>Gianvito Morena: Gtk Engines Benchmarks - Whats the fastest?</title>
	<guid>http://gianvito.wordpress.com/?p=41</guid>
	<link>http://gianvito.wordpress.com/2008/02/20/gtk-engines-benchmarks-whats-the-fastest/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;There is a program that benchs every kind of gtk engine&amp;#8230;&lt;/p&gt;
&lt;p&gt;The name is &lt;strong&gt;GTKPERF.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Have you ever asked: &amp;#8220;What&amp;#8217;s the fastest gtk engine?&amp;#8221; (in everyday actions&amp;#8230;)&lt;/p&gt;
&lt;p&gt;I used &lt;strong&gt;gtkperf&lt;/strong&gt; to bench some of the most famous gtk engines:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Clearlooks (from gnome-themes-svn)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nodoka &amp;#8212;&amp;#8212;-&amp;gt; 0.7 (updated)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Human (from Ubuntu)&lt;/li&gt;
&lt;li&gt;Murrine (thanks to CIMI (like new Clearlooks) :))&lt;/li&gt;
&lt;li&gt;Aurora&lt;/li&gt;
&lt;li&gt;Mac4Lin&lt;/li&gt;
&lt;li&gt;Clearlooks Classic&lt;/li&gt;
&lt;li&gt;Crux&lt;/li&gt;
&lt;li&gt;Glossy&lt;/li&gt;
&lt;li&gt;Glider&lt;/li&gt;
&lt;li&gt;Mist&lt;/li&gt;
&lt;li&gt;Nova&lt;/li&gt;
&lt;li&gt;Simple&lt;/li&gt;
&lt;li&gt;ThinIce&lt;/li&gt;
&lt;li&gt;Rezlooks (gilouche)&lt;/li&gt;
&lt;li&gt;Industrial&lt;/li&gt;
&lt;li&gt;Experience&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;QtCurve (Added)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Updated with xfce-gtk-engines&lt;span id=&quot;more-41&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Xfce&lt;/li&gt;
&lt;li&gt;Xfce-4.0&lt;/li&gt;
&lt;li&gt;Xfce-4.2&lt;/li&gt;
&lt;li&gt;Xfce-b5&lt;/li&gt;
&lt;li&gt;Xfce-basic&lt;/li&gt;
&lt;li&gt;Xfce-cadmium&lt;/li&gt;
&lt;li&gt;Xfce-curve&lt;/li&gt;
&lt;li&gt;Xfce-dawn&lt;/li&gt;
&lt;li&gt;Xfce-dusk&lt;/li&gt;
&lt;li&gt;Xfce-kde2&lt;/li&gt;
&lt;li&gt;Xfce-kolors&lt;/li&gt;
&lt;li&gt;Xfce-light&lt;/li&gt;
&lt;li&gt;Xfce-orange&lt;/li&gt;
&lt;li&gt;Xfce-redmondxp&lt;/li&gt;
&lt;li&gt;Xfce-saltlake&lt;/li&gt;
&lt;li&gt;Xfce-smooth&lt;/li&gt;
&lt;li&gt;Xfce-stellar&lt;/li&gt;
&lt;li&gt;Xfce-winter&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My Pc:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Athlon64 3000+ @ 2300 Mhz&lt;/li&gt;
&lt;li&gt;1 Gb RAM&lt;/li&gt;
&lt;li&gt;Nvidia 7600GT (169.09)&lt;/li&gt;
&lt;li&gt;ArchLinux with kernel: 2.6.24-zen3&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;em&gt;(See Pages numbers on the right to change pages)&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/gianvito.wordpress.com/41/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/gianvito.wordpress.com/41/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/gianvito.wordpress.com/41/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/gianvito.wordpress.com/41/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/gianvito.wordpress.com/41/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/gianvito.wordpress.com/41/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/gianvito.wordpress.com/41/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/gianvito.wordpress.com/41/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/gianvito.wordpress.com/41/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/gianvito.wordpress.com/41/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/gianvito.wordpress.com/41/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/gianvito.wordpress.com/41/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=gianvito.wordpress.com&amp;blog=2900638&amp;post=41&amp;subd=gianvito&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 30 Apr 2008 19:50:54 +0000</pubDate>
</item>
<item>
	<title>Gianvito Morena: Tupac - A great utility that completes Pacman (not only a famous rapper)</title>
	<guid>http://gianvito.wordpress.com/?p=135</guid>
	<link>http://gianvito.wordpress.com/2008/04/28/tupac-a-great-utility-that-completes-pacman-not-only-a-famous-rapper/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;&amp;#8220;A cached pacman implementatioin&amp;#8221;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pacman Description&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;size-full wp-image-136 aligncenter&quot; src=&quot;http://gianvito.files.wordpress.com/2008/04/tupac9.jpg?w=310&amp;h=350&quot; alt=&quot;&quot; width=&quot;310&quot; height=&quot;350&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tupac (rapper) R.I.P.&lt;br /&gt;
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(click on the numbers on the right to change pages)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-135&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/gianvito.wordpress.com/135/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/gianvito.wordpress.com/135/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/gianvito.wordpress.com/135/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/gianvito.wordpress.com/135/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/gianvito.wordpress.com/135/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/gianvito.wordpress.com/135/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/gianvito.wordpress.com/135/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/gianvito.wordpress.com/135/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/gianvito.wordpress.com/135/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/gianvito.wordpress.com/135/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/gianvito.wordpress.com/135/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/gianvito.wordpress.com/135/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=gianvito.wordpress.com&amp;blog=2900638&amp;post=135&amp;subd=gianvito&amp;ref=&amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 28 Apr 2008 13:19:15 +0000</pubDate>
</item>
<item>
	<title>Judd Vinet: New Pronto Snapshot: 20080428</title>
	<guid>http://www.zeroflux.org/post/view?id=241</guid>
	<link>http://www.zeroflux.org/post/view?id=241</link>
	<description>&lt;p&gt;
I've been busy lately, but still steadily working on the ol' web
framework.&amp;nbsp; I'm starting to reorganize the core components to maintain
a loose coupling between layers.&amp;nbsp; Behold an incremental improvement!&amp;nbsp;
Huzzah!
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Changes:&lt;/strong&gt;
&lt;/p&gt;

&lt;ul&gt;
            
        
    &lt;li&gt;Change in nomenclature: &amp;quot;template plugins&amp;quot; are now also
            known as &amp;quot;helpers&amp;quot;, and &amp;quot;page plugins&amp;quot; are now also known as simply
            &amp;quot;plugins&amp;quot;&lt;/li&gt;
            
        
    &lt;li&gt;Added a datetime widget to the Form helper&lt;/li&gt;
            
        
    &lt;li&gt;Moved
            template logic into a separate class so it can be accessed outside of
            page controllers (eg, a commandline client can now use it to render
            email content)&lt;/li&gt;
            
        
    &lt;li&gt;CSS fixes for IE6 and IE7 (oh how I hate thee)&lt;/li&gt;
            
        
    &lt;li&gt;Changed Mailer plugin to use SwiftMailer instead of PHPMailer.  PHPMailer is still available via ppPHPMailer for the time being.&lt;/li&gt;
            
        
    &lt;li&gt;Upgraded TinyMCE to 3.0.7&lt;/li&gt;
            
        
    &lt;li&gt;Changes to display callback functions in &lt;span class=&quot;code&quot;&gt;tpGrid::build_grid()&lt;/span&gt;&lt;/li&gt;
            
        
    &lt;li&gt;More bugfixes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Now that input validation and templates are where they should be, I'd like to focus on URL mobility a bit more.&amp;nbsp; Mapping URLs to controller/action pairs is dead easy, but templates and controllers still hardcode URLs in many cases.&amp;nbsp; For example, if an action redirects to another controller/action after it has finished its business, then it hardcodes that URL.&amp;nbsp; Works most of the time, but if I want to move a controller to a new URL location (eg, move &lt;span class=&quot;code&quot;&gt;/blog/post/edit&lt;/span&gt; to &lt;span class=&quot;code&quot;&gt;/admin/blog/post/edit&lt;/span&gt;) then I have to actually go through the code and change all instances of that URL.
&lt;/p&gt;

&lt;p&gt;
My answer is going to be basically the reverse of the current URL-&amp;gt;Controller mapping that's currently found in &lt;span class=&quot;code&quot;&gt;app/config/urls.php&lt;/span&gt;.&amp;nbsp; So instead of rendering a hardcoded URL like &lt;span class=&quot;code&quot;&gt;/blog/post/edit&lt;/span&gt;, you would ask to render the controller &lt;span class=&quot;code&quot;&gt;Blog_Post&lt;/span&gt; and the action &lt;span class=&quot;code&quot;&gt;Edit&lt;/span&gt;.
&lt;/p&gt;

&lt;p&gt;
Sounds good in theory.&amp;nbsp; I'll let you know how it works out. 
&lt;/p&gt;</description>
	<pubDate>Mon, 28 Apr 2008 11:04:48 +0000</pubDate>
</item>
<item>
	<title>Daniel Isenmann: Holux M-241 and playing with Google Maps</title>
	<guid>http://ise.is.ohost.de/?p=42</guid>
	<link>http://ise.is.ohost.de/?p=42</link>
	<description>&lt;p&gt;Another thing I can delete from my wishlist. I have ordered a &lt;a title=&quot;Holux product page&quot; href=&quot;http://www.holux.com/JCore/en/products/products_content.jsp?pno=341&quot; target=&quot;_blank&quot;&gt;Holux M-241&lt;/a&gt; which should be delivered in few days. &lt;img src=&quot;http://ise.is.ohost.de/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; In the meantime I have played with Google Maps and their API. After playing with the API of OpenLayers last week, I decided to take the Google API for my geologging mapping. You can find my first result of geologging &lt;a href=&quot;http://ise.is.ohost.de/?page_id=41&quot; target=&quot;_self&quot;&gt;here&lt;/a&gt;. There will be more tracks, more photos and more description of the single hiking tracks. But first, I must receive the M-241 and get it run under ArchLinux. I will post my experience in a later post and try to explain step by step the download procedure of the track information from the logger and generating maps like the one I linked above.&lt;/p&gt;</description>
	<pubDate>Thu, 24 Apr 2008 15:33:44 +0000</pubDate>
</item>
<item>
	<title>Leslie Polzer: Escaping from higher-order functions</title>
	<guid>http://blog.viridian-project.de/?p=71</guid>
	<link>http://blog.viridian-project.de/2008/04/22/escaping-from-higher-order-functions/</link>
	<description>&lt;p&gt;Among the &lt;a href=&quot;http://groups.google.com/group/comp.lang.lisp/browse_thread/thread/4afbddb4f1273c43?hl=en&quot;&gt;different ways to tackle iterative processes&lt;/a&gt; I consider to be the higher-order function route the one I use most often. Especially in conjunction with function composition and &lt;a href=&quot;http://www.lisp.org/HyperSpec/Body/fun_everycm_s_erycm_notany.html&quot;&gt;list predicates&lt;/a&gt; it makes great filtering-style code.&lt;/p&gt;
&lt;p&gt;A problem that came up several times is interrupting the list processing at an arbitrary point. For example, how do I stop MAPCAR at the third item if I see it fit? Something like that:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;lisp&quot;&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;let&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;i &lt;span&gt;0&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
  &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;mapcar&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;lambda&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;x&lt;span&gt;&amp;#41;&lt;/span&gt;
            &lt;span&gt;&amp;#40;&lt;/span&gt;when &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;eql&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;incf i&lt;span&gt;&amp;#41;&lt;/span&gt; &lt;span&gt;3&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
              &lt;span&gt;&amp;#40;&lt;/span&gt;STOP-HERE&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
    '&lt;span&gt;&amp;#40;&lt;/span&gt;a b c d&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Sometimes, one can take alternative routes using FIND or other functions. And there&amp;#8217;s always LOOP, DOLIST, recursion and other solutions; after all we&amp;#8217;re working in a language that really implements the &amp;#8220;there&amp;#8217;s more than one way to do it&amp;#8221; paradigm.&lt;/p&gt;
&lt;p&gt;Using TAGBODY and GO:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;lisp&quot;&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;tagbody &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;mapcar&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;lambda&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;x&lt;span&gt;&amp;#41;&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;go&lt;/span&gt; X&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt; '&lt;span&gt;&amp;#40;&lt;/span&gt;a b c&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt; X&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Using BLOCK/RETURN-FROM:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;lisp&quot;&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;block X &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;mapcar&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;lambda&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;x&lt;span&gt;&amp;#41;&lt;/span&gt; &lt;span&gt;&amp;#40;&lt;/span&gt;return-from X&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt; ‘&lt;span&gt;&amp;#40;&lt;/span&gt;a b c&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I originally posted another version using CATCH/THROW, but as pointed out in the comments this wasn&amp;#8217;t all well for several reasons.&lt;/p&gt;
&lt;p&gt;Delimited continuations with CL-CONT unfortunately &lt;a href=&quot;http://groups.google.com/group/weblocks/t/bae2021f3f9aa6e4&quot;&gt;won&amp;#8217;t work&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A good alternative solution would be writing your own version of MAPCAR; this has the advantage of being able to return the partially processed list. But there&amp;#8217;s the disadvantage of having to rewrite the whole family of mapping functions, though, so for quick prototyping or occasional usage I prefer the above solution.&lt;/p&gt;
&lt;p&gt;If you have other neat solutions or see problems with this approach, please leave a comment.&lt;/p&gt;</description>
	<pubDate>Tue, 22 Apr 2008 11:57:17 +0000</pubDate>
</item>
<item>
	<title>Eduardo Romero: Update to Drupal 6.2</title>
	<guid>http://kensai.team88.org/8 at http://kensai.team88.org</guid>
	<link>http://kensai.team88.org/node/8</link>
	<description>&lt;p&gt;Well, once again, the web log was off line for most of the day because it was being upgraded to the latest version of Drupal 6.x series. I hope you didn't had any inconvenience because of this, sorry and thanks for your patience. Again the update was just a security update, but introduces some performance enhancements. Lets hope this all works out well.&lt;/p&gt;</description>
	<pubDate>Sun, 20 Apr 2008 03:35:49 +0000</pubDate>
</item>
<item>
	<title>Forum Annoucements: 2.6.25 enters [testing]</title>
	<guid>http://bbs.archlinux.org/viewtopic.php?id=47351</guid>
	<link>http://bbs.archlinux.org/viewtopic.php?id=47351</link>
	<description>&lt;p&gt;Not much to say, just read this: &lt;a href=&quot;http://archlinux.org/pipermail/arch-general/2008-April/017412.html&quot;&gt;http://archlinux.org/pipermail/arch-gen &amp;hellip; 17412.html&lt;/a&gt;&lt;/p&gt;-- posted by brain0</description>
	<pubDate>Sat, 19 Apr 2008 16:20:15 +0000</pubDate>
</item>

</channel>
</rss>
