<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>SweetFriday</title>
        <link>http://www.neverfriday.com/sweetfriday/</link>
        <description>Talking about software, programming, computer science, etc.</description>
        <language>en</language>
        <copyright>Copyright 2008</copyright>
        <lastBuildDate>Tue, 18 Nov 2008 02:08:24 -0500</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        <item>
            <title>Seaside Tutorial Book, static *psssssh* static</title>
            <description><![CDATA[<p><a href="http://neverfriday.com/Seaside-Book/" title="Seaside Book">It's static now. The whole thing.</a> All the images are there too, all the text is there and I changed the stylesheet so it takes up more of the screen space. The overview doesn't have links to all of the table of contents stuff but I'm tired right now.</p>

<p>In any case, it's good enough to start reading from. I did this mostly because I wanted a local copy but hey, it loads faster than the other dynamic version so why not let the rest of the Internet share in the speed?</p>

<p><a href="http://neverfriday.com/Seaside-Book.zip" title="Seaside Book Download">Download a copy of the book.</a></p>]]></description>
            <link>http://www.neverfriday.com/sweetfriday/2008/11/seaside-tutorial-book-static-p.html</link>
            <guid>http://www.neverfriday.com/sweetfriday/2008/11/seaside-tutorial-book-static-p.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Squeak</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Web</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">seaside</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">squeak</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">web</category>
            
            <pubDate>Tue, 18 Nov 2008 02:08:24 -0500</pubDate>
        </item>
        
        <item>
            <title>Seaside/Squeak</title>
            <description><![CDATA[<p>It's 4am and I'm about to sleep, but I've started converting <a href="http://www.swa.hpi.uni-potsdam.de/seaside/tutorial" title="Seaside Tutorial Book - dynamic">the Seaside Tutorial book</a> to a proper static HTML package that doesn't require a web server to view. The amount of JavaScript that loads and the way the pages are loaded on the web server was very slow. It took 9 seconds for a single page to load. By making it completely static, it took only a half-second to load.</p>

<p><a href="/Seaside-Book/index.html" title="Seaside Tutorial Book - static">Learn how to use Seaside and Smalltalk</a></p>

<p>I'll finish the rest of the pages later today, and then create a nice ZIP file out of it.</p>]]></description>
            <link>http://www.neverfriday.com/sweetfriday/2008/11/seasidesqueak.html</link>
            <guid>http://www.neverfriday.com/sweetfriday/2008/11/seasidesqueak.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Squeak</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Web</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">seaside</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">squeak</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">web</category>
            
            <pubDate>Mon, 17 Nov 2008 03:49:43 -0500</pubDate>
        </item>
        
        <item>
            <title>JavaScript, jQuery and DNA</title>
            <description><![CDATA[<p><a href="http://neverfriday.com/dna-rna-amino/" title="DNA RNA Amino Conversion Tool">For the past few days I have been fixing up a website that my cousin found.</a> He was working on some biology/technology homework and was tired of writing out DNA sequences, manually converting them to RNA and then searching through a table to find the amino acids that each trio of letter corresponds to.</p>

<p>Using <a href="http://jquery.com/" title="jQuery: The Write Less, Do More JavaScript Library">jQuery</a> and JavaScript magic, I came up with <a href="http://neverfriday.com/dna-rna-amino/" title="DNA RNA Amino Conversion Tool">this</a>. It converts DNA to RNA and then finds the amino acids in the sequence. The conversion between RNA and DNA takes place while you type, but you have to click to get the amino acids.</p>

<p>The whole thing is a single HTML file with 3 JavaScript files and a stylesheet. The JavaScript is divided into three categories; data, logic, and views. The <code>data.js</code> file contains information on amino acids. The <code>logic.js</code> file has code that deals with the conversions, and the <code>views.js</code> file has code for displaying the results. The amazing thing is that all of this works in Internet Explorer 6, Firefox 3, Safari, etc. Note: there are other JavaScript files included but they are for the fancy effects in the <code>views.js</code> file, they aren't part of the core logic of tool. The advantage is that the whole package is self-contained and you can copy the folder over to a USB thumbdrive and use the tool on any computer that has a web browser installed. You don't even need a web serrver.</p>

<p><a href="http://github.com/omouse/dna-rna-amino/tree/master" title="omouse's dna-rna-amino at master - GitHub">The code is available at GitHub</a> and is licensed under the MIT License.</p>]]></description>
            <link>http://www.neverfriday.com/sweetfriday/2008/10/javascript-jquery-and-dna.html</link>
            <guid>http://www.neverfriday.com/sweetfriday/2008/10/javascript-jquery-and-dna.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">JavaScript</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Web</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">design</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">javascript</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">neverfriday</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">news</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">web</category>
            
            <pubDate>Wed, 15 Oct 2008 02:33:31 -0500</pubDate>
        </item>
        
        <item>
            <title>Validating File Uploads with Django 1.0 (updated)</title>
            <description><![CDATA[ <p><a href="http://neverfriday.com/images/blog/django_upload_validation.png"><img src="http://neverfriday.com/images/blog/django_upload_validation_thumb.png" style="padding: 10px; float: left;" width="400" height="167" /></a> A long time ago, I wrote <a href="http://www.neverfriday.com/sweetfriday/2008/03/validating-file-uploads-with-d.html" title="SweetFriday - Validating File Uploads with Django">a blog post and some code that validates file uploads</a> in <a href="http://www.djangoproject.com/" title="Django | The Web framework for perfectionists with a deadline">Django</a>. In the last week, it seems a lot of people have been interested in the post and since Django finally has a stable 1.0 release, I thought I would update the previous blog post.</p>]]></description>
            <link>http://www.neverfriday.com/sweetfriday/2008/09/-a-long-time-ago.html</link>
            <guid>http://www.neverfriday.com/sweetfriday/2008/09/-a-long-time-ago.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Python</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Web</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">blog</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">django</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">python</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">web</category>
            
            <pubDate>Tue, 09 Sep 2008 17:24:27 -0500</pubDate>
        </item>
        
        <item>
            <title>Emacs: Org-mode WikiPedia links</title>
            <description><![CDATA[ <p>The other day I was going through some notes that I organize using Org-mode and I realized that it's a pain in the ass to write up links to Wikipedia entries all the time. So I whipped up some code that adds an org-mode link.</p>]]></description>
            <link>http://www.neverfriday.com/sweetfriday/2008/09/emacs-orgmode-wikipedia-links.html</link>
            <guid>http://www.neverfriday.com/sweetfriday/2008/09/emacs-orgmode-wikipedia-links.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Emacs</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Lisp</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">emacs</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">emacs lisp</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">org-mode</category>
            
            <pubDate>Wed, 03 Sep 2008 22:46:17 -0500</pubDate>
        </item>
        
        <item>
            <title>Toronto Lisp, September</title>
            <description><![CDATA[ <p>It's 1am and I have myself organized in terms of the meetups. I have a list of meetups and people who have shown up and can be considered regulars, I also have a template setup for discussing previous meetups. Also, this is the big thing, I have this in a GIT repo! So I can make whatever changes I want to the page offline and then simply copy/paste into the Association of Lisp Users wiki page for the Toronto Lisp Meetup.</p>]]></description>
            <link>http://www.neverfriday.com/sweetfriday/2008/09/toronto-lisp-september.html</link>
            <guid>http://www.neverfriday.com/sweetfriday/2008/09/toronto-lisp-september.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Lisp</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Scheme</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">lisp</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">scheme</category>
            
            <pubDate>Tue, 02 Sep 2008 01:35:19 -0500</pubDate>
        </item>
        
        <item>
            <title>FriendFeed + FOAF</title>
            <description><![CDATA[<p><a href="http://www.neverfriday.com/sweetfriday/2008/08/foaf-on-the-web.html" title="SweetFriday - FOAF on the Web">On Friday</a> I was bitching
about the lack of websites that can import <acronym title="Friend Of A
Friend">FOAF</acronym> profiles. A lot of the popular ones like
Twitter and LiveJournal can export them, but they don't seem to be
able to import them and make use of the actual FOAF data. A portable
file format only works when you can both import <em>and</em> export
the data.</p>]]></description>
            <link>http://www.neverfriday.com/sweetfriday/2008/08/friendfeed-foaf.html</link>
            <guid>http://www.neverfriday.com/sweetfriday/2008/08/friendfeed-foaf.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Python</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Web</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">foaf</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">friendfeed</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">python</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">scripting</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">web</category>
            
            <pubDate>Tue, 26 Aug 2008 23:16:46 -0500</pubDate>
        </item>
        
        <item>
            <title>FOAF on the Web</title>
            <description><![CDATA[ <p>There are <a href="http://captsolo.net/info/blog_a.php/2007/10/04/foaf_for_social_network_migration" title="captsolo weblog - FOAF for Social Network Portability">a lot of websites that export FOAF</a>, Friend Of A Friend, data including: LiveJournal, Twitter, <a href="http://leahculver.com/2008/02/01/python-foaf-generator/" title="Leah Culver - Python FOAF Generator">Pownce</a> and hi5. There is a Facebook application that exports your Facebook profile to FOAF too!</p>

<p>FOAF doesn't appear to be dead in terms of exporting, but what about importing? That's the whole point of FOAF...to make your data portable so you can move it around easily. But I've searched and searched and I can't find anything on how to import my FOAF data into Twitter, or LiveJournal, or elsewhere. What's the point of freedom when I can't use it?</p>

<p>A simple example of how importing FOAF is useful: <a href="http://friendfeed.com/">FriendFeed</a>. It aggregates stuff from various social networks. I already have a list of online accounts in my FOAF file. FriendFeed, let me import that file and you can take care of the rest! I hate re-typing in all my account names so you can import them. It's annoying and boring.</p>]]></description>
            <link>http://www.neverfriday.com/sweetfriday/2008/08/foaf-on-the-web.html</link>
            <guid>http://www.neverfriday.com/sweetfriday/2008/08/foaf-on-the-web.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Web</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">foaf</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">web</category>
            
            <pubDate>Fri, 22 Aug 2008 18:25:02 -0500</pubDate>
        </item>
        
        <item>
            <title>Common Lisp Gardeners is still alive</title>
            <description><![CDATA[<p><a href="http://www.lispniks.com/cl-gardeners/" title="CL Gardeners">The project is still alive</a>. The last time I checked it looked a little dead, but now that I've checked out <a href="http://www.lispniks.com/pipermail/gardeners/2008-August/thread.html" title="August 2008 Archives for The Gardeners mailing list">the mailing list archives</a>, it looks like it's still alive. Awesome awesome :D</p>

<h2>cl-terrace</h2>

<p><a href="http://www.lispniks.com/pipermail/gardeners/2008-August/001736.html" title="[Gardeners] web framework">Thanks to the list</a>, I've discovered another web application framework for Common Lisp called <a href="http://groups.google.com/group/cl-terrace" title="cl-terrace">cl-terrace</a>. It's a Model-View-Controller framework (aren't they all?) with only the View-Controller part covered. I'm not sure exactly how that works, but it uses the Hunchentoot web server, and <a href="http://groups.google.com/group/cl-terrace/web/djula" title="Djula, a Common Lisp port of the Django templating language">djula</a>, a Common Lisp template engine based on the Django templating language which is nice.</p>

<p><a href="http://cl-terrace.googlegroups.com/web/8-15-2008-djula-documentation.html" title="Djula Documentation Quick Reference, 15 August 2008">The documentation for djula</a> should be generated by the developer since the API is apparently changing around quite a bit. Djula looks like it handles internationalization and translations in a sane way. <a href="http://cl-terrace.googlegroups.com/web/8-15-2008-djula-documentation.html#dictionary-variables" title="Djula Quick Reference, Dictionary Variables">You specify translations using a dictionary (a.k.a. hash-table), the example shows how to do this</a>.</p>

<p>cl-terrace is ASDF-installable in case you're itching to try it out. Using SBCL, run this:
<pre style="margin-left: 1em; background-color: #eee">
(require 'asdf)
(require 'asdf-install)
(asdf-install:install 'cl-terrace)
</pre>
to install it.
</p>

<h2>Ruby</h2>

<p>On another note, a Ruby note, Chris Wanstrath of <a href="http://github.com/" title="github - social code hosting">GitHub</a> fame presented <a href="" title="">a keynote</a> at the 2008 Ruby Hoedown about side projects where he said,</p>

<blockquote>First off, the time issue. I don't know how many of you read RSS, but I challenge you (that's a keynote term) to give it up for a month. Just turn it off...What should you do instead? ...<em>let other people do the filtering for you. Use your time for other things</em>.</blockquote>

<p>It's a good keynote and lots of communities could learn a thing or two from the Ruby community. <a href="http://rethink.unspace.ca/2008/8/21/what-will-be-ruby-s-legacy" title="rethink - What will be Ruby's legacy?">The optimism of the community has to be balanced out as Unspace's Pete Forde says</a>,</p>

<blockquote>Folks in Ruby tend to write a lot of nostalgic, self-aggrandizing bullshit, though. You see a lot of "MY MY, THE COMMUNITY HAS EVOLVED INTO SOMETHING SPECIAL" and talk of changing the history of software development. I'm all for progress, and as a musician, I understand the function of hype in generating momentum. But <em>sometimes we need to get real and be a little more harsh in our own self-analysis</em>.</blockquote>

<p>Anyway, off to write some code.</p>]]></description>
            <link>http://www.neverfriday.com/sweetfriday/2008/08/common-lisp-gardeners-is-still.html</link>
            <guid>http://www.neverfriday.com/sweetfriday/2008/08/common-lisp-gardeners-is-still.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Lisp</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Ruby</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Scheme</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Web</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">lisp</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">ruby</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">scheme</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">web</category>
            
            <pubDate>Fri, 22 Aug 2008 14:25:36 -0500</pubDate>
        </item>
        
        <item>
            <title>Some Lisp News? Yes?</title>
            <description><![CDATA[ <h2>Mid-August Lisp News</h2>

<h3><a href="http://wiki.alu.org/Local" title="Local Lisp User
Groups">Meetups</a></h3>

<h4><a href="http://wiki.alu.org/toronto" title="Toronto Lisp
Meetup">Toronto</a></h4>

<p><a href="http://common-lisp.net/pipermail/toronto-lisp/2008-August/000038.html"
title="toronto-lisp archive: Next meetup :o August 7th?">7 August
2008, A very small gathering of Lisp users at the LinuxCaffe</a>.
Abram showed the inner workings of the
game <a href="http://abuse.zoy.org/" title="Abuse, a dark 2D
side-scrolling platform game">Abuse</a> which uses Lisp for almost
everything, except the core (which is written in C, this is similar to
how Emacs works). An interesting question asked was whether or not the
Abuse Lisp dialect supported macros, it seemed that the custom
"macros" were all coded in C and thus untouchable. Next, a
crazy <abbr title="modification">mod</abbr> that turns the game into a
game of Super Mario was shown.</p>

<p>The disadvantages and misuse of car, cdr, caaaaar, cadaddarr, etc.
were also mentioned. The consensus is that once you're using cadr,
caddr, what you really want to be doing is creating a structure or
object. That way you can access things by a descriptive name. An
example of why this is a good idea is given
by <a href="http://common-lisp.net/project/xmls/" title="XMLS, a
simple XML parser for Common Lisp">xmls</a>, an XML parser. It parses
XML and turns it into a giant list, with the first element being the
element tag name, the second element being a list of element
attributes, and the rest of this list being child elements. This can
be tedious to navigate through.</p>

<p>Libraries for Scheme were also mentioned. The drawbacks of the
various dialects of Scheme are that the specification does not define
even the basics of common ways of dealing with libraries. Because of
this, when you switch Schemes, you have to re-discover libraries that
do what you want. This is an old complaint of course.</p>

<p>Lisp images and program startup costs were discussed in relation to
Perl, PHP and Smalltalk. Some Lisps have the ability to dump a memory
image and reload that later on. This improves the startup time since
libraries are already loaded and not re-loaded or re-compiled. I noted
that there doesn't seem to be a culture of image-sharing in the Lisp
community as there is in the Smalltalk community. One reason suggested
for this is that some Lisps run on 64-bit architectures and others run
on 32-bit, which means code needs to re-compiled anyway. Perl and PHP
were said to have no way of image dumping and this is particularly
problematic for PHP since it seems to rebuild things for each website
request. <em>(This may be incorrect or a non-problem)</em></p>

<p>Finally, I
mentioned <a href="http://www.iam.unibe.ch/~scg/Research/Traits/"
title="Traits -- Composable Units of Behavior">traits in
Smalltalk</a>. Traits are collections of methods that can be used by
classes and overridden (or not). Eiffel seems to have something
similar, as does Ruby with
mixins. <a href="http://www.iam.unibe.ch/~scg/Archive/Papers/Scha03aTraits.pdf"
title="Traits: Composable Units of Behavior by scharli, Ducasse,
Nierstrasz, and Black">Here is the paper that explains the idea more
fully[PDF].</a>

<h3><a href="http://groups.google.com/group/comp.lang.lisp/topics"
title="Google Groups: comp.lang.lisp">comp.lang.lisp</a></h3>

<p>Kenny Tilton, the man
behind <a href="http://common-lisp.net/project/cells/" title="Cells -
A dataflow extension to CLOS">Cells</a>
and <a href="http://www.theoryyalgebra.com/">Theory Y
Algebra</a>, <a href="http://groups.google.com/group/comp.lang.lisp/msg/317b5640769a7de2">asked
why the special variable <code>*default-pathname-defaults*</code> is
named that way. <a href="http://p-cos.net/" title="Pascal Costanza's
website">Pascal Costanza</a> comes up
with <a href="http://groups.google.com/group/comp.lang.lisp/msg/9e2c4865f791e637">an
answer</a> and asks his own question in return,</p>

<blockquote>Do you guys also worry about important problems?</blockquote>

<h3>Blogs</h3>

<h4>Xach's Cool Charts</h4>

<p>Xach made some cool charts inspired by Tufte and stream
graphs. <a href="http://www.xach.com/moviecharts/" title="Movie box
office charts">The first chart</a> shows movie box office data, while
<a href="http://www.xach.com/charts/" title="Misecllaneous Charts">the
second</a> shows the version control activity of CMUCL and SBCL.</p>

<p>The charts were made
using <a href="http://www.xach.com/lisp/vecto/" title="Vector - Simple
Vector Drawing with Common Lisp">Vecto</a>, a simple vector drawing
library for Common Lisp.</p>

<h4><a href="http://tkpapp.blogspot.com/2008/08/cl-cairo2-updates-win32-and-mac.html"
title="cl-cairo2 updates: win32 and mac extensions">cl-cairo2
updates</a></h4>

<p>This is a nice update for cl-cairo2 users. Now cl-cairo2 loads only
OS-independent parts of the library, with the OS-dependent parts
becoming parts of extension packages.</p>

<h4><a href="http://www.findinglisp.com/blog/2008/08/lisp-quiz-1-minesweeper.html" title="">Lisp
Quiz</a></h4>

<p>Lisp Quiz is inspired by Ruby Quiz which was inspired by Perl Quiz of
the week. Ruby Quiz and Perl Quiz were weekly programming challenges,
and Lisp Quiz hopes to do the same for the Lisp community. The first
quiz tackles Minesweeper, having you design an algorithm that wins the
game.</p>

<h3>Everything Else</h3>

<h4>LispForum</h4>

<p><a href="http://www.lispforum.com/index.php" title="LispForum:
Learn and discuss Lisp programming of all dialects">LispForum</a>,
launched on 27 June 2008, is another place for Lisp-related
discussion. It is run by Dave Roberts, the blogger who is behind
the <a href="http://www.findinglisp.com/blog/" title="Finding Lisp:
Slowly but surely, the programming world is finding Lisp...">Finding
Lisp blog</a>. They have
added <a href="http://www.lispforum.com/viewforum.php?f=32"
title="LispForum: Lisp Quiz">a new sub-forum for Lisp Quiz puzzles</a>
which are supposed to be similar to <a href="http://www.rubyquiz.com/"
title="Ruby Quiz">the Ruby Quiz</a> puzzles.</p>

<p>What's interesting about LispForum is that it's new (almost 2
months old, only!) and it already has 296 members. There are already
443 posts about Common Lisp, though there don't appear to be many
Scheme fans. So we have yet another forum to recommend to newbie Lisp
programmers.</p>]]></description>
            <link>http://www.neverfriday.com/sweetfriday/2008/08/some-lisp-news-yes.html</link>
            <guid>http://www.neverfriday.com/sweetfriday/2008/08/some-lisp-news-yes.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Lisp</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Perl</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Ruby</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Scheme</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">lisp</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">news</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">php</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">python</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">ruby</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">scheme</category>
            
            <pubDate>Sun, 17 Aug 2008 23:52:06 -0500</pubDate>
        </item>
        
        <item>
            <title>Update on The Update</title>
            <description><![CDATA[<p><a href="http://neverfriday.com/images/blog/new_design_200808.png" title="Screenshot of the New Design"><img style="float: left; padding:5px" src="http://neverfriday.com/images/blog/new_design_200808_thumb.png" width="128" height="128" /></a>I overslept by a few hours but I decided to change the colour scheme. The stylesheet I uploaded last night was hideous, though good enough for testing. The new styles and page generation functions are up and I've switched the main page to PHP. <a href="http://neverfriday.com/foaf/create.php" title="FOAFCreator">The Friend of a Friend Creator</a> is also partially up. I need to add more of the FOAF specification stuff of course, but there's a fancy new date picker (Thanks jQuery-UI!)</p>

<p>The design is very retro, very 70s I would say...at least in terms of the colours. The striped background reminds me of the swimshorts I bought that also have racing stripes. Obviously the design is solid because of this, heh.</p>

<p>Some details...
  </p><ul>
    <li>The colour palette:
<a href="http://www.colourlovers.com/palette/483475/beach_bum" title="ColourLovers: Beach Bum Palette">Beach Bum</a></li>
    <li>The pattern: <a href="http://www.colourlovers.com/pattern/189404/Beach_Stripes" title="ColourLovers: Beach Stripes Pattern">Beach Stripes</a></li>
    <li>Image editor used for the logo: <a href="http://www.gimp.org/" title="The GNU Image Manipulation Program">The GIMP</a></li>
    <li>JavaScript magic framework: <a href="http://jquery.com/" title="jQuery: The Write Less, Do More JavaScript Library">jQuery</a></li>
    <li>The calendar date-picker comes from: <a href="http://ui.jquery.com/" title="jQuery UI">jQuery User Interface</a></li>
    <li>Version control: <a href="http://git.or.cz/" title="Git - Fast Version Control">GIT</a></li>
    <li>Text editor: <a href="http://www.gnu.org/software/emacs/" title="GNU Emacs">GNU Emacs</a></li>
    <li><a href="http://www.last.fm/user/OMouse/tracks" title="Last.FM: OMouse's recently played tracks">Music listened to</a>: Goldfrapp, Headlights, Seu Jorge, The Fratellis, Ladytron, Lightspeed Champion</li>
  </ul>
]]></description>
            <link>http://www.neverfriday.com/sweetfriday/2008/08/update-on-the-update.html</link>
            <guid>http://www.neverfriday.com/sweetfriday/2008/08/update-on-the-update.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">JavaScript</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Web</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">blog</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">design</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">emacs</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">eventcal</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">web</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">writing</category>
            
            <pubDate>Fri, 15 Aug 2008 16:30:49 -0500</pubDate>
        </item>
        
        <item>
            <title>Woah, an update</title>
            <description>So I decided to cave in and learn me some PHP. I&apos;m re-arranging the website to use PHP and improving the FOAFCreator. It&apos;s good for practicing my poor web design skills heh. I hope to have a better looking website up by tomorrow afternoon. </description>
            <link>http://www.neverfriday.com/sweetfriday/2008/08/woah-an-update.html</link>
            <guid>http://www.neverfriday.com/sweetfriday/2008/08/woah-an-update.html</guid>
            
            
            <pubDate>Fri, 15 Aug 2008 01:00:42 -0500</pubDate>
        </item>
        
        <item>
            <title>ShoesFest Today (weather&apos;s good for Sandals too!)</title>
            <description><![CDATA[<p>Today is <a href="http://ihack.us/2008/06/27/shoesfests-on-july-11th-and-july-25th/" title="7/11 & 7/25 ShoesFests with Why The Lucky Stiff">ShoesFest</a> and I am going to be trying to learn more about Ruby and Shoes but at the same time I will be hacking away at JavaScript and Java, improving Sandals.</p>

<p>That's the big surprise: Sandals. Sandals is going to be a clone of the Shoes toolkit except it will use a Java back-end named BeachHouse. The primary reason for this is because I need to practice my Java'ing, and the secondary reason is that I hope to eventually have JRuby and Jython using BeachHouse. So BeachHouse can be found in the <code>beachhouse/</code> sub-directory of the Sandals source code package.</p>

<p>Unfortunately, Sandals uses Java's Swing components for some parts but I'm going to try and code up my own drawing methods for the tricky things that Shoes can do. We'll see how that goes later on today.</p>

<p>Happy Shoes hackin'</p>

<p><em>Links:</em>
<ul>
<li><a href="http://github.com/why/shoes/tree/master" title="why's shoes at GitHub.com ">Shoes source code</a></li>
<li><a href="http://github.com/omouse/sandals/tree/master" title="omouse's sandals at GitHub.com">Sandals and BeachHouse source code</a></li>
<li><a href="http://article.gmane.org/gmane.comp.lib.shoes/1216" title="common questions as we head into shoesfest">Common Questions about Shoes and ShoesFest answered</a></li>
</ul>
</p>]]></description>
            <link>http://www.neverfriday.com/sweetfriday/2008/07/shoesfest-today-weathers-good.html</link>
            <guid>http://www.neverfriday.com/sweetfriday/2008/07/shoesfest-today-weathers-good.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Beach House</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">JavaScript</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Sandals</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">beachhouse</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">java</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">javascript</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">ruby</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">sandals</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">shoes</category>
            
            <pubDate>Fri, 25 Jul 2008 08:28:37 -0500</pubDate>
        </item>
        
        <item>
            <title>Emacs Poetry Snippet</title>
            <description><![CDATA[<p>The following is a snippet for <a href="http://www.latex-project.org/" title="LaTeX: document preparation system">LaTeX</a> mode in <a href="http://www.gnu.org/software/emacs/" title="GNU Emacs, most powerful text editor ever">Emacs</a>. The snippet uses the wonderful <a href="http://code.google.com/p/yasnippet/" title="YASnippet: TextMate-like snippets for Emacs">YASnippet</a> package and <a href="http://www.gnu.org/software/emacs/elisp/html_node/Time-Parsing.html#Time-Parsing" title="GNU Emacs Lisp Manual: Time Parsing">inserts the date</a> of the poem being written and a tiny bit of LaTeX around it.</p>

<pre lang="lisp">
;; LaTeX snippets
(yas/define-snippets
  'latex-mode ; Snippet is available when in LaTeX mode
  '(
    ("poem" ; Keyword that will trigger the snippet
     ; The snippet itself
     ; (Each newline can be replaced with \n to make the snippet fit on one line)
     "\\begin{verse}
\\poemtitle{${1:untitled}}
% Written on ${2:$(format-time-string \"%e %B %Y\")}
$0

\\end{verse}
"
     "begin verse ..." ; Name of the snippet
     nil)
  )
)</pre>]]></description>
            <link>http://www.neverfriday.com/sweetfriday/2008/07/emacs-poetry-snippet.html</link>
            <guid>http://www.neverfriday.com/sweetfriday/2008/07/emacs-poetry-snippet.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Emacs</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Writing</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">emacs</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">emacs lisp</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">latex</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">poems</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">poetry</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">snippet</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">tex</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">writing</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">yasnippet</category>
            
            <pubDate>Mon, 14 Jul 2008 19:28:34 -0500</pubDate>
        </item>
        
        <item>
            <title>Squeak Break</title>
            <description><![CDATA[<p>I have taken the last two days off as a break from writing Java and JavaScript, and finally took a proper look at <a href="http://www.squeak.org/" title="Squeak Smalltalk">Squeak</a>. It is impressive, and similar to working in Emacs in some ways (though much cooler).</p>

<p><a href="http://flickr.com/photos/omouse/2683663744/">The greatest feature of Squeak</a>, and Emacs (and Lisps), is that the documentation for the language and environment is always around and accessible. If I don't know how a function works in Emacs or which methods an object has in Squeak, I can look it up while working in them. This has saved me from asking many stupid questions on the #emacs and #squeak IRC channels, heh.</p>

<p>Anyway, the break was needed because JavaScript reminded me of Scheme, and I had forgotten how horrible coding in Java can be (e.g. RedundantType x = new RedundantType...). Squeak's user interfaces may inspire Sandals in some ways, we shall see.</p>

<p><a href="http://web.cecs.pdx.edu/%7Eblack/OOP/Tutorial/SqueakLanguageRef.html" title="Squeak Language Reference">Check out the Squeak Language Reference</a></p>]]></description>
            <link>http://www.neverfriday.com/sweetfriday/2008/06/squeak-break.html</link>
            <guid>http://www.neverfriday.com/sweetfriday/2008/06/squeak-break.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Emacs</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">JavaScript</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Squeak</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">emacs</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">java</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">javascript</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">sandals</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">squeak</category>
            
            <pubDate>Sat, 28 Jun 2008 17:00:08 -0500</pubDate>
        </item>
        
    </channel>
</rss>
