<?xml version='1.0' encoding='utf-8' ?>
<!--  If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/  -->
<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/'>
<channel>
  <title>archaelus</title>
  <link>http://archaelus.livejournal.com/</link>
  <description>archaelus - LiveJournal.com</description>
  <lastBuildDate>Tue, 20 May 2008 05:08:20 GMT</lastBuildDate>
  <generator>LiveJournal / LiveJournal.com</generator>
  <lj:journal>archaelus</lj:journal>
  <lj:journaltype>personal</lj:journaltype>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/20003.html</guid>
  <pubDate>Tue, 20 May 2008 05:08:20 GMT</pubDate>
  <title>iCal, iSync, displayAlarms, so much hate</title>
  <link>http://archaelus.livejournal.com/20003.html</link>
  <description>tell application &quot;iCal&quot; you FAIL AT LIFE!!!!111!!!one&lt;br /&gt;end tell.&lt;br /&gt;&lt;br /&gt;So. iCal refuses to sync properly, saying:&lt;br /&gt;&lt;pre&gt;
2008-05-20 17:02:17:870|iCalExternalSync|945|10a640|Miscellaneous| SyncServices precondition failure in [ISyncInstrumentedSession pushChangesFromRecord:withIdentifier:]: you can&apos;t change the record&apos;s entity name from com.apple.calendars.DisplayAlarm to com.apple.calendars.AudioAlarm in {
    &quot;com.apple.ical.sound&quot; = Basso;
    &quot;com.apple.syncservices.RecordEntityName&quot; = &quot;com.apple.calendars.AudioAlarm&quot;;
    owner =     (
        &quot;Event/p146&quot;
    );
    sound = Basso;
    triggerduration = -1200;
}
&lt;/pre&gt; &lt;br /&gt;&lt;br /&gt;As far as I can tell, all my display alarms are FUBAR and need to be purged.&lt;br /&gt;&lt;br /&gt;Violently.&lt;br /&gt;&lt;br /&gt;And believe me I&apos;ve tried every icbu backup/restore, synchrospector munging, pull the truth, sync forcing trick I can think of.&lt;br /&gt;&lt;br /&gt;Applescript to the rescue:&lt;br /&gt;&lt;pre&gt;tell application &quot;iCal&quot;
	repeat with myevent in every event in every calendar
		set dispAlarms to count of display alarms in myevent
		if (dispAlarms) &amp;gt; 0 then
			log &quot;Found event with display events&quot;
			log (get summary of myevent)
			log dispAlarms
			delete display alarms in myevent
			log (get count of display alarms in myevent)
		end if
	end repeat
end tell&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
tell off corporation &quot;Apple&quot;
     if (you can&apos;t let me recover from sync errors without writing applescript) then
         castigate &quot;Apple&quot; with &quot;You fail at life too.&quot;
     end if
