<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Rudifa's Blog</title>
	<atom:link href="http://rudifa.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://rudifa.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Sat, 23 Jul 2011 14:21:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='rudifa.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Rudifa's Blog</title>
		<link>http://rudifa.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://rudifa.wordpress.com/osd.xml" title="Rudifa&#039;s Blog" />
	<atom:link rel='hub' href='http://rudifa.wordpress.com/?pushpress=hub'/>
		<item>
		<title>CloneXcodeProject.sh</title>
		<link>http://rudifa.wordpress.com/2011/07/23/clonexcodeproject-sh/</link>
		<comments>http://rudifa.wordpress.com/2011/07/23/clonexcodeproject-sh/#comments</comments>
		<pubDate>Sat, 23 Jul 2011 14:21:46 +0000</pubDate>
		<dc:creator>rudifa</dc:creator>
				<category><![CDATA[Xcode Tools]]></category>

		<guid isPermaLink="false">http://rudifa.wordpress.com/?p=88</guid>
		<description><![CDATA[What Programming with Xcode? Want to make a fresh start from an existing Xcode project under a new name? Not quite satisfied with project renaming features in Xcode 4.0? Me too. How I have been using the excellent Monte Ohrt&#8217;s script renameXcodeProject.sh for almost 2 years, and I made small improvements along the way. I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rudifa.wordpress.com&amp;blog=6499371&amp;post=88&amp;subd=rudifa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>What</h2>
<p>Programming with Xcode?</p>
<p>Want to make a fresh start from an existing Xcode project under a new name?</p>
<p>Not quite satisfied with project renaming features in Xcode 4.0?</p>
<p>Me too.</p>
<h2>How</h2>
<p>I have been using the excellent Monte Ohrt&#8217;s <a href="http://mohrt.blogspot.com/2009/01/renaming-xcode-project-from-command.html">script</a> <strong><a href="http://www.phpinsider.com/xcode/renameXcodeProject.sh.txt">renameXcodeProject.sh</a></strong> for almost 2 years, and I made small improvements along the way.</p>
<p>I named my version of the script <strong>cloneXcodeProject.sh</strong> to reflect more precisely what the scripts do : while Xcode renames things in place, these scripts make a copy of all project files and then rename the copied files and text items in them.</p>
<p>Sometimes you want to clone a project whose files are read-only (perhaps they were checked into a Perforce depot). In this case the copied files are also read-only, and Monte&#8217;s script can&#8217;t modify them. My script makes them writable.</p>
<p>Monte&#8217;s script refuses to work if the new project name contains the old name. You have to run his script twice in this case, first cloning to a temporary project name and then to the final name, and remove the temporary project at the end. I did this many times, until I looked for and found a simple automated solution.</p>
<p>If needed, my script creates the temporary clone and then launches itself recursively for the second pass in which it clones and then removes the temporary clone.</p>
<p>Here is my script :</p>
<pre class="brush: bash;">

#!/bin/sh

################################################################################
#
#      cloneXcodeProject.sh
#
# morphed from the original renameXcodeProject.sh by Monte Ohrt (see below)
# by Rudi Farkas &lt;rudi.farkas@gmail.com&gt;
# version : 1.01
# date : 22 Jul 2011
#
# purpose : copy and rename an XCode project
#
# features (over and above those of renameXcodeProject.sh) :
#
# 1- makes the copied files writable before attempting to modify their content
#
# 2- works even if the new project name contains the old project name, for instance
#     cloneXcodeProject.sh &quot;MyStuff&quot; &quot;MyStuff2&quot;
#
# installation :
#
# copy this file to a directory in your PATH, and make it executable with :
#
#   chmod +x cloneXcodeProject.sh
#
# usage :
#
#   cloneXcodeProject.sh &lt;OldProjectName&gt; &lt;NewProjectName&gt;
#
# example :
#
#   cloneXcodeProject.sh MyStuff MyNewStuff
#
# use at your own risk
# let me know if something does not work as advertized
#
################################################################################

################################################################################
#
# renameXcodeProject.sh
#
# author: Monte Ohrt &lt;monte@ohrt.com&gt;
# date: Jan 27, 2009
# version: 1.0
# http://www.phpinsider.com/xcode/renameXcodeProject.sh.txt
#
# This script will copy an xcode project to a new project directory name
# and replace/rename all files within to work as expected under the new name.
# Project names that contain characters other than alpha-numeric, spaces or
# underscores MAY not work properly with this script. Use at your own risk!
# Be CERTAIN to backup your project(s) before renaming.
#
# One simple rule:
#
# 1) The old project name cannot contain the new project name, so for instance,
#    renaming &quot;MyStuff&quot; to &quot;MyStuff2&quot; will not work. If you really need to do
#    this, rename the project to a temp name, then rename again.
#
# I have instructions for manually renaming an xcode project here:
#
# http://mohrt.blogspot.com/2008/12/renaming-xcode-project.html
#
#
# Installation:
#
# Copy (this) file &quot;renameXcodeProject.sh&quot; to your file system, and invoke:
#
#   chmod 755 renameXcodeProject.sh
#
# to make it executable.
#
# usage:
#
#   renameXcodeProject.sh &lt;OldProjectName&gt; &lt;NewProjectName&gt;
#
# example:
#
#   ./renameXcodeProject.sh MyStuff MyNewStuff
#
################################################################################

OLDNAME=$1
NEWNAME=$2

# remove bad characters
OLDNAME=`echo &quot;${OLDNAME}&quot; | sed -e &quot;s/[^a-zA-Z0-9_ -]//g&quot;`
NEWNAME=`echo &quot;${NEWNAME}&quot; | sed -e &quot;s/[^a-zA-Z0-9_ -]//g&quot;`

echo ${OLDNAME}
echo ${NEWNAME}

TMPFILE=/tmp/xcodeRename.$$
TMPPROJNAME=&quot;D401CB997FCB4CB4AABFAC60E754C7B2&quot;

if [ &quot;$OLDNAME&quot; = &quot;&quot; -o &quot;$NEWNAME&quot; = &quot;&quot; ]; then
  echo &quot;usage: $0 &lt;OldProjectName&gt; &lt;NewProjectName&gt;&quot;
  exit
fi

if [ ! -d &quot;${OLDNAME}&quot; ]; then
  echo &quot;ERROR: \&quot;${OLDNAME}\&quot; must be a directory&quot;
  exit
fi

# set new project directory
if [ -d &quot;${NEWNAME}&quot; ]; then
  echo &quot;ERROR: project directory \&quot;${NEWNAME}\&quot; exists. Terminating.&quot;
  exit
fi

# does NEWNAME contain OLDNAME ?
echo &quot;${NEWNAME}&quot; | grep &quot;${OLDNAME}&quot; &gt; /dev/null
if [ $? -eq 0 ]; then
  # yes : set up names for the two-pass operation
  FINALNAME=&quot;${NEWNAME}&quot;
  NEWNAME=&quot;401CB99D-7FCB-4CB4-AABF-AC60E754C7B2&quot;
  echo &quot;Warning: New project name contains old project name. Project will be renamed in two passes.&quot;
else
  # no : one pass operation is sufficient
  FINALNAME=&quot;&quot;
fi

# be sure tmp file is writable
cp /dev/null ${TMPFILE}
if [ $? -ne 0 ]; then
  echo &quot;tmp file ${TMPFILE} is not writable. Terminating.&quot;
  exit
fi

# create project name with unscores for spaces
OLDNAMEUSCORE=`echo &quot;${OLDNAME}&quot; | sed -e &quot;s/ /_/g&quot;`
NEWNAMEUSCORE=`echo &quot;${NEWNAME}&quot; | sed -e &quot;s/ /_/g&quot;`

# copy project directory
echo copying project directory from &quot;${OLDNAME}&quot; to &quot;${NEWNAME}&quot;
cp -rp &quot;${OLDNAME}&quot; &quot;${NEWNAME}&quot;

# remove build directory
echo removing build directory from &quot;${NEWNAME}&quot;
rm -rf &quot;${NEWNAME}/build&quot;

# find text files, replace text
find &quot;${NEWNAME}/.&quot; | while read currFile
do
  # find files that are of type text
  file &quot;${currFile}&quot; | grep &quot;text&quot; &gt; /dev/null
  if [ $? -eq 0 ]; then
    # make sure it is writable
    chmod +w &quot;${currFile}&quot;
    # see if old proj name with underscores is in the text
    grep &quot;${OLDNAMEUSCORE}&quot; &quot;${currFile}&quot; &gt; /dev/null
    if [ $? -eq 0 ]; then
      # replace the text with new proj name
      echo replacing &quot;${OLDNAMEUSCORE}&quot; in &quot;${currFile}&quot;
      sed -e &quot;s/${OLDNAMEUSCORE}/${NEWNAMEUSCORE}/g&quot; &quot;${currFile}&quot; &gt; ${TMPFILE}
      mv ${TMPFILE} &quot;${currFile}&quot;
      cp /dev/null ${TMPFILE}
    fi
    # see if old proj name is in the text
    grep &quot;${OLDNAME}&quot; &quot;${currFile}&quot; &gt; /dev/null
    if [ $? -eq 0 ]; then
      # replace the text with new proj name
      echo replacing &quot;${OLDNAME}&quot; in &quot;${currFile}&quot;
      sed -e &quot;s/${OLDNAME}/${NEWNAME}/g&quot; &quot;${currFile}&quot; &gt; ${TMPFILE}
      mv ${TMPFILE} &quot;${currFile}&quot;
      cp /dev/null ${TMPFILE}
    fi
  fi
done

# rename directories with underscores
find &quot;${NEWNAME}/.&quot; -type dir | while read currFile
do
  echo &quot;${currFile}&quot; | grep &quot;${OLDNAMEUSCORE}&quot; &gt; /dev/null
  if [ $? -eq 0 ]; then
    MOVETO=`echo &quot;${currFile}&quot; | sed -e &quot;s/${OLDNAMEUSCORE}/${NEWNAMEUSCORE}/g&quot;`
    echo renaming &quot;${currFile}&quot; to &quot;${MOVETO}&quot;
    mv &quot;${currFile}&quot; &quot;${MOVETO}&quot;
  fi
done

# rename directories with spaces
find &quot;${NEWNAME}/.&quot; -type dir | while read currFile
do
  echo &quot;${currFile}&quot; | grep &quot;${OLDNAME}&quot; &gt; /dev/null
  if [ $? -eq 0 ]; then
    MOVETO=`echo &quot;${currFile}&quot; | sed -e &quot;s/${OLDNAME}/${NEWNAME}/g&quot;`
    echo renaming &quot;${currFile}&quot; to &quot;${MOVETO}&quot;
    mv &quot;${currFile}&quot; &quot;${MOVETO}&quot;
  fi
done

# rename files with underscores
find &quot;${NEWNAME}/.&quot; -type file | while read currFile
do
  echo &quot;${currFile}&quot; | grep &quot;${OLDNAMEUSCORE}&quot; &gt; /dev/null
  if [ $? -eq 0 ]; then
    MOVETO=`echo &quot;${currFile}&quot; | sed -e &quot;s/${OLDNAMEUSCORE}/${NEWNAMEUSCORE}/g&quot;`
    echo renaming &quot;${currFile}&quot; to &quot;${MOVETO}&quot;
    mv &quot;${currFile}&quot; &quot;${MOVETO}&quot;
  fi
done

# rename files with spaces
find &quot;${NEWNAME}/.&quot; -type file | while read currFile
do
  echo &quot;${currFile}&quot; | grep &quot;${OLDNAME}&quot; &gt; /dev/null
  if [ $? -eq 0 ]; then
    MOVETO=`echo &quot;${currFile}&quot; | sed -e &quot;s/${OLDNAME}/${NEWNAME}/g&quot;`
    echo renaming &quot;${currFile}&quot; to &quot;${MOVETO}&quot;
    mv &quot;${currFile}&quot; &quot;${MOVETO}&quot;
  fi
done

rm -f ${TMPFILE}

if [ &quot;$FINALNAME&quot; = &quot;&quot; ]; then
  # this is the second pass : remove temp project directory
  if [ &quot;${OLDNAME}&quot; = &quot;${TMPPROJNAME}&quot; ]; then
    rm -rf &quot;${TMPPROJNAME}&quot;
  fi
  echo finished.
  exit
else
  echo
  echo starting the second pass...
  $0 &quot;$NEWNAME&quot; &quot;$FINALNAME&quot;
fi
</pre>
<h2></h2>
<h2>Why</h2>
<p>Googling for &#8220;Xcode 4 rename project&#8221; produces quite a few discussions and contrasting opinions, for example :</p>
<p><a href="http://stackoverflow.com/questions/5416677/renaming-projects-in-xcode-4">Renaming projects in XCode 4</a></p>
<p><a href="http://stackoverflow.com/questions/1106097/xcode-renaming-project-causes-problem">Xcode &#8211; renaming project causes problem</a></p>
<p><a href="http://arustisha.wordpress.com/2009/03/08/on-the-renaming-of-xcode-projects/">On the Renaming of Xcode Projects</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rudifa.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rudifa.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rudifa.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rudifa.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rudifa.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rudifa.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rudifa.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rudifa.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rudifa.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rudifa.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rudifa.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rudifa.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rudifa.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rudifa.wordpress.com/88/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rudifa.wordpress.com&amp;blog=6499371&amp;post=88&amp;subd=rudifa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rudifa.wordpress.com/2011/07/23/clonexcodeproject-sh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/71fa6238214bf4c63d282ba669c798c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rudifa</media:title>
		</media:content>
	</item>
		<item>
		<title>UIButton : setImage:forState vs. setBackgroundImage:forState</title>
		<link>http://rudifa.wordpress.com/2010/05/06/uibutton-setimageforstate-vs-setbackgroundimageforstate/</link>
		<comments>http://rudifa.wordpress.com/2010/05/06/uibutton-setimageforstate-vs-setbackgroundimageforstate/#comments</comments>
		<pubDate>Thu, 06 May 2010 13:08:05 +0000</pubDate>
		<dc:creator>rudifa</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rudifa.wordpress.com/2010/05/06/uibutton-setimageforstate-vs-setbackgroundimageforstate/</guid>
		<description><![CDATA[The UIButton documentation does not tell you what are the differences between these two methods. Experimenting uncovers one interesting difference: if you change the button&#8217;s frame, background images follow the size change, while images keep their original size. Take your pick.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rudifa.wordpress.com&amp;blog=6499371&amp;post=86&amp;subd=rudifa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The UIButton documentation does not tell you what are the differences between these two methods.<br />
Experimenting uncovers one interesting difference: if you change the button&#8217;s frame, background images follow the size change, while images keep their original size.<br />
Take your pick.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rudifa.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rudifa.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rudifa.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rudifa.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rudifa.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rudifa.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rudifa.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rudifa.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rudifa.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rudifa.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rudifa.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rudifa.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rudifa.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rudifa.wordpress.com/86/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rudifa.wordpress.com&amp;blog=6499371&amp;post=86&amp;subd=rudifa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rudifa.wordpress.com/2010/05/06/uibutton-setimageforstate-vs-setbackgroundimageforstate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/71fa6238214bf4c63d282ba669c798c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rudifa</media:title>
		</media:content>
	</item>
		<item>
		<title>Cubz : now I can admit it &#8230;</title>
		<link>http://rudifa.wordpress.com/2010/04/22/cubz-now-i-can-admit-it/</link>
		<comments>http://rudifa.wordpress.com/2010/04/22/cubz-now-i-can-admit-it/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 11:58:07 +0000</pubDate>
		<dc:creator>rudifa</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rudifa.wordpress.com/?p=82</guid>
		<description><![CDATA[<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rudifa.wordpress.com&amp;blog=6499371&amp;post=82&amp;subd=rudifa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://rudifa.files.wordpress.com/2010/04/ilc-photo.jpg"><img class="alignnone size-medium wp-image-83" title="cubz-easter-egg-photo" src="http://rudifa.files.wordpress.com/2010/04/ilc-photo.jpg?w=200&#038;h=300" alt="" width="200" height="300" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rudifa.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rudifa.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rudifa.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rudifa.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rudifa.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rudifa.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rudifa.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rudifa.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rudifa.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rudifa.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rudifa.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rudifa.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rudifa.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rudifa.wordpress.com/82/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rudifa.wordpress.com&amp;blog=6499371&amp;post=82&amp;subd=rudifa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rudifa.wordpress.com/2010/04/22/cubz-now-i-can-admit-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/71fa6238214bf4c63d282ba669c798c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rudifa</media:title>
		</media:content>

		<media:content url="http://rudifa.files.wordpress.com/2010/04/ilc-photo.jpg?w=200" medium="image">
			<media:title type="html">cubz-easter-egg-photo</media:title>
		</media:content>
	</item>
		<item>
		<title>Cubz is available on the AppStore</title>
		<link>http://rudifa.wordpress.com/2010/04/16/cubz-in-available-on-the-appstore/</link>
		<comments>http://rudifa.wordpress.com/2010/04/16/cubz-in-available-on-the-appstore/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 19:18:37 +0000</pubDate>
		<dc:creator>rudifa</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rudifa.wordpress.com/?p=77</guid>
		<description><![CDATA[I submittted Cubz to the AppStore on April 1, it entered into Review on April 4 and was approved for sale on April 5. However, with my associate we decided to wait a little longer, until the excitement with the iPad calms down a bit, and the world is ready for the next great iPhone [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rudifa.wordpress.com&amp;blog=6499371&amp;post=77&amp;subd=rudifa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I submittted<strong> <a href="http://playcubz.com/">Cubz </a></strong>to the AppStore on April 1, it entered into Review on April 4 and was approved for sale on April 5.</p>
<p>However, with my associate we decided to wait a little longer, until the excitement with the iPad calms down a bit, and the world is ready for the next great iPhone app.</p>
<p>Finally, <strong><a href="http://playcubz.com/">Cubz</a></strong> went live on AppStore today, 16 April 2010.</p>
<p>A small step for a programmer, but a big step for &#8230; whatever, someone must have said this a long time ago.</p>
<p>Anyway, I like <strong><a href="http://playcubz.com/">Cubz</a></strong>, and you will like it too. Promise.</p>
<p>So, now I can sit back and relax, you might say.</p>
<p>Well, no. The future iPad version of Cubz needs a bit of work, in fact quite a lot of work.</p>
<p>Then there&#8217;s the i18n (that&#8217;s geekspeak for internationalization), Cubz debuts in three languages, and more will follow.</p>
<p>And there are features that did not make it into the V.1.0.</p>
<p>Enjoy <a href="http://playcubz.com/"><strong>Cubz</strong></a>!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rudifa.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rudifa.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rudifa.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rudifa.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rudifa.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rudifa.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rudifa.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rudifa.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rudifa.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rudifa.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rudifa.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rudifa.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rudifa.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rudifa.wordpress.com/77/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rudifa.wordpress.com&amp;blog=6499371&amp;post=77&amp;subd=rudifa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rudifa.wordpress.com/2010/04/16/cubz-in-available-on-the-appstore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/71fa6238214bf4c63d282ba669c798c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rudifa</media:title>
		</media:content>
	</item>
		<item>
		<title>The day after</title>
		<link>http://rudifa.wordpress.com/2010/04/02/the-day-after/</link>
		<comments>http://rudifa.wordpress.com/2010/04/02/the-day-after/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 15:59:54 +0000</pubDate>
		<dc:creator>rudifa</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[iphone appstore]]></category>

		<guid isPermaLink="false">http://rudifa.wordpress.com/2010/04/02/the-day-after/</guid>
		<description><![CDATA[Yesterday, April 1, I submitted my first app to the AppStore for review. What a relief, after weeks of concentration on features, code, bug squashing, internationalizing and all. Sit back, relax and wait for the email from Apple. What app, you might ask. Watch this link to find out.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rudifa.wordpress.com&amp;blog=6499371&amp;post=73&amp;subd=rudifa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yesterday, April 1, I submitted my first app to the AppStore for review. What a relief, after weeks of concentration on features, code, bug squashing, internationalizing and all.<br />
Sit back, relax and wait for the email from Apple.</p>
<p>What app, you might ask.</p>
<p><a href="http://rudicubes.com/"><em>Watch this link to find out.</em></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rudifa.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rudifa.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rudifa.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rudifa.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rudifa.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rudifa.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rudifa.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rudifa.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rudifa.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rudifa.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rudifa.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rudifa.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rudifa.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rudifa.wordpress.com/73/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rudifa.wordpress.com&amp;blog=6499371&amp;post=73&amp;subd=rudifa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rudifa.wordpress.com/2010/04/02/the-day-after/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/71fa6238214bf4c63d282ba669c798c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rudifa</media:title>
		</media:content>
	</item>
		<item>
		<title>iPhone Programming Tricks and Traps</title>
		<link>http://rudifa.wordpress.com/2010/01/31/iphone-programming-tricks-and-traps/</link>
		<comments>http://rudifa.wordpress.com/2010/01/31/iphone-programming-tricks-and-traps/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 22:04:57 +0000</pubDate>
		<dc:creator>rudifa</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rudifa.wordpress.com/?p=69</guid>
		<description><![CDATA[Basic Animation : set the animation properties (like duration) before setting the properties to be animated (this is where the animation is cast in stone). Example : this fadeOut animation will last 1.5 s, as desired: Example : this fadeOut animation will last 0.2 s (the default), not 1.5 s as desired:<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rudifa.wordpress.com&amp;blog=6499371&amp;post=69&amp;subd=rudifa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Basic Animation :</strong> set the <strong>animation properties</strong> (like duration) <strong>before</strong> setting the <strong>properties to be animated</strong> (this is where the animation is cast in stone).</p>
<p>Example : this fadeOut animation will last 1.5 s, as desired:</p>
<pre class="brush: plain;">
-(void) fadeOutMyImage {
 [UIView beginAnimations:nil context:nil];
 [UIView setAnimationDuration:1.5];
 myImageView.alpha = 0.0;
 [UIView commitAnimations];
}
</pre>
<p>Example : this fadeOut animation will last 0.2 s (the default), not 1.5 s as desired:</p>
<pre class="brush: plain;">
-(void) fadeOutMyImage {
 [UIView beginAnimations:nil context:nil];
 myImageView.alpha = 0.0;
 [UIView setAnimationDuration:1.5]; // WRONG, no effect
 [UIView commitAnimations];
}
</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rudifa.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rudifa.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rudifa.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rudifa.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rudifa.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rudifa.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rudifa.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rudifa.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rudifa.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rudifa.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rudifa.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rudifa.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rudifa.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rudifa.wordpress.com/69/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rudifa.wordpress.com&amp;blog=6499371&amp;post=69&amp;subd=rudifa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rudifa.wordpress.com/2010/01/31/iphone-programming-tricks-and-traps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/71fa6238214bf4c63d282ba669c798c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rudifa</media:title>
		</media:content>
	</item>
		<item>
		<title>How to run graphviz on the Mac</title>
		<link>http://rudifa.wordpress.com/2010/01/10/how-to-run-graphviz-on-the-mac/</link>
		<comments>http://rudifa.wordpress.com/2010/01/10/how-to-run-graphviz-on-the-mac/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 18:23:49 +0000</pubDate>
		<dc:creator>rudifa</dc:creator>
				<category><![CDATA[graphviz]]></category>
		<category><![CDATA[OSX]]></category>

		<guid isPermaLink="false">http://rudifa.wordpress.com/?p=56</guid>
		<description><![CDATA[Install graphviz for Mac from graphviz.org. To check the installation, open a Terminal and type : dot -h OK, so dot was installed and added to your $PATH. Next, create a dot source file and launch dot : dot -T png -O my1st.dot For example : This will create a new file my1st.dot.png that looks [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rudifa.wordpress.com&amp;blog=6499371&amp;post=56&amp;subd=rudifa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Install graphviz</strong> for Mac from <a href="http://www.graphviz.org/Download_macos.php">graphviz.org</a>.</p>
<p>To <strong>check</strong> the installation, open a Terminal and type : <em>dot -h</em></p>
<pre class="brush: plain;">

$ dot -h
dot: option -h unrecognized

Usage: dot [-Vv?] [-(GNE)name=val] [-(KTlso)&lt;val&gt;] &lt;dot files&gt;
...
</pre>
<p>OK, so dot was installed and added to your $PATH.</p>
<p>Next, <strong>create a dot source file and launch dot</strong> : <em>dot -T png -O my1st.dot</em></p>
<p>For example :</p>
<pre class="brush: plain;">
digraph d {
 A [label=&quot;Hello&quot;]
 B [label=&quot;World&quot;]
 C [label=&quot;Everyone&quot;]
 A -&gt; { B C }
}
</pre>
<p>This will create a new file <em>my1st.dot.png </em>that looks like this :</p>
<p><a href="http://rudifa.files.wordpress.com/2010/01/my1st-dot1.png"><img class="alignnone size-full wp-image-61" title="my1st.dot" src="http://rudifa.files.wordpress.com/2010/01/my1st-dot1.png?w=253&#038;h=155" alt="" width="253" height="155" /></a></p>
<p>For more about graphviz, look at the <a href="http://www.graphviz.org/Gallery.php">gallery</a> and other resources on the <a href="http://www.graphviz.org/">graphviz website</a>, or google for more.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rudifa.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rudifa.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rudifa.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rudifa.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rudifa.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rudifa.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rudifa.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rudifa.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rudifa.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rudifa.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rudifa.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rudifa.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rudifa.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rudifa.wordpress.com/56/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rudifa.wordpress.com&amp;blog=6499371&amp;post=56&amp;subd=rudifa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rudifa.wordpress.com/2010/01/10/how-to-run-graphviz-on-the-mac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/71fa6238214bf4c63d282ba669c798c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rudifa</media:title>
		</media:content>

		<media:content url="http://rudifa.files.wordpress.com/2010/01/my1st-dot1.png" medium="image">
			<media:title type="html">my1st.dot</media:title>
		</media:content>
	</item>
		<item>
		<title>OpenTerminalHere with wd in title</title>
		<link>http://rudifa.wordpress.com/2009/12/18/openterminalhere-with-wd-in-title/</link>
		<comments>http://rudifa.wordpress.com/2009/12/18/openterminalhere-with-wd-in-title/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 10:42:17 +0000</pubDate>
		<dc:creator>rudifa</dc:creator>
				<category><![CDATA[OSX]]></category>
		<category><![CDATA[OSX Finder]]></category>

		<guid isPermaLink="false">http://rudifa.wordpress.com/?p=44</guid>
		<description><![CDATA[How to open a Mac Terminal application from Finder, in its current directory? Get the app OpenTerminalHere by Marc Liyanage and add its icon in the Finder toolbar. Click on the icon to open a Terminal. How  to make that Terminal display the working directory in its window title? Modify the OpenTerminalHere like this : [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rudifa.wordpress.com&amp;blog=6499371&amp;post=44&amp;subd=rudifa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>How to open a Mac Terminal application from Finder, in its current directory?</strong></p>
<p>Get the app <a href="http://www.entropy.ch/software/applescript/">OpenTerminalHere</a> by Marc Liyanage and add its icon in the Finder toolbar. Click on the icon to open a Terminal.</p>
<p><strong>How  to make that Terminal display the working directory in its window title?</strong></p>
<p>Modify the OpenTerminalHere like this :</p>
<ol>
<li>in Finder, right-click on OpenTerminalHere.app and select Show Package Contents</li>
<li>drill down to OpenTerminalHere.app/Contents/Resources/Scripts and click on main.scpt &#8211; this opens the AppleScript editor</li>
<li>just before the line &#8220;end process_item&#8221; at the end of script insert this line<em>: tell application &#8220;Terminal&#8221; to set custom title of window 1 to the_path</em></li>
<li>Compile and Run &#8211; it should open a Terminal that displays the path in its title<em><br />
</em></li>
</ol>
<p>Bonus: when you right-click on the Terminal&#8217;s Dashboard icon, each terminal listed displays the working directory, end of guessing which is which.</p>
<p><strong>How  to make that Terminal display the working directory in its window title? &#8212; take two &#8211;</strong></p>
<p>As Marc Liyanage, the author of <a href="http://www.entropy.ch/software/applescript/">OpenTerminalHere</a> pointed out to me, my change to his script sets the window title at the time of opening the Terminal, but it does not react to subsequent changes of working directory. He suggested putting a suitable ecape sequence into ~/.bashrc. After some man reading and experimenting I settled to the following solution :</p>
<ol>
<li>Leave the <a href="http://www.entropy.ch/software/applescript/">OpenTerminalHere</a> unchanged</li>
<li>Add to ~/.profile</li>
</ol>
<pre class="brush: plain;">

export PROMPT_COMMAND='echo -ne &quot;&#92;&#48;33]0; ${PWD}&#92;&#48;07&quot;'
</pre>
<p>This gets executed on every command, and keeps the window title in sync with any change of the working directory.</p>
<p><strong><br />
</strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rudifa.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rudifa.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rudifa.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rudifa.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rudifa.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rudifa.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rudifa.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rudifa.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rudifa.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rudifa.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rudifa.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rudifa.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rudifa.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rudifa.wordpress.com/44/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rudifa.wordpress.com&amp;blog=6499371&amp;post=44&amp;subd=rudifa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rudifa.wordpress.com/2009/12/18/openterminalhere-with-wd-in-title/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/71fa6238214bf4c63d282ba669c798c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rudifa</media:title>
		</media:content>
	</item>
		<item>
		<title>Internationalization of my iPhone app</title>
		<link>http://rudifa.wordpress.com/2009/12/12/i18n-of-my-iphone-app/</link>
		<comments>http://rudifa.wordpress.com/2009/12/12/i18n-of-my-iphone-app/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 15:11:42 +0000</pubDate>
		<dc:creator>rudifa</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://rudifa.wordpress.com/?p=31</guid>
		<description><![CDATA[How does the user change the language of the application? It looks like he can only change the language of the entire iPhone (Settings -&#62; General -&#62; International -&#62; Language). After the change, an app internationalized for that language will respond in it. How does the user change the language of the application? &#8211; take [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rudifa.wordpress.com&amp;blog=6499371&amp;post=31&amp;subd=rudifa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="font-size:xx-small;"><strong> </strong></span><strong>How does the user change the language of the application?</strong></p>
<p>It looks like he can only change the language of the entire iPhone (Settings -&gt; General -&gt; International -&gt; Language).</p>
<p>After the change, an app internationalized for that language will respond in it.</p>
<p><strong>How does the user change the language of the application? </strong><strong> &#8211; take two -<br />
</strong></p>
<p>It turns out that an application can give the user a choice among languages that it supports,</p>
<p>say &#8220;en&#8221;, &#8220;fr&#8221;, &#8220;de&#8221;, &#8220;jp&#8221;.</p>
<p>When the user selects one of these codes (in the app&#8217;s own Select Language menu), the app should do</p>
<pre class="brush: objc;">
 [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:languageCode2LetterString, nil] forKey:@&quot;AppleLanguages&quot;];
</pre>
<p>and instruct the user to stop and to restart the application.</p>
<p>The application will now come up with the newly selected language.</p>
<p><strong>How do I set up an Xcode project for internationalization ?</strong></p>
<ul>
<li>replace strings in the program like</li>
</ul>
<pre>label.text = @"Hello world.";</pre>
<p>by</p>
<pre>label.text = NSLocalizedString(@"Hello world.",
@"This is a comment about my greeting.");</pre>
<ul>
<li>add directories en.lproj, fr.lproj, de.lproj e.t.c.</li>
<li>run : genstrings -o en.lproj Classes/*.m</li>
<li>add the generated en.lproj/Localizable.strings to Xcode project resources (save as UTF-16!)</li>
<li>copy en.lproj/Localizable.strings to fr.lproj/Localizable.strings and edit it to provide translations</li>
<li>add fr.lproj/Localizable.strings to project Resources</li>
<li>build</li>
<li>test</li>
</ul>
<p>OK, there is more to it but this is a start.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rudifa.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rudifa.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rudifa.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rudifa.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rudifa.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rudifa.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rudifa.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rudifa.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rudifa.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rudifa.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rudifa.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rudifa.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rudifa.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rudifa.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rudifa.wordpress.com&amp;blog=6499371&amp;post=31&amp;subd=rudifa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rudifa.wordpress.com/2009/12/12/i18n-of-my-iphone-app/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/71fa6238214bf4c63d282ba669c798c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rudifa</media:title>
		</media:content>
	</item>
		<item>
		<title>Profiling an iPhone application with Shark</title>
		<link>http://rudifa.wordpress.com/2009/09/16/profiling-an-iphone-application-with-shark/</link>
		<comments>http://rudifa.wordpress.com/2009/09/16/profiling-an-iphone-application-with-shark/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 15:55:10 +0000</pubDate>
		<dc:creator>rudifa</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rudifa.wordpress.com/?p=27</guid>
		<description><![CDATA[Here is a quick checklist Build app and launch on the device Launch Shark (perhaps from Spotlight) From the Shark menu, select Sampling-&#62;Network/iPhone Profiling In the Shark window, select the radio button &#8220;Control network profiling of shared computers&#8221;. Select your iPhone in the list and optionally configure the profiling session Check &#8220;Use:&#8221; next to your [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rudifa.wordpress.com&amp;blog=6499371&amp;post=27&amp;subd=rudifa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Here is a quick checklist</p>
<p><strong></p>
<ol>
<li><span style="font-size:xx-small;">Build app and launch on the device</span></li>
<li><span style="font-size:xx-small;">Launch Shark (perhaps from Spotlight)<br />
</span></li>
<li><span style="font-size:xx-small;">From the Shark menu, select Sampling-&gt;Network/iPhone Profiling</span></li>
<li><span style="font-size:xx-small;">In the Shark window, select the radio button &#8220;Control network profiling of shared computers&#8221;. </span></li>
<li><span style="font-size:xx-small;">Select your iPhone in the list and optionally configure the profiling session</span></li>
<li><span style="font-size:xx-small;">Check &#8220;Use:&#8221; next to your iPhone (the checkbox may take several seconds to respond)<br />
</span></li>
<li><span style="font-size:xx-small;">Choose the app running on your iPhone from the &#8220;Target&#8221; drop down.</span></li>
<li><span style="font-size:xx-small;">Press Start to begin profiling, launch the app activity that you wish to profile, press Stop to end profiling<br />
</span></li>
<li><span style="font-size:xx-small;">Be patient while Shark transfers the data  to the Mac (this takes longer than the profiling)</span></li>
<li><span style="font-size:xx-small;">In the Time Profile window that Shark opens, select View : Tree (Top-Down)</span></li>
</ol>
<p></strong></p>
<p>Tree view provides a very good insight into the percentage of time spent in functions/methods.</p>
<p>Look for those that seem unjustifiably high.</p>
<p>Save the session data for future reference, try to speed up the code and redo the profiling.</p>
<p>Happy hunting!</p>
<p><span style="font-size:xx-small;"><br />
</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rudifa.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rudifa.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rudifa.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rudifa.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rudifa.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rudifa.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rudifa.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rudifa.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rudifa.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rudifa.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rudifa.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rudifa.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rudifa.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rudifa.wordpress.com/27/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rudifa.wordpress.com&amp;blog=6499371&amp;post=27&amp;subd=rudifa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rudifa.wordpress.com/2009/09/16/profiling-an-iphone-application-with-shark/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/71fa6238214bf4c63d282ba669c798c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rudifa</media:title>
		</media:content>
	</item>
	</channel>
</rss>
