<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>Ceci n&apos;est pas un blog</title>
   <link rel="alternate" type="text/html" href="http://english.kakeboksen.org/" />
   <link rel="self" type="application/atom+xml" href="http://english.kakeboksen.org/atom.xml" />
   <id>tag:english.kakeboksen.org,2008://2</id>
   <updated>2007-09-05T08:17:48Z</updated>
   <subtitle>Chasing sanity in an insane world, armed with four guitars and a seriously dysfunctional taste in music.</subtitle>
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.2-en</generator>


<entry>
   <title>Nikken replies?</title>
   <link rel="alternate" type="text/html" href="http://english.kakeboksen.org/2004/02/nikken_replies.html" />
   <id>tag:english.kakeboksen.org,2004://2.305</id>
   
   <published>2004-02-16T16:44:02Z</published>
   <updated>2007-09-05T08:17:48Z</updated>
   
   <summary>I&apos;m still waiting for Nikken to reply to my email of Jan 29, but not holding my breath while doing so. While waiting, I found that Jarle had done some research regarding one comment to his blog entry about the...</summary>
   <author>
      <name>morten</name>
      <uri>http://www.kakeboksen.org/</uri>
   </author>
   
      <category term="Nikken" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://english.kakeboksen.org/">
      <![CDATA[I'm still waiting for Nikken to reply to my email of Jan 29, but not holding my breath while doing so. While waiting, I found that Jarle had done some research regarding one comment to his blog entry about the cease & desist email. Read all about that in "<a href="http://weblog.bergersen.net/archives/000811.html">Nikken replies?</a>" and you'll probably laugh as much as I did! :)]]>
      
   </content>
</entry>