end tell off
&lt;/pre&gt;</description>
  <comments>http://archaelus.livejournal.com/20003.html</comments>
  <category>isync</category>
  <category>rant</category>
  <category>ical</category>
  <category>applescript</category>
  <lj:mood>Ragey</lj:mood>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/19725.html</guid>
  <pubDate>Thu, 07 Feb 2008 22:58:42 GMT</pubDate>
  <title>Tracking Erlang/OTP</title>
  <link>http://archaelus.livejournal.com/19725.html</link>
  <description>I&apos;m going to try tracking the Erlang/OTP source tree and the helpful posts on &lt;a href=&quot;http://www.nabble.com/Erlang-Patches-f14098.html&quot;&gt;erlang-patches&lt;/a&gt; in &lt;a href=&quot;http://git.erlang.geek.nz/?p=erlang-otp.git;a=summary&quot;&gt;my git repository&lt;/a&gt;. I already have to do this for macports - odbc still doesn&apos;t really build out of the box on Mac OS - and the main configure script needs a few --with-gd=/Library/DarwinPorts arguments for my idiosyncratic macports installation.&lt;br /&gt;&lt;br /&gt;I also have a few odd patchsets, such as &lt;a href=&quot;http://svn.ulf.wiger.net/gproc/&quot;&gt;Ulf Wiger&apos;s gproc&lt;/a&gt; - an &lt;a href=&quot;http://www.erlang.se/workshop/2007/proceedings/02wiger.pdf&quot;&gt;extended process registry&lt;/a&gt; for OTP systems that I hope will one day be included in the standard distribution.&lt;br /&gt;&lt;br /&gt;Maybe I could add the &lt;a href=&quot;http://www.erlang.org/eeps/&quot;&gt;EEPs&lt;/a&gt; as branches too.</description>
  <comments>http://archaelus.livejournal.com/19725.html</comments>
  <category>upstream</category>
  <category>erlang</category>
  <category>git</category>
  <lj:music>Haiti - Arcade Fire</lj:music>
  <lj:mood>gitastic</lj:mood>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/19470.html</guid>
  <pubDate>Thu, 07 Feb 2008 21:14:49 GMT</pubDate>
  <title>2007-05-03 When should I write a gen_server?</title>
  <link>http://archaelus.livejournal.com/19470.html</link>
  <description>I’ve been writing Erlang code for a little while now and generally stick to OTP style systems. I find that I have a subconcious set of rules for deciding what kind of process to build for particular tasks - below are some of the guidelines I’ve come up with. This list is incomplete and I’d greatly appreciate feedback on it.&lt;br /&gt;&lt;br /&gt;Signs you should write a gen_fsm:&lt;br /&gt; * Your process responds to the same message in (radically?) different ways depending on the current state.&lt;br /&gt; * You need to manage a collection of timers that depend on what state the process is in.&lt;br /&gt;&lt;br /&gt;Signs you should write a gen_server:&lt;br /&gt; * Your process always reponds to the same message in the same way.&lt;br /&gt; * You mainly do a request-reply (call) style operations&lt;br /&gt; * You&apos;re going to give the process a registered name.&lt;br /&gt; * Your process is not going to trap exits&lt;br /&gt; * Your process will be long lived&lt;br /&gt; * Your process will be started by a supervisor&lt;br /&gt;&lt;br /&gt;Signs you should write a gen_event:&lt;br /&gt; * You want to modify SASL log handling.&lt;br /&gt; * ???&lt;br /&gt;&lt;br /&gt;Signs you should write a plain old process:&lt;br /&gt; * You don&apos;t listen for requests from other processes (except perhaps replies)&lt;br /&gt; * You don&apos;t fit neatly into any of the other boxes&lt;br /&gt; * You are a worker process that makes blocking requests to other processes&lt;br /&gt; * The rules for starting or restarting the process are complicated.&lt;br /&gt; * The process does a number of different activities during its lifetime</description>
  <comments>http://archaelus.livejournal.com/19470.html</comments>
  <category>erlang</category>
  <category>guidelines</category>
  <category>longtimeinthemaking</category>
  <lj:music>Peat Street - Sarah Wiig</lj:music>
  <lj:mood>bloggy</lj:mood>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/18823.html</guid>
  <pubDate>Sat, 23 Jun 2007 04:27:02 GMT</pubDate>
  <title>2007-06-23 lolcat</title>
  <link>http://archaelus.livejournal.com/18823.html</link>
  <description>Ok, fine - I too have succumbed to &lt;a href=&quot;http://myskitch.com/archaelus/img_2671-20070623-160802.jpg&quot;&gt;lolcat&lt;/a&gt; syndrome....&lt;br /&gt;&lt;div class=&quot;thumbnail&quot;&gt;&lt;a href=&quot;http://myskitch.com/archaelus/img_2671-20070623-160802/&quot;&gt;&lt;img src=&quot;http://myskitch.com/archaelus/img_2671-20070623-160802.jpg/preview.jpg&quot; alt=&quot;IMG_2671&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a style=&quot;font-family: Lucida Grande, Trebuchet, sans-serif, Helvetica, Arial; font-size: 10px; color: #808080&quot; href=&quot;http://plasq.com/skitch&quot;&gt;Uploaded with Skitch!&lt;/a&gt;&lt;/div&gt;</description>
  <comments>http://archaelus.livejournal.com/18823.html</comments>
  <lj:mood>squeeeee</lj:mood>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/18525.html</guid>
  <pubDate>Wed, 13 Jun 2007 08:34:26 GMT</pubDate>
  <title>Posted using LJ Talk...</title>
  <link>http://archaelus.livejournal.com/18525.html</link>
  <description>There&apos;s a cat licking my head. (It&apos;s certainly weird, but oddly not as distracting from &lt;a href=&quot;http://git.erlang.geek.nz/?p=erlirc.git;a=summary&quot;&gt;erlirc&lt;/a&gt; hacking as I thought it would be :)</description>
  <comments>http://archaelus.livejournal.com/18525.html</comments>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/14873.html</guid>
  <pubDate>Thu, 29 Mar 2007 12:19:14 GMT</pubDate>
  <title>2007-03-30 Age Pryor: Shank&apos;s Pony</title>
  <link>http://archaelus.livejournal.com/14873.html</link>
  <description>&lt;a href=&quot;http://www.agepryor.co.nz/index.html&quot;&gt;Age Pryor&lt;/a&gt; just played a gig at &lt;a href=&quot;http://www.wellingtonnz.com/RestaurantsAndShopping/Restaurants/MightyMighty/MightyMighty.htm&quot;&gt;Mighty Mighty&lt;/a&gt; to celebrate the release of his new album Shanks&apos; Pony.&lt;p&gt;&lt;img src=&quot;http://farm1.static.flickr.com/179/418295264_58e63e19ac.jpg?v=0&quot; /&gt;&lt;/p&gt;Age and co. played all the songs from the new album, some old favourites from &lt;a href=&quot;http://profile.myspace.com/index.cfm?fuseaction=user.viewprofile&amp;amp;friendid=54528581&quot;&gt;Fly My Pretties&lt;/a&gt; and coaxed &lt;a href=&quot;http://www.nzgirl.co.nz/articles/5805&quot;&gt;Tessa Rain&lt;/a&gt; up on stage for their ever amazing &lt;a href=&quot;http://www.last.fm/music/Fly+My+Pretties/_/King+of+You+All&quot;&gt;King Of You All&lt;/a&gt;. Go buy Shank&apos;s Pony - King of you all is worth it alone :)&lt;br /&gt;&lt;br /&gt;</description>
  <comments>http://archaelus.livejournal.com/14873.html</comments>
  <lj:mood>excited</lj:mood>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/14758.html</guid>
  <pubDate>Fri, 23 Mar 2007 04:14:42 GMT</pubDate>
  <title>Posted using LJ Talk...</title>
  <link>http://archaelus.livejournal.com/14758.html</link>
  <description>It would appear you can post via jabber - neat :)</description>
  <comments>http://archaelus.livejournal.com/14758.html</comments>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/11666.html</guid>
  <pubDate>Tue, 13 Mar 2007 03:41:03 GMT</pubDate>
  <title>2007-03-13 Spreadsheets - not for banking</title>
  <link>http://archaelus.livejournal.com/11666.html</link>
  <description>“Many see computing as word processing and spreadsheets. Sure, you can use a spreadsheet to build a financial module but not to build a networking system or a banking database.“ -- &lt;a href=&quot;http://www.theage.com.au/articles/2007/03/12/1173548107417.html?page=fullpage#contentSwap2&quot;&gt;The Age&lt;/a&gt;&lt;br /&gt;Yeah... &lt;a href=&quot;http://www.killnine.com/comics/19.php&quot;&gt;you&apos;d be surprised&lt;/a&gt;.&lt;br /&gt;By way of explanation for the amount of spreadsheet ranting, I once had a job which involved spreadsheet archaeology - the reverse engineering of spreadsheet systems in order to turn them into web based systems. I had no idea a network drive full of linked spreadsheets could do so much.</description>
  <comments>http://archaelus.livejournal.com/11666.html</comments>
  <lj:mood>amused</lj:mood>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/9455.html</guid>
  <pubDate>Thu, 08 Mar 2007 04:56:24 GMT</pubDate>
  <title>2007-03-08 Privilege</title>
  <link>http://archaelus.livejournal.com/9455.html</link>
  <description>I was recently invited to attend the inaugural &lt;a href=&quot;http://linuxchix.org.nz/&quot;&gt;Linux Chix NZ&lt;/a&gt; meeting and find &lt;a href=&quot;http://blog.shrub.com/archives/tekanji/2006-03-08_146&quot;&gt;this article on privilege&lt;/a&gt; very apropos. &lt;p&gt;&lt;/p&gt;It&apos;s a difficult article to read as a person who has many privileges, as it calls on you to think deeply about them and what you personally are doing to and for those without. I need to reread it, internalise it and do something about it.</description>
  <comments>http://archaelus.livejournal.com/9455.html</comments>
  <lj:mood>contemplative</lj:mood>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/8024.html</guid>
  <pubDate>Mon, 05 Mar 2007 02:20:04 GMT</pubDate>
  <title>2007-03-05 Neologism of the day</title>
  <link>http://archaelus.livejournal.com/8024.html</link>
  <description>Oarsuk (adj): something that ceases to be impressive just as its impressiveness is being commented on.</description>
  <comments>http://archaelus.livejournal.com/8024.html</comments>
  <lj:mood>blah</lj:mood>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/7720.html</guid>
  <pubDate>Mon, 05 Mar 2007 02:03:23 GMT</pubDate>
  <title>2007-03-05 Google SoC Deadlines</title>
  <link>http://archaelus.livejournal.com/7720.html</link>
  <description>Google have a &lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=60325&amp;amp;topic=10729&quot;&gt;list of deadlines&lt;/a&gt; for the 2007 Summer of Code:&lt;p&gt;&lt;/p&gt;	•	March 5: Mentoring organizations can begin submitting applications to Google&lt;br /&gt;	•	March 12: Mentoring organization application deadline&lt;br /&gt;	•	March 13: Google program administrators review organization applications&lt;br /&gt;	•	March 14: List of accepted mentoring organizations published on code.google.com; student application period opens&lt;br /&gt;	•	March 24: Student application deadline&lt;br /&gt;	•	Interim Period: Mentoring organizations review and rank student proposals; where necessary, mentoring organizations may request further proposal detail from the student applicant&lt;br /&gt;	•	April 9: List of accepted student applications published on code.google.com&lt;br /&gt;	•	Interim Period: Students learn more about their project communities&lt;br /&gt;	•	May 28: Students begin coding for their GSoC projects; Google begins issuing initial student payments&lt;br /&gt;	•	Interim Period: Mentors give students a helping hand and guidance on their projects&lt;br /&gt;	•	July 9: Students upload code to code.google.com/hosting; mentors begin mid-term evaluations&lt;br /&gt;	•	July 16: Mid-term evaluation deadline; Google begins issuing mid-term student payments&lt;br /&gt;	•	August 20: Students upload code to code.google.com/hosting; mentors begin final evaluations; students begin final program evaluations&lt;br /&gt;	•	August 31: Final evaluation deadline; Google begins issuing student and mentoring organization payments&lt;p&gt;&lt;/p&gt;So to the NYC Lispers, the Yaws and ejabberd teams, and erlang hacking organisations in general: please submit mentoring organisation proposals - there are mentors and students who can&apos;t wait to hack neat code for you :)&lt;br /&gt;</description>
  <comments>http://archaelus.livejournal.com/7720.html</comments>
  <lj:mood>encouraging</lj:mood>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/7460.html</guid>
  <pubDate>Sun, 04 Mar 2007 21:24:02 GMT</pubDate>
  <title>2007-03-05 Programming Erlang</title>
  <link>http://archaelus.livejournal.com/7460.html</link>
  <description>&lt;a href=&quot;http://armstrongonsoftware.blogspot.com/&quot;&gt;Joe Armstrong&lt;/a&gt; is writing the &lt;a href=&quot;http://www.erlang.org&quot;&gt;Erlang&lt;/a&gt; book I&apos;ve been looking to buy since I started learning Erlang - &lt;a href=&quot;http://pragmaticprogrammer.com/titles/jaerlang/index.html&quot;&gt;Programming Erlang&lt;/a&gt;.&lt;p&gt;&lt;/p&gt;The other Erlang books are older and while they cover basic Erlang concepts well, they don&apos;t address programming with the Open Telephony Platform - the OTP in Erlang/OTP.&lt;p&gt;&lt;/p&gt;Joe&apos;s book sounds like it&apos;ll cover a very interesting set of topics:&lt;br /&gt;	1.	Getting Started (&lt;a href=&quot;http://media.pragprog.com/titles/jaerlang/GettingStarted.pdf&quot;&gt;extract&lt;/a&gt;)&lt;br /&gt;	2.	Sequential Programming&lt;br /&gt;	3.	Advanced Sequential Programming&lt;br /&gt;	4.	Compiling and Running your Program&lt;br /&gt;	5.	Concurrent Programming (&lt;a href=&quot;http://media.pragprog.com/titles/jaerlang/Concurrent.pdf&quot;&gt;extract&lt;/a&gt;)&lt;br /&gt;	6.	Errors in Concurrent Programs&lt;br /&gt;	7.	Distributed Programming&lt;br /&gt;	8.	IRC Lite&lt;br /&gt;	9.	Interfacing Techniques&lt;br /&gt;	10.	Programming With Files&lt;br /&gt;	11.	Programming With Sockets&lt;br /&gt;	12.	Ets and Dets--Large Data Storage Mechanisms&lt;br /&gt;	13.	Programming Techniques&lt;br /&gt;	14.	Introduction to OTP&lt;br /&gt;	15.	Advanced OTP&lt;br /&gt;	16.	OTP Templates&lt;br /&gt;	17.	Web server built with the OTP scaffolding&lt;br /&gt;	18.	Mnesia--The Erlang real-time database.&lt;br /&gt;	19.	Programming Multi-core CPUS&lt;br /&gt;	20.	Reference Material&lt;p&gt;&lt;/p&gt;I&apos;m especially interested in the chapters on Mnesia and ETS/DETS. Time to preorder I think :)&lt;br /&gt;</description>
  <comments>http://archaelus.livejournal.com/7460.html</comments>
  <lj:mood>bouncy</lj:mood>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/6497.html</guid>
  <pubDate>Tue, 20 Feb 2007 01:10:52 GMT</pubDate>
  <title>2007-02-20 Mac OS X otool</title>
  <link>http://archaelus.livejournal.com/6497.html</link>
  <description>checking for XML_ParserCreate in -lexpat... no sayeth configure, but libexpat is installed, so now I need to find out if the symbol is in libexpat or whether I have a different problem.&lt;p&gt;&lt;/p&gt;I know I need to use otool, but which incantation is a mystery and google is being less friendly than I&apos;d like. Looks like time to read the manpage.&lt;p&gt;&lt;/p&gt;otool -vT seems to do what I want - and there it is: xmlparse.o _XML_ParserCreate. Still no joy.&lt;p&gt;&lt;/p&gt;Ahh, configure is looking at a different (or missing) expat location. --with-expat=/Library/DarwinPorts to the rescue.&lt;p&gt;&lt;/p&gt;Today&apos;s lession: otool -vT &amp;lt;/path/to/libfoo.dylib&amp;gt; -- lists the symbols in the dynamic library foo.</description>
  <comments>http://archaelus.livejournal.com/6497.html</comments>
  <lj:mood>accomplished</lj:mood>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/4626.html</guid>
  <pubDate>Tue, 06 Feb 2007 05:40:54 GMT</pubDate>
  <title>2007-02-05 IRC Protocol</title>
  <link>http://archaelus.livejournal.com/4626.html</link>
  <description>I&apos;m not loving the IRC protocol. Fortunately I only have to fool undernet&apos;s ircd into believing I&apos;m a valid server.&lt;p&gt;&lt;/p&gt;&amp;lt;hack, hack, hack&amp;gt;&lt;p&gt;&lt;/p&gt;Oh so it&apos;s not RFC2813 I have to implement... it&apos;s that plus &lt;a href=&quot;http://www.xs4all.nl/~carlo17/irc/P10.html&quot;&gt;P10&lt;/a&gt;.&lt;p&gt;&lt;/p&gt;&amp;lt;hack, hack, hack&amp;gt;&lt;p&gt;&lt;/p&gt;“a server has a “max client numeric“, this is sent in SERVER messages. a client numeric on a server, ANDed with the max server numeric, must be unique. for example if server YY&apos;s max client numeric is YYA]] (4095), clients YYBXX and YCXX can&apos;t exist at the same time, doing this would cause a “numeric collision“, which is in this a protocol violation. but such numerics which occupy the same “slot“ are not identical - a message sent to user YYBXX in this example must not reach user YYCXX.” --p10&lt;p&gt;&lt;/p&gt;What does  that even mean? Still,&lt;br /&gt;&lt;pre&gt;
