<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="/templates/default/atom.css" type="text/css" ?>

<feed version="0.3" 
   xmlns="http://purl.org/atom/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/">
    <link href="http://blog.jonnay.net/rss.php?version=atom0.3" rel="service.feed" title="Sacrificial Rabbit" type="application/x.atom+xml" />
    <link href="http://blog.jonnay.net/"                        rel="alternate"    title="Sacrificial Rabbit" type="text/html" />
    <link href="http://blog.jonnay.net/rss.php?version=2.0"     rel="alternate"    title="Sacrificial Rabbit" type="application/rss+xml" />
    <title mode="escaped" type="text/html">Sacrificial Rabbit</title>
    <tagline mode="escaped" type="text/html">Code.  Art.  Perversion.  Madness.</tagline>
    <id>http://blog.jonnay.net/</id>
    <modified>2009-01-29T18:17:17Z</modified>
    <generator url="http://www.s9y.org/" version="1.1">Serendipity 1.1 - http://www.s9y.org/</generator>
    <dc:language>en</dc:language>
    <info mode="xml" type="text/html">
        <div xmlns="http://www.w3.org/1999/xhtml">You are viewing an ATOM formatted XML site feed. Usually this file is inteded to be viewed in an aggregator or syndication software. If you want to know more about ATOM, please visist <a href="http://atomenabled.org/">Atomenabled.org</a></div>
    </info>

    <entry>
        <link href="http://blog.jonnay.net/archives/834-Kanji-Etymology-and-Grass-Script.html" rel="alternate" title="Kanji Etymology and Grass Script" type="text/html" />
        <author>
            <name>jonnay</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2009-01-29T18:17:17Z</issued>
        <created>2009-01-29T18:17:17Z</created>
        <modified>2009-01-29T18:17:17Z</modified>
        <wfw:comment>http://blog.jonnay.net/wfwcomment.php?cid=834</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.jonnay.net/rss.php?version=atom0.3&amp;type=comments&amp;cid=834</wfw:commentRss>
    
        <id>http://blog.jonnay.net/archives/834-guid.html</id>
        <title mode="escaped" type="text/html">Kanji Etymology and Grass Script</title>
        <content type="application/xhtml+xml" xml:base="http://blog.jonnay.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                The Japanese writing system has a long and deep history, tracing back to the scratching on <a href="http://en.wikipedia.org/wiki/Oracle_bone">Oracle Bones</a> in ancient China.  This depth of history thus carries a huge weight of etymology behind it.  This etymology is not just frivolous either.   The old forms of chinese are used in <a href="http://en.wikipedia.org/wiki/Seal_(Chinese)">Chop Seals</a> which are effectively signatures of legal documents.<br />
