<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>my2cents</title>
	<atom:link href="http://www.frightanic.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.frightanic.com</link>
	<description>&#34;The Earth was made round so that we would not see too far down the road&#34; - Karen Blixen</description>
	<lastBuildDate>Sun, 07 Mar 2010 11:56:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Japanese restaurants in Zurich</title>
		<link>http://www.frightanic.com/2010/03/07/japanese-restaurants-in-zurich/</link>
		<comments>http://www.frightanic.com/2010/03/07/japanese-restaurants-in-zurich/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 11:32:13 +0000</pubDate>
		<dc:creator>frightanic</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://www.frightanic.com/?p=493</guid>
		<description><![CDATA[A list of Japanese restaurants in Zurich (&#8221;Japanische Restaurants in Zürich&#8221; for our German-speaking friends).

Samurai
If you judge a Japanese restaurants by the number of Japanese who frequent the place this was the clear favorite a few years ago. Samurai was considered an in-sider tip back then. Located next to a striptease club in one of [...]]]></description>
			<content:encoded><![CDATA[<div>A list of Japanese restaurants in Zurich (&#8221;Japanische Restaurants in Zürich&#8221; for our German-speaking friends).</div>
<ul>
<li><a href="http://www.samurai7.ch/" target="_blank">Samurai</a><br />
If you judge a Japanese restaurants by the number of Japanese who frequent the place this was the clear favorite a few years ago. Samurai was considered an in-sider tip back then. Located next to a striptease club in one of the red-light areas it wasn&#8217;t mainstream yet. Since then the number of Japanese guests in the restaurant has declined since the word has spread that you get reasonably price truly authentic sushi and sashimi &#8211; most guests are Europeans nowadays.<br />
My wife and I think that the quality of the food and the care with which the components are arranged on the plates have slightly decreased over the years. However, we can still highly recommend it.<br />
Reservation almost required for dinner, the place is always full.</li>
<li><a href="http://www.sala-of-tokyo.ch/" target="_blank">Sala of Tokyo</a><br />
The food is good and if you manage to get a table in the quite back room (ask for it if you make a reservation) the atmosphere is nice. It&#8217;s a little on the pricy side but it&#8217;s justified for many dishes. We wouldn&#8217;t recommend paying the extra surcharge to have wagyū meat instead of the regular beef. It&#8217;s not worth it.<br />
We didn&#8217;t like many of the rich snobbish other guests. The Swiss owner lacked Japanese hospitality.</li>
<li><a href="http://www.ascot.ch/index.php?id=364" target="_blank">Fujiya</a><br />
Next on our list.</li>
<li><a href="http://www.yoojis.ch/" target="_blank">Yooji&#8217;s</a><br />
Certainly not the most authentic place in Zurich but the sushi is ok. If you go with a group of four we&#8217;d recommend to get the big sushi plate for all to share. Friendly staff.</li>
<li><a href="http://www.ishi.ch/" target="_blank">ISHI</a><br />
Too stylish and modern to be authentic. Since they don&#8217;t even have Japanese staff we never bothered trying. Heard some horrible stories from friends.</li>
<li><a href="http://www.okara.ch/" target="_blank">oKara</a></li>
<li><a href="http://www.isakaya.ch/" target="_blank">isakaYa</a></li>
<li><a href="http://www.ginger-restaurant.ch/" target="_blank">Ginger</a></li>
<li><a href="http://www.takano.ch/" target="_blank">Takano</a><br />
Open-air sukiyaki on the  terrace apparently -&gt; we have to try in summer.</li>
<li><a href="http://www.ooki.ch/" target="_blank">Ooki</a><br />
Ramen shop close to Stauffacher. Tiny restaurant &#8211; have dinner early or make a reservation. The place has its own charm, definitely worth a try. The menu is small but the food is really delicious. A few types of ramen and gyoza (must have), that&#8217;s all.</li>
<li>Blue Note<br />
No website (domain parking)<br />
Stockerstrasse 45<br />
8002 Zürich<br />
Tel: +41 44 202 17 17</li>
<li><a href="http://www.sushi-house.ch/" target="_blank">Satori Sushi House</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.frightanic.com/2010/03/07/japanese-restaurants-in-zurich/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modify the default i.e. &#8220;Standard&#8221; printer presets in OS X</title>
		<link>http://www.frightanic.com/2010/02/28/modify-the-default-i-e-standard-printer-presets-in-os-x/</link>
		<comments>http://www.frightanic.com/2010/02/28/modify-the-default-i-e-standard-printer-presets-in-os-x/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 09:06:39 +0000</pubDate>
		<dc:creator>frightanic</dc:creator>
				<category><![CDATA[Apple & Mac]]></category>
		<category><![CDATA[CUPS]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[printer]]></category>

		<guid isPermaLink="false">http://www.frightanic.com/?p=464</guid>
		<description><![CDATA[Looking for a way to modify the default printer presets i.e. the presets called &#8220;Standard&#8221; in OS X I came across a Mac OS X Hints article that talks about the ~/Library/Preferences/com.apple.print.custompresets.plist file.
However, what I found way more interesting is that apparently OS X provides a web interface for CUPS at http://localhost:631/ for the locally [...]]]></description>
			<content:encoded><![CDATA[<p>Looking for a way to modify the default printer presets i.e. the presets called &#8220;Standard&#8221; in OS X I came across a <a href="http://www.macosxhints.com/article.php?story=20100125135830153" target="_blank">Mac OS X Hints article</a> that talks about the <tt style="font-size: 12px; ">~/Library/Preferences/com.apple.print.custompresets.plist</tt> file.</p>
<p>However, what I found way more interesting is that apparently OS X provides a web interface for CUPS at http://localhost:631/ for the locally installed printers.</p>
<p>Through that interface you can nicely modify the default printer presets. Just go to http://localhost:631/printers/ -&gt; choose your printer -&gt; select Set Default Options in the second drop-down. You&#8217;ll be asked for an administrator&#8217;s username/password to save the changes. No surprise there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.frightanic.com/2010/02/28/modify-the-default-i-e-standard-printer-presets-in-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Animated GIF in SWT table/tree viewer cell</title>
		<link>http://www.frightanic.com/2010/02/09/animated-gif-in-swt-tabletree-viewer-cell/</link>
		<comments>http://www.frightanic.com/2010/02/09/animated-gif-in-swt-tabletree-viewer-cell/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 20:45:32 +0000</pubDate>
		<dc:creator>frightanic</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[LabelProvider]]></category>
		<category><![CDATA[SWT]]></category>

		<guid isPermaLink="false">http://www.frightanic.com/?p=459</guid>
		<description><![CDATA[In a recent stackoverflow.com question I asked for input on how to implemented animated GIFs in SWT table/tree viewer cells. Below is some code of the final solution.
Animation thread
The animation thread can be asked for the &#8220;current frame index&#8221; (CFI) by interested parties. The CFI thusly denotes the frame of an animated GIF which should [...]]]></description>
			<content:encoded><![CDATA[<p>In a <a href="http://stackoverflow.com/questions/2037353/animated-gif-in-swt-table-tree-viewer-cell/" target="_blank">recent stackoverflow.com question</a> I asked for input on how to implemented animated GIFs in SWT table/tree viewer cells. Below is some code of the final solution.</p>
<h2>Animation thread</h2>
<p>The animation thread can be asked for the &#8220;current frame index&#8221; (CFI) by interested parties. The CFI thusly denotes the frame of an animated GIF which should be rendered. LabelProviders are the interested parties in this context because they actually render the images.</p>
<p>The thread increments the CFI in its run method. Also, Display#asyncExec is triggered in the run method. During the async execution the table/tree is ask to redraw and update &#8211; see lines 69ff.</p>
<pre class="brush: java;" lang="java">/**
 * This animation thread doesn't actually animate anything itself. However, it acts as a pace maker
 * for other components that are able to render animated images. In a loop this thread marks
 * designated columns of a tree viewer (see constructor) for redrawing and calls
 * <code>update()</code> on the tree itself. Label providers on the other hand ask this thread for
 * the current frame index whenever they're triggered provide an image for the designated column.
 *
 * The viewer's content provider is ideally suited to control the life cycle of this thread. It can
 * create/destroy a thread instance whenever the viewer's content is updated.
 *
 */
public class BuildColorAnimationThread extends Thread {

  private final TreeViewer viewer;
  private final int animationColumnIndex;
  private final ImageLoader sampleImage;
  private int currentFrameIndex;
  private boolean cancel;
  private static BuildColorAnimationThread runningInstance;

  /**
   * C'tor which sets this instance to be the one running instance.
   *
   * @param viewer the viewer whose content should be animated
   * @param animationColumnIndex the index of the column to be animated
   * @param sampleImage a sample image which resembles the animation images in the viewer, the
   *        thread uses it to extract repeat-counts and frame delays
   * @see BuildColorAnimationThread#getRunningInstance()
   */
  public BuildColorAnimationThread(final TreeViewer viewer, final int animationColumnIndex,
      final ImageLoader sampleImage) {
    this.viewer = viewer;
    this.animationColumnIndex = animationColumnIndex;
    this.sampleImage = sampleImage;
    this.currentFrameIndex = 0;
    BuildColorAnimationThread.setRunningInstance(this);
  }

  /**
   * Returns the running instance of the animation thread or null if there's none.
   *
   * @return the running instance of the animation thread or null if there's none
   */
  public static BuildColorAnimationThread getRunningInstance() {
    return runningInstance;
  }

  private static void setRunningInstance(BuildColorAnimationThread runningInstance) {
    BuildColorAnimationThread.runningInstance = runningInstance;
  }

  @Override
  public void run() {
    int repeatCount = this.sampleImage.repeatCount;
    /*
     * The repeat count takes into consideration that an animated image might not be animated
     * infinitely but only for a given number of loops.
     */
    while (!this.cancel &amp;&amp; !this.viewer.getTree().isDisposed()
        &amp;&amp; (this.sampleImage.repeatCount == 0 || repeatCount &gt; 0)) {
      this.viewer.getTree().getDisplay().asyncExec(new Runnable() {

        public void run() {
          final BuildColorAnimationThread thread = BuildColorAnimationThread.this;
          final Tree tree = thread.viewer.getTree();
          if (!tree.isDisposed()) {
            final Rectangle clientArea = tree.getClientArea();
            // Marks ONLY the animation column to be redrawn and not the entire table!
            tree.redraw(clientArea.x, clientArea.y, tree.getColumn(thread.animationColumnIndex)
                .getWidth(), clientArea.height, false);
            tree.update();
            // During the first loop currentFrameIndex=0...then currentFrameIndex=1,etc.
            thread.currentFrameIndex =
                (thread.currentFrameIndex + 1) % thread.sampleImage.data.length;
          }
        }
      });

      try {
        int ms = this.sampleImage.data[this.currentFrameIndex].delayTime * 10;
        if (ms &lt; 20) {
          ms += 30;
        }
        if (ms &lt; 30) {
          ms += 10;
        }
        Thread.sleep(ms);
      } catch (InterruptedException e) {
        Thread.currentThread().interrupt();
      }
      /*
       * If the last frame was signaled as being the current frame, decrement the repeat count and
       * start again.
       */
      if (this.currentFrameIndex == this.sampleImage.data.length - 1) {
        repeatCount--;
      }
    }
  }

  /**
   * Returns the index of the current frame. Animation providers (i.e. renderers) call this method
   * in order to find out which frame of an animated image they should render at any given point in
   * time.
   *
   * @return frame index starting at 0
   */
  public int getCurrentFrameIndex() {
    return this.currentFrameIndex;
  }

  /**
   * Signals the thread to stop. It will finish the current execution in its run method and will
   * then stop.
   */
  public void cancel() {
    this.cancel = true;
  }
}</pre>
<h2>LabelProvider</h2>
<p>I use my own implementation of an OwnerDrawLableProvider which paints a static image if the icon doesn&#8217;t have to be animated. If it needs to be animated (based on some attribute of the row&#8217;s input) it paints the frame of an animated GIF. The index of the frame to draw is determined by the animation thread shown above. Hint: the getImage() method is called by paint().</p>
<pre class="brush: java;" lang="java">  /*
   * For each (animated) job color the provider keeps a map of frame_index-to-image entries. This
   * speeds up the process of delivering images for rendering because they don't have to be created
   * all the time from ImageData objects.
   */
  private final Map&gt; imagesMap =
      new HashMap&gt;();

  @Override
  protected Image getImage(Event event, Object element) {
    final IJob job = (IJob) element;
    Image image = BuildColorInfo.getIconImage(job.getColor());
    if (job.isRunning()) {
      final BuildColorAnimationThread animationThread =
          BuildColorAnimationThread.getRunningInstance();
      /*
       * Should no animation thread be running, the static image fetched a few lines above will be
       * returned.
       */
      if (animationThread != null) {
        final int currentFrameIndex = animationThread.getCurrentFrameIndex();
        Map images = this.imagesMap.get(job.getColor());
        if (images == null) {
          images = new HashMap();
          this.imagesMap.put(job.getColor(), images);
        }
        image = images.get(Integer.valueOf(currentFrameIndex));
        if (image == null) {
          image = createNewImage(event, job.getColor(), currentFrameIndex);
          images.put(Integer.valueOf(currentFrameIndex), image);
        }
      }
    }
    return image;
  }

  private Image createNewImage(Event event, JobColor color, int currentFrameIndex) {
    final ImageLoader imageLoader = BuildColorInfo.getImageLoader(color);
    return new Image(event.gc.getDevice(), imageLoader.data[currentFrameIndex]);
  }</pre>
<h2>&#8220;Controller&#8221;</h2>
<p>The controller is responsible to start/stop the animation thread. Basically, whenever the viewer&#8217;s input changes the running animation thread must be canceled and a new thread must be started. The best hook for that is the viewer&#8217;s content provider &#8211; an implementation of I&lt;Tree|Table&gt;ContentProvider as it declares an inputChanged() method.</p>
<pre class="brush: java;" lang="java">    @Override
    public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
      if (this.animationThread != null) {
        this.animationThread.cancel();
      }
      // Animates the first column.
      this.animationThread =
          new BuildColorAnimationThread((TreeViewer) viewer, 0, BuildColorInfo
              .getImageLoader(JobColor.BLUE_ANIME));
      this.animationThread.start();
    }</pre>
<p>The code presented here was implemented for <a href="http://kenai.com/projects/h2eclipse" target="_blank">H2Eclipse</a>, the Hudson plugin for Eclipse.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.frightanic.com/2010/02/09/animated-gif-in-swt-tabletree-viewer-cell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to send a HEAD request from Firefox</title>
		<link>http://www.frightanic.com/2010/02/08/how-to-send-a-head-request-from-firefox/</link>
		<comments>http://www.frightanic.com/2010/02/08/how-to-send-a-head-request-from-firefox/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 00:11:51 +0000</pubDate>
		<dc:creator>frightanic</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web Authoring]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Firefox]]></category>

		<guid isPermaLink="false">http://www.frightanic.com/?p=453</guid>
		<description><![CDATA[Use the JavaScript console in Firebug and run the following script snippet:

var xmlhttp = new XMLHttpRequest();
xmlhttp.open("HEAD", "the_url",true); // Async HEAD request (relative path to avoid cross-domain restrictions)
xmlhttp.onreadystatechange=function() {
  if (xmlhttp.readyState==4) { // make sure the request is complete
    alert(xmlhttp.getAllResponseHeaders()) // display the headers
  }
}
xmlhttp.send(null); // send request

]]></description>
			<content:encoded><![CDATA[<p>Use the JavaScript console in Firebug and run the following script snippet:</p>
<pre class="brush: javascript;" lang="JAVASCRIPT">
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("HEAD", "the_url",true); // Async HEAD request (relative path to avoid cross-domain restrictions)
xmlhttp.onreadystatechange=function() {
  if (xmlhttp.readyState==4) { // make sure the request is complete
    alert(xmlhttp.getAllResponseHeaders()) // display the headers
  }
}
xmlhttp.send(null); // send request
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.frightanic.com/2010/02/08/how-to-send-a-head-request-from-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Signing in to the Google Talk client without a Gmail address</title>
		<link>http://www.frightanic.com/2010/02/08/signing-in-to-the-google-talk-client-without-a-gmail-address/</link>
		<comments>http://www.frightanic.com/2010/02/08/signing-in-to-the-google-talk-client-without-a-gmail-address/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 23:24:59 +0000</pubDate>
		<dc:creator>frightanic</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.frightanic.com/?p=449</guid>
		<description><![CDATA[&#8230;A temporary issue with the Google Talk client requires that the Gmail service be added to any sign in account. If you don&#8217;t want to have an active Gmail account but want to use the Google Talk client, please sign up for Gmail once and delete the service permanently&#8230;
http://www.google.com/support/talk/bin/answer.py?answer=141360
]]></description>
			<content:encoded><![CDATA[<blockquote><p>&#8230;A temporary issue with the Google Talk client requires that the Gmail service be added to any sign in account. If you don&#8217;t want to have an active Gmail account but want to use the Google Talk client, please sign up for Gmail once and delete the service permanently&#8230;</p>
<p><em><a href="http://www.google.com/support/talk/bin/answer.py?answer=141360">http://www.google.com/support/talk/bin/answer.py?answer=141360</a></em></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.frightanic.com/2010/02/08/signing-in-to-the-google-talk-client-without-a-gmail-address/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Americans love their cars &#8211; way too much</title>
		<link>http://www.frightanic.com/2010/02/06/americans-love-their-cars-way-too-much/</link>
		<comments>http://www.frightanic.com/2010/02/06/americans-love-their-cars-way-too-much/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 18:38:49 +0000</pubDate>
		<dc:creator>frightanic</dc:creator>
				<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://www.frightanic.com/?p=446</guid>
		<description><![CDATA[The article the quote below was taken from a story about the serious issues Toyota seems to have with its jamming accelerators.
Some owners of recalled Toyotas are now saying they are afraid to drive them. “I live only a half mile from the office and I drive there,” said Elaine Byrnes, a Camry owner in [...]]]></description>
			<content:encoded><![CDATA[<p>The article the quote below was taken from a story about the serious issues Toyota seems to have with its jamming accelerators.</p>
<blockquote><p>Some owners of recalled Toyotas are now saying they are afraid to drive them. “I live only a half mile from the office and I drive there,” said Elaine Byrnes, a Camry owner in Los Angeles. “If I had to go farther, I wouldn’t consider it.”</p>
<p><em><a href="http://mobile.nytimes.com/article?a=544543&amp;f=19">http://mobile.nytimes.com/article?a=544543&amp;f=19</a></em></p></blockquote>
<p>I lived in California for a year. So, I know what sort of attitude Americans have towards their cars but this was too much &#8211; definitely too much.</p>
<p>The story unfolded like this in my mind:</p>
<blockquote><p>Some owners of recalled Toyotas are now saying they are afraid to drive them.</p></blockquote>
<p>&#8220;Yes, that&#8217;s understandable. Toyota really has a problem. But what do you do? You depend on your cars, don&#8217;t you.&#8221;</p>
<blockquote><p>“I live only a half mile from the office&#8230;&#8221;</p></blockquote>
<p>&#8220;Ohh, well, then there&#8217;s no problem, is there? You could walk or take the bike.&#8221;<br />
I even did the math quickly: an average adult walks about 5km (3.1 miles) in an hour. Hence, a half mile takes you a little over 10 minutes.</p>
<blockquote><p>&#8220;&#8230;and I drive there,” said Elaine Byrnes, a Camry owner in Los Angeles.</p></blockquote>
<p>&#8220;Seriously? What a waste!&#8221;</p>
<blockquote><p>“If I had to go farther, I wouldn’t consider it.”</p></blockquote>
<p>&#8220;What? That reasoning makes no sense at all. That most certainly qualifies for being one of the dumbest justifications for someones actions I&#8217;ve heard in a long while.&#8221;</p>
<p>As much as I love America, stories like this make me wonder if this planet has a future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.frightanic.com/2010/02/06/americans-love-their-cars-way-too-much/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Never give up fighting for liberty</title>
		<link>http://www.frightanic.com/2010/01/29/never-give-up-fighting-for-liberty/</link>
		<comments>http://www.frightanic.com/2010/01/29/never-give-up-fighting-for-liberty/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 21:21:41 +0000</pubDate>
		<dc:creator>frightanic</dc:creator>
				<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://www.frightanic.com/?p=443</guid>
		<description><![CDATA[As I&#8217;m a very liberal mind my heart jumped when I came across the following quote today:
&#8220;Government big enough to supply everything you need is big enough to  take everything you have.&#8221;
A quick Internet investigation lead me to a page that claims that the above quote isn&#8217;t by Thomas Jefferson but from Gerald Ford.
]]></description>
			<content:encoded><![CDATA[<p>As I&#8217;m a very liberal mind my heart jumped when I came across the following quote today:</p>
<h3>&#8220;Government big enough to supply everything you need is big enough to  take everything you have.&#8221;</h3>
<p>A quick Internet investigation lead me to a page that claims that <a href="http://wiki.monticello.org/mediawiki/index.php/Government_big_enough_to_supply_you" target="_blank">the above quote isn&#8217;t by Thomas Jefferson but from Gerald Ford</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.frightanic.com/2010/01/29/never-give-up-fighting-for-liberty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>All you ever wanted to know about caching and HTTP headers</title>
		<link>http://www.frightanic.com/2010/01/28/all-you-ever-wanted-to-know-about-caching-and-http-headers/</link>
		<comments>http://www.frightanic.com/2010/01/28/all-you-ever-wanted-to-know-about-caching-and-http-headers/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 13:59:48 +0000</pubDate>
		<dc:creator>frightanic</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web Authoring]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[HTTP headers]]></category>

		<guid isPermaLink="false">http://www.frightanic.com/?p=441</guid>
		<description><![CDATA[cache-control, pragma, no-cache, expires header, and tons more. I learned a lot from the below referenced articles.
Caching tutorial for web authors: http://www.mnot.net/cache_docs/
jGuru forum question: http://www.jguru.com/faq/view.jsp?EID=377
]]></description>
			<content:encoded><![CDATA[<p>cache-control, pragma, no-cache, expires header, and tons more. I learned a lot from the below referenced articles.</p>
<p>Caching tutorial for web authors: <a href="http://www.mnot.net/cache_docs/" target="_blank">http://www.mnot.net/cache_docs/</a></p>
<p>jGuru forum question: <a href="http://www.jguru.com/faq/view.jsp?EID=377" target="_blank">http://www.jguru.com/faq/view.jsp?EID=377</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.frightanic.com/2010/01/28/all-you-ever-wanted-to-know-about-caching-and-http-headers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nuad boran &#8211; fascinating Thai massage</title>
		<link>http://www.frightanic.com/2010/01/22/nuad-boran-fascinating-thai-massage/</link>
		<comments>http://www.frightanic.com/2010/01/22/nuad-boran-fascinating-thai-massage/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 10:43:16 +0000</pubDate>
		<dc:creator>frightanic</dc:creator>
				<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://www.frightanic.com/?p=438</guid>
		<description><![CDATA[A friend of mine started learning and practicing &#8220;nuad boran&#8220;, traditional Thai massage, a while ago. In order to get the best possible courses and the most authentic teachers she spent a few weeks in Thailand twice.
I had the pleasure of serving as one of her &#8220;practice objects&#8221; i.e. she needed human dummies on which [...]]]></description>
			<content:encoded><![CDATA[<p>A friend of mine started learning and practicing &#8220;<a href="http://en.wikipedia.org/wiki/Nuad_boran" target="_blank">nuad boran</a>&#8220;, traditional Thai massage, a while ago. In order to get the best possible courses and the most authentic teachers she spent a few weeks in Thailand twice.</p>
<p>I had the pleasure of serving as one of her &#8220;practice objects&#8221; i.e. she needed human dummies on which she could practice her new techniques. I was immediately fascinated and impressed. It can give you so much more and it feels so much more complete than an ordinary massage.</p>
<p>Meanwhile she opened her own massage business. Check her out: <a href="http://www.mynuad.ch/" target="_blank">http://www.mynuad.ch/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.frightanic.com/2010/01/22/nuad-boran-fascinating-thai-massage/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to protect yourself against WebSphere admins</title>
		<link>http://www.frightanic.com/2010/01/18/how-to-protect-yourself-against-websphere-admins/</link>
		<comments>http://www.frightanic.com/2010/01/18/how-to-protect-yourself-against-websphere-admins/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 21:31:46 +0000</pubDate>
		<dc:creator>frightanic</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[JSESSIONID]]></category>
		<category><![CDATA[session cookie]]></category>
		<category><![CDATA[WebSphere]]></category>

		<guid isPermaLink="false">http://www.frightanic.com/?p=433</guid>
		<description><![CDATA[This is a follow-up for the Beware of WebSphere admins post just below.
My first immediate conclusion after the described deployment problems was to ban the use of the jsession cookie  in future applications. If the application always includes the jsessionid parameter in URLs there&#8217;s nothing that can go wrong during deployment in terms of cookie [...]]]></description>
			<content:encoded><![CDATA[<p>This is a follow-up for the <a href="http://www.frightanic.com/2010/01/18/beware-of-the-websphere-admins/" target="_blank">Beware of WebSphere admins</a> post just below.</p>
<p>My first immediate conclusion after the described deployment problems was to ban the use of the jsession cookie  in future applications. If the application always includes the jsessionid parameter in URLs there&#8217;s nothing that can go wrong during deployment in terms of cookie paths.</p>
<p>Contemplating a second longer made it obvious that maybe this wouldn&#8217;t be such a wise decision after all. There are number of developers who try to enforce the exact opposite because the jsessionid URL parameter <em>can</em> be considered harmful. I highly recommend reading the following two blog posts that support this thesis:</p>
<p><a href="http://randomcoder.com/articles/jsessionid-considered-harmful" target="_blank">http://randomcoder.com/articles/jsessionid-considered-harmful<br />
</a><a href="http://boncey.org/2007_1_8_purging_jsessionid" target="_blank">http://boncey.org/2007_1_8_purging_jsessionid</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.frightanic.com/2010/01/18/how-to-protect-yourself-against-websphere-admins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
