<?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>yken.org &#187; Uncategorized</title>
	<atom:link href="http://yken.org/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://yken.org</link>
	<description>...it depends</description>
	<lastBuildDate>Sun, 07 Mar 2010 17:47:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>She listens to She Keeps Bees</title>
		<link>http://yken.org/2010/02/19/she-listens-to-she-keeps-bees/</link>
		<comments>http://yken.org/2010/02/19/she-listens-to-she-keeps-bees/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 21:53:30 +0000</pubDate>
		<dc:creator>ikendra</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[photography]]></category>

		<guid isPermaLink="false">http://yken.org/?p=351</guid>
		<description><![CDATA[Taken at She Keeps Bees concert in Paradiso, Amsterdam. A musical discovery of the year so far for me. Some more photos (of the band self) are on my Flickr.

]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-356" title="random-snaphot-at-the-concert" src="http://yken.org/wp-content/random-snaphot-at-the-concert2.jpg" alt="random-snaphot-at-the-concert" width="500" height="333" />Taken at She Keeps Bees concert in Paradiso, Amsterdam. A musical discovery of the year so far for me. Some more photos (of the band self) are on <a href="http://www.flickr.com/photos/yellowsofa/4371312886/in/set-72157623468273852/">my Flickr</a>.
<div class="clear"></div>
]]></content:encoded>
			<wfw:commentRss>http://yken.org/2010/02/19/she-listens-to-she-keeps-bees/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google App Engine &#8211; the first experiences</title>
		<link>http://yken.org/2010/01/26/google-app-engine-the-first-experiences/</link>
		<comments>http://yken.org/2010/01/26/google-app-engine-the-first-experiences/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 22:36:52 +0000</pubDate>
		<dc:creator>ikendra</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[corporatepoems.com]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://yken.org/?p=334</guid>
		<description><![CDATA[A few days ago, I started to work on the corporatepoems.com website. The web is a fun pet project, an idea born somewhere in a pub after a few beers &#8211; I will write about the idea a bit later. Today, I just wanted to briefly comment on two problems which I encountered during my [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago, I started to work on the <a href="http://www.corporatepoems.com/">corporatepoems.com</a> website. The web is a fun pet project, an idea born somewhere in a pub after a few beers &#8211; I will write about the idea a bit later. Today, I just wanted to briefly comment on two problems which I encountered during my first steps with the App Engine.<br />
<span id="more-334"></span></p>
<h5>Occasional blank pages</h5>
<p>If you see a blank page when refreshing your app in a browser after a source code update, be it on your local machine or after the upload to Google, but then with any subsequent refresh the page appearing just fine, check the Python script executed for given URL (see your <code>app.yaml</code>) to make sure that you are invoking the main() function correctly, i.e. something like the notorious</p>
<pre>
if __name__ == '__main__':
	main()
</pre>
<p>If you make a typo in the above snippet or should you omit it completely, you will experience the problem above.</p>
<p><b>Update:</b> See the comments below this article for explanation of the reason of this behavior.</p>
<h5>Static files: CSS not loading</h5>
<p>At some stage of working on the project I introduced the CSS style sheet for the site: added a <code>static_dir</code> to <code>handlers</code> section of the <code>app.yaml file</code> and then created the CSS file and stored it in the directory referred to by <code>static_dir</code>. Then, I simply referenced the CSS file in the HTML. So my <code>app.yaml</code> looked like</p>
<pre>
application: corporatepoems
version: 5
runtime: python
api_version: 1

handlers:
- url: /css
  static_dir: css

- url: /.*
  script: corporatepoems.py
</pre>
<p>&#8230;and the HTML contained:</p>
<pre>
&lt;link rel="stylesheet" href="/css/corporatepoems.css" type="text/css" media="screen" /&gt;
</pre>
<p>However, the CSS would not load. I double checked the file and directory names, all was correct. The fix to the problem was to actually increase (or chage) the application <code>version</code> in the <code>app.yaml</code> file. After that, CSS loaded as expected. The explanation to this could be that I perhaps forgotten to save the <code>app.yaml</code> file after adding the <code>static_dir</code> at first place, but I&#8217;m pretty sure this was not the case. After the fix, I never saw the problem again.</p>
<p>All in all, working with Google App Engine and Python feels great so far, thanks Filip for your suggestion to give it a try! To be continued. </p>
]]></content:encoded>
			<wfw:commentRss>http://yken.org/2010/01/26/google-app-engine-the-first-experiences/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Exchange and Google Apps accounts on one iPod touch?</title>
		<link>http://yken.org/2010/01/19/exchange-and-google-apps-accounts-on-one-ipod-touch/</link>
		<comments>http://yken.org/2010/01/19/exchange-and-google-apps-accounts-on-one-ipod-touch/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 22:47:26 +0000</pubDate>
		<dc:creator>ikendra</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Google Apps]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://yken.org/?p=324</guid>
		<description><![CDATA[Today I set up the Google Apps for my domain yken.org. The Standard Edition of Google Apps enables some interesting applications, including Gmail and it is completely free (providing you already own the domain). The problem occurred with setting up the account on my iPod touch, with already one account set up on the device [...]]]></description>
			<content:encoded><![CDATA[<p>Today I set up the Google Apps for my domain yken.org. The <a href="http://www.google.com/apps/intl/en/group/index.html">Standard Edition</a> of Google Apps enables some interesting applications, including Gmail and it is completely free (providing you already own the domain). The problem occurred with setting up the account on my iPod touch, with already one account set up on the device earlier, for my work.<br />
<span id="more-324"></span><br />
<img class="alignleft size-full wp-image-327" title="account-already-exists" src="http://yken.org/wp-content/account-already-exists1.png" alt="account-already-exists" width="250" height="375" />To access your Google Apps e-mail, Google suggests to setup an Exchange account on your iPod touch / iPhone. That&#8217;s fine. I already had one Exchange account set up, did not expect an issue. However, the iPhone OS (current version 3.1.2) does not support more than one Exchange account on a single device. Oops.</p>
<p>It is simple to setup a Gmail account instead of Exchange ActiveSync account for your Google Apps account. Just use your personalized e-mail address <code>username@yourdomain.com</code> instead of Gmail address. This will however not help to sync your Google Calendar events.</p>
<p>To get my Google Calendar events to my iPod touch I set up a CalDAV Account. When adding an account on your iPod / iPhone, in the main screen listing all account types (Microsoft Exchange, mobileme etc) select &#8220;Other&#8221;, then &#8220;Add CalDAV Account&#8221; and fill in the form which follows. Server value should be <code>www.google.com</code>. You can now not only download the Calendar events to your device, but also add events on your iPod touch / iPhone and have them synced to your Google Apps Calendar.</p>
<p>This solution does not offer all the comfort for Google Apps account, but at least enables the e-mail and Calendar events synced both directions while the functionality of the Exchange account remains unchanged.</p>
]]></content:encoded>
			<wfw:commentRss>http://yken.org/2010/01/19/exchange-and-google-apps-accounts-on-one-ipod-touch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How that photo found me</title>
		<link>http://yken.org/2009/11/29/how-that-photo-found-me/</link>
		<comments>http://yken.org/2009/11/29/how-that-photo-found-me/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 18:17:59 +0000</pubDate>
		<dc:creator>ikendra</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[TEDx]]></category>

		<guid isPermaLink="false">http://yken.org/?p=260</guid>
		<description><![CDATA[Recently, I posted a small article on TEDxAmsterdam, on how inspiring and motivating the event was. Today, more than a week later, I still feel the motivation and drive to implement the ideas which I had in my head for long time. Nothing big, just making or changing some small things in my immediate surroundings. [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, I posted a <a href="http://yken.org/2009/11/23/20-course-diner-for-your-brain/">small article</a> on <a href="http://www.tedxamsterdam.nl/">TEDxAmsterdam</a>, on how inspiring and motivating the event was. Today, more than a week later, I still feel the motivation and drive to implement the ideas which I had in my head for long time. Nothing big, just making or changing some small things in my immediate surroundings. As if the event, where everyone was encouraged to share their personal breaktrough with the others, was that small personal breaktrough for myself.<br />
<span id="more-260"></span><br />
So this weekend, I was processing and printing some of the <a href="http://www.flickr.com/photos/yellowsofa/">photographs</a> I took recently. Printing was taking some time so as I was waiting for it to finish, I checked the content of the <a href="http://www.tedxamsterdam.nl/2009/tedxamsterdam-gift-bag/">TEDx goodie bag</a>. One of the items in the bag was a magazine called &#8220;Proud&#8221;. This magazine is published by <a href="http://www.iamsterdam.com/en/business">amsterdam inbusiness</a>, the official foreign investment agency of Amsterdam Metropolitan Area. As I was browsing through the magazine, I spotted this photograph:</p>
<p><img src="http://yken.org/wp-content/IMG_2523-1-500.JPG" alt="IMG_2523-1-500" title="IMG_2523-1-500" width="500" height="333" class="aligncenter size-full wp-image-263" /></p>
<p>There was nothing extraordinary about the photograph of the Paradiso club, other than the feeling I had. I somehow felt that I saw this photo before. And yes indeed, I not only saw the photo before, I actually <a href="http://www.flickr.com/photos/yellowsofa/2224622944/in/set-72157600253665813/"> took it</a>.</p>
<p>It is funny when I think about it because TEDx inspired me to actually do something about my photographs so that some of them would perhaps get published or used by someone else. And only by doing this work I found out that one of them was actually used already. And if I didn&#8217;t go to TEDx, which motivated me to work on the photos, I would have probably never found out that a photo was already used. Can this be called a synchronicity?</p>
<p>NB: Thanks to the magazine editors for using the photo fully according to the <a href="http://creativecommons.org/licenses/by-nc-sa/2.0/deed.en">license</a> under which it was published.</p>
]]></content:encoded>
			<wfw:commentRss>http://yken.org/2009/11/29/how-that-photo-found-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A 20 course diner for your brain</title>
		<link>http://yken.org/2009/11/23/20-course-diner-for-your-brain/</link>
		<comments>http://yken.org/2009/11/23/20-course-diner-for-your-brain/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 20:53:18 +0000</pubDate>
		<dc:creator>ikendra</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[TEDx]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://yken.org/?p=232</guid>
		<description><![CDATA[
I had a privilege and honor to be invited to attend the TEDx event in Amsterdam last week. Although a long-time subscriber to podcast at TED website, I was curious what the character of the first-ever Dutch TEDx event would be. Open, inspiring and forward looking? Or just a chique networking event for the &#8220;lucky [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligntop size-full wp-image-231" title="2009-Kevin-Kelly-TEDxAmsterdam" src="http://yken.org/wp-content/2009-Kevin-Kelly-TEDxAmsterdam.jpg" alt="2009-Kevin-Kelly-TEDxAmsterdam" width="500" height="368" /></p>
<p>I had a privilege and honor to be invited to attend the <a href="http://www.tedxamsterdam.nl/">TEDx event in Amsterdam</a> last week. Although a long-time subscriber to podcast at <a href="http://www.ted.com/">TED website</a>, I was curious what the character of the first-ever Dutch TEDx event would be. Open, inspiring and forward looking? Or just a chique networking event for the &#8220;lucky few&#8221; wrapped in a popular image of TED?<br />
<span id="more-232"></span><br />
My fears dissolved as soon as the first speaker, <a href="http://en.wikipedia.org/wiki/Frans_Timmermans">Frans Timmermans</a> began his inspiring speech on how embracing our fears can unleash creativity, can be fun and can lead towards resolution of complex problems. Within moments and then until the end of the day the conference room was charged with inspiration, hope and optimism, with sincere determination of the speakers and attendees not only to spread the ideas but also to act towards making them happen. I liked how many ideas were directly related to environmental sustainability of life on our planet. And not only ideas, but also concrete products were demoed, I personally loved for instance the product <a href="http://www.wattcher.nl/english">Wattcher</a>, giving you instant information on how much energy your household consumes at any given moment.</p>
<p>
And not to forget&#8230; the humor! Speakers like the Dutch photographer Hans Aarsman or Danish architect <a href="http://en.wikipedia.org/wiki/Bjarke_ingels">Bjarke Ingels</a> provided an insightful look into their work with humor which was impossible to resist. According to the organizers, there will be a speech recording posted on YouTube every week, sure look them up there. Apropos, the organizers. I was amazed how much care, energy and attention to detail was put into organizing the event. Already the guest list selection process must have been a headache, just imagine that for every attendee there were ten of those whom the organizers had to disappoint.
</p>
<p>Although not without a bit of preaching, TEDxAmsterdam was a very inspiring event with a potential to change the course of one&#8217;s life and thinking. It felt like attending a 20 course diner for your brain. I would like to thank the organizers for making the TEDx in Amsterdam happen, I&#8217;m looking forward to the 2010 edition. I won&#8217;t attend though, so that those who were not invited this year, have a greater chance next year. Hey, and I&#8217;m getting that Wattcher thing, not only to talk about making something happen for the planet, but also to act.
</p>
<p>
NB: There was not much room for snapshots during the day packed with talks and demos, so just one photograph: <a href="http://en.wikipedia.org/wiki/Kevin_Kelly_%28editor%29">Kevin Kelly</a> (Wired magazine) speaking.
</p>
<p>
<strong>Update:</strong> Frans Timmermans&#8217; speech, mentioned above, is now <a href="http://tinyurl.com/tedx-first">available on Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://yken.org/2009/11/23/20-course-diner-for-your-brain/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Setting up mod_wsgi with XAMPP on a Mac</title>
		<link>http://yken.org/2009/09/17/setting-up-mod_wsgi-with-xampp-on-a-mac/</link>
		<comments>http://yken.org/2009/09/17/setting-up-mod_wsgi-with-xampp-on-a-mac/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 19:37:37 +0000</pubDate>
		<dc:creator>ikendra</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://yken.org/?p=213</guid>
		<description><![CDATA[For a project at work I needed to create a Python app, accessible via http. I&#8217;m using a Mac with XAMPP installed at work. Being used to do this sort of work mostly in PHP, I needed to learn a few things. Here is the summary of how to make it work on the localhost.

Download [...]]]></description>
			<content:encoded><![CDATA[<p>For a project at work I needed to create a Python app, accessible via http. I&#8217;m using a Mac with XAMPP installed at work. Being used to do this sort of work mostly in PHP, I needed to learn a few things. Here is the summary of how to make it work on the localhost.</p>
<p><span id="more-213"></span></p>
<h5>Download mod_wsgi</h5>
<p>Python WSGI is a specification of interface between web servers and Python applications or application frameworks.  The mod_wsgi is an Apache module, using which it is possible to access Python applications (which adhere to WSGI speficiation) via http.</p>
<p>The mod_wsgi can be downloaded from <a href="http://code.google.com/p/modwsgi/">http://code.google.com/p/modwsgi/</a>.</p>
<h5>Compile and install mod_wsgi</h5>
<p>Versions used: Python 2.5.1, apache 2.2.11, mod_wsgi 2.3</p>
<p>Unpack the mod_wsgi and run the usual:</p>
<pre>
$ ./configure
$ make
$ sudo make install
</pre>
<p>On my Mac, the module was installed to <code>/usr/libexec/apache2</code>, I had to copy it manually to XAMPP location:</p>
<pre>
$ sudo cp /usr/libexec/apache2/mod_wsgi.so /Applications/xampp/xamppfiles/modules/
</pre>
<h5>Write a sample Python WSGI application</h5>
<p>The next step is to create a directory where the Python application will be stored. Unlike with PHP scripts, Apache server needs to be made aware of exact location of the app. We also have to tell Apache which particular script needs to be executed for any http request which points to the application directory. This is also very different from what you might be used to with PHP. To be able to do all the configuration changes in <code>httpd.conf</code>, we first need to create a directory and to create the main application script so we can write down all directory and file names required.</p>
<pre>
[ivk@ivk-mbpro /Applications/xampp/xamppfiles/htdocs]$ mkdir app-sample
[ivk@ivk-mbpro /Applications/xampp/xamppfiles/htdocs]$ cd app-sample
[ivk@ivk-mbpro /Applications/xampp/xamppfiles/htdocs/app-sample]$ vi main.py
</pre>
<p><code>main.py</code> can be for instance a simple Hello World! app:</p>
<pre>
def application(env, start_response):
    start_response("200 OK", [])
    output = "&lt;html&gt;Hello World! Request: %s&lt;/html&gt;"
    output %= env['PATH_INFO']
    return [output]
</pre>
<h5>Put it all together</h5>
<p>Modify the <code>httpd.conf</code> by adding the following:</p>
<pre>
LoadModule wsgi_module modules/mod_wsgi.so

WSGIScriptAlias /app-sample "/Applications/xampp/xamppfiles/htdocs/app-sample/main.py"
&lt;Directory "/Applications/xampp/xamppfiles/htdocs/app-sample"&gt;
    Order deny,allow
    Allow from all
&lt;/Directory&gt;
</pre>
<p><code>WSGIScriptAlias</code> directive makes sure that for all requests to <code>/app-sample</code>, the <code>"/Applications/xampp/xamppfiles/htdocs/app-sample/main.py"</code>will be executed by Python.</p>
<p>Modify <code>mime.types</code> by adding &#8220;py&#8221; as follows:</p>
<pre>
text/html        html htm py
</pre>
<p>After Apache restart you should be able to access your python script <code>main.py</code> via http:</p>
<p><img src="http://yken.org/wp-content/python-sample-app-wsgi.jpg" alt="python-sample-app-wsgi" title="python-sample-app-wsgi" width="512" height="432" class="alignleft size-full wp-image-223" /></p>
]]></content:encoded>
			<wfw:commentRss>http://yken.org/2009/09/17/setting-up-mod_wsgi-with-xampp-on-a-mac/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mac Mini (Intel) memory replacement</title>
		<link>http://yken.org/2009/08/29/mac-mini-intel-memory-replacement/</link>
		<comments>http://yken.org/2009/08/29/mac-mini-intel-memory-replacement/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 20:14:10 +0000</pubDate>
		<dc:creator>ikendra</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://yken.org/?p=175</guid>
		<description><![CDATA[Today I decided to finally upgrade the capacity of RAM of my old trusty Mac Mini from one to two GB. The whole process was a bit more complicated than I anticipated so I decided to write a few comments here coupled with some photos. Be aware that following these steps will void your warranty [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-180" title="mac-mini-top-view-120" src="http://yken.org/wp-content/mac-mini-top-view-120.jpg" alt="mac-mini-top-view-120" width="120" height="115" />Today I decided to finally upgrade the capacity of RAM of my old trusty Mac Mini from one to two GB. The whole process was a bit more complicated than I anticipated so I decided to write a few comments here coupled with some photos. Be aware that following these steps will void your warranty and might cost you a bit of time.<br />
<span id="more-175"></span></p>
<p><h5>Tools</h5>
<p>There are no screws on Mac Mini case which means that you will have to use a tool to open your computer. Once opened, you will need to remove a few small screws so appropriate small screwdriver will be required. The screws inside are a bit hard to reach, I found it very important to use a small magnet tool to be able to remove the screws.</p>
<p><img class="centered size-full wp-image-190" title="tools-4" src="http://yken.org/wp-content/tools-4.jpg" alt="tools-4" width="510" height="358" />
</p>
<h5>Opening Mac Mini</h5>
<p>Disconnect all cables from your Mac and turn it belly up. There are no screws or handles to help us to remove the case so I used a stainless flex tool to open up the computer. Make sure the tool is clean when used before by a craftsman. To open up the computer you need to carefully insert the tool in between the case and the body of the computer, one side after another except the one where all connectors are located (rear panel). Once you insert the tool, apply pressure carefully to pop the computer body up.</p>
<p><img class="centered size-full wp-image-192" title="mac-mini-open-up" src="http://yken.org/wp-content/mac-mini-open-up.jpg" alt="mac-mini-open-up" width="510" height="353" /></p>
<p>Using a screwdriver is not recommended, this could result into visible marks on the computer&#8217;s plastic body. This step calls for some patience and maybe a few repeats. I had my cat Lennon sitting on a pillow near by to help me keep relaxed and calm. A scratch or two will likely be result of this action.</p>
<h5>Memory modules</h5>
<p>What you will see once you open the computer is that you do not see the memory modules. Yes, there are buried inside and we need to do some more work to reach them. Your Mac now looks something like this:</p>
<p><img class="centered size-full wp-image-194" title="mac-mini-open" src="http://yken.org/wp-content/mac-mini-open.jpg" alt="mac-mini-open" width="510" height="388" /></p>
<p>Continue by removing the upper part of computer&#8217;s body which consists of the optical drive, hard drive and the CPU fan. To do so, we have to remove four screws. These screws, black colored,  are located in each corner of the body. You can see three of them. Once unscrewed, use a magnet tool (or magnetic screwdriver) to remove them. I found it impossible to remove the screws otherwise (apart of flipping the whole computer upside down for a second). Fourth screw is hidden under the Wi-Fi antenna:</p>
<p><img src="http://yken.org/wp-content/mac-mini-wifi.jpg" alt="mac-mini-wifi" title="mac-mini-wifi" width="510" height="365" class="centered size-full wp-image-198" />  </p>
<p>Remove the Wi-Fi antenna by gently pressing on two plastic clips below the antenna and pulling the antenna (gently) at the same time. Antenna will still stay connected to the computer by a cable. After removing the antenna, you will see the fourth screw. After removed, also unplug the cable which connects the upper part of the computer&#8217;s body with the rest of it:</p>
<p><img src="http://yken.org/wp-content/mac-mini-cable-unplug.jpg" alt="mac-mini-cable-unplug" title="mac-mini-cable-unplug" width="510" height="353" class="centered size-full wp-image-200" /></p>
<p>Gently lift the upper part of the computer&#8217;s body. At one side, the upper part is still connected to the rest of the computer so you will simply have to flip the upper part on one side. This will open the access to memory modules, you can now easily exchange them:</p>
<p><img src="http://yken.org/wp-content/mac-mini-upper-part-open.jpg" alt="mac-mini-upper-part-open" title="mac-mini-upper-part-open" width="510" height="323" class="centered size-full wp-image-202" /></p>
<p>What happened to me at this point was that my Wi-Fi antenna got disconnected from the computer. I thought that something got seriously broken. Luckily, the antenna just only got unplugged, it was no problem to put it back. Look-up the wireless adapter card on the board (on my Mac it was called AR5BXB6) and plug the antenna back in (connector MAIN). The lose antenna and the wireless adapter on the main board look something like this:</p>
<p><img src="http://yken.org/wp-content/mac-mini-lose-wifi1.jpg" alt="mac-mini-lose-wifi1" title="mac-mini-lose-wifi1" width="510" height="349" class="centered size-full wp-image-205" /></p>
<p><img src="http://yken.org/wp-content/mac-mini-wifi-adaptor-connector.jpg" alt="mac-mini-wifi-adaptor-connector" title="mac-mini-wifi-adaptor-connector" width="510" height="353" class="centered size-full wp-image-207" /></p>
<p>Assembling your Mac back together is simple, just follow the above steps in reverse order. I did power-up the computer once before putting the computer back just to avoid having to open it again in case something went wrong. The first experiences after the upgrade (i.e. writing this article) are very positive, there is no memory swapping to disk which I experienced when processing multiple (large) images with GIMP and having many tabs in Firefox opened at the same time, my old trusty Mac runs much smoother.</p>
<h5>Small print</h5>
<p>This article describes the memory upgrade for Apple Mac Mini 1.83 GHz Intel Core 2 Duo. Opening up your computer voids your Apple warranty and might lead to permanent damage to the computer. Do not try this at home unless you know what you are doing. It is advised to have this done by an authorized service company. Contact Apple for detailed options. </p>
]]></content:encoded>
			<wfw:commentRss>http://yken.org/2009/08/29/mac-mini-intel-memory-replacement/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Barrie back in Amsterdam</title>
		<link>http://yken.org/2009/08/09/barrie-back-in-amsterdam/</link>
		<comments>http://yken.org/2009/08/09/barrie-back-in-amsterdam/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 21:34:47 +0000</pubDate>
		<dc:creator>ikendra</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[free time]]></category>
		<category><![CDATA[music]]></category>

		<guid isPermaLink="false">http://yken.org/?p=151</guid>
		<description><![CDATA[Yesterday, I&#8217;ve seen the concert of Primal Scream in Paradiso, Amsterdam. While I was really looking forward to seeing the band for the first time, the most interesting part of the night for me was to see Barrie Cadogan, the lead singer and guitarist of a three-piece band called Little Barrie.
Barrie now tours with Primal [...]]]></description>
			<content:encoded><![CDATA[<p><img title="Barrie Cadogan" src="http://yken.org/wp-content/img_0782-1-5881-257x299.jpg" alt="Barrie Cadogan" width="257" height="299" class="alignleft" />Yesterday, I&#8217;ve seen the concert of Primal Scream in Paradiso, Amsterdam. While I was really looking forward to seeing the band for the first time, the most interesting part of the night for me was to see Barrie Cadogan, the lead singer and guitarist of a three-piece band called Little Barrie.</p>
<p>Barrie now tours with Primal Scream. I saw <a href="http://yken.org/2007/03/14/little-barrie-back-in-the-city/">him and his band</a> a couple of times before in Amsterdam and even ended up backstage with the band. Apart of finishing all the Heineken in the band&#8217;s fridge, we left the club with a beermat full of musical tips from Barrie.</p>
<p>I keep the beermat until now, to remind me of that rock&#8217;n'roll night. Primal Scream were great last night and Barrie (on the photo) rocked.</p>
<p><a href="http://www.flickr.com/search/?q=primal%20scream&#038;w=55151306%40N00">Primal Scream @ Paradiso, Amsterdam, 8 August 2009 on my Flickr</a></p>
]]></content:encoded>
			<wfw:commentRss>http://yken.org/2009/08/09/barrie-back-in-amsterdam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finder: &#8220;There is no default application specified &#8230;&#8221;</title>
		<link>http://yken.org/2009/02/01/finder-there-is-no-default-application-specified/</link>
		<comments>http://yken.org/2009/02/01/finder-there-is-no-default-application-specified/#comments</comments>
		<pubDate>Sun, 01 Feb 2009 22:09:46 +0000</pubDate>
		<dc:creator>ikendra</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://yken.org/?p=117</guid>
		<description><![CDATA[After creating a disk image (hdiutil create) and subsequently copying the files careleslly from within the bundle folder directly into my home directory, I could not anymore access my home directory from Finder. The error I got was &#8220;There is no default application specified to open the document&#8221;. Finder was recognizing my home directory as [...]]]></description>
			<content:encoded><![CDATA[<p>After creating a disk image (<code>hdiutil create</code>) and subsequently copying the files careleslly from within the bundle folder directly into my home directory, I could not anymore access my home directory from Finder. The error I got was &#8220;There is no default application specified to open the document&#8221;. Finder was recognizing my home directory as &#8220;package&#8221;.<br />
<span id="more-117"></span><br />
Command line access worked fine all the time. To resolve the problem, I removed all mistakenly copied bundle files from my home directory:</p>
<pre>-rw-r--r--   1 ivk  staff  499 Jan 18 23:47 Info.bckup
-rw-r--r--   1 ivk  staff  499 Jan 18 23:47 Info.plist
drwxr-xr-x  18 ivk  staff  612 Jan 18 23:47 bands
-rw-r--r--   1 ivk  staff    0 Jan 18 23:47 token</pre>
<p>Finder however still displayed the same message, even after removing the mistakenly copied files. To me it appeared as if some kind of flag was set on the home directory, instructing applications which read the flag to act as if my home dir was not a regular directory (anymore).</p>
<p>The actual resolution of the problem was to run <code>SetFile</code> utility which sets (or resets) attributes on files or directories:</p>
<pre>$ /usr/bin/SetFile -a b /Users/ivk</pre>
<p>Note: The <code>SetFile</code> man page does not list attribute b (or B) amongst those that can be applied to directory, the command however worked well. Used on HFS+ filesystem (Mac OS Extended), on OS X 10.5.6.</p>
]]></content:encoded>
			<wfw:commentRss>http://yken.org/2009/02/01/finder-there-is-no-default-application-specified/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Parsing the command line in Objective-C</title>
		<link>http://yken.org/2009/01/14/parsing-the-command-line-in-objective-c/</link>
		<comments>http://yken.org/2009/01/14/parsing-the-command-line-in-objective-c/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 00:40:42 +0000</pubDate>
		<dc:creator>ikendra</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://yken.org/?p=77</guid>
		<description><![CDATA[Decision into which platform to rewrite the shell script to retrieve the stock quotes using Google API was a simple one &#8211; I would like to use Objective-C to be able to run the program on a Mac (and later hopefully on my iPod touch too). I began exploring the Objective-C only recently so I [...]]]></description>
			<content:encoded><![CDATA[<p>Decision into which platform to rewrite the <a href="http://yken.org/2009/01/05/how-to-get-a-real-time-stock-quote-using-google-api/">shell script to retrieve the stock quotes using Google API</a> was a simple one &#8211; I would like to use Objective-C to be able to run the program on a Mac (and later hopefully on my iPod touch too). I began exploring the Objective-C only recently so I considered to be a good exercise to learn about basic Foundation classes by writing a class to parse command line arguments (instead of using the obvious <a href="http://www.gnu.org/software/libc/manual/html_node/Getopt.html">getopt</a> choice).</p>
<p><span id="more-77"></span><br />
&nbsp;<br />
<!--more--><a href="http://yken.org/hub/wp-content/CommandLineSample.tar.gz">Download the XCode project (CommandLineSample.tar.gz, 48kB) &#8211; including a sample</a><br />
<!--more--><br />
&nbsp;<br />
<!--more--></p>
<p>The CommandLine class is very simple and offers the following functionality:</p>
<ul>
<li>Validates and parses the command line arguments according to user defined struture of options (NSDictionary)</li>
<li>Options can be declared required or optional, followed by option value or not</li>
<li>Minimum number of expected parameters (beside options) can be set</li>
<li>When command line parsing fails, a message describing the error can be retrieved</li>
</ul>
<p><!--more--><br />
A sample use of the CommandLine class:</p>
<pre>
#import &lt;Foundation/Foundation.h&gt;
#import "CommandLine.h"

int main (int argc, char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    BOOL parseSuccess;

    CommandLine *commandLine =
        [[CommandLine alloc] initWithArgc: argc andArgv: argv];

    // This sample expects at least one parameter (other that options)
    int sampleMinNumberOfParams = 1;

    // Define the matrix describing expected options
    NSDictionary *sampleOptionsMatrix =
        [NSDictionary dictionaryWithObjectsAndKeys:
            CL_OPTION_REQUIRED, @"a",
            CL_OPTION_OPTIONAL, @"b",
            CL_OPTION_REQUIRED_WITH_VALUE, @"f",
            CL_OPTION_OPTIONAL_WITH_VALUE, @"x",
            nil];

    // Pass on required parameters to the parser and execute the parser
    [commandLine cL_setOptionsMatrix: sampleOptionsMatrix
    andMinNumberOfParams: sampleMinNumberOfParams];

    parseSuccess = [commandLine cL_parse];

    if (parseSuccess) {
        // Display the parsed options.
        for (NSString *key in commandLine.parsedCommandLine) {
        NSLog(
           [NSString stringWithFormat: @"Option: %@ Value: %@", key,
           [commandLine.parsedCommandLine valueForKey:key]]);
        }
        //And some more processing of a successfully parsed command line:
        if ([commandLine cL_optionIsSet: @"b"]) {
            NSLog(@"Option b was set");
        }
        NSLog(
            [NSString stringWithFormat: @"Value of the 1st parameter is %@",
            [commandLine cL_parameterGetValue: 1]]);
    } else {
        //Display the error message
        NSLog(commandLine.resultText);
    }

    [pool drain];
    [commandLine release];

    return 0;
}
</pre>
<p>A few notes:</p>
<ul>
<li>Alternative long option names are not supported</li>
<li>The options matrix appears to be somewhat verbose, hope it is not too much overhead</li>
<li>The CommandLine class source code enables some documentation to be generated using <a href="http://www.informatik.uos.de/elmar/projects/objcdoc/">objcdoc</a>
</ul>
<p><!--more--><br />
Feel free to use and modify the class in any way. Now off to the next step: learning the <a href="http://code.google.com/p/gdata-objectivec-client/">Google Data APIs Objective-C Client Library</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://yken.org/2009/01/14/parsing-the-command-line-in-objective-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
