<?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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Deldy's Blog</title>
    <link>http://deldy.dk</link>
    <description>Jesper Blad Jensens aka. Deldy's Blog</description>
    <language>en-gb</language>
    <pubDate>Thu, 09 Feb 2012 16:36:08 GMT</pubDate>
    <lastBuildDate>Sat, 11 Feb 2012 00:13:55 GMT</lastBuildDate>
    <generator>IronBeagle</generator>
    <webMaster>deldy@deldysoft.dk</webMaster>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Deldy" /><feedburner:info uri="deldy" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <title>How to be a phony designer - as a developer</title>
      <link>http://feedproxy.google.com/~r/Deldy/~3/qkPl1IXLIbM/phony-designer</link>
      <description><![CDATA[<p><img src="https://s3-eu-west-1.amazonaws.com/deldy.dk/posts/phony-designer/gfx.png" style="float:left; margin-right: 10px; margin-bottom: 10px;" alt="Random graphic. Source: http://www.sxc.hu/photo/1228840/" /></p>

<p>Then you are developing sites and systems by yourself, then most of the time don’t have a good designer at hand. Some of us, just say f*ck it, and make some ugly site, and fools our self into thinking that people will use our stuff, it the core or idea is good enough.</p>

<p>Newsflash: No one uses ugly sites, so get into the habit of thinking a good design as a must have.</p>

<p>So how does a developer start to be a “phony/fake designer”? In this post I will outline some of the things, that I find that helps me design stuff that is “okay”:</p>

<ol>
<li><p>Fonts <em>does</em> matter. If you are using Arial or Verdana for all of your fonts, you are missing out of a cheap way to make stuff look good. Take a look at <a href="http://www.google.com/webfonts">Google Fonts</a> and start thinking about your font usage. Using a custom font for a headline and such, can make stuff dramatically more interesting.</p></li>
<li><p>Think about readability. Can people easily read the stuff on your screen? Most of the time developers tend to use a too small font size. I don’t have any hard rules here, but try to think about that people that is using your site, may use a smaller screen than you. And think about contrast, as they may be in powersave mode, or have a very dark screen.</p></li>
<li><p>Find good icons. You can find alot of good ones using <a href="http://iconfinder.com">IconFinder.com</a></p></li>
<li><p>Use images, to make stuff more interesting. A quick google image search, and make a boring site a little more attractive.</p></li>
<li><p><em>Steal steal steal</em>. This is the most important point. You need inspiration. Look at sites you use. Search for sites with good design on google. Look at their CSS, look at the page structure. Are you creating a blog? Then look at other blogs! Also, get into the habit of bookmarking cool websites, as you browse the way in your day-to-day surfing.  </p></li>
</ol>

<p>What helps you, when you need to design a website, as a developer?</p>
]]></description>
      <pubDate>Thu, 09 Feb 2012 16:36:08 GMT</pubDate>
      <guid isPermaLink="false">http://deldy.dk/post/phony-designer</guid>
    <feedburner:origLink>http://deldy.dk/post/phony-designer</feedburner:origLink></item>
    <item>
      <title>Enabling DirectWrite on Sublime Text 2</title>
      <link>http://feedproxy.google.com/~r/Deldy/~3/cfz26GtP1qQ/sublime-text-directwrite</link>
      <description><![CDATA[<p><em>To followup on my post about <a href="http://deldy.dk/post/windows-font-rendering">Browsers on Windows and font rendering</a>, I just quickly want to share one little DirectWrite tip with you</em></p>

<p>This neat little trick enables DirectWrite in Sublime Text 2 on Windows, and makes the font rendering way better</p>
]]></description>
      <pubDate>Tue, 07 Feb 2012 21:28:15 GMT</pubDate>
      <guid isPermaLink="false">http://deldy.dk/post/sublime-text-directwrite</guid>
    <feedburner:origLink>http://deldy.dk/post/sublime-text-directwrite</feedburner:origLink></item>
    <item>
      <title>Browsers on Windows and font rendering</title>
      <link>http://feedproxy.google.com/~r/Deldy/~3/e1Hswh8fhlQ/windows-font-rendering</link>
      <description><![CDATA[<p>With the introduction of IE9, Microsoft introduced a new font rendering engine called DirectWrite. It makes fonts awesome looking.</p>
]]></description>
      <pubDate>Tue, 07 Feb 2012 21:14:55 GMT</pubDate>
      <guid isPermaLink="false">http://deldy.dk/post/windows-font-rendering</guid>
    <feedburner:origLink>http://deldy.dk/post/windows-font-rendering</feedburner:origLink></item>
    <item>
      <title>Twitter Bootstrap hits 2.0</title>
      <link>http://feedproxy.google.com/~r/Deldy/~3/iLUmeKxhP5U/twitter-bootstrap-2</link>
      <description><![CDATA[<p><img src="https://s3-eu-west-1.amazonaws.com/deldy.dk/posts/twitter-bootstrap/Twitter+Bootstrap.png" alt="Screenshot of Twitter Bootstrap" /></p>

<p><strong>Twitter Bootstrap hits 2.0 - adding cleaner HTML and responsive design.</strong></p>
]]></description>
      <pubDate>Tue, 07 Feb 2012 20:55:15 GMT</pubDate>
      <guid isPermaLink="false">http://deldy.dk/post/twitter-bootstrap-2</guid>
    <feedburner:origLink>http://deldy.dk/post/twitter-bootstrap-2</feedburner:origLink></item>
    <item>
      <title>Geekhub.dk - en liste over events i det danske udvikler community</title>
      <link>http://feedproxy.google.com/~r/Deldy/~3/Z75vUtZ7tDc/geekhub</link>
      <description><![CDATA[<p>Der findes en masse tilbud til udviklere i Danmark. Vi kan komme på en masse forskellige kurser og konferencer som koster lige fra en bondegård til ingen ting.</p>

<p>Som en af folkene bag Odense .NET User Group, bliver jeg tit spurgt om hvad der sker rundt omkring, og om der er noget man skal deltage i, eller et møde/event omkring et fedt emne i en af brugergrupperne. Endtil nu må jeg indrømme at jeg ikke engang selv har haft det store overblik over hvilke møder eller arrangementer som sker rundt omkring i Danmark. Så svaret har fra mig tit været, at den pågældende person kunne gå ind på de forskellige brugergrupper, og se hvad de tilbyder.
Men problemet med dette er, at mange f.eks. ikke har en RSS-Reader, eller at folk bare ikke har tilmeldt sig de forskellige RSS feeds, da de meget sjældent er intereseret i alle møder, som den pågældende gruppe/virksomhed tilbyder, men engang imellem kommer der emner, som man gerne vil rejse langt for at høre.
Derfor skal de huske at gå ind på en masse hjemmesider, for at danne sig deres overblik.</p>

<p>Så selvom det rent teknisk er enkelt at vide alt hvad der sker i det danske udvikler community, så kræver det en masse research og at man finder sig i en masse støj iform af ting som ikke interesere en.</p>

<p>Geekhub.dk er begyndelsen på løsningen på dette lille problem. Ideen er ganske simpel: Vi lister simpelthen alle events rundt om i Danmark, som er interesante for udviklere. </p>

<p>Vi ved jo alle at lave sådan en hjemmeside ikke er den store bedrift, og er stort set bare noget CRUD oven på en enkelt database tabel. (Det tog mig nok en eftermiddag at lave den, og den har udgangspunkt i en Scaffold i et Ruby on Rails projekt.)</p>

<p>Men det store arbejde i sådan en hjemmeside, er at sørge for at det er det bedste sted at gå hen, for at få et overblik over hvilke events der kommer. Dette kræver lidt manuelt arbejde, og består i sin enkelthed i, at jeg abonnonere på en masse RSS-feeds, og piller de events ud som kommer der.
Udover dette kan alle foreslå et event, hvis det mangler på listen. Det har f.eks. <a href="http://trifork.dk">Trifork</a> benyttet sig af, da deres geek-nights manglede på listen.</p>

<p>Geekhub.dk er på ingen måde færdig, og jeg sidder og arbejder på den i min fritid. Derfor er der en del skarpe hjørner, men igen, så er det vigtigste den data som siden repræsentere. </p>

<p>Så tjek den ud, på <a href="http://geekhub.dk">geekhub.dk</a>. Hvis der er et møde som mangler, så brug "Foreslå et event" i toppen af menuen. Hvis der er noget funktionelt du ønsker implementeret, så brug Feedback knappen i venstre side.</p>

<p>Hvis du har lyst til at læse koden under geekhub, eller har lyst til at hjælpe, så er projektet tilgængeligt på <a href="http://github.com/deldy/geekhub">github</a></p>

<p>Håber det falder i god jord, og at folk kan bruge siden. Husk at der også er et RSS feed, hvis du gerne vil have besked, når der kommer nyt på listen.</p>
]]></description>
      <pubDate>Sun, 22 Jan 2012 16:55:48 GMT</pubDate>
      <guid isPermaLink="false">http://deldy.dk/post/geekhub</guid>
    <feedburner:origLink>http://deldy.dk/post/geekhub</feedburner:origLink></item>
    <item>
      <title>Store JS-objects in HTML5 Web Storage</title>
      <link>http://feedproxy.google.com/~r/Deldy/~3/18t9K13Ra8k/webStorage</link>
      <description><![CDATA[<p>When I was creating <a href="http://tudoo.deldy.dk">tudoo</a>, I wanted to store my todo-items in Web Storage (aka localStorage).</p>

<p>The problem about Web Storage, is that it's really just a key/value pair dictionary, that can only contain string values. It's very simple to use:</p>

<script src="https://gist.github.com/1325643.js?file=simpleLocalStorage">[CODE SAMPLE]</script>

<p>One thing to note, is that the data is shared across a origin. So watch out if you have multiple HTML5 apps, that they don't overwrite each other. Also note that there is a max of data you can store. This are independent of the browser the user uses. (typical 5mb, but it is a user setting, so you never know)</p>

<p>Anyway, to store complex objects, the trick is simply to convert your object to json:</p>

<script src="https://gist.github.com/1325645.js?file=complexLocalStorage">[CODE SAMPLE]</script>

<p>Be awesome - write more JS :)</p>
]]></description>
      <pubDate>Sun, 30 Oct 2011 07:19:44 GMT</pubDate>
      <guid isPermaLink="false">http://deldy.dk/post/webStorage</guid>
    <feedburner:origLink>http://deldy.dk/post/webStorage</feedburner:origLink></item>
    <item>
      <title>Meet Tudoo - a little sample todo application in HTML+Coffeescript</title>
      <link>http://feedproxy.google.com/~r/Deldy/~3/_zvm6HGKpoI/tudoo</link>
      <description><![CDATA[<p>As a little weekend project, I decided to create a little html todo application. The application is created with <a href="http://jashkenas.github.com/coffee-script/">Coffeescript</a> and your todo items is stored in HTML5 localStorage. It is tested on Safari, Chrome, Firefox and IE9.</p>

<p>I've tried to make it compatible with smartphones as well. It works on iOS and Andriod systems, but the size of the components are not so finger friendly yet.</p>

<p>So check out this simple app here: <a href="http://tudoo.deldy.dk">tudoo.deldy.dk</a> - read the <a href="http://tudoo.deldy.dk/docs/app.html">code comments</a> and steal all the code on <a href="https://github.com/deldy">github</a>.</p>
]]></description>
      <pubDate>Sun, 30 Oct 2011 07:07:28 GMT</pubDate>
      <guid isPermaLink="false">http://deldy.dk/post/tudoo</guid>
    <feedburner:origLink>http://deldy.dk/post/tudoo</feedburner:origLink></item>
    <item>
      <title>Introducing AcidPipe.NET - the rails way to manage your CSS and Javascript assets</title>
      <link>http://feedproxy.google.com/~r/Deldy/~3/VUvfymTEQXk/acid-pipe</link>
      <description><![CDATA[<p>When your website becomes big, then it can be a big hassle to keep control of all thoose CSS and Javascript. You end up seperating your CSS and JS into multiple files. But to maintain speed, to want the user to request all the Javascript and Stylesheets in one request. You also have to struggle with caching, as you change your files. You clearly need system to help you manage this.</p>

<p>Many have already solved these issues like <a href="http://www.codethinked.com/squishit-the-friendly-aspnet-javascript-and-css-squisher">SquishIt</a>. But with the recent release of Rails 3.1, the ruby people have <em>yet again</em> found a better way to solve the problem.</p>

<p>So why not <em>steal</em> the idea, and implement in .NET?</p>

<p>I give you <strong>AcidPipe</strong>. It's my take on the <a href="http://ryanbigg.com/guides/asset_pipeline.html">Rails 3.1 Asset Pipeline</a>.</p>

<p>Watch this lille demostration, about what it can do:</p>

<iframe src="http://player.vimeo.com/video/28411424?title=0&amp;byline=0&amp;portrait=0" width="400" height="225" frameborder="0"></iframe>

<p>Remember that this is a early alpha preview, and is not yet ready for production sites.</p>

<p><a href="https://github.com/deldy/AcidPipe">Download Acid Pipe Alpha 1</a> here</p>
]]></description>
      <pubDate>Wed, 31 Aug 2011 18:23:36 GMT</pubDate>
      <guid isPermaLink="false">http://deldy.dk/post/acid-pipe</guid>
    <feedburner:origLink>http://deldy.dk/post/acid-pipe</feedburner:origLink></item>
    <item>
      <title>Need some CSS? Let Twitter Bootstrap rock your world</title>
      <link>http://feedproxy.google.com/~r/Deldy/~3/4zlLthhyusU/twitter-bootstrap</link>
      <description><![CDATA[<p><a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap</a> give you css for <em>Grids, Layouts, Typography, Tables, Forms, Navigation, Alerts &amp; Popovers</em>. And it looks awesome.</p>

<p><img src="https://s3-eu-west-1.amazonaws.com/deldy.dk/posts/twitter-bootstrap/Twitter+Bootstrap.png" alt="Screenshot of awesomeness" /></p>

<h3>Check out <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap</a></h3>
]]></description>
      <pubDate>Sat, 20 Aug 2011 11:11:23 GMT</pubDate>
      <guid isPermaLink="false">http://deldy.dk/post/twitter-bootstrap</guid>
    <feedburner:origLink>http://deldy.dk/post/twitter-bootstrap</feedburner:origLink></item>
    <item>
      <title>DB Testing is easy... even in .NET</title>
      <link>http://feedproxy.google.com/~r/Deldy/~3/V-WNQ1UHUbc/db-testing</link>
      <description><![CDATA[<p>Many people fear database testing in their applications. By using Ruby on Rails, I've learned that one of the big roadblocks for testing in .NET really is because we don't want to test the database.</p>

<p>Let's get some things clear:</p>

<ul>
<li>DB testing is fast enough</li>
<li>Integration Tests sometimes gives more meaning that one million unit tests.</li>
<li>If you don't test the database at all, then you leave out a important part of your app.</li>
</ul>

<p>To make DB testing work, there is really one big problem: Creating the test database, and keeping it up to date. Luckly it don't really take much to create it, and be able to keep it up to date. The simplest thing is to use this little bat file:</p>

<script src="https://gist.github.com/1141649.js?file=Test.Prepare.bat"></script>

<p><em>It requires that the source and destinations databases exist. <strong>The database names are case sentitive.</strong> I recommend to have the test database on your local machine (.\sqlexpress). Sometimes foreign keys is in your way, <a href="http://www.thestidhams.com/tom/wp/2007/07/23/drop-all-foreign-keys/">look here on a SQL script to remove them</a>. Run that script after schema.sql</em></p>

<p>Then simply run the bat file whenever your schema has changed.  </p>

<p>Now you are ready to test using your test database:</p>

<ul>
<li>First off. Remember to switch the connectionstring to the test database :)</li>
<li>It's important to create your test in a transaction, and then make a rollback after each test. Use either the <a href="http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx">TransactionScope</a> object, or look for a RollbackAttribute for your favourite testing framework. <strong>This is the key to making DB testing work, as your DB then always is in a consistent state</strong></li>
</ul>

<p>That's it! You are now ready to journey though the world of testing with a database. It makes testing your application alot easier.</p>
]]></description>
      <pubDate>Fri, 12 Aug 2011 09:03:44 GMT</pubDate>
      <guid isPermaLink="false">http://deldy.dk/post/db-testing</guid>
    <feedburner:origLink>http://deldy.dk/post/db-testing</feedburner:origLink></item>
    <item>
      <title>The myth of usable paging</title>
      <link>http://feedproxy.google.com/~r/Deldy/~3/JBhjffJn2n4/the-myth-of-usable-paging</link>
      <description><![CDATA[<p>The topic I want to discus today, is about paging in lists on websites, and the myth that it's useful. I will also cover other usability aspects of lists.
First off, lets make my opinion clear: Traditional paging should be treated as a last resort. To clarify; By traditional paging I mean the one you see in the bottom of Google Search Results:</p>

<p><img src="https://s3-eu-west-1.amazonaws.com/deldy.dk/posts/the-myth-of-paging/google.png" alt="Google paging" /></p>

<p>So whats wrong by using this form of "chunking", your data? It's simply wrong because it's overused. Sure paging can have some merit, but we used paging so long, that we are just not thinking about how we use it anymore. Who really thinks, that if you show more than 10 items in a list, that it's going to be slow? No one - but we are still making the smallest pagesize as the default. So we give the customers a <em>way</em> to small page size to work with, and also ask them to hit a very small forward link at the bottom. That don't make finding of data a breeze:
I need to scroll (normal users move the mouse to the scrollbar), then position the mouse the right place and then click. Thats tedious, and just not a good user experience.<br />
Give you user a page size of 10, then I can assure you that most normal users never gets to the end of the list.</p>

<p>Lists normally has two usecases:</p>

<ul>
<li>Finding the one item that you want, while knowing something about it. Aka. searching.</li>
<li>Finding a interesting item, like a news story, or a product you did not knew you needed. Aka. browsing.</li>
</ul>

<h3>Searching</h3>

<p>So first off. If you users are using your list for finding <em>the</em> item, and they is actually using the paging-facility, then there is room for improvement. Make a good searching instead, so they can search, and then the right product or item will be on the first page, preferably the first item. Help them with autocomplete, and suggestions at much as you can, to help them not reach the dreaded "No results" page. But one rule to note here: <em>Don't show them fake results, to ensure no empty list, thats a bad practice, that makes your users think that your search is broken</em></p>

<p><img src="https://s3-eu-west-1.amazonaws.com/deldy.dk/posts/the-myth-of-paging/superbest.png" alt="Superbest.dk uses autocomplete to actually show you results as you type" /></p>

<h3>Browsing</h3>

<p>If you like your users to browse, make it a nice and easy. <a href="http://ui-patterns.com/patterns/ContinuousScrolling">Continuous Scrolling</a> is the key here. Most of the time, you can actually have quite a big list on one page, without suffering much performance. If you have images, then load them only if the users scroll down to them. (There's <a href="http://maketecheasier.com/improve-sites-performance-by-loading-images-on-demand/2010/09/30">javascript plugins</a> for that)
If you really want fast performance, then load a small list first, like maybe 50-100 items, and then on when the users reaches the bottom, load a longer list, of lets say 500 items. The user should not see any separation of the first and second page of items. Thats the logic behind infinite scrolling. From the users perspective, this just "works", and is a joy to use. The user will see more products, and if you are lucky, they will discover more items, buy extra, and come back.</p>

<h3>Filters</h3>

<p>If you are having a list of over 100 items, or so. Look for a way for the user to filter the items. You can use a traditional filter by brand, or category, by using a filter section at the top. But that really comes with it own set of issues sometimes.
If your customer is really browsing, then they many times want to look at more brands, or more categories. Also they may not even know what category there product is in. Think about displaying what filters a product is in (think tagging), and make it easy for customers to change the filter to match one or more tags, like: 'Kitchen knifes', or 'Gift ideas for males'  </p>

<p><img src="https://s3-eu-west-1.amazonaws.com/deldy.dk/posts/the-myth-of-paging/stackoverflow.png" alt="Stackoverflow uses tagging, and makes it easy to jump to that tag" /></p>

<p>Instead of making the customer decide up front, we are allowing them to change their filter mid-list, when they find something interesting. If you need some extra filters, then try not to position them at the top or bottom of the list, place it at the left or right hand side, and make it a always-visible panel, or make the top "follow-along" when you scroll down. When the list is long, then it is just tedious to scroll all the way to the top, to change the filters, so avoid that.</p>

<p><img src="https://s3-eu-west-1.amazonaws.com/deldy.dk/posts/the-myth-of-paging/winestore-online.png" alt="wine-online uses a filter at the side of the list, but is not in a always visible panel" /></p>

<h3>Sorting</h3>

<p>The same goes for sorting as for filters. It is tedious to move to the top of the list to change a sort order. Have it at a always-visible panel, if possible.
Think about if you really need sorting, and what sorting you <em>really</em> need. Most of the times users want to see even see the most popular products or the cheapest. Sorting by clicking columns is rarely a good practice. Most of the time, you need to click that thing twice, and it just becomes weird if you need multi column sorting. Most of the time, a set of links works just fine.</p>

<p><img src="https://s3-eu-west-1.amazonaws.com/deldy.dk/posts/the-myth-of-paging/amazon.png" alt="Amazon.com uses a drop down list for sorting options" /></p>

<h3>Recap</h3>

<p>This ended up being a long post. To make myself clear, then this is just my personal opinion. I don't have any data backing my statements. But I hope that you can agree with me, that you need to think about the usecases and useablity of your lists, and that paging is just not always the best idea.</p>
]]></description>
      <pubDate>Thu, 11 Aug 2011 11:52:41 GMT</pubDate>
      <guid isPermaLink="false">http://deldy.dk/post/the-myth-of-usable-paging</guid>
    <feedburner:origLink>http://deldy.dk/post/the-myth-of-usable-paging</feedburner:origLink></item>
    <item>
      <title>Do it like the pro's, but without paying a dime</title>
      <link>http://feedproxy.google.com/~r/Deldy/~3/Yc56TiFZ6IQ/do-it-free</link>
      <description><![CDATA[<p>When creating a hobby app, money is often a issue. You want to make the coolest thing possible, but with zero or low cost. Lucky for you, it is far easier today, to get a lot of cool hosting for free than it way some years ago.</p>

<p>All this cloud talk, is about to rock your hobby-world. Because cloud can bring hosting cost down, and because all the providers all wants a big userbase, then a lot of them is offering a free plan.</p>

<p>Here is a list of tools I use, to my hobby projects. I'm paying under a dollar a year, for hosting all my hobby projects. If something grows to be cool, then all these tools also offer possibility to scale - or a price off cause :)</p>

<p><em>I've only included products that don't have a 'time-limit' - like 3 months free. These products has a completely free time-unlimited plan, or a very low cost for usage.</em></p>

<h3><a href="http://heroku.com/">Heroku</a> and <a href="http://appharbor.com">AppHarbor</a></h3>

<p>Heroku is the place to host Ruby or Node.js apps. They offer the coolest way to deploy, that I have ever seen. Just push it with git! This is so cool, that the people over at AppHarbor have done the same for .NET apps.<br />
Heroku offers one "dyno", and a 5mb database. 5mb don't sound like much, but it's not a hard-limit, and the 5mb is only the raw data size. Over at AppHarbor, they are offering the same, but with a 20mb database.<br />
You need to check either Heroku or AppHarbor out, if you do Ruby or .NET programming. This blog is hosted on AppHarbor on their free plan.</p>

<h3><a href="http://postmarkapp.com">PostMark</a></h3>

<p>Postmark is email sending as a service. Get the first 1000 mails free. They offer a good and easy API, and integration to both .NET and Ruby is very easy. They even help you set up your domain, so your email don't get in the users spam folder. Need more than 1000 mails? 1000 more mails cost 1.5 dollars. This blog is also using PostMark, for sending me a email, when a new comment is created.</p>

<h3><a href="http://indextank.com">IndexTank</a></h3>

<p>This is one of the things, that I found by looking at the <a href="http://addons.heroku.com/">Heroku Add-on list</a>. This is search as a service, that will help you make an awesome search feature for free. You get up to 100,000 documents for free, and up to three indexes. It's very easy to get working with Ruby, but they don't have a .NET library just yet - so make your own :)</p>

<h3><a href="http://aws.amazon.com/s3/">Amazon S3</a></h3>

<p>This is not really free, but very cheap for limited use. Amazon S3 lets you store files in the cloud. If you store a gig, then the cost will be about 1 dollar a year, and you are properly storing less. This blog uses S3 for images and so on.</p>

<p><em>Do you have any cool products to the list? I have only included the ones I've tried. If you are looking for more, then take a look at the <a href="http://addons.heroku.com/">Heroku add-on list</a> or the <a href="https://appharbor.com/addon">AppHarbor add-on list</a></em></p>
]]></description>
      <pubDate>Tue, 26 Jul 2011 16:13:22 GMT</pubDate>
      <guid isPermaLink="false">http://deldy.dk/post/do-it-free</guid>
    <feedburner:origLink>http://deldy.dk/post/do-it-free</feedburner:origLink></item>
    <item>
      <title>Make your own mind. Don't copy others</title>
      <link>http://feedproxy.google.com/~r/Deldy/~3/KCyKCdBjAsg/make-your-own-mind</link>
      <description><![CDATA[<p>In the .NET space, it is way to easy to just use .NET, and say "yay" to anything that Microsoft throws at you. One of the missions for me, by learning a new language, like Ruby, is to break the my .NET-mindset of software development.</p>

<p>Just like I don't trust the person to agrees 100% with a political party, I don't trust a person who don't know two programming languages, or thinks that their programming language is the new tool of gods. </p>

<p>C#/VB.NET/.NET is far from perfect. So is Ruby or Rails by the way. .NET is an awsome platform, but unless you know something other than one thing, you are really a capture of that technology.</p>

<p>You only think solutions in .NET, using the .NET way, if you only know .NET. I think solutions much simpler after I learned Ruby. Not because Ruby is a language that is dynamic, and by that ways loses much of the needs for big architecture stuff. But because, when you are on deep water on Topic X, you really starts to think like you really should: 'How can I get this thing to work?'. Instead of the normal 'How I can make Hello World fly to the moon?'</p>

<p>So learn some other stuff. Build in a different language at home, than you do at work. Don't be afraid of the notorious ".NET only fanboys". In my experience, as a founder of a user group, is that they don't really exist - and if they do, shame on them - not you!</p>
]]></description>
      <pubDate>Fri, 24 Jun 2011 22:20:58 GMT</pubDate>
      <guid isPermaLink="false">http://deldy.dk/post/make-your-own-mind</guid>
    <feedburner:origLink>http://deldy.dk/post/make-your-own-mind</feedburner:origLink></item>
    <item>
      <title>How to learn Ruby on Rails</title>
      <link>http://feedproxy.google.com/~r/Deldy/~3/lyPnhOYbR6Y/how-to-learn-ruby-on-rails</link>
      <description><![CDATA[<p>So you want to get into this Ruby On Rails sweetness? </p>

<p>The first place to go, is definitely "Rails for Zombies":</p>

<ul>
<li><a href="http://railsforzombies.org">railsforzombies.org</a> - it's a nice interactive tutorial that lets to experience rails without installing anything - it's just right in your browser.</li>
</ul>

<p>When you are dont with the tutorial, then the road splits. Each person are different, and each have a different need to understand how things work before using it. </p>

<p>If you are one of the persons that wants to understand and know the Ruby-language syntax, then first complete the: </p>

<ul>
<li><a href="http://rubykoans.com">rubykoans.com</a> - it's a nice lille directory of small tests that helps you understand Ruby. To use it, it's just a matter of installing Ruby (if you are on a Mac, you even got that already), and then a good editor. TextMate is the original favourite of Rails developers (on macs), but for basic Ruby, then a basic editor will also work.</li>
</ul>

<p>After you completed the koans, (or just skipped them), then take a look at this e-book:</p>

<ul>
<li><a href="http://pragprog.com/titles/rails4/agile-web-development-with-rails">Agile Web Development with Rails (4th edition)</a> - first off, be sure to get the right version. The 4th is the newest right now. But if there is a newer one, then take that! This book helps you learn rails by building a quite cool little book shop.</li>
<li>An alternative to a book is also the <a href="http://tekpub.com">TekPub</a> series on Ruby on Rails. There is two series one on Rails 2, and one on Rails 3. They quickly becomes very advanced, and is not very hands on, so I still prefer the book over these ones - but if you a a video kind of guy/gal, then these is still a great buy.</li>
</ul>

<p>When you have looked at all of above, then be sure to take a look at:</p>

<ul>
<li><a href="http://railscasts.com">railscasts.com</a> - the most awesome (free) tutorial site - ever. This dude releases new stuff every week. Each one takes about 10 minutes, and gets you into stuff quickly. Search or browse for a topic, and take a watch. And after that subscribe to it with iTunes or other podcast software.</li>
<li><a href="http://peepcode.com">peepcode.com</a> - Want to have a more in-depth screencast of Topic-X? Then look if peepcode has it. All there screencasts is superb quality - the pricing is not bad either.</li>
</ul>
]]></description>
      <pubDate>Sat, 28 May 2011 16:14:52 GMT</pubDate>
      <guid isPermaLink="false">http://deldy.dk/post/how-to-learn-ruby-on-rails</guid>
    <feedburner:origLink>http://deldy.dk/post/how-to-learn-ruby-on-rails</feedburner:origLink></item>
    <item>
      <title>Reversed Backward Compatibility</title>
      <link>http://feedproxy.google.com/~r/Deldy/~3/u_0_E-ZwKLc/reversed-backward-compatibility</link>
      <description><![CDATA[<p>When developing a framework, you are offen faced with the question: "Can I remove this feature?" - It's properbly a legacy feature, or something that very few people use, and is taking alot of man-hours to support.</p>

<p>In the .NET realm, we are known to be very good at being backward compatible. Many times, to much in fact. We focus so much on backward compatibility, that frameworks becomes rigid to use, and we need alot of configuration, just to get the new stuff. </p>

<p>ASP.NET is a perfect exsample. In the first versions of ASP.NET the web.config went from being a good slim file, to be a massive monster of weird configuration, and assembly binding. Sure, they moved some of it away from web.config in .NET 4, but its still somewhere in a config file hidden in your .NET Framework. </p>

<p>When moved out, its not really a "problem" for the users, but I bet it's a problem for the 
maintainers of the ASP.NET codebase. It marks a filosofi: "We want to make it as seamlessly as 
porsible to upgrade", but it also states that it will make it "More problematic for new projects".
Just look at ASP.NET MVC 3. They just removed all the noise, from the web.config in .NET 4, and now ASP.NET MVC found a lot of other weird stuff to put in there - and they even introduced another one for razor. Nicely done!</p>

<p>I love ASP.NET MVC, don't get me wrong. But I don't love the .NET nature of making upgrading easy, by making the new projects pay. You are also making the framework more fat, and in that way punishing the developers of the framework, and the users that must understand the framework. Before you know it, it's all bug-fixing - new features that can't be implemented because it will break backwards-compatibility, and very long development cycles. 
It looks like it's already happening to the ASP.NET MVC. And it’s sure that been that for a while, for the ASP.NET Webforms crowd.</p>

<p>So to look for a solution, we do, as we offen do these days: We look at the Ruby community.</p>

<p>When looking at Ruby on Rails for example, they remove things all the time. If it's not optimal, 
or becomming a hazzel, they get rid of it. But instead of just deleting the file from the project,
they instead refactor it out into a Gem (for .NET peeps: Thats what nuggets is based on), and make the community support it. Because many ruby people actually take it as a normal thing to submit and support open source libraries, if they use it, then this method actually works. It makes the developers of the core framework more agile, and make them focus on the 90% of the developers need.</p>

<p>That means, that when a new version of rails is released, it may mark some things stuff deprecated. It then tells you, that this will be removed from versions later than X-date, and tells you a solution. Offen this is to include a gem (that’s one line of config: gem ‘x’), that adds the feature back in. </p>

<p>What that so hard? Surely people that are upgrading, reads the upgrade docs, on what to do, so let’s put the work on their shoulders - it's not really a lot of work, but instead of putting all that
enable statements in the web.config to enable, a new needed features, then instead make them put in a disable configuration instead. Take bad stuff out, and let better solutions come in. But don't just remove support. Move it to the community, making the last users, of the thing in charge.</p>

<p>Believe me, it's an important practice, that must be applied to any work of a framework you use, 
even your company’s internal framework. Move old stuff into nuggets, dlls or gems, and make the core clean, fast, easy to maintain, and not a library that developers fear to touch, because: <strong>"There be dragons"</strong></p>

<p>So when thinking backward compatibility, make it reserve of what you normally do - don't make the few users of the old, block for the new. I really hope that this will happen with ASP.NET MVC. Fingers crossed.</p>
]]></description>
      <pubDate>Fri, 13 May 2011 20:03:52 GMT</pubDate>
      <guid isPermaLink="false">http://deldy.dk/post/reversed-backward-compatibility</guid>
    <feedburner:origLink>http://deldy.dk/post/reversed-backward-compatibility</feedburner:origLink></item>
  </channel>
</rss>

