<?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>Luke Bennett</title>
	
	<link>http://blog.lukebennett.com</link>
	<description>No such word as can't!</description>
	<lastBuildDate>Tue, 07 Aug 2012 22:12:10 +0000</lastBuildDate>
	<language>en-US</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/lukebennett" /><feedburner:info uri="lukebennett" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Disabling a previously specified max-width</title>
		<link>http://feedproxy.google.com/~r/lukebennett/~3/4rcj9rhV6mk/</link>
		<comments>http://blog.lukebennett.com/2012/08/07/disabling-a-previously-specified-max-width/#comments</comments>
		<pubDate>Tue, 07 Aug 2012 16:50:58 +0000</pubDate>
		<dc:creator>Luke Bennett</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://blog.lukebennett.com/?p=211</guid>
		<description><![CDATA[I just did something stupid with my CSS but it had me scratching my head for a while. If you have a max-width set and need to disable it in a cascaded style, you need to set it to none rather than auto i.e.: This sounds obvious (and it is really), but because you usually [...]]]></description>
				<content:encoded><![CDATA[<p>I just did something stupid with my CSS but it had me scratching my head for a while.</p>
<p>If you have a max-width set and need to disable it in a cascaded style, you need to set it to <strong>none</strong> rather than <strong>auto</strong> i.e.:</p>
<pre class="brush: plain; title: ; notranslate">
img {
    max-width:100%;
}

#some-other-selector img {
    max-width:none;
}
</pre>
<p>This sounds obvious (and it is really), but because you usually use width:auto to override a previously specified width, I found myself inadvertantly doing the same with max-width and it took a while to realise what I&#8217;d done.</p>
<img src="http://feeds.feedburner.com/~r/lukebennett/~4/4rcj9rhV6mk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lukebennett.com/2012/08/07/disabling-a-previously-specified-max-width/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.lukebennett.com/2012/08/07/disabling-a-previously-specified-max-width/</feedburner:origLink></item>
		<item>
		<title>TeamCity 7 upgrade “failed to install tomcat service”</title>
		<link>http://feedproxy.google.com/~r/lukebennett/~3/s_ZaUhKyRBE/</link>
		<comments>http://blog.lukebennett.com/2012/07/23/teamcity-7-upgrade-failed-to-install-tomcat-service/#comments</comments>
		<pubDate>Mon, 23 Jul 2012 16:00:21 +0000</pubDate>
		<dc:creator>Luke Bennett</dc:creator>
				<category><![CDATA[Fixes]]></category>
		<category><![CDATA[teamcity]]></category>

		<guid isPermaLink="false">http://blog.lukebennett.com/?p=204</guid>
		<description><![CDATA[I was just (somewhat belatedly) upgrading to TeamCity 7.0 from 6.5 on a Windows Server 2008 box when I got an error. I&#8217;ve upgraded numerous times in the past without any problem, but this time I got the message &#8220;failed to install tomcat service&#8220;. I was advised to check my permissions and settings and either [...]]]></description>
				<content:encoded><![CDATA[<p>I was just (somewhat belatedly) upgrading to TeamCity 7.0 from 6.5 on a Windows Server 2008 box when I got an error. I&#8217;ve upgraded numerous times in the past without any problem, but this time I got the message &#8220;<strong>failed to install tomcat service</strong>&#8220;. I was advised to check my permissions and settings and either abort, retry or ignore, with the latter being deemed inadvisable.</p>
<p>Googling didn&#8217;t turn up much, but after digging around I discovered that the &#8220;TeamCity Web Server&#8221; service was in a &#8220;Disabled&#8221; state. Attempts to do anything with it gave me the message &#8220;This service is marked for deletion.&#8221;</p>
<p>With the help of <a title=".net - How to force uninstallation of windows service" href="http://stackoverflow.com/a/1638044/17602">this StackOverflow answer</a>, I quickly figured out that I&#8217;d started the upgrade process with Windows&#8217; Services viewer open. For whatever reason, this kept a hook into the outgoing TeamCity service which couldn&#8217;t be fully uninstalled as a result.</p>
<p>The solution was simple &#8211; close the Services window and retry. The installation completed without any further issue.</p>
<p>Whilst this is a bit of an edge case, the fact that the TeamCity error message didn&#8217;t directly reference the &#8220;TeamCity Web Server&#8221; service didn&#8217;t help. A clearer message would have sped up the diagnosis.</p>
<img src="http://feeds.feedburner.com/~r/lukebennett/~4/s_ZaUhKyRBE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lukebennett.com/2012/07/23/teamcity-7-upgrade-failed-to-install-tomcat-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.lukebennett.com/2012/07/23/teamcity-7-upgrade-failed-to-install-tomcat-service/</feedburner:origLink></item>
		<item>
		<title>Useful links for getting started with web development</title>
		<link>http://feedproxy.google.com/~r/lukebennett/~3/OXb3KiWg-Dw/</link>
		<comments>http://blog.lukebennett.com/2012/02/05/useful-links-for-getting-started-with-web-development/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 09:06:16 +0000</pubDate>
		<dc:creator>Luke Bennett</dc:creator>
				<category><![CDATA[Careers]]></category>

		<guid isPermaLink="false">http://blog.lukebennett.com/?p=189</guid>
		<description><![CDATA[Every couple of years I go back to my old school to participate in a careers convention, where people from a range of industries get together to dish out tips and advice to pupils trying to make career choices. A great cause, especially with uni now being a more challenging prospect here in the UK [...]]]></description>
				<content:encoded><![CDATA[<p>Every couple of years I go back to my <a title="Bablake School" href="http://www.bablake.com">old school</a> to participate in a careers convention, where people from a range of industries get together to dish out tips and advice to pupils trying to make career choices. A great cause, especially with uni now being a more challenging prospect here in the UK due to the huge hike in tuition fees. Youngsters really need all the help they can get to make sure they pick the path that&#8217;s right for them.</p>
<p>I promised those I spoke to this year that I would post a list of links on my blog as a follow-up to find out more about web development. I should stress that this list is by no means exhaustive; I put it together quite quickly and there&#8217;s plenty more I could have included. For example, whilst I&#8217;ve tried to include links relating to a range of technologies, inevitably there&#8217;s more about the areas I have more experience with. Hopefully though it can still provide plenty of reading material and food for thought to help in evaluating whether web development is a subject worth investigating further as a potential career or perhaps just as a hobby.</p>
<p>I&#8217;ll try to update the list from time to time when I think of more (suggestions also welcome via the comments). I&#8217;m also hoping to follow this blog post up with some further thoughts on choosing web development as a career.</p>
<p>Without further ado, here are the links:</p>
<p><strong>Programming Languages / Frameworks</strong></p>
<ul>
<li>HTML5/CSS/JavaScript – Open technologies at the heart of the web &#8211; learn these first!</li>
<li><a title="Node.js" href="http://nodejs.org/">Node.js</a> – Increasingly popular serverside JavaScript platform</li>
<li><a title="Ruby" href="http://ruby-lang.org/">Ruby</a> – Widely used</li>
<li><a title="Ruby on Rails" href="http://rubyonrails.org/">Ruby on Rails</a> – One of the most popular web frameworks, built on Ruby</li>
<li><a title="Python" href="http://python.org/">Python</a> – A good starter language, often taught on uni courses etc.</li>
<li><a title="PHP" href="http://php.net/">PHP</a> – Been around a long time and still widely used, though not considered too cutting edge these days</li>
<li><a title="ASP.NET" href="http://microsoft.com/web/">ASP.NET</a> – Microsoft’s web platform, used a lot in the enterprise (see also <a href="http://asp.net/">http://asp.net/</a> and <a href="http://msdn.com/">http://msdn.com/</a>)</li>
<li><a title="Java" href="http://java.oracle.com/">Java</a> – Mostly found in the enterprise, not a good choice if you want to keep ahead of the curve!</li>
</ul>
<p><strong>Online video/interactive training</strong></p>
<ul>
<li><a title="Treehouse" href="http://teamtreehouse.com/">Treehouse</a> – Web design &amp; development<strong></strong></li>
<li><a title="Codecademy" href="http://codecademy.com/">Codecademy</a> – JavaScript courses (other subjects on the way)</li>
<li><a title="CodeYear" href="http://codeyear.com/">CodeYear</a> – Learn to program in a year (part of Codecademy)</li>
<li><a title="TekPub" href="http://tekpub.com/">TekPub</a> – Screencasts on a range of topics, some of which are free</li>
<li><a title="PluralSight" href="http://pluralsight.com/">PluralSight</a> – Large library of videos for a range of technologies (though with a bit of a Microsoft focus), not free but reasonably priced</li>
<li><a title="appendTo" href="http://learn.appendto.com/">appendTo</a> – jQuery/JavaScript training</li>
<li><a title="NodeTuts" href="http://nodetuts.com/">NodeTuts</a> &#8211; Node.js screencasts</li>
<li><a title="RailsCasts" href="http://railscasts.com/">RailsCasts</a> &#8211; Ruby on Rails screencasts</li>
</ul>
<p><strong>(e)Books</strong></p>
<p>Look out for deals of the day from most of these &#8211; they tend to have an ebook or two available each day for around £7-£10 (see my <a title="@developerluke - ebooks" href="http://twitter.com/developerluke/ebooks/">Twitter list</a> covering many of the ebook publishers).</p>
<ul>
<li><a title="O'Reilly" href="http://oreilly.com/">O&#8217;Reilly</a> – My favourite, some great <a title="JavaScript Development and Resources" href="http://oreilly.com/javascript/index.html">JavaScript books</a> such as Douglas Crockford&#8217;s &#8220;<a title="JavaScript: The Good Parts" href="http://shop.oreilly.com/product/9780596517748.do">Javascript: The Good Parts</a>&#8220;</li>
<li><a title="Manning Publications" href="http://manning.com/">Manning Publications</a></li>
<li><a title="The Pragmatic Bookshelf" href="http://pragprog.com">The Pragmatic Bookshelf</a></li>
<li><a title="Apress" href="http://apress.com/">Apress</a></li>
<li><a title="InformIT" href="http://informit.com/">InformIT</a></li>
</ul>
<p><strong>Resources</strong></p>
<ul>
<li><a title="Move the web forward" href="http://movethewebforward.org/">Move the Web Forward</a> – One stop shop for keeping abreast of web standards and getting involved in the community</li>
<li><a title="jQuery" href="http://jquery.org/">jQuery</a> – Most popular JavaScript framework for rapid web development</li>
<li><a title="Twitter Bootstrap" href="http://twitter.github.com/bootstrap/">Twitter Bootstrap</a> – UI framework that makes it really easy to get a good UI up and running very quickly</li>
<li><a title="Google Reader" href="http://reader.google.com/">Google Reader</a> – RSS aggregator – subscribe to blogs and news sites and have all articles brought together in one place to save having to check each site manually</li>
<li><a title="TweetDeck" href="http://tweetdeck.com/">TweetDeck</a> – Useful Twitter client for monitoring topics and lists of accounts to help breakdown the wealth of information that flows through Twitter</li>
</ul>
<p><strong>Databases</strong></p>
<ul>
<li><a title="MySQL" href="http://mysql.com/">MySQL</a> – Most popular open source relational database server (free)</li>
<li><a title="PostgreSQL" href="http://postgresql.org">PostgreSQL</a> – Another popular open source relational database</li>
<li><a title="SQL Server" href="http://microsoft.com/sqlserver/">SQL Server</a> – Microsoft’s SQL database, common in the enterprise (free cutdown editions available &#8211; Express and Compact Edition)</li>
<li><a title="MongoDB" href="http://mongodb.org/">MongoDB</a> – Popular open source &#8220;NoSQL&#8221; database (free) – an alternative approach to &#8220;traditional&#8221; databases (has pros and cons)</li>
<li><a title="CouchDB" href="http://couchdb.org">CouchDB</a> – Another popular NoSQL database</li>
</ul>
<p><strong>News</strong></p>
<ul>
<li><a title="Hacker News" href="http://news.ycombinator.org/">Hacker News</a> – Anything and everything of interest to a techie</li>
<li><a title="Reddit /r/Programming" href="http://reddit.com/r/Programming/">Reddit Programming</a> – As above – see <a href="http://reddit.com/r/LearnProgramming/">http://reddit.com/r/LearnProgramming/</a> and other related sections also</li>
<li><a title="DailyJS" href="http://dailyjs.org/">DailyJS</a> – JavaScript/Node.js news</li>
<li><a title="Ruby Inside" href="http://rubyinside.com/">Ruby Inside</a> – Ruby news and tutorials</li>
<li><a title="General tech news" href="http://techmeme.com/">Techmeme</a> – General tech news, usually one of the first places you&#8217;ll find the big stories<strong></strong></li>
<li><a title="Twitter" href="http://twitter.com">Twitter</a> – One of the best ways of keeping on top of everything – many blogs tend to post on their Twitter feeds when new articles are posted, plus there&#8217;s an endless stream of useful links being shared</li>
</ul>
<p><strong>Help</strong></p>
<ul>
<li><a title="StackOverflow" href="http://stackoverflow.com/">StackOverflow</a> – Q&amp;A site for developers with specific problems, usually related to specific source code</li>
<li><a title="Programmers" href="http://programmers.stackexchange.com/">Programmers</a> – Q&amp;A site for programmers with higher-level conceptual problems</li>
</ul>
<p><strong>Mailing Lists</strong></p>
<ul>
<li><a title="JavaScript Weekly" href="http://javascriptweekly.com/">JavaScript Weekly</a></li>
<li><a title="HTML5 Weekly" href="http://html5weekly.com/">HTML5 Weekly</a></li>
<li><a title="Ruby Weekly" href="http://rubyweekly.com/">Ruby Weekly</a></li>
</ul>
<p><strong>Podcasts</strong></p>
<ul>
<li><a title="Herding Code" href="http://herdingcode.com/">Herding Code</a> – Weekly podcast on a range of topics</li>
<li><a title="Boagworld" href="http://boagworld.com/podcast/">Boagworld</a> – Longest running web design podcast</li>
<li><a title="The Changelog" href="http://changelogshow.com/">The Changelog</a> – Weekly podcast on the world of Open Source</li>
<li><a title=".NET Rocks!" href="http://dotnetrocks.com/">.NET Rocks!</a> – .NET</li>
<li><a title="Hanselminutes" href="http://hanselminutes.com/">Hanselminutes</a> – .NET/Windows focus</li>
<li><a title="NodeUp" href="http://nodeup.com/">NodeUp</a> – Node.js</li>
<li><a title="5by5" href="http://5by5.tv">5by5</a> – A number of podcasts on a range of topics</li>
</ul>
<p><strong>Web Hosts</strong></p>
<ul>
<li><a title="Heroku" href="http://heroku.com/">Heroku</a> – For Ruby, Node.js, Python, Java and more (requires understanding of source control &#8211; see below)</li>
<li><a title="AppHarbor" href="http://appharbor.com/">AppHarbor</a> – For .NET (requires understanding of source control &#8211; see below)</li>
<li><a title="WebHostingTalk" href="http://webhostingtalk.com/">WebHostingTalk</a> – Great forums to help find/discuss any type of web host</li>
</ul>
<p><strong>Jobs</strong></p>
<ul>
<li><a title="StackOverflow Careers" href="http://careers.stackoverflow.com/">StackOverflow Careers</a></li>
<li><a title="CoderStack" href="http://coderstack.co.uk/">CoderStack</a></li>
<li><a title="CW Jobs" href="http://cwjobs.co.uk/">CW Jobs</a></li>
</ul>
<p><strong>Source Code / Version Control</strong></p>
<ul>
<li><a title="Git" href="http://git-scm.com/">Git</a> – One of the most popular version control systems out there</li>
<li><a title="Mercurial" href="http://mercurial.selenic.com/">Mercurial</a> – Similar to Git, slightly easier learning curve</li>
<li><a title="Github" href="http://github.com/">Github</a> – The most popular source code host, based on Git</li>
<li><a title="Bitbucket" href="http://bitbucket.org/">BitBucket</a> – Supports Git and Mercurial</li>
</ul>
<img src="http://feeds.feedburner.com/~r/lukebennett/~4/OXb3KiWg-Dw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lukebennett.com/2012/02/05/useful-links-for-getting-started-with-web-development/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://blog.lukebennett.com/2012/02/05/useful-links-for-getting-started-with-web-development/</feedburner:origLink></item>
		<item>
		<title>Handling the proprietary CSS filter attribute in dotless</title>
		<link>http://feedproxy.google.com/~r/lukebennett/~3/o01uTKXh-cs/</link>
		<comments>http://blog.lukebennett.com/2012/01/31/handling-the-proprietary-css-filter-attribute-in-dotless/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 23:38:06 +0000</pubDate>
		<dc:creator>Luke Bennett</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[less]]></category>

		<guid isPermaLink="false">http://blog.lukebennett.com/?p=185</guid>
		<description><![CDATA[I&#8217;m a big fan of the LESS CSS library &#8211; a fantastic way of simplifying the process of writing CSS by offering a number of basic programming capabilities such as variables, functions and mixins. There are a number of implementations available for different platforms, and the purpose of this blog post is to highlight a [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m a big fan of the <a title="LESS - the dynamic stylesheet language" href="http://lesscss.org/">LESS CSS library</a> &#8211; a fantastic way of simplifying the process of writing CSS by offering a number of basic programming capabilities such as variables, functions and mixins.</p>
<p>There are a number of implementations available for different platforms, and the purpose of this blog post is to highlight a feature in <a title=".Less - dynamic CSS for .NET" href="http://dotlesscss.org/">dotless</a> &#8211; the .NET implementation &#8211; which I&#8217;ve had to call on occasionally but often forget about in the interim, so I&#8217;m hoping this will stop me from forgetting <img src='http://blog.lukebennett.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>From time to time (when needs absolutely must) it&#8217;s necessary to use the proprietary <code>filter</code> attribute to accommodate IE (much better if you can use something like <a title="PIE - progressive internet explorer" href="http://css3pie.com">CSS3 PIE</a> but like I say, sometimes needs must). For example:</p>
<pre class="brush: plain; title: ; notranslate">
.some-class {
    filter: progid:DXImageTransform.Microsoft.Shadow(Strength=15, Direction=0, Color='#000');
}
</pre>
<p>However, because of the abnormal syntax this involves, it causes parsing issues with dotless. I&#8217;ve read about a number of ways of working around this, but the only one I&#8217;ve found to be properly reliable (e.g. including the ability to use variables within the filter) is the use of dotless&#8217; <code>formatString</code> function (which appears to be undocumented).</p>
<p>This has a similar signature to <a title="String.Format Method" href="http://msdn.microsoft.com/en-us/library/system.string.format.aspx">String.Format</a> i.e. it takes as its first argument a string containing placeholders where values need inserting ({0}, {1} etc) followed by an argument for each value to be substituted. So using the above example, your CSS would look something like this:</p>
<pre class="brush: plain; title: ; notranslate">
.some-class {
    filter: formatString(&quot;progid:DXImageTransform.Microsoft.Shadow(Strength={0}, Direction={1}, Color={2})&quot;, @strength, @direction, @color);
}
</pre>
<p>Or perhaps more usefully, making use of a mixin:</p>
<pre class="brush: plain; title: ; notranslate">
.some-class(@strength = 15, @direction = 0, @color = '#000') {
    filter: formatString(&quot;progid:DXImageTransform.Microsoft.Shadow(Strength={0}, Direction={1}, Color={2})&quot;, @strength, @direction, @color);
}
</pre>
<p>Obviously <code>formatString</code> can be used for much more than this particular scenario, it&#8217;s usefulness isn&#8217;t restricted to working around annoying proprietary CSS attributes that really are way past their sell by date&#8230;</p>
<img src="http://feeds.feedburner.com/~r/lukebennett/~4/o01uTKXh-cs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lukebennett.com/2012/01/31/handling-the-proprietary-css-filter-attribute-in-dotless/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.lukebennett.com/2012/01/31/handling-the-proprietary-css-filter-attribute-in-dotless/</feedburner:origLink></item>
		<item>
		<title>TeamCity unable to load changes from Git due to an existing remote</title>
		<link>http://feedproxy.google.com/~r/lukebennett/~3/uW3JiADRgFc/</link>
		<comments>http://blog.lukebennett.com/2011/08/03/teamcity-unable-to-load-changes-from-git-due-to-an-existing-remot/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 09:31:53 +0000</pubDate>
		<dc:creator>Luke Bennett</dc:creator>
				<category><![CDATA[Fixes]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[teamcity]]></category>

		<guid isPermaLink="false">http://blog.lukebennett.com/?p=179</guid>
		<description><![CDATA[I&#8217;ve recently been doing a lot of work in TeamCity, including switching over from SVN to Git (more to come on that in future blog posts). I&#8217;ve just had to deal with an odd issue which was entirely my fault but took a bit of head-scratching to figure out. I got the following exception (where [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve recently been doing a lot of work in TeamCity, including switching over from SVN to Git (more to come on that in future blog posts). I&#8217;ve just had to deal with an odd issue which was entirely my fault but took a bit of head-scratching to figure out.</p>
<p>I got the following exception (where &lt;URL_TO_GIT_REPOSITORY&gt; is a placeholder I&#8217;ve substituted for the original URL):</p>
<blockquote><p>jetbrains.buildServer.VCS &#8211; Error while loading changes for root &lt;URL_TO_GIT_REPOSITORY&gt; #master {instance id=43, parent id=3}, cause: &#8216;git fetch&#8217; command failed.<br />
stderr: The repository at directory &#8216;D:\Development\Infrastructure\.BuildServer\system\caches\git\git-4D05D25B.git&#8217; cannot be opened or created, reason: The specified directory D:\Development\Infrastructure\.BuildServer\system\caches\git\git-4D05D25B.git is already used for another remote &lt;URL_TO_GIT_REPOSITORY&gt; and cannot be used for others (&lt;URL_TO_GIT_REPOSITORY&gt; ). Please specify the other directory explicitly.</p></blockquote>
<p>What this essentially seems to be saying is that it can&#8217;t checkout changes from my remote Git repository because its local repository is currently tracking a different remote repository&#8230; which just happens to have the same URL! This didn&#8217;t make any sense &#8211; why was it thinking there were two different URLs here when they were clearly the same?</p>
<p>Well the eagle-eyed amongst you may spot that there is actually a subtle difference between the two reported URLs &#8211; the one in brackets has a trailing space after it. Turns out that I was setting the VCS root URL via a build parameter and had accidentally left the trailing space in there for one of my build configurations, giving me two different values in theory, even though to a human eye they looked the same. Clearly TeamCity doesn&#8217;t trim whitespace from VCS root URLs, otherwise it would have normalised them and treated them as one and the same.</p>
<p>Needless to say, removing the trailing space prompted everything to spring back into life.</p>
<img src="http://feeds.feedburner.com/~r/lukebennett/~4/uW3JiADRgFc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lukebennett.com/2011/08/03/teamcity-unable-to-load-changes-from-git-due-to-an-existing-remot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.lukebennett.com/2011/08/03/teamcity-unable-to-load-changes-from-git-due-to-an-existing-remot/</feedburner:origLink></item>
		<item>
		<title>IO.FileNotFound_FileName exception when selecting a file in Silverlight</title>
		<link>http://feedproxy.google.com/~r/lukebennett/~3/oOsNGbs-4TA/</link>
		<comments>http://blog.lukebennett.com/2011/07/28/io-filenotfound_filename-exception-when-selecting-a-file-in-silverlight/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 16:09:02 +0000</pubDate>
		<dc:creator>Luke Bennett</dc:creator>
				<category><![CDATA[Fixes]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[silverlight]]></category>

		<guid isPermaLink="false">http://blog.lukebennett.com/?p=175</guid>
		<description><![CDATA[I don&#8217;t know how much this will help people &#8211; there&#8217;s only 7 results on Google for &#8220;IO.FileNotFound_FileName&#8221; at the time of writing so it&#8217;s clearly not a common problem &#8211; but one of our Mac users just reported an issue with selecting a file via a custom Silverlight control. They do this process day [...]]]></description>
				<content:encoded><![CDATA[<p>I don&#8217;t know how much this will help people &#8211; there&#8217;s only 7 results on Google for &#8220;IO.FileNotFound_FileName&#8221; at the time of writing so it&#8217;s clearly not a common problem &#8211; but one of our Mac users just reported an issue with selecting a file via a custom Silverlight control. They do this process day in, day out, but suddenly started getting the following error message:</p>
<div id="attachment_176" class="wp-caption aligncenter" style="width: 432px"><img class="size-full wp-image-176" title="Silverlight IO.FileNotFound_FileName exception" src="http://blog.lukebennett.com/files/2011/07/silverlight-filenotfound-exception.png" alt="Silverlight IO.FileNotFound_FileName exception" width="422" height="246" /><p class="wp-caption-text">Silverlight IO.FileNotFound_FileName exception</p></div>
<p>I couldn&#8217;t find any evidence of people getting this problem before, the <a title="xception Message Details" href="http://go.microsoft.com/fwlink/?LinkId=106663&amp;Version=4.0.51204.0&amp;File=mscorlib.dll&amp;Key=IO.FileNotFound_FileName">MS page</a> it pointed me to was typically useless. The only suggestion I came across was that it might relate to diskspace having run out, but neither the Mac nor the external fileserver this file was being loaded from were low on space so that ruled that one out.</p>
<p>From a process of trial and error I managed to track the problem down to the folder these files were stored in which, whilst it appeared perfectly normal when viewed on a Mac, when accessed via Windows showed up as gobbledygook. Creating a new folder and copying all the contents over did the trick &#8211; the file could be selected and uploaded as before.</p>
<p>Clearly something went very screwy deep down in the OSX filesystem with that folder, though I have absolutely no idea what it might have been. Maybe I missed something really obvious (I have no experience with Macs to call on), but hopefully by bumping the number of Google results up to 8 I might one day save somebody a bit of time <img src='http://blog.lukebennett.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/lukebennett/~4/oOsNGbs-4TA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lukebennett.com/2011/07/28/io-filenotfound_filename-exception-when-selecting-a-file-in-silverlight/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.lukebennett.com/2011/07/28/io-filenotfound_filename-exception-when-selecting-a-file-in-silverlight/</feedburner:origLink></item>
		<item>
		<title>Installing RVM on Ubuntu 11.04</title>
		<link>http://feedproxy.google.com/~r/lukebennett/~3/73mRurTxh-8/</link>
		<comments>http://blog.lukebennett.com/2011/07/27/installing-rvm-on-ubuntu-11-04/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 07:35:45 +0000</pubDate>
		<dc:creator>Luke Bennett</dc:creator>
				<category><![CDATA[Fixes]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[rvm]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.lukebennett.com/?p=159</guid>
		<description><![CDATA[I&#8217;ve been trying to install RVM on Ubuntu 11.04 and what, according to the installation instructions, should have been a fairly straightforward process turned out to be pretty frustrating. I&#8217;m no Linux expert, I&#8217;m still picking a lot up, but I couldn&#8217;t see any reason why, after each install attempt, I got the following error [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been trying to install <a title="Ruby Version Manager (RVM)" href="https://rvm.beginrescueend.com/">RVM</a> on Ubuntu 11.04 and what, according to the <a title="Installing RVM" href="https://rvm.beginrescueend.com/rvm/install/">installation instructions</a>, should have been a fairly straightforward process turned out to be pretty frustrating. I&#8217;m no Linux expert, I&#8217;m still picking a lot up, but I couldn&#8217;t see any reason why, after each install attempt, I got the following error when attempting to run &#8216;rvm&#8217;:</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">No command 'rvm' found</pre>
<p>I&#8217;d installed RVM as a single user using the following command:</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">bash &lt; &lt;( curl https://rvm.beginrescueend.com/releases/rvm-install-head )</pre>
<p>The next step involves adding a line to your .bash_profile file (which in the case of Ubuntu is .profile, although the actual change needs to be made in .bashrc):</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">[[ -s &quot;$HOME/.rvm/scripts/rvm&quot; ]] &amp;&amp; . &quot;$HOME/.rvm/scripts/rvm&quot; # Load RVM function</pre>
<p>One thing I was warned about during installation was the presence of a return statement in the above file, which I was instructed to refactor into an if statement (I&#8217;m assuming this is standard on Ubuntu as my installation is fairly clean):</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">WARNING: you have a 'return' statement in your .bashrc, likely this will cause untold havoc.
This means that if you see '[ -z &quot;$PS1&quot; ] &amp;&amp; return' then you must change this line to:
if [[ -n &quot;$PS1&quot; ]] ; then
... original content that was below the &amp;&amp; return line ...
fi # &lt;= be sure to close the if.
#EOF .bashrc
Even if you use zsh you should still adjust the .bashrc as above.</pre>
<p>I duly made this additional change but eventually discovered I&#8217;d made a key mistake; the closing &#8216;fi&#8217; statement needs to come <strong>before</strong> the new RVM line, not after it. Maybe this is a no-brainer to most people, and I know it does refer to the <strong>original</strong> content in the above instructions, but as somebody without a great deal of Linux experience, it wasn&#8217;t particularly clear to me which way round these lines should be, and the matter was further compounded by guidance I found on blog posts and forums that had the RVM line inside the if statement.</p>
<p>So if you&#8217;re having issues getting RVM to run, double check .bashrc and see if you&#8217;ve made the same mistake I did. Don&#8217;t forget to reload your profile after making any changes:</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">source .profile</pre>
<img src="http://feeds.feedburner.com/~r/lukebennett/~4/73mRurTxh-8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lukebennett.com/2011/07/27/installing-rvm-on-ubuntu-11-04/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.lukebennett.com/2011/07/27/installing-rvm-on-ubuntu-11-04/</feedburner:origLink></item>
		<item>
		<title>Git “broken pipe” error when pushing to a repository</title>
		<link>http://feedproxy.google.com/~r/lukebennett/~3/0tyS5y6k4SE/</link>
		<comments>http://blog.lukebennett.com/2011/07/25/git-broken-pipe-error-when-pushing-to-a-repository/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 16:05:06 +0000</pubDate>
		<dc:creator>Luke Bennett</dc:creator>
				<category><![CDATA[Fixes]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://blog.lukebennett.com/?p=149</guid>
		<description><![CDATA[This is one that&#8217;s caught me out on more than one occasion now, hopefully by blogging it I won&#8217;t forget about it again quite so soon&#8230; When attempting to push to a git repository over HTTP, you may experience a &#8220;broken pipe&#8221; error along the lines of the following: This error occurs when the amount [...]]]></description>
				<content:encoded><![CDATA[<p>This is one that&#8217;s caught me out on more than one occasion now, hopefully by blogging it I won&#8217;t forget about it again quite so soon&#8230;</p>
<p>When attempting to push to a git repository over HTTP, you may experience a &#8220;broken pipe&#8221; error along the lines of the following:</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">Counting objects: 14466, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3746/3746), done.
error: RPC failed; result=22, HTTP code = 400
fatal: The remote end hung up unexpectedly
Writing objects: 100% (14466/14466), 104.13 MiB | 31.34 MiB/s, done.
Total 14466 (delta 10927), reused 13812 (delta 10474)
fatal: The remote end hung up unexpectedly
fatal: expected ok/error, helper said '2004�Ȍ/↓/Ɠyb��Nj}↑z��&quot;#7‼.m���+x9`&gt;��☼�uhh_������м5���§��z���W?�^&amp;��͙mQM��a`Q�C���Z'

fatal: write error: Broken pipe</pre>
<p>This error occurs when the amount of data you&#8217;re trying to push in one go exceeds git&#8217;s http post buffer which is defined in <a title="git-config(1) Manual Page" href="http://kernel.org/pub/software/scm/git/docs/git-config.html">the docs</a> as:</p>
<blockquote><p>Maximum size in bytes of the buffer used by smart HTTP         transports when POSTing data to the remote system.         For requests larger than this buffer size, HTTP/1.1 and         Transfer-Encoding: chunked is used to avoid creating a         massive pack file locally.  Default is 1 MiB, which is         sufficient for most requests.</p></blockquote>
<p>Whilst most day to day pushes are likely to be under 1MB, if you&#8217;re pushing a large repository over HTTP for the first time, there&#8217;s a good chance you&#8217;ll exceed this limit, resulting in the above error.</p>
<p>Increasing the buffer is a simple config change to set the new size in bytes (a value which will obviously need to exceed the size of the push that&#8217;s erroring):</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">git config http.postBuffer 209715200</pre>
<p>One more thing &#8211; even after increasing git&#8217;s buffer I was still getting fatal errors. If you also host the destination repository, you  need to make sure the server it&#8217;s running on doesn&#8217;t have a limit to the size of POST requests it will accept &#8211; a configuration change may be required to that as well. After I bumped up my max request length, everything worked as expected.</p>
<img src="http://feeds.feedburner.com/~r/lukebennett/~4/0tyS5y6k4SE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lukebennett.com/2011/07/25/git-broken-pipe-error-when-pushing-to-a-repository/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		<feedburner:origLink>http://blog.lukebennett.com/2011/07/25/git-broken-pipe-error-when-pushing-to-a-repository/</feedburner:origLink></item>
		<item>
		<title>“Access denied” error when installing Orchard modules</title>
		<link>http://feedproxy.google.com/~r/lukebennett/~3/cb6wnTSJWsE/</link>
		<comments>http://blog.lukebennett.com/2011/07/22/access-denied-error-when-installing-orchard-modules/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 14:32:49 +0000</pubDate>
		<dc:creator>Luke Bennett</dc:creator>
				<category><![CDATA[Fixes]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[orchard]]></category>

		<guid isPermaLink="false">http://blog.lukebennett.com/?p=141</guid>
		<description><![CDATA[I&#8217;ve recently started properly battling playing with Orchard and came across a gotcha which may simply have been down to a misunderstanding on my part, but I didn&#8217;t find much info when searching for it so figured I&#8217;d blog about it myself. Having set up an initial instance, I switched on the multi-tenancy module so [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve recently started properly <del>battling</del> playing with <a title="The Orchard Project" href="http://www.orchardproject.net">Orchard</a> and came across a gotcha which may simply have been down to a misunderstanding on my part, but I didn&#8217;t find much info when searching for it so figured I&#8217;d blog about it myself.</p>
<p>Having set up an initial instance, I switched on the multi-tenancy module so as to install a second instance alongside the first one rather than deploying another copy of Orchard in its entirety. When attempting to install some additional modules within the second instance, I ran into trouble &#8211; every time I clicked the &#8220;Install&#8221; link for a module in the gallery, or the &#8220;Install a module from your computer&#8221; link within the &#8220;Installed&#8221; tab of the Modules section, I got an &#8220;Access denied&#8221; error.</p>
<p>I started checking permissions in various places &#8211; my Orchard user account, filesystem ACEs, IIS configuration etc. In the end I had to dive into the code to see what conditions were in use.</p>
<p>Turns out that the problem lay with the fact I was using multi-tenancy &#8211; module installation (and possibly themes too though I haven&#8217;t checked) is only possible from the default instance, not the other tenants. I&#8217;m assuming this is because all tenants share the same modules and themes, and only the default instance is allowed to control them to prevent anarchy breaking out amongst the different tenants. My solution was simple &#8211; install the module via the default instance and then go back to the second one where it immediately showed up for me to enable.</p>
<p>Whilst I can see some logic to the business rule here, and maybe it&#8217;s spelled out clearly somewhere I missed, I think it could be handled better &#8211; there either ought to be a delegation feature within the multi-tenancy module that grants tenants the right to install modules, or a clearer error message when access is denied that makes it immediately obvious what the problem is. At the very least the UI for installing a module ought to be hidden when logged in as a tenant to avoid confusion.</p>
<p>Note the above all applies to Orchard 1.2 &#8211; if you&#8217;re reading this blog post some time down the line, be aware that it may not apply any more.</p>
<img src="http://feeds.feedburner.com/~r/lukebennett/~4/cb6wnTSJWsE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lukebennett.com/2011/07/22/access-denied-error-when-installing-orchard-modules/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.lukebennett.com/2011/07/22/access-denied-error-when-installing-orchard-modules/</feedburner:origLink></item>
		<item>
		<title>.app pre-registration now open!</title>
		<link>http://feedproxy.google.com/~r/lukebennett/~3/g01K1c7h_i8/</link>
		<comments>http://blog.lukebennett.com/2011/07/13/app-pre-registration-now-open/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 20:51:44 +0000</pubDate>
		<dc:creator>Luke Bennett</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[dotApp]]></category>
		<category><![CDATA[mobile]]></category>

		<guid isPermaLink="false">http://blog.lukebennett.com/?p=134</guid>
		<description><![CDATA[I previously blogged about the .app project. As of today they are now open for pre-registration of .app domains, with the caveat that as the rights to the gTLD haven&#8217;t actually been secured yet, there is no guarantee the registrations will ever actually go through. However, rather than simply getting you to pre-register and then [...]]]></description>
				<content:encoded><![CDATA[<p>I previously blogged about the .<a title="There's a .app for that" href="http://blog.lukebennett.com/2011/07/08/theres-a-app-for-that/">app project</a>. As of today they are now open for pre-registration of .app domains, with the caveat that as the rights to the gTLD haven&#8217;t actually been secured yet, there is no guarantee the registrations will ever actually go through.</p>
<p>However, rather than simply getting you to pre-register and then sit tight and wait with crossed fingers, they&#8217;ve taken quite an innovative approach. Having registered the .app.cc domain, any domain that&#8217;s pre-registered automatically comes with a YOURNAME.app.cc subdomain redirect to the URL of your choice. This will continue to work even if the ICANN bid fails.</p>
<p>Multiple people can pre-register the same domain name but only the first person will get the redirect for that name.</p>
<p>Head over to the <a title="Pre-register domains" href="https://dotappapp.com/PreRegister.aspx">pre-registration page</a> now and stake a claim to your app name!</p>
<img src="http://feeds.feedburner.com/~r/lukebennett/~4/g01K1c7h_i8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.lukebennett.com/2011/07/13/app-pre-registration-now-open/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.lukebennett.com/2011/07/13/app-pre-registration-now-open/</feedburner:origLink></item>
	</channel>
</rss>