=INFO REPORT==== 5-Feb-2007::23:58:40 ===
(&amp;lt;0.252.0&amp;gt; irc_server_session:122) Got event
{cmd,
 &quot;:scrubbed.server 461 * SERVER :Not enough parameters\r\n&quot;,
 {user,
     &quot;scrubbed.server&quot;,
     undefined,
     undefined},
 error,
 [{code,needmoreparams},
  {target,&quot;*&quot;},
  {command,&quot;SERVER&quot;},
  {text,
      &quot;Not enough parameters&quot;}]}
&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;probably means I&apos;m on the right track.</description>
  <comments>http://archaelus.livejournal.com/4626.html</comments>
  <lj:mood>stampy</lj:mood>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/3488.html</guid>
  <pubDate>Thu, 01 Feb 2007 20:49:26 GMT</pubDate>
  <title>There is an easy way to</title>
  <link>http://archaelus.livejournal.com/3488.html</link>
  <description>“There is an easy way to get a new entry into Journler from any app. Use the service menu, which is already assigned a hotkey of shift cmd J.” -- &lt;a href=&quot;http://journler.com/community/forums/viewtopic.php?t=1520&amp;amp;sid=96813b9998ff989385b1e8b45f3a6e2e&quot;&gt;journler forums&lt;/a&gt;&lt;p&gt;&lt;/p&gt;Wow, that is pretty easy :)&lt;br /&gt;</description>
  <comments>http://archaelus.livejournal.com/3488.html</comments>
  <lj:mood>yarr</lj:mood>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/3089.html</guid>
  <pubDate>Thu, 01 Feb 2007 20:30:06 GMT</pubDate>
  <title>2007-02-02 RabbitMQ</title>
  <link>http://archaelus.livejournal.com/3089.html</link>
  <description>Oooh, &lt;a href=&quot;http://www.rabbitmq.com/&quot;&gt;shiny&lt;/a&gt;. LShift just &lt;a href=&quot;http://www.lshift.net/blog/2007/02/01/rabbits-rabbits-rabbits&quot;&gt;released&lt;/a&gt; a queuing system written in &lt;a href=&quot;http://www.erlang.org&quot;&gt;Erlang&lt;/a&gt;.&lt;p&gt;&lt;/p&gt;I&apos;m in the process of writing some kind of queuing system for SMS transport - maybe &lt;a href=&quot;http://www.rabbitmq.com/&quot;&gt;RabbitMQ&lt;/a&gt; will let me avoid all that.</description>
  <comments>http://archaelus.livejournal.com/3089.html</comments>
  <lj:mood>happy</lj:mood>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/2949.html</guid>
  <pubDate>Thu, 01 Feb 2007 20:06:57 GMT</pubDate>
  <title>2007-02-02 Scheme vs. Common Lisp</title>
  <link>http://archaelus.livejournal.com/2949.html</link>
  <description>This &lt;a href=&quot;http://groups.google.com/group/comp.lang.scheme/msg/18d1d6d4f84e70e3&quot;&gt;article&lt;/a&gt; gives a very good explanation of some of the philosophical differences between &lt;a href=&quot;http://schemers.org&quot;&gt;Scheme&lt;/a&gt; and &lt;a href=&quot;http://www.lisp.org&quot;&gt;Common Lisp&lt;/a&gt;.</description>
  <comments>http://archaelus.livejournal.com/2949.html</comments>
  <lj:mood>overly caffeinated</lj:mood>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/2002.html</guid>
  <pubDate>Wed, 31 Jan 2007 08:38:42 GMT</pubDate>
  <title>2007-01-31 HashDot</title>
  <link>http://archaelus.livejournal.com/2002.html</link>
  <description>&lt;p style=&quot;font: 14.0px Georgia&quot;&gt;&lt;a href=&quot;http://franz.com&quot;&gt;Franz&lt;/a&gt; have just posted a very interesting &lt;a href=&quot;http://www.franz.com/support/tech_corner/usgs-011207.lhtml&quot;&gt;article&lt;/a&gt; demonstrating the&lt;span class=&quot;Apple-converted-space&quot;&gt;  &lt;/span&gt;#. (sharpsign dot or hash dot)&lt;span class=&quot;Apple-converted-space&quot;&gt;  &lt;/span&gt;&lt;a href=&quot;http://www.lisp.org/HyperSpec/Body/chap-23.html&quot;&gt;reader macro&lt;/a&gt; in &lt;a href=&quot;http://www.lisp.org&quot;&gt;CommonLisp&lt;/a&gt;.&lt;/p&gt;&lt;p style=&quot;font: 14.0px Georgia; min-height: 16.0px&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;font: 12.7px Courier; background-color: #ddffff&quot;&gt;(defvar *zipcode-data*&lt;/p&gt;&lt;p style=&quot;font: 12.7px Courier; background-color: #ddffff&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;    &lt;/span&gt;#.(let ((zips&lt;/p&gt;&lt;p style=&quot;font: 12.7px Courier; background-color: #ddffff&quot;&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt; &lt;span class=&quot;Apple-converted-space&quot;&gt;    &lt;/span&gt;(prog2&lt;/p&gt;&lt;p style=&quot;font: 12.7px Courier; background-color: #ddffff&quot;&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt; (progn (format t “reading zips.cvs...“)&lt;/p&gt;&lt;p style=&quot;font: 12.7px Courier; background-color: #ddffff&quot;&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;(force-output))&lt;/p&gt;&lt;p style=&quot;font: 12.7px Courier; background-color: #ddffff&quot;&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt; (read-zips-csv&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font: 12.7px Courier; background-color: #ddffff&quot;&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;  &lt;/span&gt;(merge-pathnames “zips.csv“ *compile-file-pathname*))&lt;/p&gt;&lt;p style=&quot;font: 12.7px Courier; background-color: #ddffff&quot;&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt; &lt;span class=&quot;Apple-converted-space&quot;&gt;      &lt;/span&gt;(format t “done~%“))))&lt;/p&gt;&lt;p style=&quot;font: 12.7px Courier; background-color: #ddffff&quot;&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;(list &apos;list&lt;/p&gt;&lt;p style=&quot;font: 12.7px Courier; background-color: #ddffff&quot;&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;      &lt;/span&gt;(vector-of zips #&apos;zip-code)&lt;/p&gt;&lt;p style=&quot;font: 12.7px Courier; background-color: #ddffff&quot;&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;      &lt;/span&gt;(vector-of zips #&apos;zip-state-abbrev)&lt;/p&gt;&lt;p style=&quot;font: 12.7px Courier; background-color: #ddffff&quot;&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;      &lt;/span&gt;(vector-of zips (lambda (zip)&lt;/p&gt;&lt;p style=&quot;font: 12.7px Courier; background-color: #ddffff&quot;&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;(let ((loc (zip-location zip)))&lt;/p&gt;&lt;p style=&quot;font: 12.7px Courier; background-color: #ddffff&quot;&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;  &lt;/span&gt;(cons (location-latitude loc)&lt;/p&gt;&lt;p style=&quot;font: 12.7px Courier; background-color: #ddffff&quot;&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;(location-longitude loc)))))&lt;/p&gt;&lt;p style=&quot;font: 12.7px Courier; background-color: #ddffff&quot;&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;      &lt;/span&gt;(vector-of zips #&apos;zip-city)&lt;/p&gt;&lt;p style=&quot;font: 12.7px Courier; background-color: #ddffff&quot;&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;      &lt;/span&gt;(vector-of zips #&apos;zip-state))))&lt;/p&gt;&lt;p style=&quot;font: 14.0px Georgia; min-height: 16.0px&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;font: 14.0px Georgia&quot;&gt;This snippet reads zipcode data into the variable *zipcode-data*. The sneaky bit is that it does this at read/compile time.&lt;/p&gt;&lt;p style=&quot;font: 14.0px Georgia; min-height: 16.0px&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;font: 14.0px Georgia&quot;&gt;When the compiler comes to create the special variable *zipcode-data* (think static variable in javalike languages) the #.( .... ) macro is expanded, calling code that reads the zipcode CSV file into a list of vectors (zip code, state abbreviation, (latitude, longitude), city, state).&lt;/p&gt;&lt;p style=&quot;font: 14.0px Georgia; min-height: 16.0px&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;font: 14.0px Georgia&quot;&gt;After the reader has performed its #. magic, the compiler sees:&lt;/p&gt;&lt;p style=&quot;font: 12.7px Courier; background-color: #ddffff&quot;&gt;(list #&amp;lt;...vector of zip codes...&amp;gt;&lt;/p&gt;&lt;p style=&quot;font: 12.7px Courier; background-color: #ddffff&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;      &lt;/span&gt;...&lt;/p&gt;&lt;p style=&quot;font: 12.7px Courier; background-color: #ddffff&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;      &lt;/span&gt;#&amp;lt;...vector of states...&amp;gt;)&lt;/p&gt;&lt;p style=&quot;font: 14.0px Georgia; min-height: 16.0px&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;font: 14.0px Georgia&quot;&gt;Which the compiler then writes out to the compiled lisp file as static data.&lt;/p&gt;&lt;p style=&quot;font: 14.0px Georgia; min-height: 16.0px&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;font: 14.0px Georgia&quot;&gt;Essentially common lisp reader magic has allowed us to easily turn a startup cost (initialising *zipcode-data*) into a compile-time cost. Now to find a problem to apply this to :)&lt;/p&gt;</description>
  <comments>http://archaelus.livejournal.com/2002.html</comments>
  <lj:mood>enthralled</lj:mood>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/1552.html</guid>
  <pubDate>Mon, 29 Jan 2007 07:59:16 GMT</pubDate>
  <title>2007-01-29 GPG and the web of *snore*</title>
  <link>http://archaelus.livejournal.com/1552.html</link>
  <description>&lt;p style=&quot;font: 14.0px Georgia&quot;&gt;&lt;a href=&quot;http://www.gnupg.org/&quot;&gt;GPG&lt;/a&gt; is a really neat crypto system that allows you to encrypt and sign data without requiring a central key granting authority. It relies on trust relationships between people&apos;s keys - I sign Joe Bloggs&apos; key to indicate that a particular key for joe@bloggs.com is the key he uses. Why is that important? Well it lets you trust keys that you don&apos;t know about directly.&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font: 14.0px Georgia; min-height: 16.0px&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;font: 14.0px Georgia&quot;&gt;For instance I might receive an email GPG-signed by Jane Doe (jane@doe.com). Joe has signed Jane&apos;s key and as I trust Joe and his key, I can trust Jane&apos;s key because Joe has effectively vouched for her.&lt;/p&gt;&lt;p style=&quot;font: 14.0px Georgia; min-height: 16.0px&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;font: 14.0px Georgia&quot;&gt;At least this is the theory about how it all works. People are busy going to conferences and signing eachother&apos;s keys to build up a global web of trust. I trust you, you trust him, he trusts someone else and so on. Sadly this trust data is badly under-used. Try using any GPG-enabled application (of which there are precious few) and doing anything with all those trust entries you&apos;ve created. Yeah... that&apos;s what I thought. If you&apos;re lucky you might get some kind of &lt;a href=&quot;http://www.chaosreigns.com/code/sig2dot/debian.html&quot;&gt;pretty graph&lt;/a&gt; or a really low &lt;a href=&quot;http://en.wikipedia.org/wiki/Mean_Shortest_Distance&quot;&gt;MSD&lt;/a&gt; score.&lt;/p&gt;&lt;p style=&quot;font: 14.0px Georgia; min-height: 16.0px&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;font: 14.0px Georgia&quot;&gt;Don&apos;t even get me started on actual &lt;a href=&quot;http://www.keysigning.org/methods/sassaman-projected&quot;&gt;keysigning events&lt;/a&gt; -- I know you hate spammers, but would you really do this to your parents in the name of securing email?&lt;/p&gt;&lt;p style=&quot;font: 14.0px Georgia; min-height: 16.0px&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;font: 14.0px Georgia&quot;&gt;&amp;lt;/curmudgeon&amp;gt;&lt;/p&gt;&lt;p style=&quot;font: 14.0px Georgia; min-height: 16.0px&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;font: 14.0px Georgia&quot;&gt;The less crotchety side of me is really waiting for a nice GPG UI and deep and thoughtful integration into the apps I use to communicate with people. iGPG anyone?&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;/p&gt;</description>
  <comments>http://archaelus.livejournal.com/1552.html</comments>
  <lj:mood>stampy</lj:mood>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/1210.html</guid>
  <pubDate>Sun, 28 Jan 2007 21:58:35 GMT</pubDate>
  <title>2007-01-29 Where oh where have my megs gone?</title>
  <link>http://archaelus.livejournal.com/1210.html</link>
  <description>&lt;p style=&quot;font: 12.0px Helvetica&quot;&gt;pmTool was using about 350M of resident RAM this morning and causing lots and lots of wonderful swapping (complete with attendant interactivity problems). I always thought this was just some essential Mac OS X power management daemon that couldn&apos;t be killed without causing trouble. In the past I&apos;ve just rebooted every week or two to keep pmTool consuming only an unreasonable amount of RAM.&lt;/p&gt;&lt;p style=&quot;font: 12.0px Helvetica; min-height: 14.0px&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;font: 12.0px Helvetica&quot;&gt;Turns out that pmTool is actually part of Activity Monitor... the program I run to find out what processes are eating all my RAM and causing all the swapping. GAH. At least I can avoid a few reboots now - just restart Activity Monitor and you get all of pmTool&apos;s RAM back.&lt;/p&gt;&lt;p style=&quot;font: 12.0px Helvetica; min-height: 14.0px&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;font: 12.0px Helvetica&quot;&gt;*head asplode* :)&lt;/p&gt;</description>
  <comments>http://archaelus.livejournal.com/1210.html</comments>
  <lj:mood>amused</lj:mood>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/815.html</guid>
  <pubDate>Sat, 27 Jan 2007 06:27:31 GMT</pubDate>
  <title>2007-01-27 Mac OS X Swapping</title>
  <link>http://archaelus.livejournal.com/815.html</link>
  <description>&lt;p style=&quot;font: 12.0px Helvetica&quot;&gt;I&apos;m quite a fan of Mac OS X (Tiger) - great UI, great apps, unixy underneath etc, but its interactive performance with a high IO load (like when it decides to swap) is awful. Though I haven&apos;t used Linux on my desktop for a long while, but I sure don&apos;t remember interactivity just &lt;b&gt;going away&lt;/b&gt; for minutes while it did something memory/swap intensive.&lt;/p&gt;&lt;p style=&quot;font: 12.0px Helvetica; min-height: 14.0px&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;font: 12.0px Helvetica&quot;&gt;&lt;i&gt;Grubles&lt;/i&gt;&lt;/p&gt;&lt;p style=&quot;font: 12.0px Helvetica; min-height: 14.0px&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;font: 12.0px Helvetica&quot;&gt;Small number of points awarded for none of the interactivity problems affecting iTunes playback.&lt;/p&gt;</description>
  <comments>http://archaelus.livejournal.com/815.html</comments>
  <lj:mood>Stampy</lj:mood>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://archaelus.livejournal.com/545.html</guid>
  <pubDate>Sat, 27 Jan 2007 03:18:00 GMT</pubDate>
  <title>2007-01-27 Music of the Week -- Uncertain Girl</title>
  <link>http://archaelus.livejournal.com/545.html</link>
  <description>I&apos;m continually amazed by the sheer number of really great artists there are around the place in Wellington. Last weekend I got a copy of &lt;a href=&quot;http://profile.myspace.com/index.cfm?fuseaction=user.viewprofile&amp;amp;friendid=87396093&quot;&gt;Sarah Wiig&apos;s&lt;/a&gt; first album, &quot;Uncertain Girl&quot; and I&apos;ve been listening to it in iTunes pretty much all week. My favourite tracks so far are Peat Street, Uncertain and Empty, though the others are great too.&lt;br&gt;&lt;journler info=&quot;link&quot; note=&quot;journler://resource/2/IMG_7518.JPG&quot;&gt;&lt;journler info=&quot;rtfd&quot; note=&quot;insert image here&quot;&gt;&lt;img src=&quot;http://pics.livejournal.com/archaelus/pic/00001h82/s640x640&quot; alt=&quot;Uncertain Girl&quot; /&gt;&lt;/journler&gt;&lt;/journler&gt;&lt;br&gt;&lt;a href=&quot;http://www.agepryor.co.nz/&quot;&gt;Age Pryor&lt;/a&gt;, &lt;a href=&quot;www.thephoenixfoundation.co.nz&quot;&gt;The Phoenix Foundation&lt;/a&gt;, &lt;a href=&quot;http://profile.myspace.com/index.cfm?fuseaction=user.viewprofile&amp;amp;friendid=87396093&quot;&gt;Sarah Wiig&lt;/a&gt; -- I wonder what bands I haven&apos;t found out about yet...</description>
  <comments>http://archaelus.livejournal.com/545.html</comments>
  <lj:mood>ambivalent</lj:mood>
  <lj:security>public</lj:security>
</item>
</channel>
</rss>
