<?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>FatLemon</title>
	<atom:link href="http://www.fatlemon.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fatlemon.co.uk</link>
	<description>Contemplations on software development and human factors, by Andrew Freemantle</description>
	<lastBuildDate>Wed, 01 Oct 2014 15:43:24 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.1.1</generator>
	<item>
		<title>Panasonic LUMIX MapTool.pkg &#8211; Open Source edition</title>
		<link>http://www.fatlemon.co.uk/2014/10/lumix-map-tool/</link>
		<comments>http://www.fatlemon.co.uk/2014/10/lumix-map-tool/#comments</comments>
		<pubDate>Wed, 01 Oct 2014 08:00:01 +0000</pubDate>
		<dc:creator><![CDATA[Andrew Freemantle]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[DMC-TZ30]]></category>
		<category><![CDATA[DMC-TZ40]]></category>
		<category><![CDATA[Lumix-Map-Tool]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.fatlemon.co.uk/?p=335</guid>
		<description><![CDATA[I recently upgraded my compact travel zoom camera from the tried and trusted Sony DMC-HX9V to the Panasonic DMC-TZ40. It&#8217;s quite an upgrade and while I&#8217;m delighted by my new purchase, the review will have to wait now that I can use a major feature: MAPS! Yes, as well as GPS Geotagging of photographs, the [&#8230;]<p><hr />
<a href="http://www.fatlemon.co.uk/2014/10/lumix-map-tool/">Panasonic LUMIX MapTool.pkg &#8211; Open Source edition</a> is a post from <a href="http://www.fatlemon.co.uk">Andrew Freemantle's blog</a><br />
Need a cheap domain name registrar? I use and recommend <a href="http://www.namecheap.com/?aff=58966">NameCheap.com</a></p>
]]></description>
				<content:encoded><![CDATA[<div id="attachment_336" style="width: 810px" class="wp-caption alignnone"><img src="http://www.fatlemon.co.uk/wp-content/uploads/Panasonic-DMC-TZ40.jpg" alt="The Panasonic LUMIX DMC-TZ40 Digital Camera, in a word, excellent!" width="800" height="573" class="size-full wp-image-336" /><p class="wp-caption-text">The Panasonic LUMIX DMC-TZ40 Digital Camera, in a word, excellent!</p></div>
<p>I recently upgraded my compact travel zoom camera from the tried and trusted Sony DMC-HX9V to the Panasonic DMC-TZ40. It&#8217;s quite an upgrade and while I&#8217;m delighted by my new purchase, the review will have to wait now that I can use a major feature: MAPS!</p>
<div id="attachment_337" style="width: 340px" class="wp-caption alignnone"><img src="http://www.fatlemon.co.uk/wp-content/uploads/Panasonic-LUMIX-TZ-Maps.jpg" alt="Maps! On a Digital Camera! What ever will they think of next!" width="330" height="248" class="size-full wp-image-337" /><p class="wp-caption-text">Maps! On a Digital Camera! What ever will they think of next!</p></div>
<p>Yes, as well as GPS Geotagging of photographs, the Panasonic LUMIX DMC-TZ30 (ZS20) and Panasonic LUMIX DMC-TZ40 (LZ30) come with Map Data that you can use to find your way to your next photo shooting location, or back to your hostel if you find yourself lost!</p>
<p>The Map Data comes on the CD-ROM / DVD with the camera, along with a little application called the LUMIX Map Tool. There&#8217;s a version for Microsoft Windows and Apple Mac OSX, but not for Linux.</p>
<p>To save on space I&#8217;d copied the contents of the DVD onto a USB drive so I could update the map data while travelling, but the only thing that didn&#8217;t copy was the Apple Mac OSX version of the LUMIX MapTool.pkg!</p>
<p>It took a bit of Googling, but I eventually found a great <a href="http://blog.roland-kluge.de/?p=250" title="Simple replacement for Lumix Map Tool (Python) - Roland Kluge">blog post by Roland Kluge where he&#8217;d written a simple script version of the tool for his LUMIX DMC-TZ31</a> &#8211; and after reading the comments I was able to modify his script to make it work for my new LUMIX DMC-TZ40.</p>
<p>I cannot stress how thankful I am for his work and the comments on his post &#8211; <em><strong>thank you Roland, and <a href="http://blog.roland-kluge.de/?p=250#comment-28" title="Falk's comment on Roland Kluge's post">thank you commenter Falk</a></strong></em></p>
<h3>Introducing LUMIX Map Tool &#8211; Open Source edition  :o)</h3>
<div id="attachment_338" style="width: 734px" class="wp-caption alignnone"><img src="http://www.fatlemon.co.uk/wp-content/uploads/Lumix-Map-Tool.png" alt="My contribution to Roland Kluge&#039;s Simple Replacement for Lumix Map Tool" width="724" height="564" class="size-full wp-image-338" /><p class="wp-caption-text">My contribution to Roland Kluge&#8217;s Simple Replacement for Lumix Map Tool</p></div>
<p><a href="https://github.com/AndrewFreemantle/Lumix-Map-Tool" title="Limux-Map-Tool - source code on GitHub">I&#8217;ve forked Roland&#8217;s code</a> and added support for the Lumix DMC-TZ40, and I thought I&#8217;d make it a little more interactive as I&#8217;m not likely to change the Map Data too often.</p>
<p>Simply download the <span class="code">maptool.py</span> file <a href="https://github.com/AndrewFreemantle/Lumix-Map-Tool" title="Limux-Map-Tool - source code on GitHub">from the GitHub repository</a> and run it with..</p>
<p></p><pre class="crayon-plain-tag">python maptool.py</pre><p></p>
<p>.. and it will prompt you for the information it needs to get the Map Data from your DVD onto a formatted SD Card &#8211; <em>maps away!</em></p>
<p><hr />
<a href="http://www.fatlemon.co.uk/2014/10/lumix-map-tool/">Panasonic LUMIX MapTool.pkg &#8211; Open Source edition</a> is a post from <a href="http://www.fatlemon.co.uk">Andrew Freemantle's blog</a><br />
Need a cheap domain name registrar? I use and recommend <a href="http://www.namecheap.com/?aff=58966">NameCheap.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fatlemon.co.uk/2014/10/lumix-map-tool/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Setting up Django on Windows Azure Websites</title>
		<link>http://www.fatlemon.co.uk/2014/01/setting-up-django-on-windows-azure-websites/</link>
		<comments>http://www.fatlemon.co.uk/2014/01/setting-up-django-on-windows-azure-websites/#comments</comments>
		<pubDate>Wed, 15 Jan 2014 09:00:41 +0000</pubDate>
		<dc:creator><![CDATA[Andrew Freemantle]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Windows Azure]]></category>

		<guid isPermaLink="false">http://www.fatlemon.co.uk/?p=308</guid>
		<description><![CDATA[A couple of things caught me out when I was trying to deploy a Django application to Windows Azure, so I&#8217;m making a note of them here for future reference. Oh, and I hope they might be of use to you as well :o) Configuring Azure Websites to run Python and Django The Windows Azure [&#8230;]<p><hr />
<a href="http://www.fatlemon.co.uk/2014/01/setting-up-django-on-windows-azure-websites/">Setting up Django on Windows Azure Websites</a> is a post from <a href="http://www.fatlemon.co.uk">Andrew Freemantle's blog</a><br />
Need a cheap domain name registrar? I use and recommend <a href="http://www.namecheap.com/?aff=58966">NameCheap.com</a></p>
]]></description>
				<content:encoded><![CDATA[<p>A couple of things caught me out when I was trying to deploy a Django application to Windows Azure, so I&#8217;m making a note of them here for future reference. Oh, and I hope they might be of use to you as well  :o)</p>
<h3>Configuring Azure Websites to run Python and Django</h3>
<p>The <a href="http://www.windowsazure.com/en-us/documentation/articles/web-sites-python-create-deploy-django-app/#web-site-configuration">Windows Azure Websites and Django getting started tutorial</a> directs us to put the required settings into the Azure management portal, but that&#8217;s not how Microsoft do it in the Gallery, oh no. If we create a Django application from the Windows Azure Website gallery, the resulting site puts all the configuration into a <code>web.config</code>.</p>
<p>Personally, I like the management portal approach, but I did play with the <code>web.config</code> and got it working for my custom site, so I present it here in case this works for you:</p>
<p></p><pre class="crayon-plain-tag">&lt;configuration&gt;
    &lt;appSettings&gt;
        &lt;add key=&quot;PYTHONPATH&quot; value=&quot;D:\home\site\wwwroot;D:\home\site\wwwroot\site-packages&quot; /&gt;
        &lt;add key=&quot;WSGI_HANDLER&quot; value=&quot;django.core.handlers.wsgi.WSGIHandler()&quot; /&gt;
        &lt;add key=&quot;DJANGO_SETTINGS_MODULE&quot; value=&quot;{django-app-name}.settings&quot; /&gt;   
    &lt;/appSettings&gt;
    &lt;system.webServer&gt;
        &lt;handlers&gt;
            &lt;add name=&quot;Python_FastCGI&quot;
                path=&quot;handler.fcgi&quot;
                verb=&quot;*&quot;
                modules=&quot;FastCgiModule&quot;
                scriptProcessor=&quot;D:\Python27\python.exe|D:\Python27\Scripts\wfastcgi.py&quot;
                resourceType=&quot;Either&quot;
                requireAccess=&quot;Script&quot; /&gt;
        &lt;/handlers&gt;
        &lt;rewrite&gt;
            &lt;rules&gt;
                &lt;rule name=&quot;Django Application&quot; stopProcessing=&quot;true&quot;&gt;
                    &lt;match url=&quot;(.*)&quot; ignoreCase=&quot;false&quot; /&gt;
                    &lt;conditions&gt;
                        &lt;add input=&quot;{REQUEST_FILENAME}&quot; matchType=&quot;IsFile&quot; negate=&quot;true&quot; /&gt;
                    &lt;/conditions&gt;
                    &lt;action type=&quot;Rewrite&quot; url=&quot;handler.fcgi/{R:1}&quot; appendQueryString=&quot;false&quot; /&gt;
                &lt;/rule&gt;
            &lt;/rules&gt;
        &lt;/rewrite&gt;
    &lt;/system.webServer&gt;
&lt;/configuration&gt;</pre><p></p>
<p>There are three things you need to do to get this working:</p>
<ol>
<li>Check the <strong>PYTHONPATH</strong> &#8211; <em>It needs pointing to the root of your Django Application (the directory that holds <code>manage.py</code>, and the location of the directory <code>site-packages</code> (obviously, copy that directory into Azure from your development environment if it&#8217;s not there)</em></li>
<li>Set <strong>DJANGO_SETTINGS_MODULE</strong> &#8211; <em>Point this to your <code>settings.py</code> file. Replace directory slashes &#8216;/&#8217; with dots, and omit the .py from the end</em></li>
<li>Create the file <strong><code>handler.fcgi</code></strong> &#8211; <em>This is required, and it&#8217;s a just a plain text file containing two double-quotes (i.e. &#8220;&#8221;) on the first line followed by a return carriage</em></li>
</ol>
<p>Seriously though, just put the <a href="http://www.windowsazure.com/en-us/documentation/articles/web-sites-python-create-deploy-django-app/#web-site-configuration">settings into the Azure management portal</a>. It&#8217;s easier  :o)</p>
<h3>Bad Request (400)</h3>
<p>Following the advice in <code>settings.py</code> the first thing I did after copying the files into Azure and seeing the Django &#8220;cool, now get cracking&#8221; default page was to trip <code>DEBUG</code> to False (<code>DEBUG = False</code>), then refresh the web browser..</p>
<div id="attachment_326" style="width: 670px" class="wp-caption alignnone"><img src="http://www.fatlemon.co.uk/wp-content/uploads/Screen-Shot-2014-01-15-at-18.47.29.png" alt="Django on Windows Azure Websites - Bad Request (400)" width="660" height="388" class="size-full wp-image-326" /><p class="wp-caption-text">Django on Windows Azure Websites &#8211; Bad Request (400)</p></div>
<p>Ouch.</p>
<p>Essentially, if <code>DEBUG</code> is <code>False</code>, we have to put our server&#8217;s URL into the <code>ALLOWED_HOSTS</code> setting. Now, we could do that in <code>settings.py</code> but this is really Azure specific just like the configuration above, so it really belongs in Azure.</p>
<p>In the Azure management portal, under the Website > Configure tab, find the &#8216;app settings&#8217; section near the bottom and add the following:</p>
<table>
<thead>
<tr>
<td>Setting</td>
<td>Value</td>
</tr>
</thead>
<tbody>
<tr>
<td><code>ALLOWED_HOSTS</code></td>
<td>Your Azure URL: e.g. <code>mydjangosite.azurewebsites.net</code></p>
<p>If you have custom domains pointed at Azure, you can use a space-separated list like so: <code>mydjangosite.azurewebsites.net myjangosite.com</code></td>
</tr>
<tr>
<td><code>SECRET_KEY</code></td>
<td>While we&#8217;re adding new application settings, create a new 50 character random string and copy it here. We&#8217;ll use it in a second</td>
</tr>
</tbody>
</table>
<p>Now, we could just modify our <code>settings.py</code>, but it&#8217;s much better to have a configuration file specifically for production / Azure, so first of all, copy your existing <code>settings.py</code> to a new file in the same directory &#8211; I like to use the filename <code>settings_azure.py</code>.</p>
<p>Now, assuming you have a shiny new <code>settings_azure.py</code> file, delete everything in it and replace it with this:</p>
<p></p><pre class="crayon-plain-tag">from settings import *

# Now just overwrite the important settings

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = os.getenv('SECRET_KEY')                #  - defined in Windows Azure app settings

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False

TEMPLATE_DEBUG = DEBUG

ALLOWED_HOSTS = os.getenv('ALLOWED_HOSTS').split()  #  - defined in Windows Azure app settings



# Handy file logging, in case we run into problems on production
# Uncomment to log Django errors to the root of your Azure Website
&quot;&quot;&quot;
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
        }
    },
    'handlers': {
        'logfile': {
            'class': 'logging.handlers.WatchedFileHandler',
            'filename': 'D:/home/site/wwwroot/error.log'
        },
    },
    'loggers': {
        'django': {
            'handlers': ['logfile'],
            'level': 'ERROR',
            'propagate': False,
        },
    }
}
&quot;&quot;&quot;</pre><p></p>
<p>If you created this new <code>settings_azure.py</code> file, don&#8217;t forget to adjust the <code>DJANGO_SETTINGS_MODULE</code> value to point to it in the Azure management portal, or your <code>web.config</code> if you went that route, you heathen!</p>
<p><hr />
<a href="http://www.fatlemon.co.uk/2014/01/setting-up-django-on-windows-azure-websites/">Setting up Django on Windows Azure Websites</a> is a post from <a href="http://www.fatlemon.co.uk">Andrew Freemantle's blog</a><br />
Need a cheap domain name registrar? I use and recommend <a href="http://www.namecheap.com/?aff=58966">NameCheap.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fatlemon.co.uk/2014/01/setting-up-django-on-windows-azure-websites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extending System.Data.Linq.Table&lt;T&gt; &#8211; Exportable Linq2SQL Classes</title>
		<link>http://www.fatlemon.co.uk/2012/12/extending-system-data-linq-table-exportable-linq2sql-classes/</link>
		<comments>http://www.fatlemon.co.uk/2012/12/extending-system-data-linq-table-exportable-linq2sql-classes/#comments</comments>
		<pubDate>Mon, 03 Dec 2012 13:59:53 +0000</pubDate>
		<dc:creator><![CDATA[Andrew Freemantle]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Linq]]></category>

		<guid isPermaLink="false">http://www.fatlemon.co.uk/?p=287</guid>
		<description><![CDATA[Wouldn&#8217;t this be handy?: [crayon-551a88b116471794875622/] I&#8217;ve found this approach useful when working on API&#8217;s which essentially provide access to data that closely mirrors Linq2SQL generated classes. It makes it easy to control which properties are included, and how they are formatted. First, we declare an interface that we can decorate our Linq2SQL classes with. Note [&#8230;]<p><hr />
<a href="http://www.fatlemon.co.uk/2012/12/extending-system-data-linq-table-exportable-linq2sql-classes/">Extending System.Data.Linq.Table&lt;T&gt; &#8211; Exportable Linq2SQL Classes</a> is a post from <a href="http://www.fatlemon.co.uk">Andrew Freemantle's blog</a><br />
Need a cheap domain name registrar? I use and recommend <a href="http://www.namecheap.com/?aff=58966">NameCheap.com</a></p>
]]></description>
				<content:encoded><![CDATA[<p>Wouldn&#8217;t this be handy?:</p>
<p></p><pre class="crayon-plain-tag">using (var db = new DataContext()) {
    return db.StockItems.ToXElement();
}</pre><p></p>
<p>I&#8217;ve found this approach useful when working on API&#8217;s which essentially provide access to data that closely mirrors Linq2SQL generated classes. It makes it easy to control which properties are included, and how they are formatted.</p>
<p>First, we declare an interface that we can decorate our Linq2SQL classes with. Note that I&#8217;m returning an XElement here, but this could be JSON or something else:</p>
<p></p><pre class="crayon-plain-tag">using System;
using System.Xml.Linq;

public interface IXElementable {
    XElement ToXElement();
}</pre><p></p>
<p>Then we augment the Linq2SQL classes we wish to be exportable, using Partial Classes as we&#8217;d normally do:</p>
<p></p><pre class="crayon-plain-tag">public partial class StockItem: implements IXElementable {

    // ..

    public XElement ToXElement() {
        return new XElement(&quot;StockItem&quot;,
            new XElement(&quot;StockItemId&quot;, Id),
            new XElement(&quot;PartNo&quot;, PartNo),
            new XElement(&quot;QtyInStock&quot;, QtyInStock),
            new XElement(&quot;QtyOnOrder&quot;, StockOrders.Where(o =&gt; o.Status == (int)StockOrderStatuses.Outstanding).Count()),
            new XElement(&quot;CreatedDate&quot;, CreatedDate.ToString(&quot;u&quot;)));
    }

    // ..
}</pre><p></p>
<p>Finally, we extend the Linq Table class itself:</p>
<p></p><pre class="crayon-plain-tag">using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Linq;
using System.Xml.Linq;

public static class TableExtensions {

	/// &lt;summary&gt;
	/// Returns an XElement (XML) representation of the Table and its data
	/// &lt;remarks&gt;Note that data objects in the Table need to implement IXElementable&lt;/remarks&gt;
	/// &lt;/summary&gt;
	public static XElement ToXElement&lt;T&gt;(this Table&lt;T&gt; table) where T: class {

		var xml = new XElement(GetTableName(table));

		foreach (var item in table) {
			try {
				xml.Add(((IXElementable)item).ToXElement());

			} catch (Exception ex) {
				Log.Write(string.Format(&quot;Table: {0}.ToXElement&quot;, xml.Name), ex);

				// no point continuing..
				break;
			}
		}

		return xml;

	}


	private static string GetTableName&lt;T&gt;(Table&lt;T&gt; table) where T: class {
		// a bit of a hack, but there doesn't seem to be a nice way to get the Linq2SQL table name
		string tableName = table.GetType().ToString().Split('.').Last().Trim(']');

		// pluralise it..
		if (tableName.EndsWith(&quot;y&quot;))
			tableName = tableName.TrimEnd('y') + &quot;ies&quot;;
		else
			tableName += 's';

		return tableName;
	}
}</pre><p></p>
<p>And that&#8217;s it!</p>
<p>As you can see, this approach affords us complete control over the Linq2SQL generated properties and the format they&#8217;re serialised to, and it makes it really easy to omit properties without having to re-implement them in the Partial class just so we can add the <code>[XmlIgnore]</code> attribute.</p>
<p><hr />
<a href="http://www.fatlemon.co.uk/2012/12/extending-system-data-linq-table-exportable-linq2sql-classes/">Extending System.Data.Linq.Table&lt;T&gt; &#8211; Exportable Linq2SQL Classes</a> is a post from <a href="http://www.fatlemon.co.uk">Andrew Freemantle's blog</a><br />
Need a cheap domain name registrar? I use and recommend <a href="http://www.namecheap.com/?aff=58966">NameCheap.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fatlemon.co.uk/2012/12/extending-system-data-linq-table-exportable-linq2sql-classes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gravatar HtmlHelper for ASP.Net MVC</title>
		<link>http://www.fatlemon.co.uk/2012/01/gravatar-htmlhelper-for-asp-net-mvc/</link>
		<comments>http://www.fatlemon.co.uk/2012/01/gravatar-htmlhelper-for-asp-net-mvc/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 20:00:55 +0000</pubDate>
		<dc:creator><![CDATA[Andrew Freemantle]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ASP.Net-MVC]]></category>
		<category><![CDATA[Gravatar]]></category>

		<guid isPermaLink="false">http://www.fatlemon.co.uk/?p=252</guid>
		<description><![CDATA[Update: This implementation is now linked from the official Gravatar website! Inspired by a recent project at work, here&#8217;s a complete implementation of the Gravatar image request API, as an ASP.Net MVC 3 / MCV4 HtmlHelper. It includes the help and documentation from the Gravatar API page, and automatically does HTTPS/SSL requests if included on [&#8230;]<p><hr />
<a href="http://www.fatlemon.co.uk/2012/01/gravatar-htmlhelper-for-asp-net-mvc/">Gravatar HtmlHelper for ASP.Net MVC</a> is a post from <a href="http://www.fatlemon.co.uk">Andrew Freemantle's blog</a><br />
Need a cheap domain name registrar? I use and recommend <a href="http://www.namecheap.com/?aff=58966">NameCheap.com</a></p>
]]></description>
				<content:encoded><![CDATA[<p><strong>Update:</strong> This implementation is now linked from <a title="Gravatar.com - Libraries, Plugins, Applications, HOWTOs, etc" href="http://en.gravatar.com/site/implement/images/libraries/">the official Gravatar website!</a></p>
<hr />
<p>Inspired by a recent project at work, here&#8217;s a complete implementation of the <a title="Gravatar - A Globally Recognized Avatar" href="http://www.gravatar.com/">Gravatar</a> <a title="Gravatar image request API documentation" href="http://en.gravatar.com/site/implement/images/">image request API</a>, as an ASP.Net MVC 3 / MCV4 HtmlHelper.</p>
<p>It includes the help and documentation from the Gravatar API page, and automatically does HTTPS/SSL requests if included on a page that is served securely (secure requests can be forced too).</p>
<h4>Getting Started</h4>
<ol>
<li>Head over to the <a title="Gravatar-HelpHelper - GitHub" href="https://github.com/AndrewFreemantle/Gravatar-HtmlHelper">project page on GitHub</a>, and save the single file <span class="inline-code">GravatarHtmlHelper.cs</span> into your project</li>
<li>Start using it with the HtmlHelper sytax, like so:</li>
</ol>
<p></p><pre class="crayon-plain-tag">@Html.GravatarImage(&quot;user.name@email.com&quot;)</pre><p></p>
<p>or</p>
<p></p><pre class="crayon-plain-tag">@Html.GravatarImage(
    &quot;user.name@email.com&quot;,
    32,
    GravatarHtmlHelper.DefaultImage.Identicon,
    false,
    GravatarHtmlHelper.Rating.G)</pre><p></p>
<p>&nbsp;</p>
<p><a href="http://www.fatlemon.co.uk/wp-content/uploads/gravatar-list.png"><img class="alignnone size-full wp-image-266" title="Gravatars" src="http://www.fatlemon.co.uk/wp-content/uploads/gravatar-list.png" alt="gravatar image examples" width="410" height="86" /></a></p>
<p>and that&#8217;s it!  The helper method is progressively overloaded, so you need only supply the minimum parameters to get the Gravatar you&#8217;re after.</p>
<p>&nbsp;</p>
<p>Comments and suggestions are welcome here or on the <a title="Gravatar-HtmlHelper - Issue tracker at GitHub" href="https://github.com/AndrewFreemantle/Gravatar-HtmlHelper/issues">projects issue tracker over at GitHub</a>. I hope you find it useful <img src="http://www.fatlemon.co.uk/wp-includes/images/smilies/icon_smile.gif" alt=":)" /></p>
<p><hr />
<a href="http://www.fatlemon.co.uk/2012/01/gravatar-htmlhelper-for-asp-net-mvc/">Gravatar HtmlHelper for ASP.Net MVC</a> is a post from <a href="http://www.fatlemon.co.uk">Andrew Freemantle's blog</a><br />
Need a cheap domain name registrar? I use and recommend <a href="http://www.namecheap.com/?aff=58966">NameCheap.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fatlemon.co.uk/2012/01/gravatar-htmlhelper-for-asp-net-mvc/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>WTV: Automatic date-based version numbering for .Net with WhenTheVersion</title>
		<link>http://www.fatlemon.co.uk/2011/11/wtv-automatic-date-based-version-numbering-for-net-with-whentheversion/</link>
		<comments>http://www.fatlemon.co.uk/2011/11/wtv-automatic-date-based-version-numbering-for-net-with-whentheversion/#comments</comments>
		<pubDate>Sat, 05 Nov 2011 22:00:12 +0000</pubDate>
		<dc:creator><![CDATA[Andrew Freemantle]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[SubVersion]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[WTV]]></category>

		<guid isPermaLink="false">http://www.fatlemon.co.uk/?p=101</guid>
		<description><![CDATA[There&#8217;s a trend towards using the software build date as part of the software version number, you know the sort of thing I mean: &#8216;2011.11.4.xyz&#8216;, like in the footer over at StackOverflow.com, or MyLetts.com.. Wouldn&#8217;t it be great if we could get Visual Studio to do this for us automatically on build?  I thought so [&#8230;]<p><hr />
<a href="http://www.fatlemon.co.uk/2011/11/wtv-automatic-date-based-version-numbering-for-net-with-whentheversion/">WTV: Automatic date-based version numbering for .Net with WhenTheVersion</a> is a post from <a href="http://www.fatlemon.co.uk">Andrew Freemantle's blog</a><br />
Need a cheap domain name registrar? I use and recommend <a href="http://www.namecheap.com/?aff=58966">NameCheap.com</a></p>
]]></description>
				<content:encoded><![CDATA[<p>There&#8217;s a trend towards using the software build date as part of the software version number, you know the sort of thing I mean: &#8216;<span class="inline-code">2011.11.4.xyz</span>&#8216;, like in the footer over at <a title="StackOverflow.com - Q&amp;A for Programmers" href="http://www.stackoverflow.com">StackOverflow.com</a>, or <a title="MyLetts.com - Lettings management for private landlords" href="http://www.myletts.com">MyLetts.com</a>..</p>
<p><a href="http://www.fatlemon.co.uk/wp-content/uploads/wtv-date-version-example-myletts-com1.png"><img class="alignnone size-full wp-image-214" title="WTV Date-version example: www.MyLetts.com" src="http://www.fatlemon.co.uk/wp-content/uploads/wtv-date-version-example-myletts-com1.png" alt="" width="337" height="113" /></a></p>
<p>Wouldn&#8217;t it be great if we could get Visual Studio to do this for us automatically on build?  I thought so too, so I&#8217;ve written a little app to do it <img src="http://www.fatlemon.co.uk/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
<h4>Getting set up with &#8220;When The Version&#8221;</h4>
<ol>
<li>Go get a copy of &#8220;When The Version&#8221; (<span class="inline-code">WTV.exe</span>) from <a title="When The Version - Download page at GitHub" href="https://github.com/AndrewFreemantle/When-The-Version/downloads">the GitHub download page</a> (or you can <a title="When The Version - Source on GitHub" href="https://github.com/AndrewFreemantle/When-The-Version">build it from the source</a> if you prefer)</li>
<li>Drop it somewhere on your PC</li>
<li>Now, in your Visual Studio project, expand the Properties and duplicate the <span class="inline-code">AssemblyInfo.cs</span> / <span class="inline-code">.vb</span> file &#8211; I rename the duplicate to be <span class="inline-code">AssemblyInfo.Template.cs</span>:</li>
</ol>
<p><a href="http://www.fatlemon.co.uk/wp-content/uploads/wtv-date-version-solution-explorer.png"><img class="size-full wp-image-212 alignnone" title="AssemblyInfo.Template.cs - Solution Explorer" src="http://www.fatlemon.co.uk/wp-content/uploads/wtv-date-version-solution-explorer.png" alt="" width="288" height="148" /></a></p>
<ol start="4">
<li>Edit the <span class="inline-code">AssemblyInfo.Template.cs</span> file, putting in the placeholders for the date parts like so:</li>
</ol>
<p></p><pre class="crayon-plain-tag">// Version information for an assembly consists of the following four values:
//
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Major Version
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Minor Version
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Build Number
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion(&quot;1.0.*&quot;)]
[assembly: AssemblyVersion(&quot;{YYYY}.{MM}.{DD}.0&quot;)]
[assembly: AssemblyFileVersion(&quot;{YYYY}.{MM}.{DD}.0&quot;)]</pre><p></p>
<p>The following values are currently supported:</p>
<ul>
<li><span class="inline-code">{YYYY}</span> &#8211; the year</li>
<li><span class="inline-code">{MM}</span> &#8211; the month</li>
<li><span class="inline-code">{DD}</span> &#8211; the day</li>
<li><span class="inline-code">{SVN}</span> &#8211; SubVersion revision number (more on this a bit later)</li>
</ul>
<p>&nbsp;</p>
<ol start="5">
<li>Now, open up the Project Properties &gt; Build Events, and add the following Pre-build event command line (on a single line):</li>
</ol>
<p></p><pre class="crayon-plain-tag">&quot;C:\Path\To\wtv.exe&quot;
  &quot;$(ProjectDir)Properties\AssemblyInfo.Template.cs&quot;
  &quot;$(ProjectDir)Properties\AssemblyInfo.cs&quot;</pre><p></p>
<p>&nbsp;</p>
<ol start="6">
<li>Finally, set the Build Action for the new <span class="inline-code">AssemblyInfo.Template.cs</span> file to &#8216;None&#8217; and Build!</li>
</ol>
<p>&nbsp;</p>
<p>If you get stuck, pop open a Command Prompt and run <span class="inline-code">WTV.exe</span> without any parameters for usage instructions, or paste your full command line to see any helpful error messages:</p>
<p><a href="http://www.fatlemon.co.uk/wp-content/uploads/wtv-date-version-command-prompt-usage1.png"><img class="alignnone size-full wp-image-223" title="WTV: Command prompt usage" src="http://www.fatlemon.co.uk/wp-content/uploads/wtv-date-version-command-prompt-usage1.png" alt="" width="632" height="342" /></a></p>
<h4>SubVersion support</h4>
<p>If you&#8217;re using SubVersion for your source control, <span class="inline-code">WTV</span> can also put the projects SVN revision number into the application version.</p>
<p><em><strong>There&#8217;s only one caveat</strong></em> &#8211; .Net Application version number values are limited to a maximum of 32,767 (i.e. they&#8217;re Int16&#8217;s / short&#8217;s). Therefore, if your SVN revision is higher <span class="inline-code">WTV</span> will only use the last 4 digits: e.g.: 32768 -&gt; 2768.</p>
<p>To use the SVN revision number, simply add the <span class="inline-code">{SVN}</span> placeholder to your <span class="inline-code">AssemblyInfo.Template.cs</span> file like so:</p>
<p></p><pre class="crayon-plain-tag">[assembly: AssemblyVersion(&quot;{YYYY}.{MM}.{DD}.{SVN}&quot;)]
[assembly: AssemblyFileVersion(&quot;{YYYY}.{MM}.{DD}.{SVN}&quot;)]</pre><p></p>
<p>&nbsp;</p>
<p>.. and then add a couple of extra parameters to the Pre-build event command line so <span class="inline-code">WTV</span> knows where <span class="inline-code">SubWCRev.exe</span> is, something like this (again, on a single line):</p>
<p></p><pre class="crayon-plain-tag">&quot;C:\Path\To\WTV.exe&quot;
  &quot;$(ProjectDir)Properties\AssemblyInfo.Template.cs&quot;
  &quot;$(ProjectDir)Properties\AssemblyInfo.cs&quot;
  &quot;C:\Program Files\TortoiseSVN\bin\SubWCRev.exe&quot;
  &quot;$(SolutionDir).&quot;</pre><p></p>
<p>&nbsp;<br />
And because the <span class="inline-code">AssemblyInfo.cs</span> is generated, you can remove it from source control (but don&#8217;t remove it from your project!).</p>
<p>&nbsp;</p>
<h4>Finally</h4>
<p>Comments and suggestions are welcome here or on the <a title="WhenTheVersion - Issue tracker at GitHub" href="https://github.com/AndrewFreemantle/When-The-Version/issues">projects issue tracker over at GitHub</a>. I hope you find it useful  <img src="http://www.fatlemon.co.uk/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
<p><script src="/wp-content/syntax-highlighter/Scripts/shCore.js"></script> <script src="/wp-content/syntax-highlighter/Scripts/shBrushVb.js"></script></p>
<p><script type="text/javascript">// <![CDATA[
  dp.SyntaxHighlighter.ClipboardSwf = '/wp-content/syntax-highlighter/Scripts/clipboard.swf'; dp.SyntaxHighlighter.HighlightAll('code');
// ]]&gt;</script></p>
<p><hr />
<a href="http://www.fatlemon.co.uk/2011/11/wtv-automatic-date-based-version-numbering-for-net-with-whentheversion/">WTV: Automatic date-based version numbering for .Net with WhenTheVersion</a> is a post from <a href="http://www.fatlemon.co.uk">Andrew Freemantle's blog</a><br />
Need a cheap domain name registrar? I use and recommend <a href="http://www.namecheap.com/?aff=58966">NameCheap.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fatlemon.co.uk/2011/11/wtv-automatic-date-based-version-numbering-for-net-with-whentheversion/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Using SquishIt with Razor &#8211; ASP.Net MVC3 and MVC4</title>
		<link>http://www.fatlemon.co.uk/2011/11/using-squishit-with-razor-asp-net-mvc3-and-mvc4/</link>
		<comments>http://www.fatlemon.co.uk/2011/11/using-squishit-with-razor-asp-net-mvc3-and-mvc4/#comments</comments>
		<pubDate>Sat, 05 Nov 2011 08:00:02 +0000</pubDate>
		<dc:creator><![CDATA[Andrew Freemantle]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ASP.Net-MVC]]></category>
		<category><![CDATA[Razor]]></category>
		<category><![CDATA[SquishIt]]></category>

		<guid isPermaLink="false">http://www.fatlemon.co.uk/?p=194</guid>
		<description><![CDATA[I&#8217;ll assume you already know the reasons why you should minify and combine your CSS and Javascript. My favourite of the tools available for .Net is SquishIt by Justin Etheredge &#8211; here&#8217;s how I hook it up in my ASP.Net MVC4 (and MVC3) Razor projects.. Get the bits, either directly or find it in NuGet [&#8230;]<p><hr />
<a href="http://www.fatlemon.co.uk/2011/11/using-squishit-with-razor-asp-net-mvc3-and-mvc4/">Using SquishIt with Razor &#8211; ASP.Net MVC3 and MVC4</a> is a post from <a href="http://www.fatlemon.co.uk">Andrew Freemantle's blog</a><br />
Need a cheap domain name registrar? I use and recommend <a href="http://www.namecheap.com/?aff=58966">NameCheap.com</a></p>
]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ll assume you already know the <a title="Yahoo! Web developer performance rules - Minify" href="http://developer.yahoo.com/performance/rules.html#minify">reasons why you should minify and combine your CSS and Javascript</a>.</p>
<p>My favourite of the tools available for .Net is <a title="SquishIt - Download from GitHub" href="http://github.com/jetheredge/SquishIt/downloads">SquishIt</a> by <a title="About Justin Etheredge" href="http://www.codethinked.com/about">Justin Etheredge</a> &#8211; here&#8217;s how I hook it up in my ASP.Net MVC4 (and MVC3) Razor projects..</p>
<ol>
<li>Get the bits, either <a title="SquishIt - Download from GitHub" href="http://github.com/jetheredge/SquishIt/downloads">directly</a> or find it in NuGet</li>
<li>Add a Project Reference to the SquishIt.Framework.dll</li>
<li>Add SquishIt to the namespaces section in the Views/Web.config:</li>
</ol>
<p></p><pre class="crayon-plain-tag">&amp;lt;system.web.webPages.razor&amp;gt;
  &amp;lt;pages pageBaseType=&quot;System.Web.Mvc.WebViewPage&quot;&amp;gt;
    &amp;lt;namespaces&amp;gt;
      ..
      &amp;lt;add namespace=&quot;SquishIt.Framework&quot; /&amp;gt;
      ..
    &amp;lt;/namespaces&amp;gt;
  &amp;lt;/pages&amp;gt;
&amp;lt;/system.web.webPages.razor&amp;gt;</pre><p></p>
<ol start="4">
<li>Replace any <span class="inline-code">&lt;link /&gt;</span> and <span class="inline-code">&lt;script /&gt;</span> references with the following*:</li>
</ol>
<p></p><pre class="crayon-plain-tag">&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
  &amp;lt;head&amp;gt;

  ..

  @MvcHtmlString.Create(
    Bundle.Css()
      .Add(&quot;/Content/Styles.css&quot;)
      .Add(&quot;/Content/MoreStyles.css&quot;)
      .Render(&quot;/Cache/Styles-combined.css&quot;))

  @RenderSection(&quot;css&quot;, false)

  @MvcHtmlString.Create(
    Bundle.JavaScript()
      .Add(&quot;/Scripts/SomeScript.js&quot;)
      .Add(&quot;/Scripts/SomeOtherScript.js&quot;)
      .Add(&quot;/Scripts/YetAnotherScript.js&quot;)
      .Render(&quot;/Cache/Scripts-combined.js&quot;))

  @RenderSection(&quot;js&quot;, false)

  ..

&amp;lt;/head&amp;gt;</pre><p><em style="font-size:0.85em;">*I&#8217;m loading the <span class="inline-code">&lt;script /&gt;</span>&#8216;s in the <span class="inline-code">&lt;head /&gt;</span> here for brevity, but there&#8217;s nothing stopping us moving these two JavaScript statements (lines 15 &#038; 22) to the bottom of our page so they&#8217;re just above the closing <span class="inline-code">&lt;/body&gt;</span>, as is generally recommended.</em></p>
<ol start="5">
<li>Finally, as you&#8217;ll have noticed in lines 11 &#038; 20, we&#8217;re generating the squished files to a <span class="inline-code">/Cache</span> directory, so we need to create it and grant the IIS AppPool our site is running under create and modify permissions on it</li>
</ol>
<p>&nbsp;</p>
<p>As I&#8217;m usually working with Layout pages, I&#8217;m sure you&#8217;ll have also noticed the <span class="inline-code">@RenderSection()</span>&#8216;s in the example (lines 13 &#038; 22) &#8211; that let&#8217;s me inject page-specific Squished CSS and/or Javascript as needed like so:</p>
<p></p><pre class="crayon-plain-tag">@section css {
  @MvcHtmlString.Create(
    Bundle.Css()
      .Add(&quot;/Content/PageSpecificStyle.css&quot;)
      .Render(&quot;/Cache/PageSpecificStyle-combined.css&quot;))
}

@section js {
  @MvcHtmlString.Create(
    Bundle.JavaScript()
      .Add(&quot;/Scripts/PageSpecificScript.js&quot;)
      .Add(&quot;/Scripts/AnotherPageSpecificScript.js&quot;)
      .Render(&quot;/Cache/PageSpecificScript-combined.js&quot;))
}</pre><p></p>
<p>&nbsp;</p>
<p>Thank you Justin  <img src="http://www.fatlemon.co.uk/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
<p><hr />
<a href="http://www.fatlemon.co.uk/2011/11/using-squishit-with-razor-asp-net-mvc3-and-mvc4/">Using SquishIt with Razor &#8211; ASP.Net MVC3 and MVC4</a> is a post from <a href="http://www.fatlemon.co.uk">Andrew Freemantle's blog</a><br />
Need a cheap domain name registrar? I use and recommend <a href="http://www.namecheap.com/?aff=58966">NameCheap.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fatlemon.co.uk/2011/11/using-squishit-with-razor-asp-net-mvc3-and-mvc4/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Announcing MyLetts.com &#8211; Online Accounts and Lettings Management for Private Landlords</title>
		<link>http://www.fatlemon.co.uk/2011/05/announcing-myletts-com-online-accounts-and-lettings-management-for-private-landlords/</link>
		<comments>http://www.fatlemon.co.uk/2011/05/announcing-myletts-com-online-accounts-and-lettings-management-for-private-landlords/#comments</comments>
		<pubDate>Wed, 25 May 2011 08:00:42 +0000</pubDate>
		<dc:creator><![CDATA[Andrew Freemantle]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[MyLetts]]></category>

		<guid isPermaLink="false">http://www.fatlemon.co.uk/?p=114</guid>
		<description><![CDATA[&#8220;No man acquires property without acquiring with it a little arithmetic also.&#8221; - Ralph Waldo Emerson (1803 &#8211; 1882) &#160; In 2003 I placed offers on two almost identical semi-detached houses in adjoining estates, at the same time, thinking that if one offer wasn&#8217;t accepted, the other one would be. Both offers were accepted. And [&#8230;]<p><hr />
<a href="http://www.fatlemon.co.uk/2011/05/announcing-myletts-com-online-accounts-and-lettings-management-for-private-landlords/">Announcing MyLetts.com &#8211; Online Accounts and Lettings Management for Private Landlords</a> is a post from <a href="http://www.fatlemon.co.uk">Andrew Freemantle's blog</a><br />
Need a cheap domain name registrar? I use and recommend <a href="http://www.namecheap.com/?aff=58966">NameCheap.com</a></p>
]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-182 post-image" title="To Let and For Sale Billboards" src="http://www.fatlemon.co.uk/wp-content/uploads/to-let-no-shadow.png" alt="" width="263" height="263" /></p>
<blockquote style="padding-top: 60px;"><p><span style="font-family: georgia,bookman old style,palatino linotype,book antiqua,palatino,trebuchet ms,helvetica,garamond,sans-serif,arial,verdana,avante garde,century gothic,comic sans ms,times,times new roman,serif;">&#8220;No man acquires property without acquiring with it a little arithmetic also.&#8221;</span></p>
<p><span style="font-family: georgia,bookman old style,palatino linotype,book antiqua,palatino,trebuchet ms,helvetica,garamond,sans-serif,arial,verdana,avante garde,century gothic,comic sans ms,times,times new roman,serif;">- Ralph Waldo Emerson (</span>1803 &#8211; 1882)</p></blockquote>
<p>&nbsp;</p>
<p>In 2003 I placed offers on two almost identical semi-detached houses in adjoining estates, at the same time, thinking that if one offer wasn&#8217;t accepted, the other one would be.</p>
<p>Both offers were accepted.</p>
<p>And both completed in the same fortnight.</p>
<p>Skip forward a bit to the end of 2004, and, well, if acquiring property also got you a little arithmetic in the 19th century, it gets you <em>a lot of arithmetic in the 21st</em>. It took me two weekends to sort and compile the receipts, mileage and details of mortgage payments into a spreadsheet needed to calculate my Self Assessment Tax Return.</p>
<p>Yes, you read that right.. <strong>4 days to fill in a spreadsheet</strong>.</p>
<p>The arithmetic itself isn&#8217;t complicated, <a title="VisiCalc - the first personal computer spreadsheet application - Wikipedia" href="http://en.wikipedia.org/wiki/Spreadsheet#VisiCalc">and anyway, calculations are what spreadsheet were designed for</a>. No, what took the time was categorising and entering the details of the expenses into the spreadsheet. Even though I knew a few keyboard shortcuts, entering property expense information involved finding the right expense column to enter the cost against, or copying a similar row of income or expense and changing the date. It was laborious and took a lot of checking to make sure I hadn&#8217;t missed or miss-categorised anything.</p>
<p>&nbsp;</p>
<p>I remember thinking that there must be an easier, faster way to compile my property accounts &#8211; there must be a computer application that made the entry of income and expenses really easy, one that could then calculate or summarise the necessary information for my Tax Return. What did other Landlords do? <em>What were they using? <strong>Did they know something I didn&#8217;t?</strong></em></p>
<p><em><strong><br />
</strong></em></p>
<p>So I asked a around at seminars and property auctions: turns out that everyone who rented or renovated a handful of properties also used a spreadsheet to collate their accounts. And <strong>they also found it to be a time-consuming chore</strong>.</p>
<p>&nbsp;</p>
<p><strong>And so, an idea was born.</strong></p>
<p><strong><br />
</strong></p>
<p>The idea that, as a private landlord, <a title="About the author" href="http://www.fatlemon.co.uk/aboutme/">whose passion is creating software</a>, I could make something that would benefit not only me, but also <strong>benefit other small private landlords</strong>, and it&#8217;s an idea that I&#8217;ve been thinking about, refining, and working on ever since.. and now..</p>
<p>&nbsp;</p>
<p style="font-size: 1.6em;">it is my great pleasure to announce <a title="MyLetts.com - Online Accounts and Lettings Management for Private Landlords" href="http://www.myletts.com/">MyLetts.com</a> &#8211;<br />
Online Accounts and Lettings Management for Private Landlords</p>
<p><a href="http://www.myletts.com/"></a><img class="alignleft size-full wp-image-185 post-image" title="MyLetts.com - Online Accounts and Lettings Management  for Private Landlords" src="http://www.fatlemon.co.uk/wp-content/uploads/myletts-screenshot-oct-2011-no-shadow.png" alt="" width="577" height="291" /></p>
<p><strong>Software for Landlords, built by Landlords.</strong></p>
<p>&nbsp;</p>
<p style="font-size: 1.3em; padding-top: 20px;"><strong>So what does it do?</strong></p>
<ul>
<li><strong>It takes the pain and time away from compiling your year-end self-assessment tax return.</strong></li>
</ul>
<p><em>Yep, it really does</em> &#8211; I&#8217;ve been using it for the last two years, and what had previously taken me between 3 and 4 days each year, <strong>now takes a single afternoon</strong> &#8211; the first year I used it: tax year-ending 2009  &#8211; <strong>I filed my Property accounts in the second week of April, instead of November</strong>.</p>
<p>Much to the surprise (and delight, I might add), of my accountant.</p>
<p>But you don&#8217;t <em>need</em> an accountant &#8211; the beauty of <a title="MyLetts.com - Online Accounts and Lettings Management for Private Landlords" href="http://www.myletts.com/">MyLetts</a> is that it summarises the income and expenditure into a spreadsheet for you, a spreadsheet that mirrors the SA105 UK Property Tax Return form. Complete with box reference numbers. <em>It&#8217;s genius</em> (even if I do say so myself).</p>
<p>If you do have an accountant and you don&#8217;t know what an SA105 form looks like, don&#8217;t worry &#8211; just hand them the spreadsheet <a title="MyLetts.com - Online Accounts and Lettings Management for Private Landlords" href="http://www.myletts.com/">MyLetts</a> generates for you, sit back, and expect their fee&#8217;s to be cheaper as they&#8217;ll have less work to do for you.</p>
<p>&nbsp;</p>
<ul>
<li> <strong>Shows you how each Property is doing financially, and summarises your portfolio.</strong></li>
</ul>
<p>I&#8217;ve worked on accounting software professionally for the last 7 years, so I understand numbers, but I&#8217;m a visual person &#8211; I love graphs and pictures, so <a title="MyLetts.com - Online Accounts and Lettings Management for Private Landlords" href="http://www.myletts.com">MyLetts</a> shows you each income and expense visually. At a glance you can see which properties are profitable, which years are better than others &#8211; even see a trend.</p>
<p>I have more insight into my property business because of <a title="MyLetts.com - Online Accounts and Lettings Management for Private Landlords" href="http://www.myletts.com/">MyLetts</a>. <strong>I know how my properties are doing at any given moment, rather than just once a year</strong>, after I&#8217;ve compiled my Tax Return.</p>
<p><strong>It&#8217;s like having always up-do-date Profit and Loss statement for your lettings at your finger-tips.</strong></p>
<p>&nbsp;</p>
<p style="font-size: 1.3em; padding-top: 20px;"><strong>So what&#8217;s planned?</strong></p>
<p><a title="MyLetts.com - Online Accounts and Lettings Management for Private Landlords" href="http://www.myletts.com/">MyLetts</a> will always be about making it as easy as possible for you to compile your Property Rental Tax Return.</p>
<p>As a busy Landlord, there are other things I could do with some help on, so I&#8217;ll be constantly adding to <a title="MyLetts.com - Online Accounts and Lettings Management for Private Landlords" href="http://www.myletts.com/">MyLetts</a> to make it the best possible Property Management software for private UK landlords.</p>
<p>Here are a few things I&#8217;ve thought of so far:</p>
<ul>
<li><strong>Reminders for Gas Safety and Electrical Safety checks</strong><br />
&#8211; Including details of who you used last time, and how much they charged</li>
<li><strong>Tenant Management</strong><br />
&#8211; Start and End dates, with automatic totalling of repairs incurred during their tenancy, so you can decide if you need to withhold any bond or deposit monies<br />
&#8211; This will also gives you actual void rates (per property, and in total) so you can better plan for the future</li>
<li><strong>Interest Rate &#8216;what if&#8217;s&#8217;?</strong><br />
&#8211; Play about with Mortgage Interest Rates, and see how changes affect your property income</li>
<li><strong>Custom Income and Expense Types</strong><br />
&#8211; Don&#8217;t like the 4 categories from the tax man, or the 13 included by default in <a title="MyLetts.com - Online Accounts and Lettings Management for Private Landlords" href="http://www.myletts.com/">MyLetts</a>?  Create your own, then..</li>
<li><strong>Income and Expense reporting</strong><br />
&#8211; Graph or Pie chart your income and expenditure by type &#8211; e.g. &#8220;How much did I spend on repairs this year?&#8221;</li>
</ul>
<p>&nbsp;</p>
<p>And that&#8217;s just a few things on my list &#8211; if you&#8217;ve got an idea, <strong>I&#8217;d love to hear it</strong> &#8211; there is always something to learn from how other Landlords manage their business, properties and tenants. Please sign up (it&#8217;s free for the first month) and get in touch.</p>
<p>&nbsp;</p>
<p><a title="MyLetts.com - Online Accounts and Lettings Management for Private Landlords" href="http://www.myletts.com/">Sign up now, and make your Landlord life easier</a></p>
<p><hr />
<a href="http://www.fatlemon.co.uk/2011/05/announcing-myletts-com-online-accounts-and-lettings-management-for-private-landlords/">Announcing MyLetts.com &#8211; Online Accounts and Lettings Management for Private Landlords</a> is a post from <a href="http://www.fatlemon.co.uk">Andrew Freemantle's blog</a><br />
Need a cheap domain name registrar? I use and recommend <a href="http://www.namecheap.com/?aff=58966">NameCheap.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fatlemon.co.uk/2011/05/announcing-myletts-com-online-accounts-and-lettings-management-for-private-landlords/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Securing ASP.Net Web Services with Forms Authentication</title>
		<link>http://www.fatlemon.co.uk/2010/04/securing-asp-net-web-services-with-forms-authentication/</link>
		<comments>http://www.fatlemon.co.uk/2010/04/securing-asp-net-web-services-with-forms-authentication/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 07:00:33 +0000</pubDate>
		<dc:creator><![CDATA[Andrew Freemantle]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Web Services]]></category>

		<guid isPermaLink="false">http://www.fatlemon.co.uk/?p=44</guid>
		<description><![CDATA[My first article for Dot Net Slackers on Securing ASP.Net Web Services with Forms Authentication is up! Have a read and let me know what you think &#8211; any feedback about the content, the writing style, the amount of code, or anything else (!) is greatly appreciated  Securing ASP.Net Web Services with Forms Authentication is [&#8230;]<p><hr />
<a href="http://www.fatlemon.co.uk/2010/04/securing-asp-net-web-services-with-forms-authentication/">Securing ASP.Net Web Services with Forms Authentication</a> is a post from <a href="http://www.fatlemon.co.uk">Andrew Freemantle's blog</a><br />
Need a cheap domain name registrar? I use and recommend <a href="http://www.namecheap.com/?aff=58966">NameCheap.com</a></p>
]]></description>
				<content:encoded><![CDATA[<p>My first article for <a title="Securing ASP.Net Web Services with Forms Authentication" href="http://dotnetslackers.com/articles/aspnet/Securing-ASP-Net-Web-Services-with-Forms-Authentication.aspx" target="_blank">Dot Net Slackers on Securing ASP.Net Web Services with Forms Authentication</a> is up!</p>
<p>Have a read and let me know what you think &#8211; any feedback about the content, the writing style, the amount of code, or anything else (!) is greatly appreciated  <img src="http://www.fatlemon.co.uk/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
<p><hr />
<a href="http://www.fatlemon.co.uk/2010/04/securing-asp-net-web-services-with-forms-authentication/">Securing ASP.Net Web Services with Forms Authentication</a> is a post from <a href="http://www.fatlemon.co.uk">Andrew Freemantle's blog</a><br />
Need a cheap domain name registrar? I use and recommend <a href="http://www.namecheap.com/?aff=58966">NameCheap.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fatlemon.co.uk/2010/04/securing-asp-net-web-services-with-forms-authentication/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>SSD, Visual Studio and improving developer productivity</title>
		<link>http://www.fatlemon.co.uk/2010/02/ssd-visual-studio-and-improving-developer-productivity/</link>
		<comments>http://www.fatlemon.co.uk/2010/02/ssd-visual-studio-and-improving-developer-productivity/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 16:00:28 +0000</pubDate>
		<dc:creator><![CDATA[Andrew Freemantle]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[SSD]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.fatlemon.co.uk/?p=49</guid>
		<description><![CDATA[After reading lots of reviews, articles and watching a few youtube videos comparing Solid State Drives to Hard Disk Drives, I was unsure that&#8217;d see a beneficial improvement in my day-to-day developer tools of Visual Studio, such as building and spinning up desktop and web applications. I was unsure because there is a consensus of [&#8230;]<p><hr />
<a href="http://www.fatlemon.co.uk/2010/02/ssd-visual-studio-and-improving-developer-productivity/">SSD, Visual Studio and improving developer productivity</a> is a post from <a href="http://www.fatlemon.co.uk">Andrew Freemantle's blog</a><br />
Need a cheap domain name registrar? I use and recommend <a href="http://www.namecheap.com/?aff=58966">NameCheap.com</a></p>
]]></description>
				<content:encoded><![CDATA[<p>After <a title="Windows SSD Performance - www.tomshardware.com" href="http://www.tomshardware.com/reviews/windows-ssd-performance,2518.html">reading</a> <a title="Why cheap SSD sucks for Visual Studio - www.exdream.com" href="http://www.exdream.com/Blog/post/2009/02/25/Why-cheap-SSD-sucks-for-Visual-Studio.aspx" target="_blank">lots</a> <a title="Corsair X64 SSD Customer Reviews - www.overclockers.co.uk" href="http://www.overclockers.co.uk/showproduct.php?prodid=HD-004-CS&amp;tool=3&amp;groupid=1657&amp;catid=1660&amp;subcat=1668" target="_blank">of</a> <a title="Corsair P128 SSD Customer Reviews - www.eBuyer.com" href="http://www.ebuyer.com/product/167203/show_product_reviews" target="_blank">reviews</a>, <a title="SSD and Programming question - www.stackoverflow.com" href="http://stackoverflow.com/questions/499889/ssd-and-programming" target="_blank">articles</a> and watching a <a title="SSD vs 7200rpm HDD - www.youtube.com" href="http://www.youtube.com/watch?v=Dt6VbOY3xE0" target="_blank">few</a> <a title="MacBook HDD vs SSD boot time - www.youtube.com" href="http://www.youtube.com/watch?v=LCBfsfzHPeY" target="_blank">youtube</a> <a title="HDD vs SSD, Windows Vista tests - www.youtube.com" href="http://www.youtube.com/watch?v=Pf_QS3mZsyU" target="_blank">videos</a> comparing Solid State Drives to Hard Disk Drives, I was unsure that&#8217;d see a beneficial improvement in my day-to-day developer tools of Visual Studio, such as building and spinning up desktop and web applications.<strong> </strong></p>
<p>I was unsure because there is a <a title="SSD Disadvantages - www.wikipedia.org" href="http://en.wikipedia.org/wiki/Solid-state_drive#Disadvantages" target="_blank">consensus of small writes to SSDs aren&#8217;t as breathtaking</a> as the reads and writes of larger files:</p>
<blockquote><p>SATA-based SSDs generally exhibit much slower write speeds. As erase  blocks on flash-based SSDs generally are quite large (e.g. 0.5 &#8211; 1  megabyte), they are far slower than conventional disks during small writes (<em>write  amplification</em> effect) and can suffer from write fragmentation.</p>
<p>&#8211; Wikipedia</p></blockquote>
<p>But these things are fast at everything else, and while mulling over the idea of upgrading for a few months, I started to notice my usage patterns of switching between lots of different supporting applications. <strong>Given that&#8217;d I&#8217;d get improvements elsewhere if not in Visual Studio, I decided to try it out for myself.</strong></p>
<p>The SSD I chose is the Corsair CMFSSD-64D1, otherwise known as the <a title="Corsair Extreme Series X64 - www.amazon.co.uk" href="http://www.amazon.co.uk/gp/product/B002HQ2JXG?ie=UTF8&amp;tag=fatl-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=B002HQ2JXG" target="_blank">Corsair Extreme Series X64</a>:</p>
<p><img class="alignnone size-medium wp-image-57" title="Corsair Extreme X64 Solid State Disk" src="http://www.fatlemon.co.uk/wp-content/uploads/corsair-x64-300x267.png" alt="" width="300" height="267" /></p>
<p>Here are the timings I took with the original Samsung 80GB 7,200rpm drive, and the timings from the <a title="Corsair Extreme Series X64 - www.amazon.co.uk" href="http://www.amazon.co.uk/gp/product/B002HQ2JXG?ie=UTF8&amp;tag=fatl-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=B002HQ2JXG" target="_blank">Corsair Extreme X64</a>:<br />
(all timings are in seconds, so lower numbers are better)</p>
<table class="hdd-vs-ssd">
<thead>
<tr>
<td></td>
<td>boot</p>
<div class="table-subheading">from cold to login prompt</div>
</td>
<td>logging in</p>
<div class="table-subheading">pressing enter to ready*</div>
</td>
<td>starting outlook</p>
<div class="table-subheading">to &#8216;All folders up to date&#8217;</div>
</td>
<td>loading VS2008</p>
<div class="table-subheading">to news feed loads</div>
</td>
<td>loading solution</p>
<div class="table-subheading">8 project web solution</div>
</td>
<td>rebuild solution</p>
<div class="table-subheading">until build status says &#8216;build complete&#8217;</div>
</td>
</tr>
</thead>
<tbody>
<tr class="hdd">
<td>Samsung HDD</td>
<td>42.3</td>
<td>190.8</td>
<td>14.7</td>
<td>25.2</td>
<td>72.0</td>
<td>79.0</td>
</tr>
<tr class="ssd">
<td>Corsair X64 SSD</td>
<td>32.6</td>
<td>75.8</td>
<td>5.5</td>
<td>7.9</td>
<td>19.1</td>
<td>52.5</td>
</tr>
</tbody>
<tfoot>
<tr>
<td></td>
<td>22.8%</td>
<td>60.3%</td>
<td>63.0%</td>
<td>68.4%</td>
<td>73.5%</td>
<td>33.5%</td>
</tr>
</tfoot>
</table>
<h2>Conclusion</h2>
<p><strong>Overall, the SSD performs 53.6% faster &#8211; that means my machine is twice as responsive as it was.<br />
</strong></p>
<p>However, the most important savings to me are loading, and building solutions &#8211; I&#8217;ve only been running the SSD for a couple of days, but already I have shaken the reflexive pause I felt before closing or restarting Visual Studio, or opening up different solutions.</p>
<p>Granted, building or compiling decent sized projects in Visual Studio on an SSD is not as impressively fast as spinning up applications (Outlook, Paint.Net or Dreamweaver for example), or the improvement in general system responsiveness.</p>
<p>I now get 3 complete builds for 2..  <strong>put simply, it&#8217;s almost fast enough to remove the build waiting tax</strong>. It&#8217;s fast enough that <a title="&quot;long compile time leads to distraction&quot; - answer on www.stackoverflow.com" href="http://stackoverflow.com/questions/499889/ssd-and-programming/499959#499959" target="_blank">I don&#8217;t lose my train of thought and context switch to something else</a> &#8211; which makes me more productive.</p>
<h2>Method</h2>
<p>Timings were taken manually with a stop-watch, and averaged over 3 data points on different days.</p>
<p>* The Windows logging in timings include a start-up anti-virus scan.</p>
<p>System Specification and software versions:</p>
<ul>
<li>Intel Pentium 4 HT, 3.0 GHz</li>
<li>3 GB RAM</li>
<li>Windows XP 32bit (HDD timings), Windows 7 32bit (SSD timings)**</li>
<li>Outlook 2007</li>
<li>Visual Studio 2008 Team System Developer Edition</li>
<li>The 8 project web solution is the <a title="Invoice Management Software - Scan Notify Approve and Pay (SNAP) - www.snapsystems.co.uk" href="http://www.snapsystems.co.uk/" target="_blank">fantastic invoice management software called SNAP</a>, written in C# .Net 3.5</li>
</ul>
<p>** yes, I&#8217;d have loved to have done an apples-to-apples comparison by copying the exact same Windows XP installation over to the SSD, and I was all set to do so, except the Samsung HDD had a series of faults around the ~36GB mark that resulted in an XP installation that would only boot into Safe Mode.</p>
<p>I had taken the timings the week before I found this out, and with a clean SSD it seemed crazy not to take the opportunity to upgrade to Windows 7.  I suspect that had I stayed on Windows XP, the speed improvements would have been more impressive.</p>
<p>Fortuitously, the Corsair SSD arrived the same morning that the Samsung HDD exhibited the fault. (I know what you&#8217;re thinking, and no, it definitely wasn&#8217;t sabotage.. the SSD was on order for 2 weeks prior, and wasn&#8217;t due to arrive for another 3 days)</p>
<p>The Solid State Drive upgrade is a definite improvement, and I don&#8217;t think I&#8217;ll be buying Hard Disk Drives any more  <img src="http://www.fatlemon.co.uk/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
<p><hr />
<a href="http://www.fatlemon.co.uk/2010/02/ssd-visual-studio-and-improving-developer-productivity/">SSD, Visual Studio and improving developer productivity</a> is a post from <a href="http://www.fatlemon.co.uk">Andrew Freemantle's blog</a><br />
Need a cheap domain name registrar? I use and recommend <a href="http://www.namecheap.com/?aff=58966">NameCheap.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fatlemon.co.uk/2010/02/ssd-visual-studio-and-improving-developer-productivity/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Increasing Processes, Sessions and Transactions in Oracle XE</title>
		<link>http://www.fatlemon.co.uk/2009/06/increasing-processes-sessions-and-transactions-in-oracle-xe/</link>
		<comments>http://www.fatlemon.co.uk/2009/06/increasing-processes-sessions-and-transactions-in-oracle-xe/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 20:00:29 +0000</pubDate>
		<dc:creator><![CDATA[Andrew Freemantle]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Oracle XE]]></category>

		<guid isPermaLink="false">http://www.fatlemon.co.uk/?p=29</guid>
		<description><![CDATA[Disclaimer: following my technical advice has been known to scratch cars, void lottery tickets and confuse guide dogs &#8211; proceed at your own risk.. Out of the box, Oracle Datatbase 10g Express Edition RDBMS is fast and powerful. The stated limitations of 2GB of maximum RAM usage and 2GB of total datafile management are plentiful [&#8230;]<p><hr />
<a href="http://www.fatlemon.co.uk/2009/06/increasing-processes-sessions-and-transactions-in-oracle-xe/">Increasing Processes, Sessions and Transactions in Oracle XE</a> is a post from <a href="http://www.fatlemon.co.uk">Andrew Freemantle's blog</a><br />
Need a cheap domain name registrar? I use and recommend <a href="http://www.namecheap.com/?aff=58966">NameCheap.com</a></p>
]]></description>
				<content:encoded><![CDATA[<div class="post-body-disclaimer">Disclaimer: following my technical advice has been known to scratch cars, void lottery tickets and confuse guide dogs &#8211; proceed at your own risk..</div>
<p><img class="alignnone size-full wp-image-126 post-image" title="Oracle Express Edition (XE)" src="http://www.fatlemon.co.uk/wp-content/uploads/oraclexe.png" alt="Oracle Express Edition (XE)" width="252" height="194" /></p>
<p>Out of the box, Oracle Datatbase 10g Express Edition <abbr title="Relational Database Management System">RDBMS</abbr> is fast and powerful. The stated limitations of 2GB of maximum RAM usage and 2GB of total datafile management are plentiful for it to easily run as the back-end for a small to medium-sized office application. However, we soon hit a connection limit as characterised by the following Oracle Errors:</p>
<p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; font-size: 12px; line-height: 18px; white-space: pre;">ORA-12516: TNS:listener could not find available handler with matching protocol stack<br />
ORA-00020: maximum number of processes (%s) exceeded</span><br />
<img class="alignnone size-full wp-image-127 post-image" title="ORA-00020: maximum number of processes (%s) exceeded" src="http://www.fatlemon.co.uk/wp-content/uploads/ora-00020.png" alt="ORA-00020: maximum number of processes (%s) exceeded" width="677" height="342" /></p>
<p>We can get this second message because Oracle creates Operating System processes to handle Connections (or Sessions) &#8211; which means Processes, Sessions (and as we&#8217;ll soon see..) Transactions are all related.</p>
<p>The default values in Oracle XE for these parameters are:</p>
<ul>
<li>Processes =40</li>
<li>Sessions = 49</li>
<li>Transactions = 53</li>
</ul>
<p>I was able to generate the above error message (ORA-00020) from about ~30 connections on a vanilla Oracle XE installation (on Windows 7).</p>
<p>So, let&#8217;s increase these limits to allow more connections to our Oracle Server..</p>
<h3>1. Log in as SYSDBA</h3>
<p>From the menu &#8216;Oracle Database 10g Express Edition&#8217;, find and select &#8216;Run SQL Command Line&#8217;, then type:</p><pre class="crayon-plain-tag">connect sys as sysdba</pre><p>&nbsp;</p>
<p>and enter your SYS, or SYSTEM password at the prompt</p>
<p><img class="alignnone size-full wp-image-124 post-image" title="Oracle XE - Connected as SYSDBA, showing default values for processes, sessions and transactions" src="http://www.fatlemon.co.uk/wp-content/uploads/oraclexe-default-processes-sessions-transactions.png" alt="oraclexe-default-processes-sessions-transactions" width="677" height="414" /></p>
<h3>2. ALTER SYSTEM commands</h3>
<p><em><strong>Update:</strong> The Oracle XE 10g documentation links were broken, so they now point to the Oracle 11g R2 Standard Edition documentation instead &#8211; note that the default values are greater in 11g R2 Standard than the Express Edition (XE).</em></p>
<p>The Oracle Documentation states that <a title="TRANSACTIONS - Oracle 11g Documentation" href="http://docs.oracle.com/cd/E11882_01/server.112/e25513/initparams258.htm#REFRN10222">TRANSACTIONS</a> is derived from <a title="SESSIONS - Oracle 11g Documentation" href="http://docs.oracle.com/cd/E11882_01/server.112/e25513/initparams230.htm#REFRN10197">SESSIONS</a>, which in turn is derived from <a title="PROCESSES - Oracle 11g Documentation" href="http://docs.oracle.com/cd/E11882_01/server.112/e25513/initparams198.htm#REFRN10175">PROCESSES</a>, thus:</p>
<p>PROCESSES = 40 to Operating System Dependant</p>
<p>SESSIONS = (1.1 * PROCESSES) + 5</p>
<p>TRANSACTIONS = 1.1 * SESSIONS</p>
<p>So, what to start with for PROCESSES?  Trebling it is as good a start as any, then I&#8217;d add a few more for good measure..  Here are the values I recommend:</p>
<ul>
<li>PROCESSES = 150</li>
<li>SESSIONS = 300</li>
<li>TRANSACTIONS = 330</li>
</ul>
<p>type the following commands:</p>
<p>&nbsp;</p><pre class="crayon-plain-tag">alter system set processes = 150 scope = spfile;

alter system set sessions = 300 scope = spfile;

alter system set transactions = 330 scope = spfile;</pre><p>&nbsp;</p>
<p>then to make the settings take effect, we need to bounce the database..</p><pre class="crayon-plain-tag">shutdown immediate;

startup;</pre><p>&nbsp;</p>
<p><img class="alignnone size-full wp-image-123 post-image" title="OracleXE - alter system commands and restarting the database" src="http://www.fatlemon.co.uk/wp-content/uploads/oraclexe-alter-system-commands.png" alt="oraclexe-alter-system-commands" width="677" height="414" /></p>
<h3>3. Verify the new parameters</h3>
<p>with this simple select statement..</p><pre class="crayon-plain-tag">select name, value
from v$parameter
where name in ('processes', 'sessions', 'transactions');</pre><p>&nbsp;</p>
<p><img class="alignnone size-full wp-image-125 post-image" title="OracleXE - showing updated processes, sessions and transactions" src="http://www.fatlemon.co.uk/wp-content/uploads/oraclexe-updated-processes-sessions-transactions.png" alt="oraclexe-updated-processes-sessions-transactions" width="677" height="318" /></p>
<p>And we&#8217;re done &#8211; a free, light and powerful Oracle RDBMS that&#8217;s able to serve more connections</p>
<p><hr />
<a href="http://www.fatlemon.co.uk/2009/06/increasing-processes-sessions-and-transactions-in-oracle-xe/">Increasing Processes, Sessions and Transactions in Oracle XE</a> is a post from <a href="http://www.fatlemon.co.uk">Andrew Freemantle's blog</a><br />
Need a cheap domain name registrar? I use and recommend <a href="http://www.namecheap.com/?aff=58966">NameCheap.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fatlemon.co.uk/2009/06/increasing-processes-sessions-and-transactions-in-oracle-xe/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
	</channel>
</rss>
