<?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>CGarvey&#039;s Blog &#187; Software</title>
	<atom:link href="http://cgarvey.ie/blog/archive/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://cgarvey.ie/blog</link>
	<description>The personal blog of Irish mobile and web application developer, Cathal Garvey</description>
	<lastBuildDate>Tue, 18 Oct 2011 04:14:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Mac keyboard, Ubuntu Synergy server, and Mac Synergy client</title>
		<link>http://cgarvey.ie/blog/archive/2011/06/23/mac-keyboard-ubunty-synergy-server-and-mac-synergy-client/</link>
		<comments>http://cgarvey.ie/blog/archive/2011/06/23/mac-keyboard-ubunty-synergy-server-and-mac-synergy-client/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 18:45:09 +0000</pubDate>
		<dc:creator>cgarvey</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[synergy]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://cgarvey.ie/blog/?p=447</guid>
		<description><![CDATA[This post serves to highlight just how awkward my setup is, and as a guide to help with anyone with a similar setup (all 3 of you, worldwide). I&#8217;ve recently started using Synergy to control my Macbook from my Ubuntu (10.04, if that turns out to matter!) desktop. However, I use the slim Apple USB [...]]]></description>
			<content:encoded><![CDATA[<p>This post serves to highlight just how awkward my setup is, and as a guide to help with anyone with a similar setup (all 3 of you, worldwide).</p>
<p>I&#8217;ve recently started using <a href="http://synergy-foss.org/" title="Link to Synergy project website">Synergy</a> to control my Macbook from my Ubuntu (10.04, if that turns out to matter!) desktop. However, I use the slim Apple USB keyboard on my Ubuntu desktop (a subject of previous posts here). They key mappings for Alt and Command on my Mac were reversed when I was controlling the Macbook. I.e. the Apple keyboard wasn&#8217;t being reported as such to the operating system. Here&#8217;s a snippet from the synergy configuration file showing the swap to make the Apple keyboard work as expected on a Mac Synergy client. If you use QuickSynergy, the config file is in <code>~/.quicksynergy/synergy.conf</code>.</p>
<p><code class="cdBlock">section: screens<br />
	ubuntu-synserver:<br />
	macbook-synclient:<br />
		alt = super<br />
		super = alt<br />
end<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://cgarvey.ie/blog/archive/2011/06/23/mac-keyboard-ubunty-synergy-server-and-mac-synergy-client/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Irish-friendly keyboard layout for an Apple aluminium USB keyboard on Ubuntu</title>
		<link>http://cgarvey.ie/blog/archive/2011/01/18/irish-friendly-keyboard-layout-for-an-apple-aluminium-usb-keyboard-on-ubuntu/</link>
		<comments>http://cgarvey.ie/blog/archive/2011/01/18/irish-friendly-keyboard-layout-for-an-apple-aluminium-usb-keyboard-on-ubuntu/#comments</comments>
		<pubDate>Tue, 18 Jan 2011 03:07:54 +0000</pubDate>
		<dc:creator>cgarvey</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://cgarvey.ie/blog/?p=439</guid>
		<description><![CDATA[Tips on creating a custom keyboard layout for Ubuntu that will give you proper currency symbol and fada (acute accents) support for your Apple USB aluminium keyboard (UK variant).]]></description>
			<content:encoded><![CDATA[<p>By default, <a href="http://www.ubuntu.com/" title="Link to Ubuntu website">Ubuntu</a> has plenty of Irish keyboard layouts which will let you type a fada on your vowels. However, if you&#8217;re using an Apple aluminium USB keyboard, like me, you&#8217;re layout options are restricted. I have the UK variant of the keyboard, which does have a corresponding layout in Ubuntu (under United Kingdom > Macintosh), but that doesn&#8217;t provide support fadas (acute accents).</p>
<p>My goal was to have Shift+2 give me @, AltGr+2 give me €, Shift+3 give me # and AltGr+3 give me £. Also, of course, the fadas to work on any vowel (including Shift support for upper case). To do this I appended a variant to the end of the existing Ireland &#8220;symbols&#8221; file, as follows:</p>
<ol>
<li>As root, edit <code>/usr/share/X11/xkb/symbols/ie</code>. Older versions of Ubuntu (earlier than 8, I think), has a different file path.</li>
<li>At the end of the file, append the following: <code class="cdBlock">partial alphanumeric_keys<br />
xkb_symbols "macie" {<br />
    // Fix currency symbols, # symbol and 'fada' support.<br />
    include "latin"<br />
    name[Group1]= "Ireland - Macintosh";<br />
    // Numeric Row 123456789<br />
    key &lt;AE02&gt; {	[               2,              at,         EuroSign	]	};<br />
    //key &lt;AE03&gt; {	[               3,        sterling,       numbersign	]	};<br />
    key &lt;AE03&gt; {	[               3,        numbersign,       sterling	]	};<br />
    // Top Row QWERTYUIOP<br />
    key &lt;AD03&gt; { [            e,           E,               eacute,               Eacute ] };<br />
    key &lt;AD07&gt; { [            u,           U,               uacute,               Uacute ] };<br />
    key &lt;AD08&gt; { [            i,           I,               iacute,               Iacute ] };<br />
    key &lt;AD09&gt; { [            o,           O,               oacute,               Oacute ] };<br />
    // Middle Row ASDFGHJKL<br />
    key &lt;AC01&gt; { [          a,             A,               aacute,               Aacute ] };<br />
    include "level3(ralt_switch)"<br />
};<br />
</code><br />
You&#8217;ll see a comment line for the more accurate keyboard mapping of Shift+3 giving the £ symbol (to closer match the printing on the keys of a UK Apple keyboard). However, I prefer Shift+3 to give # as I&#8217;m a programmer; feel free to choose whichever you want (and comment/uncomment as appropriate). Save the file.</li>
<li>Then, you edit <code>/usr/share/X11/xkb/rules/evdev.xml</code> to configure your new variant. Search for Ireland, and you&#8217;ll see it has a &lt;variantList&gt; with a bunch of &lt;variant&gt; nodes. You want to add the following XML as a new &lt;variant&gt; node at the end of the others, and before the closing &lt;/variantList&gt; tag.<code class="cdBlock">        &lt;variant&gt;<br />
          &lt;configItem&gt;<br />
            &lt;name&gt;macie&lt;/name&gt;<br />
            &lt;description&gt;Macintosh&lt;/description&gt;<br />
          &lt;/configItem&gt;<br />
        &lt;/variant&gt;<br />
</code></li>
<li>Finally, to start using your new custom layout, go to System > Preferences > Keyboard (on a Gnome desktop) and, on the Layouts tab, you can add your new custom layout. Select &#8220;Ireland&#8221; as the country and you should see the new &#8220;Ireland Macintosh&#8221; layout. You can set the layout priority by moving the new layout up/down the list, or remove any others if you just want the one layout.</li>
</ol>
<p>So there&#8217;s a quick way to get fadas and currency symbols working for your Apple UK USB keyboard on Ubuntu.</p>
<p>UPDATE: Added missing closing XML tags for name/description in snippet above, and fix tag angle bracket mushing by WordPress.</p>
]]></content:encoded>
			<wfw:commentRss>http://cgarvey.ie/blog/archive/2011/01/18/irish-friendly-keyboard-layout-for-an-apple-aluminium-usb-keyboard-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Unlocking your o2 broadband modem</title>
		<link>http://cgarvey.ie/blog/archive/2011/01/07/unlocking-your-o2-broadband-modem/</link>
		<comments>http://cgarvey.ie/blog/archive/2011/01/07/unlocking-your-o2-broadband-modem/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 00:48:45 +0000</pubDate>
		<dc:creator>cgarvey</dc:creator>
				<category><![CDATA[Comms]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[huawei]]></category>
		<category><![CDATA[o2]]></category>
		<category><![CDATA[unlock]]></category>

		<guid isPermaLink="false">http://cgarvey.ie/blog/?p=433</guid>
		<description><![CDATA[A quick guide to unlocking popular Huawei 3G modems used by o2 Ireland, and others.]]></description>
			<content:encoded><![CDATA[<p>If you, like me, have an o2 broadband (midband, really) modem, made by Huawei, that you want to unlock to use with other services, you can get quite the run around if you Google how to do this. There are many options (and most Huawei models seem to be easily unlocked), that charge from €5 to €15 for a code to unlock, with the most common one appearing to be dc-unlocker.com (deliberately not linked!).</p>
<p>Well, there are a few free options that are easy to use (and phone unlocking software isn&#8217;t always easy to use!). I came across <a href="http://www.ruchirablog.com/about/">Ruchira Sahan</a>&#8216;s blog which details the process, and provides the required software. Basically, you need to generate an unlock code which is based on your IMEI number (a unique code for your modem/SIM card). Software gets that for you, and will unlock the modem for you as well. He details it much better, but a summary of what I did to unlock my Huawei E1752 (an older o2 broadband USB modem) is:</p>
<ol>
<li>Close the o2 connection software</li>
<li>Download the software he links to in <a href="http://www.ruchirablog.com/guide-unlock-huawei-hsdpa-modem-free/">this post</a>, run it (there was only 1 COM port to select in my case, and it had an obvious HUAWEI label), and let it retrieve the IMEI</li>
<li>Using that IMEI, I used the calculator he links to from <a href="http://www.ruchirablog.com/free-simple-calculate-huawei-unlock-codes-2/">this post</a> to generate an unlock code</li>
<li>Using the same software, I then enter the unlock code from the previous step, and it unlocks the modem for me, with no errors or delay</li>
<li>Finally, because the o2 connection software is still crippled (and wouldn&#8217;t work with my Three SIM), I downloaded the generic Huawei connection software for that model, and many other models, from <a href="http://www.dc-files.com/">dc-files.com</a>. I did check for the presence of a virus, but still be careful when downloading any of this software. I created a new profile in that software, but that&#8217;s all I did (nothing with dial in numbers, networking, APNs or anything like that).</li>
</ol>
<p>I rarely use my o2 Broadband Modem, now that I have tethering with my iPhone4 (and a plan that includes 2GB of data), but it is handy to have in the laptop bag. It&#8217;s much handier to have with a SIM from another network on standby too!</p>
]]></content:encoded>
			<wfw:commentRss>http://cgarvey.ie/blog/archive/2011/01/07/unlocking-your-o2-broadband-modem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finally have 3Pay prepaid midband on my iPad</title>
		<link>http://cgarvey.ie/blog/archive/2011/01/07/finally-have-3pay-prepaid-midband-on-my-ipad/</link>
		<comments>http://cgarvey.ie/blog/archive/2011/01/07/finally-have-3pay-prepaid-midband-on-my-ipad/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 00:23:38 +0000</pubDate>
		<dc:creator>cgarvey</dc:creator>
				<category><![CDATA[Comms]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[data roaming]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[sim]]></category>
		<category><![CDATA[three]]></category>

		<guid isPermaLink="false">http://cgarvey.ie/blog/?p=428</guid>
		<description><![CDATA[A brief description of 2 common issues 3Pay Broadband from Three Ireland users might face when using it with an iPad.]]></description>
			<content:encoded><![CDATA[<p>My mission was to get Three prepaid midband (3G internet isn&#8217;t broadband, no matter who tries to tell you it is). I chose Three, because they has better 3G coverage for when I visit <a href="http://inagh.com/" title="Link to Inagh, Co. Clare, community website">Inagh</a>, and for their &#8220;Like Home&#8221; roaming service (which, <a href="http://www.three.ie/products_services/broadband/data_roaming/index.htm#" title="3 Like Home details for prepaid data roaming">I believe</a>, works for prepaid as well) which will mean cheap data whilst roaming in some countries.</p>
<p>There are 2 issues potential customers of 3Pay for iPad face.</p>
<p>Firstly, Three claim you can&#8217;t get prepaid <a href="http://en.wikipedia.org/wiki/Subscriber_Identity_Module#Development_of_the_micro-SIM" title="Wikipedia article explaining SIMs and MicroSIMs">MicroSIMs</a> (the smaller SIM card that goes in to an iPhone 4 and iPad), and that they only exist for post-pay, monthly contract users. As of the time of writing, their website mentions they&#8217;re &#8220;coming soon&#8221; (and has done for a number of months now, and their phone support people told me twice in the last 2 days that they don&#8217;t exist and that there is no immediate release plans for them. I came across <a href="http://www.boards.ie/vbulletin/showthread.php?p=69707450" title="Link to a Three MicroSIM thread on Boards.ie">a thread on boards.ie</a> where a Three representative claims 3Stores had them. A quick trip to Liffey Valley 3Store (note, the actual Three shop, not a reseller of Three services), and a short time later I&#8217;d one in my hand, promisingly labelled &#8220;MICRO SIM 3PAY BROADBAND[sic]&#8220;. I was told there was 1GB data included (no sign of how to get this, or any credit on the account). I also provided details to register, which I had to bizarrely handwrite, but registration doesn&#8217;t appear to have happened (I had to fill in the details on the MyThree website). So, ignore the 3 website, and ignore what 3 tell you on the phone. Go to a 3Store and you can get a prepaid MicroSIM.</p>
<p>The second problem many will face is registering on the MyThree website, so you can top up and buy daily/weekly/monthly passes for your &#8220;broadband&#8221;, you&#8217;ll need to be able to receive an SMS with your newly create password (or, for future reference, to retrieve a forgotten password). The iPad, of course, has no such SMS facility. So, you&#8217;ll need to find a device capable of receiving an SMS that will accept your new Three MicroSIM. Given that the most common device is an iPhone 4, and that most of these are locked to their network, you&#8217;ll need to find an unlocked iPhone 4, or an iPhone 4 from Three. Alternatively, you can <a href="http://hijinksinc.com/2010/05/14/using-a-micro-sim-in-an-iphone-3g/" title="A brief guide to making a DIY MIcroSIM adaptor">hack together</a>, or buy, a MicroSIM to SIM adaptor. In my case, I made an adaptor and used a newly-unlocked 3G modem from o2 to both test the Three network and receive their SMS.</p>
<p>So, once you can overcome those 2 hurdles, you should be able to enjoy Three&#8217;s network on your iPad, with 3Pay.</p>
<p>Feel free to contact me if you think I can answer any questions on any of this!</p>
]]></content:encoded>
			<wfw:commentRss>http://cgarvey.ie/blog/archive/2011/01/07/finally-have-3pay-prepaid-midband-on-my-ipad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beware with private file URLs in Dropbox for iPhone</title>
		<link>http://cgarvey.ie/blog/archive/2010/06/23/beware-with-private-file-urls-in-dropbox-for-iphone/</link>
		<comments>http://cgarvey.ie/blog/archive/2010/06/23/beware-with-private-file-urls-in-dropbox-for-iphone/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 20:22:34 +0000</pubDate>
		<dc:creator>cgarvey</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[dropbox]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://m.cgarvey.ie/blog/?p=357</guid>
		<description><![CDATA[If you use DropBox and, specifically, its iPhone client, then you need to be aware of how the URL feature works, or risk exposing your private files. When you view a private file (i.e. a file not in your Public folder), you have the option to &#8220;Copy URL to Clipboard&#8221;. Normally, one would expect that [...]]]></description>
			<content:encoded><![CDATA[<p>If you use <a href="https://www.dropbox.com/referrals/NTIxNzQ5NDc5" title="Referral link to DropBox">DropBox</a> and, specifically, its iPhone client, then you need to be aware of how the URL feature works, or risk exposing your private files.<br />
<span id="more-357"></span><br />
<a href="http://cgarvey.ie/blog/wp-content/uploads/2010/06/p_480_320_D1EE82C4-FCE2-4C0A-9575-BD6C941E86CC.jpeg"><img src="http://cgarvey.ie/blog/wp-content/uploads/2010/06/p_480_320_D1EE82C4-FCE2-4C0A-9575-BD6C941E86CC-200x300.jpg" alt="" title="Screenshot of DropBox for iPhone" width="200" height="300" class="alignright size-medium wp-image-355" /></a>When you view a private file (i.e. a file not in your Public folder), you have the option to &#8220;Copy URL to Clipboard&#8221;. Normally, one would expect that to be the private URL for your private file. That is, the long URL that requires a DropBox login to view.</p>
<p>Not so in this case! What happens is, a short URL (using DropBox&#8217;s own URL shortening service, db.tt) is generated for the file. However, it&#8217;s a direct link to download the file. It&#8217;s not simply a shortened URL to point to the private URL for the file.</p>
<p>Big security risk? No, not a huge risk, but it does mean that there&#8217;s now a chance that your private file will be &#8220;brute forced&#8221;, or guessed, by someone. The private URL is as good as your password (which should be more than 6 characters! It is, right?!), but this short URL is only as good as the 6 alphanumeric characters.</p>
<p>Something to be aware of (particularly if you&#8217;re used to using DropBox outside of the iPhone client), rather than cause for panic!</p>
]]></content:encoded>
			<wfw:commentRss>http://cgarvey.ie/blog/archive/2010/06/23/beware-with-private-file-urls-in-dropbox-for-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing PIL on Mac OS X Snow Leopard for use in Google App Engine</title>
		<link>http://cgarvey.ie/blog/archive/2010/01/27/installing-pil-on-mac-os-x-snow-leopard-for-use-in-google-app-engine/</link>
		<comments>http://cgarvey.ie/blog/archive/2010/01/27/installing-pil-on-mac-os-x-snow-leopard-for-use-in-google-app-engine/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 02:42:00 +0000</pubDate>
		<dc:creator>cgarvey</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[app engine]]></category>
		<category><![CDATA[gae]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://cgarvey.ie/blog/?p=336</guid>
		<description><![CDATA[A solution to common problems installing PIL on Mac OS X]]></description>
			<content:encoded><![CDATA[<p>Python users who use Django or Google App Engine on the Mac, will likely benefit from the <a href="http://www.pythonware.com/products/pil/" title="Link to the PIL web page">python imaging library (PIL)</a>.<br />
<span id="more-336"></span><br />
However, installing on Mac OS X (Snow Leopard) can be tricky. There are many blog posts on the issue. The most common problem is that PIL and libjpeg (a dependency) seem to install OK, but when you go to use it in your Python code, you get &#8220;_jpeg_resync_to_restart&#8221; errors.</p>
<p>A further complication is the fact that Google App Engine uses Python version 2.5 (and not the default 2.6 that comes with Snow Leopard). If you just need PIL for Django, you can ignore the 2.5 references (i.e. python2.5 becomes python).</p>
<p>Here&#8217;s how I got it working on my machine (the steps are a combination of others&#8217; blog posts, but main credit goes to <a href="http://mtrichardson.com/" title="Link to Michael Richardson's website">Michael Richardson</a>&#8216;s <a href="http://mtrichardson.com/2009/11/pil-libjpeg-snow-leopard-and-missing-_jpeg_resync_to_restart/" title="Link to Michael Richardson's PIL post">post</a>):</p>
<ol>
<li>Download the latest libjpeg .tar.gz (version v7 at time of writing): <a href="http://www.ijg.org/files/">http://www.ijg.org/files/</a>.</li>
<li>Download the latest PIL version for Python 2.5 (v1.17 at time of writing): <a href="http://www.pythonware.com/products/pil/">http://www.pythonware.com/products/pil/</a></li>
<li>Extract libjpeg and do the standard install affair:<code><br />
export CC="gcc -arch i386"<br />
./configure<br />
make<br />
sudo make install<br />
</code> from within the directory. The first line is the gem that many other blog posts leave out (and it assumes you&#8217;re using BASH)</li>
<li>Extract the PIL and change in to that directory.</li>
<li>[optional] libjpeg will have been installed in /usr/local/lib/, by default, above. Normally this directory will be picked up automatically by the PIL install below, but just for good measure (or if you have problems later in the PIL install), edit the <code>setup.py</code>, look for the line <code><br />
JPEG_ROOT = None<br />
</code>. Change that line to <code><br />
JPEG_ROOT=libinclude( "/usr/local" )<br />
</code> and save it.</li>
<li>Install PIL by running <code><br />
sudo python2.5 setup.py install<br />
</code></li>
</ol>
<p>That was enough to get it running for me. I can start App Engine (I use the Google-provided launcher), and use the Image API.</p>
]]></content:encoded>
			<wfw:commentRss>http://cgarvey.ie/blog/archive/2010/01/27/installing-pil-on-mac-os-x-snow-leopard-for-use-in-google-app-engine/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Running dotMobi WordPress Mobile Pack on PHP 4</title>
		<link>http://cgarvey.ie/blog/archive/2009/11/02/running-dotmobi-wordpress-mobile-pack-on-php-4/</link>
		<comments>http://cgarvey.ie/blog/archive/2009/11/02/running-dotmobi-wordpress-mobile-pack-on-php-4/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 22:47:58 +0000</pubDate>
		<dc:creator>cgarvey</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://cgarvey.ie/blog/?p=331</guid>
		<description><![CDATA[If you, like me, are installing the dotMobi WordPress Mobile Pack on a server with PHP4 installed, and you enable the &#8220;Shrink images&#8221; feature under &#8220;Mobile Theme&#8221;, you will likely see just the header of a blog post being out put for mobile devices (and not the full content). This feature reduces the image size [...]]]></description>
			<content:encoded><![CDATA[<p>If you, like me, are installing the <a href="http://wordpress.org/extend/plugins/wordpress-mobile-pack/" title="Link to the dotMobi WordPress Mobile Pack plugin page">dotMobi WordPress Mobile Pack</a> on a server with PHP4 installed, and you enable the &#8220;Shrink images&#8221; feature under &#8220;Mobile Theme&#8221;, you will likely see just the header of a blog post being out put for mobile devices (and not the full content).<br />
<span id="more-331"></span><br />
This feature reduces the image size (of any images in your WordPress post/page) to make it more bandwidth and screen friendly for mobile users. The problem is that it uses a PHP5-only call of <code>file_put_contents(..)</code>, which fails without error, or logging, on my WordPress install.</p>
<p>To remedy the problem, I substituted the call, in 2 places, with the PHP4 equivalent calls. <code>file_put_contents(..)</code> is a shortcut convenience method which is the same as calling <code>fopen(..)</code>, <code>fwrite(..)</code> and <code>fclose(..)</code>.</p>
<p>As of version 1.1.3 of the plugin the code is under <code>wp-content/plugins/wordpress-mobile-pack/plugins/wpmp_transcoder/</code> in your WordPress install directory. The 2 occurrences are in the file <code>wpmp_transcoder.php</code> on lines 431 and 448 respectively.</p>
<p>I changed<br />
<code><br />
@file_put_contents($full_location, $data);<br />
</code><br />
.. to ..<br />
<code><br />
$fhout = @fopen($full_location, "w" );<br />
@fwrite($fhout, $data);<br />
@fclose( $fhout );<br />
</code></p>
<p>.. and ..</p>
<p><code><br />
@file_put_contents("$full_location.meta", "< ?php $"."width='$width';$"."height='$height';$"."type='$type'; ?>");<br />
</code><br />
.. to ..<br />
<code><br />
$fhmeta = @fopen( "$full_location.meta", "w" );<br />
@fwrite( $fhmeta, "< ?php $"."width='$width';$"."height='$height';$"."type='$type'; ?>");<br />
@fclose( $fhmeta );<br />
</code><br />
.. and all was well again.</p>
<p>You could also just not use the &#8220;Shrink images&#8221; feature to avoid having to mess with any code!</p>
]]></content:encoded>
			<wfw:commentRss>http://cgarvey.ie/blog/archive/2009/11/02/running-dotmobi-wordpress-mobile-pack-on-php-4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Getting SMS delivery reports on your o2 Ireland iPhone</title>
		<link>http://cgarvey.ie/blog/archive/2009/09/22/getting-sms-delivery-reports-on-your-o2-ireland-iphone/</link>
		<comments>http://cgarvey.ie/blog/archive/2009/09/22/getting-sms-delivery-reports-on-your-o2-ireland-iphone/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 18:22:44 +0000</pubDate>
		<dc:creator>cgarvey</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[o2]]></category>
		<category><![CDATA[o2 ireland]]></category>
		<category><![CDATA[sms]]></category>

		<guid isPermaLink="false">http://cgarvey.ie/blog/?p=319</guid>
		<description><![CDATA[If you need SMS delivery reports on your iPhone, you might have read that the iPhone doesn&#8217;t suport them. It doesn&#8217;t, unfortunately! The good news is that there is a workaround! Add *R* and a space to the start of the SMS message (not the number; the message body). While this code will appear in [...]]]></description>
			<content:encoded><![CDATA[<p>If you need SMS delivery reports on your iPhone, you might have read that the iPhone doesn&#8217;t suport them. It doesn&#8217;t, unfortunately!<br />
<span id="more-319"></span><br />
<img src="http://cgarvey.ie/blog/wp-content/uploads/2009/09/p_480_320_3CA4367C-C557-42F7-97EF-C38EA886238F.jpeg" alt="iPhone screenshot" width="200" height="300" class="alignright size-full wp-image-364" /></p>
<p>The good news is that there is a workaround! Add *R* and a space to the start of the SMS message (not the number; the message body). While this code will appear in the conversation window, the recipient won&#8217;t see it. o2 will strip it out before sending.</p>
<p>When your SMS is delivered, you&#8217;ll get a message back which is the raw delivery report. It&#8217;ll appear as an SMS in your conversation window.</p>
<p>It&#8217;s not an ideal solution, but you do get notification of delivery, at least.</p>
<p>This code also works on Meteor and Tesco Mobile. For a list of codes for networks other than o2 Ireland, see <a href="http://url.ie/2hgg">url.ie/2hgg</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cgarvey.ie/blog/archive/2009/09/22/getting-sms-delivery-reports-on-your-o2-ireland-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My App School experience</title>
		<link>http://cgarvey.ie/blog/archive/2009/08/10/my-app-school-experience/</link>
		<comments>http://cgarvey.ie/blog/archive/2009/08/10/my-app-school-experience/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 16:58:53 +0000</pubDate>
		<dc:creator>cgarvey</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[training]]></category>

		<guid isPermaLink="false">http://cgarvey.ie/blog/?p=316</guid>
		<description><![CDATA[App School I attended the first App School some weeks back and, as a staunch critic of week-long training courses, I&#8217;ve come to be convinced of the opposite. If you&#8217;re a developer, no matter how experienced, interested in iPhone development, read on! I&#8217;m a developer first, with Java being my first language. I&#8217;ve programmed in [...]]]></description>
			<content:encoded><![CDATA[<div lang='en' class='hreview'>
<div class='item'>
<span class='fn'><a href='http://www.appschool.ie/' class='url'>App School</a></span>
</div>

<div class='stars' title='5/5'><img src='http://cgarvey.ie/blog/wp-content/plugins/loudervoice/images/5outof5.gif' alt='5/5' /></div>

<div class='description'><p>I attended the first <a href="http://www.appschool.ie/" title="Link to App School website">App School</a> some weeks back and, as a staunch critic of week-long training courses, I&#8217;ve come to be convinced of the opposite.</p>
<p>If you&#8217;re a developer, no matter how experienced, interested in iPhone development, read on!<br />
<span id="more-316"></span><br />
I&#8217;m a developer first, with Java being my first language. I&#8217;ve programmed in Objective-C for about 6 months (and didn&#8217;t like it all that much at the time!). As most practical developers, I was convinced that training courses weren&#8217;t all that useful, and that online material was more than an adequate substitute. I still hold that opinion about certain types of courses, but certainly App School was an eye-opener, and I&#8217;d heartily recommend you check it out, if you&#8217;re considering starting iPhone development (and have some development experience).</p>
<h2>Content</h2>
<p>The App School course covered Objective C in enough detail to get started, but in short enough time to not get bored. That&#8217;s quite a hard thing to do. Yeah, sure, most of us were having difficulties with memory management concepts, but those difficulties were easily turned in to &#8220;oh yeah&#8221; light bulb moments by referring back to the notes. After some theory, we were quickly immersed in creating applications on the SDK. Always a crowd pleaser (to be actually doing something), and I think the mix of theory versus getting knee-deep in practical application is something that is both tricky and important to get right (so your audience is not bored/tuned out, but is equipment with the necessary knowledge to not get lost).</p>
<p>You can see, for yourself, what the <a href="http://appschool.ie/outline/" title="Link to App School course outline">course covers</a>, but we were definitely in a position to author decent iPhone applications by the end of the week. We covered using all the standard UI layouts and components, managing content, retrieving content and using the iPhone built-in features. This, within a week? Yes, really!</p>
<h2>Why my opinion on training courses changed</h2>
<p>So, my main criticism of training courses, up to this point, was that they were a doddle. Certainly any course I&#8217;ve been on (including development-related ones) was considered a holiday with some completely meaningless certificate that you got at the end (whether or not you excelled at the course). Most were geared to too wide an audience, so everyone on the course was either completely lost, or completely bored at various stages of the course.</p>
<p>App School was different in that regard. They&#8217;d already set out the minimum requirements, and with Objective-C not being one of them, you might be concerned that it&#8217;d be too wide an audience. As above, this was handled brilliantly.</p>
<p>My other main criticism of training courses is that they&#8217;re too theoretical. On programming courses, we didn&#8217;t touch an IDE or SDK, on source management courses we didn&#8217;t do a single check-in, on DBA courses there was no database server to connect to. You get the idea.</p>
<p>App School was completely different. The course was almost entirely practical exercise based. I can&#8217;t stress how valuable a way of learning this is. We were never bored (except maybe for 1 or 2 slides of Objective-C memory management!!), because we were seeing the results of our learning in real time. As 1 of us had run in to a problem, it was quickly resolved and the rest of us all learnt from that experience. That&#8217;s something no book, or online material will help with. The week was full of incidents of &#8220;what the hell does that mean&#8221; responses to generic, non-helpful SDK errors. All of us came away knowing some of the causes.</p>
<h2>Was the course well presented?</h2>
<p>The content was rockin&#8217;, the learning was good. How well was the course run? Don&#8217;t be fooled by the relative inexperience of the presenter, Daniel! We built up a good rapport with him from early on, and he was well able to answer the various questions thrown at him. It&#8217;s easy present some slides in a clear manner, the skill is being able to back that up with subject knowledge, and Daniel had that in abounds. He was able to spot the weaknesses (did I mention memory management?!) and deal with them 1-to-1, with everyone learning from that process.</p>
<p>We got great entertainment from the staff at the hotel, including the bravery of one student, John, who asked the chef if a particular dish (mince-meat looking) was beef. Even after the chef paused, muttered &#8220;Uhh&#8221;, paused again, and said &#8220;I think so&#8221;, John chose that dish. Kudos! The hotel is hard to get to, there&#8217;s no denying! I got lost only living 10 minutes down the road, armed with Google Maps. It&#8217;s a bit out of public transport&#8217;s way (though there are nearby buses). However, the facilities were top notch (the air-con actually worked, for example; bonus marks for a working projector). We were well looked after.</p>
<h2>Was I convinced?</h2>
<p>Absolutely! No longer do I hold the opinion that all training courses are a waste of time. I experienced a very valuable way of learning, and learnt lots. I&#8217;m still processing a lot of what I learnt! I came away with the ability to develop for the iPhone, and (more importantly, in my opinion) the ability to troubleshoot when things go wrong.</p>
<p>I&#8217;d heartily recommend App School, based on my experience. If you have a reasonable experience with any sort of OO programming, you&#8217;ll be an ideal candidate. You won&#8217;t be bored, and you most likely won&#8217;t be overwhelmed (not always anyway!). It&#8217;s a tough course, in that you need to be there to learn, not on a junket. But, learn you will; of that I can assure you!</p>
<p>My thanks to Daniel, and those involved behind the scenes at App School; who said you can&#8217;t teach an old dog new tricks?</p>
<p>Finally, as a disclaimer, I was given a subsidised place on the course. I&#8217;m a transparent person, if you know me at all, so while it might be easy for me to be so positive on a subsidised place, I was under no pressure to post any of the above, and certainly wasn&#8217;t paid for it.</p>
</div>

<div>Rated <span class='rating'>5</span>/5 on <span class='dtreviewed'>Aug 10 2009</span></div>
<div>Vote on <span class='reviewer vcard'><span class='fn'>cgarvey</span></span>&#8216;s reviews at <a href='http://www.loudervoice.com/people/cgarvey/'>LouderVoice</a></div>

<div class='review_tags'>LouderVoice review tags: <a href="http://www.loudervoice.com/tags/iphone" rel="tag">iphone</a>, <a href="http://www.loudervoice.com/tags/developer" rel="tag">developer</a>, <a href="http://www.loudervoice.com/tags/tuition" rel="tag">tuition</a>, <a href="http://www.loudervoice.com/tags/course" rel="tag">course</a>, <a href="http://www.loudervoice.com/tags/training" rel="tag">training</a></div>


</div>]]></content:encoded>
			<wfw:commentRss>http://cgarvey.ie/blog/archive/2009/08/10/my-app-school-experience/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Lightning review of LouderVoice for Android</title>
		<link>http://cgarvey.ie/blog/archive/2009/05/22/lightning-review-of-loudervoice-for-android/</link>
		<comments>http://cgarvey.ie/blog/archive/2009/05/22/lightning-review-of-loudervoice-for-android/#comments</comments>
		<pubDate>Fri, 22 May 2009 17:29:14 +0000</pubDate>
		<dc:creator>cgarvey</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[loudervoice]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://cgarvey.ie/blog/?p=309</guid>
		<description><![CDATA[LouderVoice for Android Below is a very brief review of the new Google Android application, by LouderVoice.com, which allows you to browse, search and write reviews, much like on the main site. They&#8217;ve included some basic location-based features, such as the ability to automatically set the location of a given review from your phone&#8217;s GPS, [...]]]></description>
			<content:encoded><![CDATA[<div lang='en' class='hreview'>
<div class='item'>
<span class='fn'><a href='http://www.loudervoice.com/' class='url'>LouderVoice for Android</a></span>
</div>

<div class='stars' title='4/5'><img src='http://cgarvey.ie/blog/wp-content/plugins/loudervoice/images/4outof5.gif' alt='4/5' /></div>

<div class='description'><p>Below is a very brief review of the new Google Android application, by <a href="http://www.LouderVoice.com/" title="Link to LouderVoice website">LouderVoice.com</a>, which allows you to browse, search and write reviews, much like on the main site. They&#8217;ve included some basic location-based features, such as the ability to automatically set the location of a given review from your phone&#8217;s GPS, and to search for reviews in your current location.</p>
<p>Here&#8217;s a quick video tour:<br />
<object width="560" height="340"><param name="movie" value="http://www.youtube-nocookie.com/v/8bbav2VwnvI&#038;hl=en&#038;fs=1&#038;color1=0x3a3a3a&#038;color2=0x999999"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/8bbav2VwnvI&#038;hl=en&#038;fs=1&#038;color1=0x3a3a3a&#038;color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
</div>

<div>Rated <span class='rating'>4</span>/5 on <span class='dtreviewed'>May 22 2009</span></div>
<div>Vote on <span class='reviewer vcard'><span class='fn'>cgarvey</span></span>&#8216;s reviews at <a href='http://www.loudervoice.com/people/cgarvey/'>LouderVoice</a></div>

<div class='review_tags'>LouderVoice review tags: <a href="http://www.loudervoice.com/tags/loudervoice+for+android" rel="tag">loudervoice for android</a>, <a href="http://www.loudervoice.com/tags/loudervoice" rel="tag">loudervoice</a>, <a href="http://www.loudervoice.com/tags/android" rel="tag">android</a>, <a href="http://www.loudervoice.com/tags/g1" rel="tag">g1</a></div>


</div>]]></content:encoded>
			<wfw:commentRss>http://cgarvey.ie/blog/archive/2009/05/22/lightning-review-of-loudervoice-for-android/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

