<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Adrian Smith's Blog</title>
	
	<link>http://www.17od.com</link>
	<description />
	<lastBuildDate>Thu, 04 Mar 2010 20:03:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/AdrianSmithsBlog" /><feedburner:info uri="adriansmithsblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Bookmarks for 2010-03-05</title>
		<link>http://feedproxy.google.com/~r/AdrianSmithsBlog/~3/I9bwE786iJY/</link>
		<comments>http://www.17od.com/2010/03/04/bookmarks-for-2010-03-05/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 20:03:29 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bookmarks]]></category>

		<guid isPermaLink="false">http://www.17od.com/?p=296</guid>
		<description><![CDATA[Randy Pausch: Really achieving your childhood dreams &#124; Video on TED.com
Randy Pausch shares his story. Amazing stuff. I can only imagine what it would have been like to work (or play) with this man.
Oracle DBMS_CHANGE_NOTIFICATION
An interesting way of subscribing to events in an Oracle db. Could be used as an alternative to triggers where the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ted.com/talks/randy_pausch_really_achieving_your_childhood_dreams.html">Randy Pausch: Really achieving your childhood dreams | Video on TED.com</a><br />
Randy Pausch shares his story. Amazing stuff. I can only imagine what it would have been like to work (or play) with this man.</p>
<p><a href="http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_chngnt.htm">Oracle DBMS_CHANGE_NOTIFICATION</a><br />
An interesting way of subscribing to events in an Oracle db. Could be used as an alternative to triggers where the work to be carried out is not possible from a trigger or needs to be done async to the trigger.</p>
<p><a href="http://quicksharp.sourceforge.net/">QuickSharp</a><br />
<a href="http://monodevelop.com/">MonoDevelop</a><br />
<a href="http://sharpdevelop.com/">SharpDevelop IDE for C#</a><br />
A few opensource C# IDEs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.17od.com/2010/03/04/bookmarks-for-2010-03-05/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.17od.com/2010/03/04/bookmarks-for-2010-03-05/</feedburner:origLink></item>
		<item>
		<title>Multipart form upload on Android</title>
		<link>http://feedproxy.google.com/~r/AdrianSmithsBlog/~3/SwNi66sfhWE/</link>
		<comments>http://www.17od.com/2010/02/18/multipart-form-upload-on-android/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 19:49:55 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.17od.com/?p=280</guid>
		<description><![CDATA[Android 1.5 includes Apache HttpClient 4 for the purposes of making HTTP requests. Unfortunately HttpClient 4 (or the version included with Android anyway) doesn&#8217;t appear to support multipart form uploads.
As it happens writing a solution from scratch (at the HTTP layer that is) is pretty straight forward. The main challenge is understanding how the POST [...]]]></description>
			<content:encoded><![CDATA[<p>Android 1.5 includes <a href="http://hc.apache.org/httpcomponents-client/index.html">Apache HttpClient 4</a> for the purposes of making HTTP requests. Unfortunately HttpClient 4 (or the version included with Android anyway) doesn&#8217;t appear to support multipart form uploads.</p>
<p>As it happens writing a solution from scratch (at the HTTP layer that is) is pretty straight forward. The main challenge is understanding how the POST request should be structured. Once you know that it&#8217;s simply a matter of putting all the pieces together.</p>
<p>The connection is managed using the <strong>java.net.HttpURLConnection</strong> class. There&#8217;s a few properties that need to set on the connection to ensure it can be written to and read from,</p>
<pre name="code" class="java:nocontrols">
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
</pre>
<p>A special header informs the server that this will be a multipart form submission.</p>
<pre name="code" class="java:nocontrols">
conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=xxxxxxxxxx");
</pre>
<p>The &#8220;boundry&#8221; can be any string. In this example it&#8217;s &#8220;xxxxxxxxxx&#8221;. It&#8217;s used in the body of the request to seperate each field being submitted.</p>
<p>Next comes the main body of the request. Each field being submitted follows the same pattern. For example, to submit a text file called &#8220;helloworld.txt&#8221; with the contents &#8220;Hello World&#8221; and using the boundry string &#8220;xxxxxxxxxx&#8221; here&#8217;s what the request would look like,</p>
<pre>
--xxxxxxxxxx
Content-Disposition: form-data; name="filetoupload"; filename="helloworld.txt"
Content-Type: text/plain

Hello World
--xxxxxxxxxx--
</pre>
<p>The final <code>--</code> is important. It tells the server it&#8217;s the end of the submission.</p>
<p>Here&#8217;s a full method that&#8217;s used to upload a file to a URL. It can optionally take a username and password which is used to perform BASIC authentication.</p>
<pre name="code" class="java:collapse">
    public static void put(String targetURL, File file, String username, String password) throws Exception {

        String BOUNDRY = "==================================";
        HttpURLConnection conn = null; 

        try {

            // These strings are sent in the request body. They provide information about the file being uploaded
            String contentDisposition = "Content-Disposition: form-data; name=\"userfile\"; filename=\"" + file.getName() + "\"";
            String contentType = "Content-Type: application/octet-stream";

            // This is the standard format for a multipart request
            StringBuffer requestBody = new StringBuffer();
            requestBody.append("--");
            requestBody.append(BOUNDRY);
            requestBody.append('\n');
            requestBody.append(contentDisposition);
            requestBody.append('\n');
            requestBody.append(contentType);
            requestBody.append('\n');
            requestBody.append('\n');
            requestBody.append(new String(Util.getBytesFromFile(file)));
            requestBody.append("--");
            requestBody.append(BOUNDRY);
            requestBody.append("--");

            // Make a connect to the server
            URL url = new URL(targetURL);
            conn = (HttpURLConnection) url.openConnection();

            // Put the authentication details in the request
            if (username != null) {
                String usernamePassword = username + ":" + password;
                String encodedUsernamePassword = Base64.encodeBytes(usernamePassword.getBytes());
                conn.setRequestProperty ("Authorization", "Basic " + encodedUsernamePassword);
            }

            conn.setDoOutput(true);
            conn.setDoInput(true);
            conn.setUseCaches(false);
            conn.setRequestMethod("POST");
            conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + BOUNDRY);

            // Send the body
            DataOutputStream dataOS = new DataOutputStream(conn.getOutputStream());
            dataOS.writeBytes(requestBody.toString());
            dataOS.flush();
            dataOS.close();

            // Ensure we got the HTTP 200 response code
            int responseCode = conn.getResponseCode();
            if (responseCode != 200) {
                throw new Exception(String.format("Received the response code %d from the URL %s", responseCode, url));
            }

            // Read the response
            InputStream is = conn.getInputStream();
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            byte[] bytes = new byte[1024];
            int bytesRead;
            while((bytesRead = is.read(bytes)) != -1) {
                baos.write(bytes, 0, bytesRead);
            }
            byte[] bytesReceived = baos.toByteArray();
            baos.close();

            is.close();
            String response = new String(bytesReceived);
            
            // TODO: Do something here to handle the 'response' string

        } finally {
            if (conn != null) {
                conn.disconnect();
            }
        }

    }
</pre>
<p>There&#8217;s nothing in this code particular to Android so it will work in any java application.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.17od.com/2010/02/18/multipart-form-upload-on-android/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.17od.com/2010/02/18/multipart-form-upload-on-android/</feedburner:origLink></item>
		<item>
		<title>Bookmarks for 2010-02-14</title>
		<link>http://feedproxy.google.com/~r/AdrianSmithsBlog/~3/dEaMR95Lqcg/</link>
		<comments>http://www.17od.com/2010/02/14/bookmarks-for-2010-02-14/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 20:33:31 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bookmarks]]></category>

		<guid isPermaLink="false">http://www.17od.com/?p=272</guid>
		<description><![CDATA[The Pleasures of Counting by T. W. K&#246;rner
An interesting looking maths book. One to add to the &#8220;must read&#8221; list.
The Four Steps to the Epiphany by Steven Gary Blank
&#34;Step-by-step strategy of how to successfully organize sales, marketing and business development for a new product or company.&#34;
Steak: How to Turn Cheap &#8220;Choice&#8221; Steak into Gucci &#8220;Prime&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.co.uk/gp/product/0521568234">The Pleasures of Counting by T. W. K&ouml;rner</a><br />
An interesting looking maths book. One to add to the &#8220;must read&#8221; list.</p>
<p><a href="http://www.amazon.com/Four-Steps-Epiphany-Steven-Blank/dp/0976470705">The Four Steps to the Epiphany by Steven Gary Blank</a><br />
&quot;Step-by-step strategy of how to successfully organize sales, marketing and business development for a new product or company.&quot;</p>
<p><a href="http://steamykitchen.com/163-how-to-turn-cheap-choice-steaks-into-gucci-prime-steaks.html">Steak: How to Turn Cheap &ldquo;Choice&rdquo; Steak into Gucci &ldquo;Prime&rdquo; Steak</a><br />
How to cook a really tasty steak using a *lot* of salt. I&#039;ll definitely be trying this one out.</p>
<p><a href="http://www.cykod.com/blog/post/2010-01-design-0101-for-programmers">Design 0.101 for Programmers</a><br />
A nice step by step guide describing how to build a simple but nicely styled set of web pages. I usually use YUI or Blueprint to give me the basics but sometimes they can be a bit heavy if all you want is a simple page or two.</p>
<p><a href="http://www.fiddler2.com/fiddler2/">Fiddler Web Debugger</a><br />
Useful proxy based tool for inspecting and &quot;fiddling&quot; with HTTP requests and responses.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.17od.com/2010/02/14/bookmarks-for-2010-02-14/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.17od.com/2010/02/14/bookmarks-for-2010-02-14/</feedburner:origLink></item>
		<item>
		<title>Identifying Performance Issues on Android</title>
		<link>http://feedproxy.google.com/~r/AdrianSmithsBlog/~3/dgi4qt2ylqo/</link>
		<comments>http://www.17od.com/2010/02/09/identifying-performance-issues-on-android/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 20:06:37 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://www.17od.com/?p=256</guid>
		<description><![CDATA[While application performance is always in the back of your mind when developing PC applications it becomes much more important when developing on a mobile platform. The hardware is slower and the user expectations are much higher.
This problem came to the fore for me recently as I was porting UPM to the Android platform. Since [...]]]></description>
			<content:encoded><![CDATA[<p>While application performance is always in the back of your mind when developing PC applications it becomes much more important when developing on a mobile platform. The hardware is slower and the user expectations are much higher.</p>
<p>This problem came to the fore for me recently as I was porting <a href="http://upm.sourceforge.net/">UPM</a> to the Android platform. Since UPM is a Java application I was able to reuse quite a bit of the code with little or no modification (all bar the SWING code actually).</p>
<p>During the porting process I found that opening the password database on the Android Emulator took about 12 seconds. This was a sub-second operation on the PC version so there was obviously a problem. Using <a href="http://developer.android.com/guide/developing/tools/traceview.html">Traceview</a>, the profiling tool that comes with the <a href="http://developer.android.com/sdk/index.html">Android SDK</a>, the problem soon became apparent.</p>
<p>UPM stores all it&#8217;s data in an encrypted file. This file is read into memory where it&#8217;s decrypted. Here&#8217;s the code that was reading in the file&#8230;</p>
<pre name="code" class="java">
    FileInputStream fis = new FileInputStream(databaseFile);
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    int i = 0;
    while ((i = fis.read()) != -1) {
        baos.write(i);
    }
    byte[] fullDatabase = baos.toByteArray();
    baos.close();
    fis.close();
</pre>
<p>Looking at it now it&#8217;s obviously bad code from a performance point of view as it&#8217;s reading in the file byte by byte. The reason I never replaced it was that it simply wasn&#8217;t a problem when running on a PC. The database file it reads is only a few kilobytes in size so it ran in under a second. </p>
<p>After identifying the bad code I replaced it with the following which runs in under a second.</p>
<pre name="code" class="java">
        InputStream is = new FileInputStream(file);
    
        // Get the size of the file
        long length = file.length();
    
        // Create the byte array to hold the data
        byte[] bytes = new byte[(int)length];
    
        // Read in the bytes
        int offset = 0;
        int numRead = 0;
        while (offset &lt; bytes.length
               &amp;&amp; (numRead=is.read(bytes, offset, bytes.length-offset)) &gt;= 0) {
            offset += numRead;
        }
    
        // Ensure all the bytes have been read in
        if (offset &lt; bytes.length) {
            throw new IOException("Could not completely read file " + file.getName());
        }
    
        is.close();
</pre>
<p>The lesson here is that Android, and mobile platforms in general, require you think a little bit more about elements of your design and code than you might normally.</p>
<p>Some useful Android links:<br />
<a href="http://developer.android.com/guide/practices/design/performance.html">Designing for Performance</a><br />
<a href="http://developer.android.com/guide/practices/design/responsiveness.html">Designing for Responsiveness</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.17od.com/2010/02/09/identifying-performance-issues-on-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.17od.com/2010/02/09/identifying-performance-issues-on-android/</feedburner:origLink></item>
		<item>
		<title>Bookmarks for 2010-02-09</title>
		<link>http://feedproxy.google.com/~r/AdrianSmithsBlog/~3/z5Q2C7aiYwc/</link>
		<comments>http://www.17od.com/2010/02/09/bookmarks-for-2010-02-09/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 13:27:29 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bookmarks]]></category>

		<guid isPermaLink="false">http://www.17od.com/?p=246</guid>
		<description><![CDATA[Intel X25-M Mainstream Solid State Drive &#8211; 34nm
This SSD has been getting great reviews. A bit expensive but I think the performance gain would be worth it, especially on a laptop.
Patchbin &#8211; Share and collaborate on patches
An open source code review / code sharing app. Looks nice and simple. It&#8217;s written in Python and runs [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.co.uk/Intel-X25-M-Mainstream-Solid-State/dp/B002MWCEAI">Intel X25-M Mainstream Solid State Drive &#8211; 34nm</a><br />
This SSD has been getting great reviews. A bit expensive but I think the performance gain would be worth it, especially on a laptop.</p>
<p><a href="http://patchbin.com/haLJ28">Patchbin &#8211; Share and collaborate on patches</a><br />
An open source code review / code sharing app. Looks nice and simple. It&#8217;s written in Python and runs on Django.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.17od.com/2010/02/09/bookmarks-for-2010-02-09/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.17od.com/2010/02/09/bookmarks-for-2010-02-09/</feedburner:origLink></item>
		<item>
		<title>Bookmarks for 2010-02-07</title>
		<link>http://feedproxy.google.com/~r/AdrianSmithsBlog/~3/3-VVZFVppBE/</link>
		<comments>http://www.17od.com/2010/02/07/bookmarks-for-2010-02-07/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 21:22:49 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bookmarks]]></category>

		<guid isPermaLink="false">http://www.17od.com/?p=238</guid>
		<description><![CDATA[Dive Into Python 3
One of the better, if not the best resource for learning python.
South Dublin County Libraries
Homepage for the Tallaght and other south Dublin libraries. 
Android Source Code Git Repositories
Looking for the Android source code? This is the Android Git homepage with references to all repositories. Useful if you&#8217;re developing an app and would [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://diveintopython3.org/">Dive Into Python 3</a><br />
One of the better, if not the best resource for learning python.</p>
<p><a href="http://www.southdublinlibraries.ie/">South Dublin County Libraries</a><br />
Homepage for the Tallaght and other south Dublin libraries. </p>
<p><a href="http://android.git.kernel.org/">Android Source Code Git Repositories</a><br />
Looking for the Android source code? This is the Android Git homepage with references to all repositories. Useful if you&#8217;re developing an app and would like to see the source for some of the packaged apps.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.17od.com/2010/02/07/bookmarks-for-2010-02-07/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.17od.com/2010/02/07/bookmarks-for-2010-02-07/</feedburner:origLink></item>
		<item>
		<title>UPM 1.0 for Android</title>
		<link>http://feedproxy.google.com/~r/AdrianSmithsBlog/~3/21Ru1zSYJL0/</link>
		<comments>http://www.17od.com/2010/01/29/upm-1-0-for-android/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 08:49:48 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[upm]]></category>

		<guid isPermaLink="false">http://www.17od.com/?p=211</guid>
		<description><![CDATA[There&#8217;s nothing like the feeling of relief the day after a software release. Even when it&#8217;s only something small you&#8217;re still putting your creation out into the big bad world to be pored over.
Over the past few weeks I&#8217;ve been working on a version of UPM for Android. This was mainly an exploratory exercise so [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s nothing like the feeling of relief the day after a software release. Even when it&#8217;s only something small you&#8217;re still putting your creation out into the big bad world to be pored over.</p>
<p>Over the past few weeks I&#8217;ve been working on a version of <a href="http://sourceforge.net/projects/upm/">UPM</a> for Android. This was mainly an exploratory exercise so that I could get a feel for Android but it&#8217;s nice to have something useful at the end of it.</p>
<p>UPM is cross platform, easy to use password manager. It runs on Windows, OS X (native L&#038;F), Linux and now Android. It&#8217;s available on the <a href="http://www.android.com/market/">Android Market</a> or by <a href="https://sourceforge.net/projects/upm/files/">direct download</a>.</p>
<p>I hope you find it useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.17od.com/2010/01/29/upm-1-0-for-android/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.17od.com/2010/01/29/upm-1-0-for-android/</feedburner:origLink></item>
		<item>
		<title>New version of Amazon Prices for Ireland</title>
		<link>http://feedproxy.google.com/~r/AdrianSmithsBlog/~3/Yn0Y2tMHPK4/</link>
		<comments>http://www.17od.com/2009/12/21/new-version-of-amazon-prices-for-ireland/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 21:56:33 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[greasemonkey]]></category>

		<guid isPermaLink="false">http://www.17od.com/?p=196</guid>
		<description><![CDATA[From previous post&#8230;

&#8230;a little greasemonkey script that adds the irish price below each pound sterling price when you&#8217;re on a product details page. Here&#8217;s what it looks like,


This new minor version fixes a problem that caused the irish price not to appear on certain pages. It also includes a message indicating shipping costs.
The vew version [...]]]></description>
			<content:encoded><![CDATA[<p>From <a href="http://www.17od.com/2009/12/14/amazon-prices-for-ireland/">previous post</a>&#8230;</p>
<blockquote><p>
&#8230;a little <a href="http://www.greasespot.net/">greasemonkey</a> script that adds the irish price below each pound sterling price when you&#8217;re on a product details page. Here&#8217;s what it looks like,</p>
<p><a href="http://www.17od.com/wordpress/wp-content/uploads/2009/12/Amazon-Product-with-Irish-Price.PNG"><img src="http://www.17od.com/wordpress/wp-content/uploads/2009/12/Amazon-Product-with-Irish-Price.PNG" alt="Amazon Product with Irish Price" title="Amazon Product with Irish Price" class="aligncenter"/></a>
</p></blockquote>
<p>This new minor version fixes a problem that caused the irish price not to appear on certain pages. It also includes a message indicating shipping costs.</p>
<p>The vew version can be installed by visiting <a href="http://userscripts.org/scripts/show/64262">the script&#8217;s homepage on userscripts.org</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.17od.com/2009/12/21/new-version-of-amazon-prices-for-ireland/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.17od.com/2009/12/21/new-version-of-amazon-prices-for-ireland/</feedburner:origLink></item>
		<item>
		<title>HTC Hero Mobile Internet Settings for Vodafone Ireland</title>
		<link>http://feedproxy.google.com/~r/AdrianSmithsBlog/~3/CWqaWzrGwfA/</link>
		<comments>http://www.17od.com/2009/12/16/htc-hero-mobile-internet-settings-for-vodafone-ireland/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 21:43:41 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[htchero]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[vodafone]]></category>

		<guid isPermaLink="false">http://www.17od.com/?p=173</guid>
		<description><![CDATA[After porting over to Vodafone recently I&#8217;ve had a bit of trouble trying to get internet access up and running. I&#8217;m using a HTC Hero and since Vodafone don&#8217;t sell that model they couldn&#8217;t push the settings out to the handset. Luckily their internal support desk was able to get me up and running in [...]]]></description>
			<content:encoded><![CDATA[<p>After porting over to Vodafone recently I&#8217;ve had a bit of trouble trying to get internet access up and running. I&#8217;m using a <a href="http://www.htc.com/www/product/hero/overview.html">HTC Hero</a> and since Vodafone don&#8217;t sell that model they couldn&#8217;t push the settings out to the handset. Luckily their internal support desk was able to get me up and running in no time.</p>
<p>I&#8217;m using their <a href="http://www.vodafone.ie/planscosts/paymonthly/addons/">Mobile Internet Addon</a> which gives you 500MB for €9.99. I think there&#8217;s a different APN if you&#8217;re on one of their packages that give&#8217;s you a couple of Gb/month. <a href="http://www.boards.ie/vbulletin/showpost.php?p=62018469">These settings</a> might work in those cases.</p>
<p>You&#8217;ll probably need to restart the mobile network after entering these settings. You do that by unticking and then reticking the <strong>Mobile network</strong> menu option in the <strong>Wireless controls</strong> menu.</p>
<p>The bold settings are the ones I actually entered. The rest are just the defaults.</p>
<p><strong>Name: Vodafone Live</strong><br />
<strong>APN: live.vodafone.com</strong><br />
Proxy: &lt;Not set&gt;<br />
Port: &lt;Not set&gt;<br />
<strong>Username: vodafone</strong><br />
<strong>Password: vodafone</strong><br />
Server: &lt;Not set&gt;<br />
MMSC: &lt;Not set&gt;<br />
MMS Port: &lt;Not set><br />
MMS Protocol: WAP 2.0<br />
MMS: 272<br />
MNC: 01<br />
APN Type: &lt;Not set&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.17od.com/2009/12/16/htc-hero-mobile-internet-settings-for-vodafone-ireland/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.17od.com/2009/12/16/htc-hero-mobile-internet-settings-for-vodafone-ireland/</feedburner:origLink></item>
		<item>
		<title>Amazon Prices for Ireland</title>
		<link>http://feedproxy.google.com/~r/AdrianSmithsBlog/~3/fYSsFqeFuoM/</link>
		<comments>http://www.17od.com/2009/12/14/amazon-prices-for-ireland/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 21:28:03 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[greasemonkey]]></category>

		<guid isPermaLink="false">http://www.17od.com/?p=136</guid>
		<description><![CDATA[Since Amazon resumed shipping electonics to Ireland earlier this year they&#8217;re definitely worth checking out when you&#8217;re shopping around. The problem with browsing their site is that all the prices are in pounds sterling with no euro conversion. You don&#8217;t know exactly how much something is going to cost until you get to the very [...]]]></description>
			<content:encoded><![CDATA[<p>Since Amazon <a href="http://www.irishtimes.com/newspaper/breaking/2009/0412/breaking21.htm">resumed shipping</a> electonics to Ireland earlier this year they&#8217;re definitely worth checking out when you&#8217;re shopping around. The problem with browsing their site is that all the prices are in pounds sterling with no euro conversion. You don&#8217;t know exactly how much something is going to cost until you get to the very last page in the checkout process. That&#8217;s the page where they show the euro price with irish VAT applied.</p>
<p>To make life a bit easier I&#8217;ve put together a little <a href="http://userscripts.org/scripts/show/64262">greasemonkey script</a> that adds the irish price below each pound sterling price when you&#8217;re on a product details page. Here&#8217;s what it looks like,</p>
<p><a href="http://www.17od.com/wordpress/wp-content/uploads/2009/12/Amazon-Product-with-Irish-Price.PNG"><img src="http://www.17od.com/wordpress/wp-content/uploads/2009/12/Amazon-Product-with-Irish-Price.PNG" alt="Amazon Product with Irish Price" title="Amazon Product with Irish Price" class="aligncenter"/></a></p>
<p>To install the script ensure you have the <a href="https://addons.mozilla.org/en-US/firefox/addon/748">Greasemonkey plugin</a> installed and then click the &#8220;Install&#8221; button on <a href="http://userscripts.org/scripts/show/64262">this page</a>.</p>
<p>Some points to note,</p>
<ul>
<li>the calculation is approximate since the exchange rate won&#8217;t be the exact one used by Amazon</li>
<li>shipping isn&#8217;t accounted for. if you&#8217;re ordering over £25(~€28) worth of stuff then shipping will be free but below that you&#8217;ll pay the <a href="http://www.amazon.co.uk/gp/help/customer/display.html?ie=UTF8&#038;nodeId=200395880">usual prices</a></li>
<li>to determine if a product is a book (and hence exempt from VAT) the script simply searchs for the text &#8220;ISBN-10&#8243; so there could be false positives</li>
<li>Irish VAT is assumed to be <del datetime="2010-01-01T21:22:23+00:00">21.5%</del> 21%</li>
<li>British VAT is assumed to be <del datetime="2010-01-01T21:22:23+00:00">15%</del> 17.5%</li>
</ul>
<p>The homepage for the plugin is <a href="http://userscripts.org/scripts/show/64262">http://userscripts.org/scripts/show/64262</a>. The source is available on <a href="http://github.com/adrian/Amazon-Prices-for-Ireland">github</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.17od.com/2009/12/14/amazon-prices-for-ireland/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.17od.com/2009/12/14/amazon-prices-for-ireland/</feedburner:origLink></item>
	</channel>
</rss>