<entry>
   <title>Nikken tries to censor blog comments</title>
   <link rel="alternate" type="text/html" href="http://english.kakeboksen.org/2004/01/nikken_tries_to_censor_blog_co.html" />
   <id>tag:english.kakeboksen.org,2004://2.304</id>
   
   <published>2004-01-29T09:45:48Z</published>
   <updated>2007-09-05T08:18:00Z</updated>
   
   <summary>As I mentioned yesterday, Nikken emailed Jarle D. Bergersen and me asking us to remove all our writings about Nikken by February 11. Their response to my reply was seemingly that they were not concerned with my writings at all,...</summary>
   <author>
      <name>morten</name>
      <uri>http://www.kakeboksen.org/</uri>
   </author>
   
      <category term="Nikken" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://english.kakeboksen.org/">
      <![CDATA[As I "mentioned":http://english.kakeboksen.org/archives/000310.html yesterday, Nikken emailed Jarle D. Bergersen and me asking us to remove all our writings about Nikken by February 11.

Their response to my reply was seemingly that they were not concerned with my writings at all, although they did not state it specifically. Instead they want two comments to Jarle's entry "Nikken":http://weblog.bergersen.net/jarle/arkiv/000447.html#comments in his Norwegian blog deleted. He's currently keeping his English blog updated with how the case develops, read the latest about it in his <a href="http://weblog.bergersen.net/archives/000730.html">Nikken Update</a>.

I'll be sending Nikken's Compliance department another email today asking them to dismiss the cease & desist request in my case, and once I get a reply I'll update the blog.]]>
      
   </content>
</entry>

<entry>
   <title>Cease &amp; Desist, but not really</title>
   <link rel="alternate" type="text/html" href="http://english.kakeboksen.org/2004/01/cease_desist_but_not_really.html" />
   <id>tag:english.kakeboksen.org,2004://2.303</id>
   
   <published>2004-01-28T10:02:39Z</published>
   <updated>2007-09-05T08:18:20Z</updated>
   
   <summary>Yesterday was a fun day. I got up, checked my email, and found this interesting one from somebody called &quot;Compliance&quot;. Behind that name you&apos;ll find Nikken UK Ltd&apos;s Compliance Department, and they wanted to tell me that I wasn&apos;t allowed...</summary>
   <author>
      <name>morten</name>
      <uri>http://www.kakeboksen.org/</uri>
   </author>
   
      <category term="Nikken" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://english.kakeboksen.org/">
      <![CDATA[Yesterday was a fun day.  I got up, checked my email, and found this interesting one from somebody called "Compliance".  Behind that name you'll find Nikken UK Ltd's Compliance Department, and they wanted to tell me that I wasn't allowed to market Nikken's products on the internet.  If you can read Swedish the complete email is found in "Jarle's blog entry":http://weblog.bergersen.net/archives/000728.html about it since he's actually the one supposed to get it.

I had a slight problem understanding why they thought my name was Jarle and how on earth "<a href="http://home.online.no/~warnckew/writings/english/nikken/">My Nikken Encounter</a>" could be called "marketing Nikken's products". Not only were they referring to "an earlier entry":http://weblog.bergersen.net/jarle/arkiv/000447.html in Jarle's blog, but they also referred to my writeup. And they asked me to remove all information I've written about Nikken by February 11.

I forwarded a copy of it to Jarle since he was obviously an intended recipient, and then I wrote a reply to Nikken telling them that I wasn't Jarle, that what I had written can hardly be called "marketing", and that they could mail me back with any specific errors in what I have written.

I got a reply before the end of the day explaining that the Cease & Desist email was meant to be to Jarle.  They didn't say they were sorry they had asked me to remove all my writings and they didn't say they were sorry they hadn't researched a bit more and figured out who I am.  I'm quite happy that I never intended to comply to their request since if I did, all my writings would now have been removed even though they never intended to ask me to do that.

As I'm a bit delayed in writing about this it's been mentioned in other blogs as well.  Jarle has of course got "Nikken Bullies":http://weblog.bergersen.net/archives/000728.html with a few comments. It's also mentioned by <a href="http://www.jacobsen.no/anders/blog/sideblog/archives/2004_01.html#000910">Anders Jacobsen</a>, <a href="http://db.org/blog/archive/2004/01/28/nikken/ ">Bob</a>, <a href="http://rc6.org/node/view/1133">Remco</a>, <a href="http://www.virtuelvis.com/archives/153.html">Arve</a> and <a href="http://www.elfworld.org/marble/vis_dag.php?id=157">Elf</a>.

[Update 2004-01-29: Added link to Elf's blog]]]>
      
   </content>
</entry>

<entry>
   <title>The inconsistent instanceof operator</title>
   <link rel="alternate" type="text/html" href="http://english.kakeboksen.org/2004/01/the_inconsistent_instanceof_op.html" />
   <id>tag:english.kakeboksen.org,2004://2.302</id>
   
   <published>2004-01-11T14:41:49Z</published>
   <updated>2007-09-05T08:18:29Z</updated>
   
   <summary>Last year I helped an ex-colleague of mine debug a problem with identifiying objects passed to a function in an iframe using the instanceof operator. The problem was that Microsoft Internet Explorer didn&apos;t give the expected results and we had...</summary>
   <author>
      <name>morten</name>
      <uri>http://www.kakeboksen.org/</uri>
   </author>
   
      <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://english.kakeboksen.org/">
      <![CDATA[Last year I helped an ex-colleague of mine debug a problem with identifiying objects passed to a function in an iframe using the <code>instanceof</code> operator. The problem was that Microsoft Internet Explorer didn't give the expected results and we had to code our way around it. I've been wondering ever since about when theory and practice coincide, and so I created a testcase and tested whether the <code>instanceof</code> operator works as it should.]]>
      <![CDATA[First a quick theory brush up: When you've got an object and want to find out what class it was created from you use the <code>instanceof</code> operator. One way to do it can be like this:
<pre><code>if(myVariable instanceof myClass) { ... }</code></pre>
The test should be true when <code>myVariable</code> is an instance (object) of the class <code>myClass</code>. To create an object (an instance) from a class you use the <code>new</code> operator, e.g: <code>myVariable = new myClass();</code>

The idea behind the <code>instanceof</code> operator is that it provides the possibility to test which class an object originated from, and thereby use only methods and properties you know exist in instances of that class.  In other words, you can write a method that does different things depending upon which class it belongs to, which in turn can result in more powerful code that's still easy to maintain.

This is a really good idea, but it's not consistently implemented. As I found out earlier MSIE(Microsoft Internet Explorer) is unable to test objects sent as arguments from another window. The question I sought answered was whether there existed other cases where the tests failed, and if so, which browsers were affected.

I created a <a href="http://www.kakeboksen.org/javascript/tester/instanceof-number/frameset.html">testcase</a> that consists of the original problem case (#1) and two variations. The first test calls a function in a (different) window passing a local variable as the argument. As I mentioned earlier this is where MSIE(Microsoft Internet Explorer) fails when the function is in another window. In the test the function is called twice, first a primitive number value (<code>var notNumberClass = 8;</code>) is passed and the test should tell it's not an instance of any of the basic classes. The second time an object created from the <code>Number</code> class is passed (<code>var isNumberClass = new Number(8);</code>) and it should be identified as being an instance of the <code>Number</code> and <code>Object</code> classes (remember that all classes in JavaScript are descendants of the <code>Object</code> class).

The first variation (case #2) tries to turn the problem around by calling a function local to the testcase window/frame while the argument moves around. Again the test is done with both a primitive number value and an instance of the <code>Number</code> class, and the results should be the same as in the first case.  I created this second test because I wasn't sure whether the browsers that didn't correctly tackle case #1 would show the same symptoms in the second case. According to my test results the browsers seem to fail in the exact same way in both cases.

The last case (#3) moves both the function and the argument around, but the variable being tested is always local to the window containing the function. None of the browsers I tested had any problems with this test.

I ran the tests with four browsers:

* Microsoft Internet Explorer 6
* Mozilla 1.5
* Opera 7.23
* Konqueror 3.1-15 Red Hat

Mozilla 1.5 is the only browser that doesn't fail on any of the three tests. The other three browsers all get test #3 right, but denies that the object is an instance of the classes <code>Number</code> and <code>Object</code> in test #1 and #2. I've yet to read enough of the ECMA-262 spec to understand why they behave like they do, but as far as I understand the definition of the <code>instanceof</code> operator it's rather surprising that that it shouldn't work across windows/frames.

[Note: This is an English translation of an article I wrote for my Norwegian blog. If you'd prefer the Norwegian version, visit <a href="http://www.kakeboksen.org/javascript/arkivet/000306.html">Instanser av klasser, instanceof-operatoren</a>]]]>
   </content>
</entry>

<entry>
   <title>Getting sex in JavaScript</title>
   <link rel="alternate" type="text/html" href="http://english.kakeboksen.org/2003/12/getting_sex_in_javascript.html" />
   <id>tag:english.kakeboksen.org,2003://2.301</id>
   
   <published>2003-12-17T10:51:43Z</published>
   <updated>2007-09-05T08:18:39Z</updated>
   
   <summary>Something I had forgotten I wrote. It&apos;s from a thread that once existed over on Experts Exchange. Enjoy! From: ********* Title: &quot;JavaScript and Sex&quot; Points: 5 Date: Monday, March 13 2000 - 01:48PM CET Can anyone tell me how I...</summary>
   <author>
      <name>morten</name>
      <uri>http://www.kakeboksen.org/</uri>
   </author>
   
      <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://english.kakeboksen.org/">
      <![CDATA[Something I had forgotten I wrote. It's from a thread that once existed over on <a href="http://www.experts-exchange.com/">Experts Exchange</a>. Enjoy!
<blockquote>

From: ********* Title: "JavaScript and Sex"
Points: 5 Date: Monday, March 13 2000 - 01:48PM CET

Can anyone tell me how I can use my skills in JavaScript to get more girls/sex please.
Thanks in advance
****</blockquote>

From: nettrom  
Date: Monday, March 13 2000 - 01:40PM CET

Unfortunately the methods needed to get girls/sex in JavaScript are dependant upon the DOM of each girl.  Therefore, you will have to make sure you sniff what version of said DOM each girl has before you try to get them.  If you do not do this the result is a fatal error.  

Therefore, always start each session with:
<pre><code>var mySelf = new Me();
var myGirl = new Girl();
if(myGirl.DOMversion < 2) {
  myGirl.leave(); // too old DOM version
}</code></pre>
Then you can get the girl, and have sex.  It's fairly straightforward, the DOM 2 really helped since it has methods for everything you'd ever want to do.  In DOM 1, as you might know, the leave() method might make the girl angry, and you'll exit with a fatal error.

The natural next step of your session is to get the girl.  If you forget to do that she'll leave when you try to have sex with her.
<pre><code>if(myGirl.stillPresent) {
  // girl is still with us
  myGirl.get(); // get girl!
}</code></pre>
Now that we've correctly gotten the girl we can undress and have sex. Remember to set the sex.safe property to 'true' first, or else you might end up with another fatal error.  The previous lines then become:
<pre><code>if(myGirl.stillPresent) {
  // girl is still with us
  myGirl.get(); // get girl!
  mySelf.undress();
  myGirl.undress();
  sex.safe = true; // must rember to have safe sex!
  myGirl.getOnBed();
  mySelf.getOnBed();
  mySelf.haveSex(myGirl);
}</code></pre>
It's as easy as that.

Tomorrow's lesson: How to have even better sex with the new DOM v3!]]>
      
   </content>
</entry>

<entry>
   <title>The Sisterchicks...</title>
   <link rel="alternate" type="text/html" href="http://english.kakeboksen.org/2003/11/the_sisterchicks.html" />
   <id>tag:english.kakeboksen.org,2003://2.300</id>
   
   <published>2003-11-24T10:19:23Z</published>
   <updated>2007-09-05T08:18:49Z</updated>
   
   <summary>...go searching for their brains in several wrong places, hoping that the Lord will help them out and mark the spot with an X. Let me clear things up at the start: this book review will spoil the exciting parts...</summary>
   <author>
      <name>morten</name>
      <uri>http://www.kakeboksen.org/</uri>
   </author>
   
      <category term="Misc" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://english.kakeboksen.org/">
      ...go searching for their brains in several wrong places, hoping that the Lord will help them out and mark the spot with an X.

Let me clear things up at the start: this book review will spoil the exciting parts of the story. If you want to read the book and be surprised by what happens, stop reading my review.
      <![CDATA[On the other hand, it's not really difficult to figure out the various "surprises" in the story way before they ever happen. One reason may be that the whole book can be summarized as follows:

One woman in her mid-fourties decide that it's time to go find her family in Finland and subsequently rips her early-fourties friend up by her roots and drag her along for the ride. [Insert early-fourties-woman running around going crazy wondering how on earth the world will continue to revolve without her] The two women get on their plane knowing exactly nothing about the countries they're about to visit, much less how travel works, and end up exposing their ignorant tourist habits in several boring ways. [Insert early-fourties-woman running around going crazy wondering how on earth they'll survive a cab drive in Helsinki]

Both women obviously flunked genealogy class and wouldn't find their mom even if she was in the same room as them, but luckily a nice guy working for the Finnish government arrives and spends tax payer's money finding the long lost relative. [Insert women in their fourties running around screaming "They found her, they found her"] Then the women go visit the aunt, drop by the aunt's friend in her cottage and show the world that they both forgot to read the tour book where it explains that Finns sauna without their clothes on. [Insert women in their fourties with their jaws dropped to the floor mumbling "They're both nekkid"]

Mid-fourties woman stay up all night deciding that it's time to go to England to visit (until now) unknown cousin regardless whether said cousin would like ignorant tourists living with her, and it all has to be done by 6:30 in the morning. [Insert women in their fourties running around trying to figure out how they'll manage to get everything done by then] The women arrive in England, take over the counsin's life but everything works out and they bond and everything, take her with them to Liverpool, meet woman they met on the plane from San Francisco who ends up being hotel manager at their hotel (like nobody saw  that "surprise" coming from a mile away) and all of a sudden it's the happy ending. [Insert women in their forties looking like they're drunk, shouting "Sisterchicks forever!" on a street in Liverpool]

All you need to do to make a book out of all this is to expand it to 250 pages, wrap it in a cosy package and ship it. In case you want to bore yourself half to death and spend some money on something you'll regret afterwards the book is "Sisterchicks on the loose" written by Robin Jones Gunn.  They even got a <a href="http://www.sisterchicks.com/">website</a>.]]>
   </content>
</entry>

<entry>
   <title>$5 for me</title>
   <link rel="alternate" type="text/html" href="http://english.kakeboksen.org/2003/09/5_for_me.html" />
   <id>tag:english.kakeboksen.org,2003://2.299</id>
   
   <published>2003-09-21T17:24:31Z</published>
   <updated>2007-09-05T08:19:01Z</updated>
   
   <summary>I got an email with information about &quot;register.com&apos;s class action settlement&quot;:http://www.register.com/zurakov/notice.html and I&apos;m being awarded the amazingly huge amount of $5. Provided I don&apos;t opt-out that is. I&apos;ve gotten the laws of class action lawsuits explained to me, so I&apos;m...</summary>
   <author>
      <name>morten</name>
      <uri>http://www.kakeboksen.org/</uri>
   </author>
   
      <category term="Misc" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://english.kakeboksen.org/">
      I got an email with information about &quot;register.com&apos;s class action settlement&quot;:http://www.register.com/zurakov/notice.html and I&apos;m being awarded the amazingly huge amount of $5.  Provided I don&apos;t opt-out that is.  I&apos;ve gotten the laws of class action lawsuits explained to me, so I&apos;m not really suprised that the guy representing the class gets lots of money, and his lawyers even more.

At the moment I&apos;m considering whether I should submit an email and complain that awarding the $5 to charity is not an option, even though I know this is contrary to how settlements are usually done.  Of course there&apos;s a way around it, I can accept the $5 and after having paid my domain renewal send the $5 to charity, but I&apos;d rather prefer them having to do it directly.  Could amount to a few more dollars too.
      
   </content>
</entry>

<entry>
   <title>Accessing properties during loading</title>
   <link rel="alternate" type="text/html" href="http://english.kakeboksen.org/2003/08/accessing_properties_during_lo.html" />
   <id>tag:english.kakeboksen.org,2003://2.298</id>
   
   <published>2003-08-29T15:08:17Z</published>
   <updated>2007-09-05T08:19:12Z</updated>
   
   <summary>I recently worked on making my &quot;tree menu&quot;:http://www.treemenu.com/ work with Opera 6 &amp; 7 and noticed that v7 died with an error while trying to grab the frame names in the parent frameset. This is a problem I&apos;ve never experienced...</summary>
   <author>
      <name>morten</name>
      <uri>http://www.kakeboksen.org/</uri>
   </author>
   
      <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://english.kakeboksen.org/">
      I recently worked on making my &quot;tree menu&quot;:http://www.treemenu.com/ work with Opera 6 &amp; 7 and noticed that v7 died with an error while trying to grab the frame names in the parent frameset. This is a problem I&apos;ve never experienced with other browsers except Opera v5, and in that case I was able to fix it by letting the parent frameset&apos;s onload-event handle startup.
      This time around I couldn&apos;t use that workaround since tests showed the parent frameset is finished loading and therefore doesn&apos;t trigger the onload event. In any case I&apos;m not happy with the fact that no properties are available before the document is finished loading, so I made a little &quot;testcase&quot;:/javascript/files/frame-delay-test.html available and submitted a bug report to Opera.

The testcase is pretty simple. A frameset contains two frames of which one has an onload event handler trying to access the name of each frame of the parent frameset.  To make things difficult the second frame links to a small CGI-script that has delayed output by ten seconds.  There&apos;s a second script found in the first frame, which calls a second attempt at getting the frame names after fifteen seconds.

I&apos;ve tested it with Opera 7.11, Galeon 1.2.7 and Konqueror 1.3-13 Red Hat on Linux, Opera 7.20b7, Opera 6.01, MSIE5.5 and Mozilla 1.4 on Windows. Opera and Konqueror fail to get the frame names on the first attempt, but they both get them on the delayed attempt.

Opera 6.01 dies silently, while in Opera 7 the error message is available in the JavaScript console. I&apos;m not experienced with Konqueror so I don&apos;t know if it reports errors anywhere.
   </content>
</entry>

<entry>
   <title>Windows, javascript:-URLs and https://</title>
   <link rel="alternate" type="text/html" href="http://english.kakeboksen.org/2003/08/windows_javascripturls_and_htt.html" />
   <id>tag:english.kakeboksen.org,2003://2.297</id>
   
   <published>2003-08-21T16:46:34Z</published>
   <updated>2007-09-05T08:19:21Z</updated>
   
   <summary>This one started when I was approached by a former colleague of mine asking for some help with a calendar script they were using in a secure server environment (https://). Entering dates using a calendar tends to be a bit...</summary>
   <author>
      <name>morten</name>
      <uri>http://www.kakeboksen.org/</uri>
   </author>
   
      <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://english.kakeboksen.org/">
      <![CDATA[This one started when I was approached by a former colleague of mine asking for some help with a calendar script they were using in a secure server environment (https://). Entering dates using a calendar tends to be a bit easier for many people than writing them in.  I had a look at the script and couldn't really find anything odd about it, the general function for showing the calendar going something like:

<pre><code>function showCalendar(targetForm, targetDate) {
  // code to create HTML for calendar went here

  // code that opens and writes the calendar
  var calWindow = window.open('', 'calendarWindow', ...);
  calWindow.document.write(lotsaHTML);
  calWindow.document.close();
}</code></pre>

This code was called by links in the calendar window whenever the user wanted to navigate back/forward a month, and that functionality didn't work.  I failed to spot obvious errors in the code and sent off some code being a shot off the hip, but it totally failed to solve the problem.

I then suggested to rewrite the code so that it reused a global window reference whenever it's available. The code became:

<pre><code>var globalWindowRef;
function showCalendar(targetForm, targetDate) {
  // code to create HTML for calendar went here

  // code that opens and writes the calendar
  var calWindow;
  if(globalWindowRef && !globalWindowRef.closed) {
    calWindow = globalWindowRef;
  } else {
     calWindow = window.open('', 'calendarWindow', ...);
  }
  calWindow.document.write(lotsaHTML);
  calWindow.document.close();
}</code></pre>

The reason why I believe this worked while the other didn't was that the links in the calendar window were javascript:-URLs calling showCalendar() found in the parent window, which in turn tried to reopen (and then rewrite) the calling window before the function had returned. Something which doesn't seem to be allowed (anyone see any reason why it should?).  Goes to show that once you're going secure you should look through your code another time to make sure it's doing what you believe it's done, and doing it in a sane manner.]]>
      
   </content>
</entry>

<entry>
   <title>Lemmings</title>
   <link rel="alternate" type="text/html" href="http://english.kakeboksen.org/2003/08/lemmings.html" />
   <id>tag:english.kakeboksen.org,2003://2.296</id>
   
   <published>2003-08-18T08:21:51Z</published>
   <updated>2007-09-05T08:19:32Z</updated>
   
   <summary>I&apos;m supposed to start being a student again, not play &quot;DHTML Lemmings&quot;:http://crew.tweakers.net/crisp/lemmings/...</summary>
   <author>
      <name>morten</name>
      <uri>http://www.kakeboksen.org/</uri>
   </author>
   
      <category term="Misc" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://english.kakeboksen.org/">
      I&apos;m supposed to start being a student again, not play &quot;DHTML Lemmings&quot;:http://crew.tweakers.net/crisp/lemmings/
      
   </content>
</entry>

<entry>
   <title>Next choice of reading</title>
   <link rel="alternate" type="text/html" href="http://english.kakeboksen.org/2003/08/next_choice_of_reading.html" />
   <id>tag:english.kakeboksen.org,2003://2.295</id>
   
   <published>2003-08-14T14:13:46Z</published>
   <updated>2007-09-05T08:19:44Z</updated>
   
   <summary>It seems I&apos;ve somehow created myself a preference for reading books about society (except right before sleeping, when I read Terry Pratchett&apos;s Discworld series). Last Christmas got me No Logo by Naomi Klein, and this spring/summer I&apos;ve been through both...</summary>
   <author>
      <name>morten</name>
      <uri>http://www.kakeboksen.org/</uri>
   </author>
   
      <category term="Misc" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://english.kakeboksen.org/">
      <![CDATA[It seems I've somehow created myself a preference for reading books about society (except right before sleeping, when I read Terry Pratchett's Discworld series).  Last Christmas got me <A title="No Logo: No Space, No Choice, No Jobs" HREF="http://www.amazon.com/exec/obidos/ASIN/0312421435/kakeboksenorg-20">No Logo</a> by Naomi Klein, and this spring/summer I've been through both <A title="Fast Food Nation: The Dark Side of the All-American Meal" HREF="http://www.amazon.com/exec/obidos/ASIN/0060938455/kakeboksenorg-20">Fast Food Nation</a> by Eric Schlosser and <A title="Nickel and Dimed: On (Not) Getting By in America" HREF="http://www.amazon.com/exec/obidos/ASIN/0805063897/kakeboksenorg-20">Nickel and Dimed</a> by Barbara Ehrenreich.

The problem now is where to go next.  These three books have given me an appetite for this kind of material, but there's currently no book standing next in line.  Should I read Naomi Klein's followup "Fences and Windows"?  Or maybe go in a totally different direction?  I'm open for any suggestions.]]>
      
   </content>
</entry>

<entry>
   <title>Letting Gnus run sa-learn</title>
   <link rel="alternate" type="text/html" href="http://english.kakeboksen.org/2003/08/letting_gnus_run_salearn.html" />
   <id>tag:english.kakeboksen.org,2003://2.294</id>
   
   <published>2003-08-13T13:39:48Z</published>
   <updated>2007-09-05T08:19:56Z</updated>
   
   <summary>After being fed up with spam I decided to install &quot;SpamAssassin&quot;:http://www.spamassassin.org/ on my server. This was very easy and with a bit of tweaking to the suggested .procmailrc everything&apos;s running fine. The only thing missing was a keyboard shortcut in...</summary>
   <author>
      <name>morten</name>
      <uri>http://www.kakeboksen.org/</uri>
   </author>
   
      <category term="Stuff involving computers" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://english.kakeboksen.org/">
      After being fed up with spam I decided to install &quot;SpamAssassin&quot;:http://www.spamassassin.org/ on my server. This was very easy and with a bit of tweaking to the suggested .procmailrc everything&apos;s running fine.  The only thing missing was a keyboard shortcut in &quot;Gnus&quot;:http://www.gnus.org/ running sa-learn for spam &amp; ham mails...
      <![CDATA[I found some elisp code to run a command on the current article over on "my.gnus.org":http://my.gnus.org/ (specifically the howto <a href="http://my.gnus.org/Members/gustav/HowTo%2C2002-11-28%2C1038499007782320510/view">Pipe an article through a command</a>) but found that the code didn't really work as I wanted it to.  Running sa-learn only produces one line of ouput (unless you're debugging with "-D"), and I wanted that output to show up in the minibuffer.  I ended up with this edited version of the function:
<pre><code>(defun pfm-run-command-on-article (command &optional replace)
  "Run the full text of the current article through a filter.

The full text of the current article is run through the specified COMMAND
as a filter. The output of the command is returned."

  (interactive "sCommand: \nP")
  (let ((n (gnus-summary-article-number))
        (g gnus-newsgroup-name))
     (with-temp-buffer
       (gnus-request-article n g (current-buffer))
       (shell-command-on-region
        (point-min) (point-max)
        command)
       (if replace
            (gnus-request-replace-article n g (current-buffer)))
        )))</code></pre>

Then I've added two keyboard shortcuts to the gnus-summary-mode-map keymap:
<pre><code>(define-key gnus-summary-mode-map
         (read-kbd-macro "C-c R s")
         '(lambda () (interactive) (pfm-run-command-on-article "sa-learn --spam --single" ))
)
(define-key gnus-summary-mode-map
        (read-kbd-macro "C-c R h")
        '(lambda () (interactive) (pfm-run-command-on-article "sa-learn --ham --single"))</code></pre>

[Update 2003-08-14 21:45 - Changed the define-key code so it binds to gnus-summary-mode-map instead of global-map. Tested it in Gnus 5.10.1, and it worked nicely. 'C-c R' is by default not bound to anything, so it should be safe to use]

[Update 2003-08-15 10:18 - Changed to fix the errors gAm commented]]]>
   </content>
</entry>

<entry>
   <title>Spam</title>
   <link rel="alternate" type="text/html" href="http://english.kakeboksen.org/2003/07/spam.html" />
   <id>tag:english.kakeboksen.org,2003://2.292</id>
   
   <published>2003-07-15T07:48:46Z</published>
   <updated>2007-09-05T08:20:15Z</updated>
   
   <summary>I&apos;ve finally figured out how these &quot;Advertise to xx million people&quot; do it. They&apos;ve actually only got the email address of one person (or at most a dozen), and then that&apos;s the one who gets xx million copies. The beauty...</summary>
   <author>
      <name>morten</name>
      <uri>http://www.kakeboksen.org/</uri>
   </author>
   
      <category term="Misc" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://english.kakeboksen.org/">
      I&apos;ve finally figured out how these &quot;Advertise to xx million people&quot; do it. They&apos;ve actually only got the email address of one person (or at most a dozen), and then that&apos;s the one who gets xx million copies. The beauty of doing it that way is that they can freely change the number of people and thereby advertise more often. You see, I got them (8) emails today saying that they had anywhere from 30.7 to 35.9 million addresses they could spam, and the numbers weren&apos;t increasing by each email. I could still be wondering when they&apos;ll make up their mind about the total, if I actually cared.
      
   </content>
</entry>

<entry>
   <title>Games</title>
   <link rel="alternate" type="text/html" href="http://english.kakeboksen.org/2003/07/games.html" />
   <id>tag:english.kakeboksen.org,2003://2.291</id>
   
   <published>2003-07-10T19:18:21Z</published>
   <updated>2007-09-05T08:20:25Z</updated>
   
   <summary>Something tells me that I&apos;ll lose a lot of time trying out all the games over on &quot;Orisinal&quot;:http://www.ferryhalim.com/orisinal/ (warning: Flash needed) They might not score high on playability all of them, but boy do they look pretty....</summary>
   <author>
      <name>morten</name>
      <uri>http://www.kakeboksen.org/</uri>
   </author>
   
      <category term="Misc" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://english.kakeboksen.org/">
      Something tells me that I&apos;ll lose a lot of time trying out all the games over on &quot;Orisinal&quot;:http://www.ferryhalim.com/orisinal/ (warning: Flash needed)

They might not score high on playability all of them, but boy do they look pretty.
      
   </content>
</entry>

<entry>
   <title>Results of Weintraub study</title>
   <link rel="alternate" type="text/html" href="http://english.kakeboksen.org/2003/06/results_of_weintraub_study.html" />
   <id>tag:english.kakeboksen.org,2003://2.286</id>
   
   <published>2003-06-09T11:24:13Z</published>
   <updated>2007-09-05T08:21:19Z</updated>
   
   <summary>May 12th Nikken released &quot;information&quot;:http://www.nikken.com/magsteps/ regarding the results of a scientific study by Drs Weintraub et al. The report named &quot;Static magnetic field therapy for symptomatic diabetic neuropathy: A randomized, double-blind, placebo-controlled trial&quot;:http://www2.archives-pmr.org/scripts/om.dll/serve?action=searchDB&amp;searchDBfor=art&amp;artType=abs&amp;id=as0003999303001060&amp;nav=abs points out that constant wearing of the...</summary>
   <author>
      <name>morten</name>
      <uri>http://www.kakeboksen.org/</uri>
   </author>
   
      <category term="Nikken" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://english.kakeboksen.org/">
      May 12th Nikken released &quot;information&quot;:http://www.nikken.com/magsteps/ regarding the results of a scientific study by Drs Weintraub et al.  The report named &quot;Static magnetic field therapy for symptomatic diabetic neuropathy: A randomized, double-blind, placebo-controlled trial&quot;:http://www2.archives-pmr.org/scripts/om.dll/serve?action=searchDB&amp;searchDBfor=art&amp;artType=abs&amp;id=as0003999303001060&amp;nav=abs points out that constant wearing of the magnetic insoles provided statistically significant reduction in the _third_ and _fourth_ months of treatement (my emphasis).

Gotta wear them a lot and for quite a while, but still interesting results.
      
   </content>
</entry>

</feed>