<br />
The difficult thing with the etymology of a given Kanji is actually quite problematic.  When Han'zi characters were imported to japan, they were (generally) imported as their &quot;traditional&quot; version.  During the communist revolution in China, the government simplified a great number of characters.  Thus, there are currently two versions of a given Chinese character.   For example, the character for &quot;see&quot; is 見 in Traditional Chinese, and Japanese, but 见 in Simplified Chinese.  To make it even more confusing, there are a few characters of exclusively Japanese origin (called <a href="http://www.sljfaq.org/w/kokuji">Kokuji</a>).  Finally, the Japanese went through their own simplification process.<br />
<br />
What this boils down to, is that if you are wanting to study the Etymology of a Kanji character, you might have a couple of places to look.  The first step is to take a peak at this great <a href="http://www.internationalscientific.org/CharacterASP/">Chinese etymology database put together by Richard Sears</a>.  You can feed it a simplified or traditional chinese character, and it will come back with results.   The only time that it doesn't come up with any results, is when you try and input a kokuji, or even just a <a href="http://www.sungwh.freeserve.co.uk/hanzi/j-s.htm">Traditional Chinese character that the Japanese simplified</a> (if that is the case, you can search for the kanji you are looking for at the link I just provided).<br />
<br />
On a completely different angle, the writing of Kanji has progressed in a different direction, which is to say, calligraphy.  I'll be talking about that more in another post, but I thought I would mention 2 great calligraphic dictionaries I have found:<br />
<br />
<a href="http://www.font.com.cn/fontzd/">http://www.font.com.cn/fontzd/</a><br />
<br />
<a href="http://www.9610.com/zidian/index.asp">http://www.9610.com/zidian/index.asp</a><br />
<br />
Both dictionaries are on Mainland China, which means they are exclusively simplified Chinese. This means that if you want to look up a traditional chinese character, you need to find its simplified equivalent.  This isn't too hard, because Thats where Richard Sears saves the day again.  It provides a good amount of information on any Chinese character you feed it.  Simplified or Traditional.<br />
<br />
Even if you are not studying Japanese (or Chinese!) you should go have a look at these sites, some of them have quite beautiful imagery, and it it is quite interesting to see the etymology of a few different characters.  If you need some example characters, you can use these (you'll just have to copy/paste them): <ul><li>Sun 日</li><li>Moon 月</li><li>Mountain 山</li><li>Stream 川</li><li>Tree 木</li><li>Gold 金</li><li>Soil 土</li></ul>  
            </div>
        </content>

        <dc:subject>art</dc:subject>
<dc:subject>history</dc:subject>
<dc:subject>japanese</dc:subject>
<dc:subject>kanji</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.jonnay.net/archives/833-I-need-your-Dicipline.html" rel="alternate" title="I need your Dicipline" type="text/html" />
        <author>
            <name>jonnay</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2009-01-26T04:04:56Z</issued>
        <created>2009-01-26T04:04:56Z</created>
        <modified>2009-01-26T04:04:56Z</modified>
        <wfw:comment>http://blog.jonnay.net/wfwcomment.php?cid=833</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.jonnay.net/rss.php?version=atom0.3&amp;type=comments&amp;cid=833</wfw:commentRss>
    
        <id>http://blog.jonnay.net/archives/833-guid.html</id>
        <title mode="escaped" type="text/html">I need your Dicipline</title>
        <content type="application/xhtml+xml" xml:base="http://blog.jonnay.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                I just finished a remix of Nine Inch Nails &quot;Dicipline&quot;.  It took <strong>maybe</strong> a total of 8 hours from start to finish, which is an incredibly short time.  <br />
<br />
As it just so happens, Mr. Reznor has released his entire catalog under a Creative Commons license.  This is pretty awesome for some pretty obvious reasons.  On top of that, for select tracks, he has provided either the multitrack format, or the component pieces.  <br />
<br />
Enjoy: [podcast: "http://www.jonnay.net/music/AcidTechno/Nine-Inch-Nails-Dicipline-Jonnays-Infinite-Acid-Mix.mp3"]  
            </div>
        </content>

        <dc:subject>creativecommons</dc:subject>
<dc:subject>mine</dc:subject>
<dc:subject>music</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.jonnay.net/archives/832-Domain-Expiration-Drools,-Albert-+-Traci-Rules..html" rel="alternate" title="Domain Expiration Drools, Albert + Traci Rules." type="text/html" />
        <author>
            <name>jonnay</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2008-12-17T16:19:26Z</issued>
        <created>2008-12-17T16:19:26Z</created>
        <modified>2008-12-17T16:19:26Z</modified>
        <wfw:comment>http://blog.jonnay.net/wfwcomment.php?cid=832</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.jonnay.net/rss.php?version=atom0.3&amp;type=comments&amp;cid=832</wfw:commentRss>
    
        <id>http://blog.jonnay.net/archives/832-guid.html</id>
        <title mode="escaped" type="text/html">Domain Expiration Drools, Albert + Traci Rules.</title>
        <content type="application/xhtml+xml" xml:base="http://blog.jonnay.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                As an early Christmas gift, I got my domain re-registered via Albert and Traci.<br />
<br />
Thanks you guys.  You rule!  
            </div>
        </content>

        <dc:subject>friends</dc:subject>
<dc:subject>meta</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.jonnay.net/archives/831-Talk-about-languishing!.html" rel="alternate" title="Talk about languishing!" type="text/html" />
        <author>
            <name>jonnay</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2008-11-24T18:23:00Z</issued>
        <created>2008-11-24T18:23:00Z</created>
        <modified>2008-11-24T18:25:33Z</modified>
        <wfw:comment>http://blog.jonnay.net/wfwcomment.php?cid=831</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.jonnay.net/rss.php?version=atom0.3&amp;type=comments&amp;cid=831</wfw:commentRss>
    
        <id>http://blog.jonnay.net/archives/831-guid.html</id>
        <title mode="escaped" type="text/html">Talk about languishing!</title>
        <content type="application/xhtml+xml" xml:base="http://blog.jonnay.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Boy have I not blogged in ... FOREVER!<br />
<br />
This will change.  
            </div>
        </content>

        <dc:subject>jonnay</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.jonnay.net/archives/830-You-cant-have-a-Community-without-a-Community..html" rel="alternate" title="You can't have a Community without a Community." type="text/html" />
        <author>
            <name>jonnay</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2008-06-25T20:48:17Z</issued>
        <created>2008-06-25T20:48:17Z</created>
        <modified>2008-06-25T20:48:17Z</modified>
        <wfw:comment>http://blog.jonnay.net/wfwcomment.php?cid=830</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.jonnay.net/rss.php?version=atom0.3&amp;type=comments&amp;cid=830</wfw:commentRss>
    
        <id>http://blog.jonnay.net/archives/830-guid.html</id>
        <title mode="escaped" type="text/html">You can't have a Community without a Community.</title>
        <content type="application/xhtml+xml" xml:base="http://blog.jonnay.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <div class="image right"><a href="http://xkcd.com/438/"><img src="http://blog.jonnay.net/uploads/Art/internet_argument.serendipityThumb.png"/></a><p><a href="http://xkcd.com/438/">XKCD</a> on an internet argument</p></div>I found this article via Architectures of Control from Adrian Short titled <a href="http://adrianshort.co.uk/2008/06/19/55">The Stepford Wives of Worcester Park</a> which had a lot of interesting things to say about communities, curfews, and law and order.  The real kicker is this paragraph:<blockquote>I’ve long believed that the real cure for disorder on our streets isn’t to scour them clean of humanity, but to fill them up with people of all ages, classes and “lifestyles”, to encourage diverse activities and to promote the notion that we as citizens have equal responsibilities to be tolerable and to tolerate the reasonable behaviour of others. The notion is as old as cities themselves and defines the very essence of citizenship.</blockquote>Which basically sums it up.  Which then refers to the title of my own blog entry.  You can't have a functioning community (a group of businesses and residences) without a community (a group of people working, interacting and living together).   At the same time, an online community has similar, but different problems from a property based community.    You have people interacting and possibly even working together, but they are so far removed from each other that arguments and misunderstandings run rampant. See the <a href="http://www.penny-arcade.com/comic/2004/03/19/">Internet Fuckwad Theory</a><br />
<br />
The piece of social-software that can successfully solve for that would be a killer app.  
            </div>
        </content>

        <dc:subject>ideas</dc:subject>
<dc:subject>social software</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.jonnay.net/archives/829-Canadian-DMCA-C-61.-Fight-it.-It-takes-10-mins..html" rel="alternate" title="Canadian DMCA (C-61).  Fight it. It takes 10 mins." type="text/html" />
        <author>
            <name>jonnay</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2008-06-13T17:42:27Z</issued>
        <created>2008-06-13T17:42:27Z</created>
        <modified>2008-06-13T17:45:48Z</modified>
        <wfw:comment>http://blog.jonnay.net/wfwcomment.php?cid=829</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.jonnay.net/rss.php?version=atom0.3&amp;type=comments&amp;cid=829</wfw:commentRss>
    
        <id>http://blog.jonnay.net/archives/829-guid.html</id>
        <title mode="escaped" type="text/html">Canadian DMCA (C-61).  Fight it. It takes 10 mins.</title>
        <content type="application/xhtml+xml" xml:base="http://blog.jonnay.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                And you don't even need a stamp.<br />
<br />
First, go here: <a href="http://www.copyrightforcanadians.ca/action/firstlook/">http://www.copyrightforcanadians.ca/action/firstlook/</a><br />
<br />
Then fill out the form.  Copy the preview result and print that out.  Finish the groovy webapp, then send off the hardcopy.<br />
<br />
Seriously, it takes 10 minutes.  It it accomplishes nothing, then you've only lost 600 seconds of your life, 1 sheet of paper and an envelope (not even a stamp!) <br />
<br />
But what happens if it could accomplish something?  
            </div>
        </content>

        <dc:subject>canada</dc:subject>
<dc:subject>copyright</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.jonnay.net/archives/828-For-Sale-One-Catbus..html" rel="alternate" title="For Sale:  One Catbus." type="text/html" />
        <author>
            <name>jonnay</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2008-05-09T16:06:40Z</issued>
        <created>2008-05-09T16:06:40Z</created>
        <modified>2008-05-09T16:06:40Z</modified>
        <wfw:comment>http://blog.jonnay.net/wfwcomment.php?cid=828</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.jonnay.net/rss.php?version=atom0.3&amp;type=comments&amp;cid=828</wfw:commentRss>
    
        <id>http://blog.jonnay.net/archives/828-guid.html</id>
        <title mode="escaped" type="text/html">For Sale:  One Catbus.</title>
        <content type="application/xhtml+xml" xml:base="http://blog.jonnay.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                If only I had a few bales of money... it appears that <a href="http://www.craigslist.org/about/best/alb/621862265.html">The catbus is (was?) for sale</a>.<br />
<br />
Damn.<br />
  
            </div>
        </content>

        <dc:subject>anime</dc:subject>
<dc:subject>burningman</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.jonnay.net/archives/827-The-Self-Control-Mental-Muscle.html" rel="alternate" title="The Self Control Mental Muscle" type="text/html" />
        <author>
            <name>jonnay</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2008-04-23T00:57:59Z</issued>
        <created>2008-04-23T00:57:59Z</created>
        <modified>2008-04-23T00:57:59Z</modified>
        <wfw:comment>http://blog.jonnay.net/wfwcomment.php?cid=827</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.jonnay.net/rss.php?version=atom0.3&amp;type=comments&amp;cid=827</wfw:commentRss>
    
        <id>http://blog.jonnay.net/archives/827-guid.html</id>
        <title mode="escaped" type="text/html">The Self Control Mental Muscle</title>
        <content type="application/xhtml+xml" xml:base="http://blog.jonnay.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Some Canadian researchers have gained insight into the nature of self control, and I find their conclusions fascinating.  In a nutshell what they have found is that as humans, our capacity for self control is limited and shallow.  <br />
<br />
These researchers concocted an experiment where they made the subjects watch animal snuff movies, and one group was told to control their expressions and emotions, and another group was not directed in any way.  Afterwards they were given a rapid colour matching test that requires a controlled response.  What these researchers found is that the group that were told to suppress their emotions did poorly on the test, compared to those who simply watched the movie.<br />
<br />
Apparently though, self control is like a muscle, and we can be trained to get more of it.  Just like running a marathon might make it hard for you to walk right after it, it will have a positive effect on your overall endurance. <br />
<br />
The interesting thing about this study implies about consumerism and addiction.  In the case of consumerism, it suggests that marketers should work harder to test the limits of self control, and put people in a state of &quot;self-control fatigue&quot;, as such people will be more prone to impulse buys.  This then means that we can expect even more tests of our self control to happen as marketers use this to their advantage.  The question then becomes: will we become stronger from a constant overload of self-control tests, or weaker?  Sure a runner who runs every day will become stronger.  But how about a runner who is forced to run all day, every day?  <br />
<br />
In the case of addiction this has all kinds of interesting implications.  It means that one can work on the general case of self control through simple, measurable exercises, and then use that to apply to the task of overcoming ones object of weakness.  This seems like a much stronger, and much more sustainable policy of dealing with addition, rather then through some kind of zero-tolerance style.<br />
<br />
Finally, if self control is workable like a muscle, it means that if you work on it daily, you can increase your leel of self control.  This of course, takes self control!  It's a win-win proposition.  Maybe in the future, I'll bblog about tools I have found that help one in such a venture. <br />
<br />
(Source: <a href="http://www.wfs.org/Dec-janfiles/Soc_trend_MA08.htm">The Futurist</a>)  
            </div>
        </content>

        <dc:subject>culture</dc:subject>
<dc:subject>psychology</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.jonnay.net/archives/826-Cruise-Control-and-Ant-OMG,-XML-DSLs...-WTF.html" rel="alternate" title="Cruise Control and Ant: OMG, XML DSLs... WTF?" type="text/html" />
        <author>
            <name>jonnay</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2008-01-16T04:52:17Z</issued>
        <created>2008-01-16T04:52:17Z</created>
        <modified>2008-01-20T23:20:50Z</modified>
        <wfw:comment>http://blog.jonnay.net/wfwcomment.php?cid=826</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://blog.jonnay.net/rss.php?version=atom0.3&amp;type=comments&amp;cid=826</wfw:commentRss>
    
        <id>http://blog.jonnay.net/archives/826-guid.html</id>
        <title mode="escaped" type="text/html">Cruise Control and Ant: OMG, XML DSLs... WTF?</title>
        <content type="application/xhtml+xml" xml:base="http://blog.jonnay.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                I've been playing with Cruise Control and Ant, trying to get a reasonable Continuous Integration server up and running.  For those that don't know, a Cruise Control is a server that takes your source code, and tries to build it until you hit the big red stop button, or the heat death of the universe.  Ant is a piece of software that performs the actual building of other software.<br />
<br />
And by the time the heat death of the universe arrives, I think I may have it all working, and in a semi intuitive way.<br />
<br />
To set up Cruise Control, and Ant for that matter, you need to use XML.  XML is an alright, if not exceedingly and outrageously verbose method for describing in excruciating detail data, as well as meta-data&mdash;which is to say&mdash;data about data. (Whew!)  The thing with XML, is that it is a flaming shit sack of metric fail when it comes to describing processes.  Processes like the building complex bases of source code, executing them on very finicky server software stacks, launching automated functional tests against them, with each process (build, execute, test) running in its own separate virtual machine are a royal pain in the ass to describe in XML.  Again with the flaming sack of fail.<br />
<br />
I find it very fitting that in the <a href="http://www.google.com/search?q=fail&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official">top 10 search results for fail</a>, Ant documentation comes up.<br />
<br />
Ant was built to fulfill a very specific need, which is, to help the process of compiling and bundling Java software together.  It does an alright job at this, not stellar mind you, but alright.  If you happen to be doing exactly what most other Java programmers are doing, deploying roughly what they are deploying, then you could do a lot worse then Ant.  But the second you add any kind of complexity into the pile, it starts to show its warts.  It's like playing with a plastic lightsaber; it looks great when you are just waving it around in the dark, but once you actually hit something, sparks don't fly, it just goes snap and it ceases to be any fun.  Now you just have broken plastic.<br />
<br />
The problem with Ant, Cruise Control and building software in general, is that the process is not linear.  While it may be useful to have a descriptive language like XML to describe dependencies between Java files, it is absolutely horrific if you need to do things like conditions (if the build failed, then send a nasty gram to the developer and a 50K volt shock to his chair) or do complicated actions (munge this file to make it actually XML).<br />
<br />
A lot of its complexity lies in its dependence on XML as a Domain Specific Language.  To make a human languages analogy, it's like learning to speak Esperanto in order to practice Zen Buddhism&mdash;one perhaps feels that if they just took up Japanese instead, they might have gotten the job done a lot quicker, with less mucking about.<br />
<br />
What strikes me as absolutely insane about Ant, is that when you have a reasonably hard job of working some behavior into your build script, solutions like &quot;run XSL transformations on your Ant Script to give it behavior&quot; are floated about, all with seemingly a straight face.  <br />
<br />
All in all these are good tools if you want to look like you are working, and enjoy tinkering around with XML, but if you are working towards the goal of building rock-solid, stable, testable software that in any way deviates from the norm, with the intent of releasing a maintainable, easily understood system in a reasonable amount of time, well, that tool isn't built yet (to my knowledge).  Rake, being a ruby build tool written in ruby, might be close though.<br />
<br />
A good Build Tool would be one that looks similar to, or is just an extension of the language you happen to work in, thus making the entire concept of a separate integration server redundant.  Instead of having to bundle the build tool with the integration server, you end up allowing the user to write (in relatively few lines of easily abstracted code) the loop which is the crux of the Continuous Integration server inside of the build tool.<br />
<br />
I bet it's built in Scheme.  
            </div>
        </content>

        <dc:subject>code</dc:subject>
<dc:subject>java</dc:subject>
<dc:subject>rant</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.jonnay.net/archives/825-With-apologies-to-Shaftoe.html" rel="alternate" title="With apologies to Shaftoe" type="text/html" />
        <author>
            <name>jonnay</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2007-11-28T04:54:59Z</issued>
        <created>2007-11-28T04:54:59Z</created>
        <modified>2007-11-28T04:54:59Z</modified>
        <wfw:comment>http://blog.jonnay.net/wfwcomment.php?cid=825</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.jonnay.net/rss.php?version=atom0.3&amp;type=comments&amp;cid=825</wfw:commentRss>
    
        <id>http://blog.jonnay.net/archives/825-guid.html</id>
        <title mode="escaped" type="text/html">With apologies to Shaftoe</title>
        <content type="application/xhtml+xml" xml:base="http://blog.jonnay.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <pre>This is my emacs.
There are many like this one, but
This emacs is mine.</pre>  
            </div>
        </content>

        <dc:subject>emacs</dc:subject>
<dc:subject>zen</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.jonnay.net/archives/824-New-Selenemacs-Packages.html" rel="alternate" title="New Selenemacs Packages" type="text/html" />
        <author>
            <name>jonnay</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2007-07-10T05:19:13Z</issued>
        <created>2007-07-10T05:19:13Z</created>
        <modified>2007-07-10T05:19:13Z</modified>
        <wfw:comment>http://blog.jonnay.net/wfwcomment.php?cid=824</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.jonnay.net/rss.php?version=atom0.3&amp;type=comments&amp;cid=824</wfw:commentRss>
    
        <id>http://blog.jonnay.net/archives/824-guid.html</id>
        <title mode="escaped" type="text/html">New Selenemacs Packages</title>
        <content type="application/xhtml+xml" xml:base="http://blog.jonnay.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                New Selenemacs packages are here:<ul><li><a href="http://blog.jonnay.net/plugin/dlfile_13">selenemacs.js</a></li><li><a href="http://blog.jonnay.net/plugin/dlfile_12">selenemacs.el</a></li></ul>I fixed some of the more obvious and glaring bugs. <br />
<br />
For now the Selenemacs main page will be <a href="http://blog.jonnay.net/archives/822-Automated-Web-Developer-Tests-using-Selenium,-Emacs,-and-MozRepl.html"> Here</a>.  If/when there is more interest, I'll put up a proper SVN repository and a page on bunnywiki.  
            </div>
        </content>

        <dc:subject>code</dc:subject>
<dc:subject>cool</dc:subject>
<dc:subject>emacs</dc:subject>
<dc:subject>javascript</dc:subject>
<dc:subject>mine</dc:subject>
<dc:subject>testing</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.jonnay.net/archives/823-More-Moz-Repl-goodness.html" rel="alternate" title="More Moz Repl goodness" type="text/html" />
        <author>
            <name>jonnay</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2007-07-04T03:47:57Z</issued>
        <created>2007-07-04T03:47:57Z</created>
        <modified>2007-07-04T03:47:57Z</modified>
        <wfw:comment>http://blog.jonnay.net/wfwcomment.php?cid=823</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.jonnay.net/rss.php?version=atom0.3&amp;type=comments&amp;cid=823</wfw:commentRss>
    
        <id>http://blog.jonnay.net/archives/823-guid.html</id>
        <title mode="escaped" type="text/html">More Moz Repl goodness</title>
        <content type="application/xhtml+xml" xml:base="http://blog.jonnay.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>In my <a href="http://blog.jonnay.net/archives/822-Automated-Web-Developer-Tests-using-Selenium,-Emacs,-and-MozRepl.html">previous entry</a>, I described how one could set up selenium to runs tests from emacs, via the Moz REPL.  The most painful part of all of that is setting up the REPL to run.  After every firefox startup, you have to manually go to tools menu, and manually select 'MozLab' and then 'Start REPL'.  YUCK.</p>

<p>It would be nice if you could somehow automatically run javascript on Firefox startup.</p>

<p>Enter <a href="http://forums.mozillazine.org/viewtopic.php?t=556229">UserChrome.js</a>.  With a little more polish, some documentation, and something more then a MozillaZine forum posting for a website; this little extension is poised to become the new GreaseMonkey.  It will be the GreaseMonkey for the <b>hard core</b>.</p>

<p>Once you have installed the extension, you can now run Javascript on the creation of every new Mozilla window (even sub windows like prefs, downloads, etc.) or just the main window.  From this point, it is almost painless to start the REPL:</p>

<pre>
// Anonymous function application to 
(function(){
	var repl = Components.classes["@hyperstruct.net/mozlab/mozrepl;1"].getService(Components.interfaces.nsIMozRepl);
	if (repl &&amp; (!repl.isActive()))
	{
		repl.start(4242);
	}
})();
</pre>

This gives you a good example of how to interact with other Firefox plugins/addons through Javascript.   
            </div>
        </content>

        <dc:subject>code</dc:subject>
<dc:subject>cool</dc:subject>
<dc:subject>ideas</dc:subject>
<dc:subject>mozilla</dc:subject>
<dc:subject>test</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.jonnay.net/archives/822-Automated-Web-Developer-Tests-using-Selenium,-Emacs,-and-MozRepl.html" rel="alternate" title="Automated Web Developer Tests using Selenium, Emacs, and MozRepl" type="text/html" />
        <author>
            <name>jonnay</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2007-06-26T05:04:48Z</issued>
        <created>2007-06-26T05:04:48Z</created>
        <modified>2007-07-10T05:12:05Z</modified>
        <wfw:comment>http://blog.jonnay.net/wfwcomment.php?cid=822</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://blog.jonnay.net/rss.php?version=atom0.3&amp;type=comments&amp;cid=822</wfw:commentRss>
    
        <id>http://blog.jonnay.net/archives/822-guid.html</id>
        <title mode="escaped" type="text/html">Automated Web Developer Tests using Selenium, Emacs, and MozRepl</title>
        <content type="application/xhtml+xml" xml:base="http://blog.jonnay.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                One of the biggest hassles with web development is the lack of any real test harness.  I have lamented about this before, especially when it comes to testing such ephemerals as an elements height, width, etc.  So far the best tests I have run into are your two eyes, which is fine when you are working and testing on one discreet component... but web sites, especially the ones I work on, tend to be more then just 1 or two discreet components.<br />
<br />
Enter <a href="http://www.openqa.org/selenium-ide/">Selenium IDE</a>.  The Selenium IDE provides you with a method to record and execute automated tests of your website.  It is easy to use, and hella cool.  It can test things like the existence of an element, the text contained inside of an element, its width, height, position, etc.  Using selenium, you can build yourself unit tests.  This is especially useful and powerful if you happen to be one of the unlucky bastards faced with writing code in JSTL, SMARTY, or some other templating-language-that-needs-to-die.  Now you finally have unit tests.<br />
<br />
Using Selenium, the testing process is a little more automated.  More importantly, you can build a series of regression tests, to ensure the stability of your web application.<br />
<br />
There is another piece of the web-development puzzle here, and that is the <a href="http://dev.hyperstruct.net/mozlab/wiki/MozRepl">Moz Repl</a>.  An REPL is a Read Eval Print Loop, basically an interactive command interpreter that you can feed commands to, and experiment with.  the Moz REPL is a javascript version, that lets you inspect and modify any Javascript object in the browser.  This REPL is telnet enabled, in fact, there is even a way to make Emacs talk to this REPL, so you can poke around the browser from within your text editor.  This is amazingly powerful in two regards:<ol><li>you can script your browser from emacs</li><li>you can edit code inside emacs, and send it right to the javascript interpreter for testing, and evn install it on the current page</li></ol>The existence of this REPL is what finally pushed me to stop using Jedit and move to using Emacs incedentally enough.<br />
<br />
So the final piece of the puzzle is something I call Selenemacs.  It is a global emacs minor mode, in conjunction with some simple javascript that will script selenium, and provide you with feedback on whether or not its tests pass or fail.<br />
<br />
<b>Update 2007-07-09: </b> new versions (Version 0.2) added <br />
Here are the two files: <br />
<ul><li><a href="http://blog.jonnay.net/plugin/dlfile_13">selenemacs.js</a></li><li><a href="http://blog.jonnay.net/plugin/dlfile_12">selenemacs.el</a></li></ul><br />
<br />
Here is how you use them:  <br />
First, download the MozREPL and Selenium IDE extensions for firefox<br />
Edit selenemacs.el to make sure that the variable selenemacs-js-file points to selenemacs.js<br />
Enable the MozRepl (Tools-&gt;MozLab-&gt;StartREPL)<br />
Load up selenemacs.el inside emacs (load-file "path/to/selenemacs.el") works<br />
Enable the minor mode selenemacs-minor-mode<br />
Record your test in SeleniumIDE<br />
Use the emacs command selenemacs-execute-test to launch the test, its shortcut is C-c C-s C-e<br />
Emacs tells you if the test passed or failed.<br />
<br />
The idea here is that you write your test, and stop using your eyes to test the results of your coding to the browser, but instead use Selenium.  This is especially good if you are doing multi-stage and repetitive like testing logins, searches, etc.  You can code and test right inside emacs, and only have to switch to the browser to verify that your tests actually passed.<br />
<br />
These files also show an interesting way to script mozilla through emacs.  The next step of course is to get emacs to start interacting with Firebug.<br />
<br />
  
            </div>
        </content>

        <dc:subject>emacs</dc:subject>
<dc:subject>firefox</dc:subject>
<dc:subject>hacks</dc:subject>
<dc:subject>javascript</dc:subject>
<dc:subject>mozilla</dc:subject>
<dc:subject>test</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.jonnay.net/archives/820-Emacs-and-UTF-8-Encoding.html" rel="alternate" title="Emacs and UTF-8 Encoding" type="text/html" />
        <author>
            <name>jonnay</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2007-06-14T03:32:01Z</issued>
        <created>2007-06-14T03:32:01Z</created>
        <modified>2007-06-14T03:32:01Z</modified>
        <wfw:comment>http://blog.jonnay.net/wfwcomment.php?cid=820</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://blog.jonnay.net/rss.php?version=atom0.3&amp;type=comments&amp;cid=820</wfw:commentRss>
    
        <id>http://blog.jonnay.net/archives/820-guid.html</id>
        <title mode="escaped" type="text/html">Emacs and UTF-8 Encoding</title>
        <content type="application/xhtml+xml" xml:base="http://blog.jonnay.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Want to get UTF-8 (unicode) to work on Emacs but don't know where to start?<br />
<br />
Snarf this, and toss it in your .emacs.  <br />
<br />
<pre>;;;;;;;;;;;;;;;;;;;;
;; set up unicode
(prefer-coding-system       'utf-8)
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
;; This from a japanese individual.  I hope it works.
(setq default-buffer-file-coding-system 'utf-8)
;; From Emacs wiki
(setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING))
;; MS Windows clipboard is UTF-16LE 
(set-clipboard-coding-system 'utf-16le-dos)</pre>The part about the clipboard-coding-system is essential for MS windows users who want to transfer content back and forth between windows apps and Emacs.<br />
<br />
  
            </div>
        </content>

        <dc:subject>emacs</dc:subject>
<dc:subject>i18n</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.jonnay.net/archives/819-State-of-the-Jonnay-part-1-Managment,-Emacs-and-Japanese.html" rel="alternate" title="State of the Jonnay (part 1): Managment, Emacs and Japanese " type="text/html" />
        <author>
            <name>jonnay</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2007-05-05T19:01:21Z</issued>
        <created>2007-05-05T19:01:21Z</created>
        <modified>2007-05-05T19:01:21Z</modified>
        <wfw:comment>http://blog.jonnay.net/wfwcomment.php?cid=819</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.jonnay.net/rss.php?version=atom0.3&amp;type=comments&amp;cid=819</wfw:commentRss>
    
        <id>http://blog.jonnay.net/archives/819-guid.html</id>
        <title mode="escaped" type="text/html">State of the Jonnay (part 1): Managment, Emacs and Japanese </title>
        <content type="application/xhtml+xml" xml:base="http://blog.jonnay.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                It has been a long time since I last wrote an entry.  There are 2 major forces at work here:<ol><li>I don't have enough time anymore to write entries</li><li>I twitter stuff that makes good blog entries, because it takes far less time</li></ol>So I plan on making it up to all my readers, and give you a brain dump of where I am, what I am doing and what I am thinking.  <h2>Management</h2>Management is posing to be an exciting, interesting and challenging&mdash;erm&mdash;challenge.  I am slowly starting to get a handle of the job, the responsibilities, etc.  The other seniors on the team have been a big help with this.  I just keep plugging along and try to learn as much as I can from the people around me.  <br />
<br />
As part of being I have received a lappy by the evil masters, which is as good, if not better than both my desktop at work and at home.  This is hella cool.  This of course necessitates the re installation of the &quot;software server stack of doom&quot;, code editor, utilities, productivity tools, etc. etc. etc.  This is a perfect opportunity for me to make a jump that I have been fighting for a LONG time...<h2>Emacs</h2>I started working with emacs last year, mostly to edit and work with scheme code.  What this meant was that I would goto work, edit code in jEdit and then come home, and edit code in emacs.  I am a relatively proficient editor-of-code with jEdit, but emacs has always felt really uncomfortable.  But since I have to re-install everything anyway, I thought that this would be the perfect time to take the plunge and start using emacs for <b>everything</b>,  work and personal projects.  I found a relatively decent window distribution, so it is time to make a go of it.  I've since found some cool tools, including a Javascript REPL for emacs, as well as instructions to connect Oracle to emacs.  The crux here is that I am going to take a bit of a performance hit at work while I get ramped up on working with emacs, but this will also mean I have a good 4-12 hours (depending on my day) to spend on emacs.   Basically its time to approach emacs by jumping right into it.  Kind of like the best way to learn a whole new language...<h2>Japanese</h2>Learning Japanese has been going well.  I have a small selection of manga that I am slowly going through and reading.  There is a lot that I miss, but there is a lot to pick up on as well, due to context.  I am up into 500 kanji now, with only a 1-4% failure rate.  It is really interesting to see a chunk of Japanese text and actually understand a little about what is trying to be communicated on.  I still maintain that Japanese is going to be a long-term learning adventure of 10 years.  Thank god for my PDA and flashcard software (<a href="http://twinkle.sourceforge.net/">twinkle</a>), without it there would be no way I could even think about trying to learn this crazy wonderful language.  Twinkle lets me define my own flashcards, and practice all of my Japanese wherever and whenever.  Very handy for the commute to and from work.  
            </div>
        </content>

        <dc:subject>emacs</dc:subject>
<dc:subject>japanese</dc:subject>
<dc:subject>management</dc:subject>
<dc:subject>work</dc:subject>

    </entry>
</feed>