<?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>Tigraine &#187; dotless</title>
	<atom:link href="http://www.tigraine.at/category/programmierung/projects/dotless/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tigraine.at</link>
	<description>Daniel Hoelbling talks about .NET</description>
	<lastBuildDate>Mon, 06 Sep 2010 20:47:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The fastest way to install dotless : nubular (nu)!</title>
		<link>http://www.tigraine.at/2010/08/25/the-fastest-way-to-install-dotless-nubular-nu/</link>
		<comments>http://www.tigraine.at/2010/08/25/the-fastest-way-to-install-dotless-nubular-nu/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 08:50:56 +0000</pubDate>
		<dc:creator>Daniel Hölbling</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[dotless]]></category>

		<guid isPermaLink="false">http://www.tigraine.at/2010/08/25/the-fastest-way-to-install-dotless-nubular-nu/</guid>
		<description><![CDATA[Did you know that dependency management in the .NET open source space really sucks? For a long time have we been looking at Ruby Gems in envy of the ease of use and simplicity, spawning projects like Horn or&#160; Bricks. And while some of these projects were promising, none really took off in a big [...]]]></description>
			<content:encoded><![CDATA[<p>Did you know that dependency management in the .NET open source space <a href="http://www.tigraine.at/2009/05/30/running-from-trunks-can-be-tough/">really sucks</a>? For a long time have we been looking at Ruby Gems in envy of the ease of use and simplicity, spawning projects like <a href="http://code.google.com/p/hornget/">Horn</a> or&#160; <a href="http://jonorossi.com/blog/archive/2010/04/11/bricks-a-preview-of-a-.net-package-manager.aspx">Bricks</a>. And while some of these projects were promising, none really took off in a big way, so here comes another take at it: Some clever guys just talked to the RubyGem people about (ab-)using their existing infrastructure for .NET assemblies. And hey, they agreed to let us use their Gem system to distribute .NET assemblies just the way Ruby people can get Rails and all other Ruby projects. </p>
<p><strong>And behold there it is: </strong><a href="http://nu.wikispot.org/"><strong>nubular (nu)</strong></a></p>
<p>I won’t go too deep into what nu does and why it’s awesome, read <a href="http://devlicio.us/blogs/rob_reynolds/archive/2010/07/26/the-future-of-net-open-source-software-delivery.aspx">Rob Reynold’s article</a> and you’ll see the light pretty soon. Suffice it to say that nu is to assemblies what apt-get and gems is to Linux people. You just drop to the command line and tell nu you need assembly X, and if a package exists with that name it will automagically pull it down and with it all dependencies and install it to your /lib folder. Best of all, it also allows you to install binaries with it, a feature that turned out to be really cool for dotless. </p>
<p>Anyway, I promised you a really fast way to install dotless. Well, it can’t get any simpler than this, just drop to the command line and type (install instructions on nu are further down in this article):</p>
<blockquote><p>nu install dotless</p>
</blockquote>
<p>And now nu goes out to the gem server and just fetches dotless for you:</p>
<p><a href="http://www.tigraine.at/wp-content/uploads/2010/08/image.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.tigraine.at/wp-content/uploads/2010/08/image_thumb.png" width="725" height="183" /></a></p>
<p>The installation just took 3 seconds, and we have the dotless.Core.dll now sitting neatly in our &lt;currentdir&gt;/lib/dotless folder alongside all other libraries we got through nu. </p>
<p>What this install also gives you is a shortcut to the dotless.Compiler.exe. Nu will install a dotless.bat in your C:\Ruby\bin (that should be in your PATH) that you can now use to compile .less files from anywhere:</p>
<p><a href="http://www.tigraine.at/wp-content/uploads/2010/08/image1.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.tigraine.at/wp-content/uploads/2010/08/image_thumb1.png" width="539" height="92" /></a></p>
<p>That’s pretty cool I dare say. And now the best part: Updating dotless just got a lot easier too. Whenever we publish a new version to nu you can just hit </p>
<blockquote><p>gem update dotless</p>
</blockquote>
<p><strong>Installing nu</strong></p>
<p>So far I’ve shown you how to get dotless installed once you already run ruby gems + nubular, but for that all to work you need to install Ruby on your machine first. </p>
<p>Doing so is probably the simplest thing in the world right now, just hit <a title="http://rubyinstaller.org/" href="http://rubyinstaller.org/">http://rubyinstaller.org/</a> and you are almost set. You just need to install the nu gem afterwards and you are done installing (takes together under 2 minutes). (Note: Make sure to let the installer add Ruby to your PATH or the whole exercise is futile)</p>
<p>To install the nu gem just type:</p>
<blockquote><p><font style="background-color: #ffffff">gem install nu</font></p>
</blockquote>
<p>It can’t get any simpler than this does it? Oh and btw: Ruby is completely xcopy deployable and will leave no traces behind on your machine. No services are being run and no bad things can happen to you, so there is really no excuse for a developer out there to no just go ahead and install it.</p>
<p>Oh, and after you’ve installed nu you can then go ahead and fetch a complete Fluent Nhibernate + Castle Windsor stack in a matter of seconds, disregarding all dependency issues since nu is handling that for you. And people are putting more stuff there by the minute: Rhino.Mocks, Fluent Nhibernate, Nhibernate, Castle Windsor, Castle DynProxy, Automapper.. etc etc.. Look at the <a href="http://nu.wikispot.org/Current_Packages">full list</a> and see for your self how much easier you life can become by a simple installation!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tigraine.at/2010/08/25/the-fastest-way-to-install-dotless-nubular-nu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>dotless Version 1.1 Released!</title>
		<link>http://www.tigraine.at/2010/06/16/dotless-version-1-1-released/</link>
		<comments>http://www.tigraine.at/2010/06/16/dotless-version-1-1-released/#comments</comments>
		<pubDate>Wed, 16 Jun 2010 08:20:49 +0000</pubDate>
		<dc:creator>Daniel Hölbling</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[dotless]]></category>

		<guid isPermaLink="false">http://www.tigraine.at/2010/06/16/dotless-version-1-1-released/</guid>
		<description><![CDATA[
After a lot of work we finally released a new version of dotless. And this release is really sweet. We switched parsers from the troubled PEG parser we had to an all-new implementation of the less.js parser that gave us a ton of room for improvements and little tweaks.
Here’s a rundown of the most important [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-right-width: 0px; margin: 0px 10px 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="logo" border="0" alt="logo" align="left" src="http://www.tigraine.at/wp-content/uploads/2010/06/logo.jpg" width="131" height="92" /></p>
<p>After a lot of work we finally released a new version of dotless. And this release is really sweet. We switched parsers from the troubled PEG parser we had to an all-new implementation of the <a href="http://github.com/cloudhead/less.js">less.js</a> parser that gave us a ton of room for improvements and little tweaks.</p>
<p>Here’s a rundown of the most important features:</p>
<p><strong>New Parser</strong></p>
<p>New parser also means we finally have meaningful error messages and if there are syntax errors we tell you what line the error occured and what went wrong. So that’s a huge improvement for all the people who saw empty .css files trying to figure out what broke the compilation.</p>
<p><strong>Parameter passing</strong></p>
<p>One thing users have&#160; been asking us for are parameters to be passed to the scripts. We finally found a good way to implement this and now it’s in.</p>
<p>If you use the HttpHandler you can simply pass parameters through the querystring. Let’s say you have a basecolor you want to pass to your .less file you simply call it from the site like this:</p>
<blockquote><p><a href="http://www.myserver.com/site.less?basecolor=#34679a">http://www.myserver.com/site.less?basecolor=#34679a</a></p>
</blockquote>
<p>and the variable @basecolor will be set to #34679a for you in your script. This is especially handy if you are using the <a href="http://dotlesscss.com/docs.aspx/functions">HSL functions</a> where you can modify saturation, lightness etc.</p>
<p>If you are using the console compiler you can also leverage this new functionality through a very Ant like parameter syntax:</p>
<blockquote><p>dotless.Compiler.exe test.less –D<strong>basecolor=%2334679a</strong></p>
</blockquote>
<p>Note: <strong>Parameters in querystrings have to be URL encoded</strong> or some browsers will act up.</p>
<p><strong>Improved Caching</strong></p>
<p>We also made sure that the cache works properly with parameters, so if two requests have the same parameters the cache will be used. If not, dotless will insert for every parameter/file combination one cache entry. Since parameters are by no means user-input values but usually limited to a set of values the designers specify this should still give you very good performance. Behind the scenes we are still using the ASP.NET cache infrastructure.</p>
<p>While at the topic of caching, we also improved cache invalidation. The old version did not watch all imported files for changes but only the main .less file. This has changed, you should now never have to think about disabling the cache during development.</p>
<p>The same change was also applied to the console compiler, if you start it with <em>–watch</em> the compiler will regenerate the CSS whenever any of the imported changes or the main file gets changed.</p>
<p><strong>Runnable in medium trust</strong></p>
<p>Well, nothing really exciting here, but you should now be able to run dotless in a shared hosting environment.</p>
<p><strong>Other improvements</strong></p>
<ol>
<li>Cleaner output </li>
<li>better support for CSS3 </li>
<li>Many more.. </li>
</ol>
<ol>A big thanks goes to <a href="http://github.com/jamesfoster">James Foster</a> who did most of the heavy lifting involved with bringing you this new release. You can download the new version from our website at <a href="http://www.dotlesscss.com">http://www.dotlesscss.com</a>. Remember, dotless is open source and released under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>, the source can be easily found on <a href="http://github.com/dotless/dotless">GitHub</a>.</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.tigraine.at/2010/06/16/dotless-version-1-1-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Barcamp Vienna 2010</title>
		<link>http://www.tigraine.at/2010/05/30/barcamp-vienna-2010/</link>
		<comments>http://www.tigraine.at/2010/05/30/barcamp-vienna-2010/#comments</comments>
		<pubDate>Sun, 30 May 2010 19:39:39 +0000</pubDate>
		<dc:creator>Daniel Hölbling</dc:creator>
				<category><![CDATA[Barcamp]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[dotless]]></category>

		<guid isPermaLink="false">http://www.tigraine.at/2010/05/30/barcamp-vienna-2010/</guid>
		<description><![CDATA[I just booted my PC after 4 hours of drive through heavy rain and thunderstorms back from Vienna where I attended Barcamp. I have to say it was just fantastic! All Barcamps I attended before had a very diverse crowd, but usually lacking developers thus the social media enthusiasts usually dominated the attendees. 
Barcamp Vienna [...]]]></description>
			<content:encoded><![CDATA[<p>I just booted my PC after 4 hours of drive through heavy rain and thunderstorms back from Vienna where I attended Barcamp. I have to say it was just fantastic! All Barcamps I attended before had a very diverse crowd, but usually lacking developers thus the social media enthusiasts usually dominated the attendees. </p>
<p>Barcamp Vienna was different, maybe it was the awesome location at Microsoft Austria headquarters or just the fact that it was in Vienna.. But I met more coders there in 2 days than in the last 2 yeas in Klagenfurt. </p>
<p>Coolest thing, I even met a <a href="http://www.subsonicproject.com/">Subsonic</a> developer: <a href="http://github.com/saintedlama">Saintedlama</a>! That was really awesome and funny when we met during breakfast randomly chatting about our stuff and I noted that I’ll be <a href="http://www.tigraine.at/2010/05/22/presenting-dotless-at-barcamp-vienna/">presenting dotless</a> when he said: “Wow that’s you? I wanted to contact you for some time now about dotless. I’m working on Subsonic btw.. &quot; (Imagine my jaw dropping right there.. ). He showed me some really cool demos of the simple repository they introduced in SubSonic 3 and it’s uses with MVC.. and I have to tell you: wow.. Using a ORM was really never so easy.. </p>
<p>Anyway, I really had a great time either chatting up really interesting people or doing my two presentations.    <br />On Saturday I talked about <a href="http://wwww.dotlesscsss.com">dotless</a> while on Sunday I talked about <a href="http://git-scm.org">Git</a>. Both talks went great in my opinion, but if anyone was there and has additional feedback on my presentations I’d be glad to hear them. I uploaded both slide decks to <a href="http://www.docs.com">http://www.docs.com</a> and you can find them here:</p>
<p><a href="http://docs.com/17TX"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.tigraine.at/wp-content/uploads/2010/05/image1.png" width="156" height="122" /></a> </p>
<p><a href="http://docs.com/17TX">dotless – CSS done right</a></p>
<p><a href="http://docs.com/17U1"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.tigraine.at/wp-content/uploads/2010/05/image2.png" width="148" height="120" /></a> </p>
<p><a href="http://docs.com/17U1">Git</a></p>
<p>At any rate: Thanks to <a href="http://wissenbelastet.com/">Max</a> and <a href="http://rolfgeneratedcontent.com/">Rolf</a> for organizing this awesome event and to Microsoft for so generously hosting it! </p>
]]></content:encoded>
			<wfw:commentRss>http://www.tigraine.at/2010/05/30/barcamp-vienna-2010/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>.less repository has moved to it&#8217;s own GitHub account</title>
		<link>http://www.tigraine.at/2010/03/04/less-repository-has-moved-to-its-own-github-account/</link>
		<comments>http://www.tigraine.at/2010/03/04/less-repository-has-moved-to-its-own-github-account/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 08:24:17 +0000</pubDate>
		<dc:creator>Daniel Hölbling</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[dotless]]></category>

		<guid isPermaLink="false">http://www.tigraine.at/2010/03/02/less-repository-has-moved-to-its-own-github-account/</guid>
		<description><![CDATA[ Until now we stored the main source of the .less project in Chris Owen’s GitHub account. We now decided to create a dedicated GitHub user to host the project since Chris is no longer actively contributing and may or may not want to add changes that are not meant to be immediately committed into [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.github.com"><img style="border-right-width: 0px; display: inline; margin-bottom: 10px; float: left; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 10px" title="github" border="0" alt="github" src="http://www.tigraine.at/wp-content/uploads/2010/03/github.png" width="100" height="45" /></a> Until now we stored the main source of the .less project in Chris Owen’s GitHub account. We now decided to create a dedicated GitHub user to host the project since Chris is no longer actively contributing and may or may not want to add changes that are not meant to be immediately committed into the mainline. </p>
<p>The new repository is at: <a href="http://github.com/dotless/dotless">http://github.com/dotless/dotless</a></p>
<p>We are still updating all references to the old project (website etc) but the move should be done fairly soon. If you are watching Chris’ repository make sure to also watch the new one as Chris’ repository may start lagging behind the mainline (depends on how often Chris will update his fork).</p>
<p>Oh, and btw: Thanks to the GitHub guys for providing this awesome service. Git + GitHub has simply revolutionized the way I write code and collaborate with people.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tigraine.at/2010/03/04/less-repository-has-moved-to-its-own-github-account/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>.less Compiler now supports &#8211;watch</title>
		<link>http://www.tigraine.at/2010/03/03/less-compiler-now-supports-watch/</link>
		<comments>http://www.tigraine.at/2010/03/03/less-compiler-now-supports-watch/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 13:03:37 +0000</pubDate>
		<dc:creator>Daniel Hölbling</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[dotless]]></category>

		<guid isPermaLink="false">http://www.tigraine.at/2010/03/03/less-compiler-now-supports-watch/</guid>
		<description><![CDATA[It’s been on our feature list for some time and it’s been in the code for some time too. But after fixing a final bug today I guess we can tell the world about it. 
The main idea behind –watch is to free you of the burden of having to configure anything but lets you [...]]]></description>
			<content:encoded><![CDATA[<p>It’s been on our feature list for some time and it’s been in the code for some time too. But after fixing a final bug today I guess we can tell the world about it. </p>
<p>The main idea behind –watch is to free you of the burden of having to configure anything but lets you just run the console-compiler once and it keeps refreshing the resulting .css files whenever a change occurs to the .less input file. </p>
<p>How to use? Well, simple. First grab the latest release from our website <a href="http://www.dotlesscss.com">http://www.dotlesscss.com</a> and then go to your favorite commandline and start the compiler with the –watch parameter:</p>
<blockquote><p><tt>dotless.Compiler.exe &lt;filename&gt; –watch</tt></p>
</blockquote>
<p>You will then get a nice console output telling you what is going on (and informing you of errors if any happen during compilation)</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.tigraine.at/wp-content/uploads/2010/03/image.png" width="473" height="169" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tigraine.at/2010/03/03/less-compiler-now-supports-watch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New stuff in .less</title>
		<link>http://www.tigraine.at/2010/02/22/new-stuff-in-less/</link>
		<comments>http://www.tigraine.at/2010/02/22/new-stuff-in-less/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 13:10:46 +0000</pubDate>
		<dc:creator>Daniel Hölbling</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[dotless]]></category>

		<guid isPermaLink="false">http://www.tigraine.at/?p=828</guid>
		<description><![CDATA[Do you remember that little project I am involved in? That .less thingy I always forget to write about? Well, it’s still around and we are going very strong. We are seeing a decent amount of activity on our mailing list and people throw code at me at various occasions for fixing different problems within [...]]]></description>
			<content:encoded><![CDATA[<p>Do you remember that little project I am involved in? That <a href="http://www.dotlesscss.com" target="_blank">.less thingy</a> I always forget to write about? Well, it’s still around and we are going very strong. We are seeing a decent amount of activity on our mailing list and people throw code at me at various occasions for fixing different problems within the the project.</p>
<p>One of those persons is <a href="http://github.com/jamesfoster" target="_blank">James Foster</a>, a really nice guy from the UK with some mad programming skills who set out to make .less awesome. Well, he sort of did already, by contributing some major code changes to the .less parser that enabled him to port over some SASS functions to .less. Sadly he does not blog himself, so the honor is mine to report to the world what he did.</p>
<p><strong><span style="text-decoration: underline;">Color functions</span></strong></p>
<p>Before going into details, the main idea is that you are now able to modify any component of a color separately. So far .less has only supported arithmetic operations on colors (like #abc000+ #000def =&gt; #abcdef) so if you e.g. want to darken a color while adding 10 points of green to it you where out of luck, making the feature not really all that useful. Well, thanks to James now we can!</p>
<p><strong>Creating colors</strong></p>
<p>.less understands that #FFFF is supposed to be treated as a color, so if you start working off web colors you can just use the hex notation and ignore the following functions. In case you are more the designer type settled in the RGB world and want to have lightness and alpha around, you will need functions to create the colors. And while at it James also added color literals so .less detects a @color: blue; instruction just like it would a @color:#0000FF one. Anyway, if you have your colors RGB or HSL you need to use the following functions to create them:</p>
<blockquote><p>rgb(red, green, blue)<br />
rgba(red, green, blue, alpha)<br />
hsl(hue, saturation, lightness)<br />
hsla(hue, saturation, lightness, alpha)</p></blockquote>
<p>You might guess from the parameter names how they work. But to be thorough:</p>
<div id="scid:2e6d557b-b705-4c34-b5ad-8606cf99c7de:ae4a85ee-51c8-47ce-a04a-87f1a0d8e68d" class="wlWriterEditableSmartContent" style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px">
<pre class="css">@mainColor: rgb(0, 0, 255); //Blue</pre>
</div>
<p><strong>Modifying colors</strong></p>
<p>Now, once you hold on to a variable that contains a color you can do some pretty exciting stuff with the following color manipulation functions:</p>
<blockquote><p>red(color, value)<br />
green(color, value)<br />
blue(color, value)<br />
hue(color, value)<br />
saturation(color, value)<br />
lightness(color, value)<br />
alpha(color, value)</p>
<p>the value can be positive or negative, for instance, to darken a color by 20% you can use &#8220;lightness(color, -20%)&#8221;.</p></blockquote>
<p>You pass in a color and then the amount you want to change it. If you omit the change value part the method will return the appropriate component of the given color (meaning: red(@color) will return the red portion of that color, while red(@color, 10%) will increase the amount of red by 10%).</p>
<p>And while at it, James also added some convenience functions for good measure to make your day easier:</p>
<blockquote><p>greyscale(color)<br />
this is equivalent to saturation(color, -100%)</p>
<p>complement(color)<br />
this is equivalent to hue(color, 180)</p>
<p>mix(color1, color2, weight)<br />
mixes 2 colors together. The weight argument is optional and specifies the percentage of the first color to use compared to the second color. it also takes into account transparency &#8211; if a color is more transparent it has less effect on the resulting color.</p></blockquote>
<p>You can get all of that functionality through the latest .less build from our website <a href="http://www.dotlesscss.com">http://www.dotlesscss.com</a> or just grab the code from GitHub. If you have any questions or suggestions feel free to participate through <a href="http://groups.google.com/group/dotless?pli=1" target="_blank">our mailing list</a>.</p>
<p>And lastly, let’s give credit where credit is due: Thanks to James for the great work he put into .less. James himself stated that he based most of his work on stuff he saw on the Sass project, you can read about their color functions implementation here: <a href="http://nex-3.com/posts/89-powerful-color-manipulation-with-sass" target="_blank">Powerful Color Manipulation with Sass</a>. The initial code for Sass was created by Chris Eppstein for the “compass-colors” project which has now been merged into the main Sass codebase. You can also see his pretty impressive demo here: <a title="http://chriseppstein.github.com/compass-colors/" href="http://chriseppstein.github.com/compass-colors/">http://chriseppstein.github.com/compass-colors/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tigraine.at/2010/02/22/new-stuff-in-less/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>dotless Presentation slides from Barcamp Klagenfurt</title>
		<link>http://www.tigraine.at/2010/02/06/dotless-presentation-slides-from-barcamp-klagenfurt/</link>
		<comments>http://www.tigraine.at/2010/02/06/dotless-presentation-slides-from-barcamp-klagenfurt/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 13:01:36 +0000</pubDate>
		<dc:creator>Daniel Hölbling</dc:creator>
				<category><![CDATA[Barcamp]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[dotless]]></category>

		<guid isPermaLink="false">http://www.tigraine.at/2010/02/06/dotless-presentation-slides-from-barcamp-klagenfurt/</guid>
		<description><![CDATA[I just finished my presentation about dotless at Barcamp Klagenfurt and promised to upload my presentation slides to Slideshare. 

.Less &#8211; CSS done right
View more presentations from Daniel Hölbling.


The feedback for the talk was quite good. Turned out better than I hoped. I just hope that the slides do make some sense without me talking [...]]]></description>
			<content:encoded><![CDATA[<p>I just finished my presentation about <a href="http://www.dotlesscss.com">dotless</a> at <a href="http://www.barcamp.at">Barcamp Klagenfurt</a> and promised to upload my presentation slides to Slideshare. </p>
</p>
<div style="text-align: left; width: 425px" id="__ss_3087035"><a style="margin: 12px 0px 3px; display: block; font: 14px helvetica,arial,sans-serif; text-decoration: underline" title=".Less - CSS done right" href="http://www.slideshare.net/Tigraine/less-css-done-right">.Less &#8211; CSS done right</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=barcamppresentation-100206062007-phpapp01&amp;stripped_title=less-css-done-right" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=barcamppresentation-100206062007-phpapp01&amp;stripped_title=less-css-done-right" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-family: tahoma,arial; height: 26px; font-size: 11px; padding-top: 2px">View more <a style="text-decoration: underline" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration: underline" href="http://www.slideshare.net/Tigraine">Daniel Hölbling</a>.</div>
</p></div>
</p>
<p>The feedback for the talk was quite good. Turned out better than I hoped. I just hope that the slides do make some sense without me talking alongside. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.tigraine.at/2010/02/06/dotless-presentation-slides-from-barcamp-klagenfurt/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Presenting .less at the Barcamp Klagenfurt 2010</title>
		<link>http://www.tigraine.at/2010/01/31/presenting-less-at-the-barcamp-klagenfurt-2010/</link>
		<comments>http://www.tigraine.at/2010/01/31/presenting-less-at-the-barcamp-klagenfurt-2010/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 10:07:17 +0000</pubDate>
		<dc:creator>Daniel Hölbling</dc:creator>
				<category><![CDATA[Barcamp]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[dotless]]></category>

		<guid isPermaLink="false">http://www.tigraine.at/2010/01/31/presenting-less-at-the-barcamp-klagenfurt-2010/</guid>
		<description><![CDATA[ 
Time goes by way faster than I’d like it to and the Barcamp Klagenfurt 2010 is coming up really fast. (6-7. February)
While usually I was quite hesitant to choose a topic due to the diversity of the attending crowd (unfortunately not really enough real technical topics represented there), this year I think I can [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.barcamp.at/BarCamp_Klagenfurt_2010" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Barcamp Klagenfurt 2010" border="0" alt="Barcamp Klagenfurt 2010" src="http://www.tigraine.at/wp-content/uploads/2010/01/Bcklu2010.png" width="640" height="144" /></a> </p>
<p>Time goes by way faster than I’d like it to and the <a href="http://www.barcamp.at/BarCamp_Klagenfurt_2010" target="_blank">Barcamp Klagenfurt 2010</a> is coming up really fast. (6-7. February)</p>
<p>While usually I was quite hesitant to choose a topic due to the diversity of the attending crowd (unfortunately not really enough real technical topics represented there), this year I think I can bring something very interesting to the camp: <a href="http://www.dotlesscss.com/" target="_blank">.less</a>.</p>
<p>The advantages are obvious, with a crowd of bloggers, artists and also technical people talking about something as ubiquitous as CSS, and ways to improve it, will surely resonate well, allowing me to be a bit technical without raising too many question marks above my audience’s heads like last year (where I talked about IoC and Windsor).</p>
<p>As for the talk itself, I plan on first going over general features of Less (since we are a port I can also point people over to the Ruby version if they are more comfortable with that than with .NET ), and then into a tiny bit of detail about how .less works internally.</p>
<p>Finally, I hope to see as many people as possible at Barcamp Klagenfurt! Thanks to the team for organizing this year after year!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tigraine.at/2010/01/31/presenting-less-at-the-barcamp-klagenfurt-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.Less now supports files from the VirtualPathProvider!</title>
		<link>http://www.tigraine.at/2010/01/06/less-now-supports-files-from-the-virtualpathprovider/</link>
		<comments>http://www.tigraine.at/2010/01/06/less-now-supports-files-from-the-virtualpathprovider/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 18:14:09 +0000</pubDate>
		<dc:creator>Daniel Hölbling</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[dotless]]></category>

		<guid isPermaLink="false">http://www.tigraine.at/2010/01/06/less-now-supports-files-from-the-virtualpathprovider/</guid>
		<description><![CDATA[Ok, I’ve just spent almost the whole day refactoring the hell out of our .less codebase just to add one tiny change:
Allow users to not only load files present on the current file system, but also directly from in-memory strings and VirtualPaths (as requested on the list). The problem here being that not everyone wants [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, I’ve just spent almost the whole day refactoring the hell out of our <a href="http://github.com/Tigraine/nLess" target="_blank">.less codebase</a> just to add one tiny change:</p>
<p>Allow users to not only load files present on the current file system, but also directly from in-memory strings and VirtualPaths (<a href="http://groups.google.com/group/dotless/browse_thread/thread/55b43a8dce165cd7?hl=en" target="_blank">as requested on the list</a>). The problem here being that not everyone wants to serve his .less files right from the server’s file system but sometimes people have pretty sophisticated virtualized storage systems in place that require them to use the VirtualPathProvider abstraction that was added to .NET 2.0.     <br />You can read up on that in <a href="http://weblogs.asp.net/scottgu/archive/2005/11/27/431650.aspx" target="_blank">ScottGu’s blog</a> or <a href="http://blogs.msdn.com/davidebb/archive/2005/11/27/497339.aspx" target="_blank">David Ebbo’s blog</a>, but in a nutshell it’s just another way to open files besides using System.IO.File.Open(), letting you forget about all the nasty stuff of where the file is really located.&#160; </p>
<p>To do so I had to allow uses to plug in different “Sources” for .less code, and so I also had to make a breaking change to the main ILessEngine interface. The Interface was taking a filename as parameter, but in light of our recent support emails on the <a href="http://groups.google.com/group/dotless" target="_blank">development list</a> I decided that has to go away in favor of a more open approach (mainly to allow users to simply throw in-memory strings at the engine). </p>
<p>Because I know this will break some code, all implementors of ILessEngine still offer the old string parameter as an overload that then defaults to the default FileSource.</p>
<p>Now, for changing the source provider:</p>
<p>If you want to use anything besides the default filesystem based FileSource provider, you now have the ability to plug in a type implementing ILessSource through the DotLessConfiguration (thus through web.config).    <br />.Less comes with three sources built in: <tt>VirtualPathSource</tt>, <tt>FileSource</tt> (default).</p>
<p>FileSource by default just opens a file through System.IO.File, while VirtualPathSource will use the <tt>HostingEnvironment.VirtualPathProvider.GetFile()</tt> method to open a Stream and read the .less code from there. </p>
<p>To enable the VirtualPathSource in your web application you simply need to modify your web.config a bit:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:2e6d557b-b705-4c34-b5ad-8606cf99c7de:7eb6542b-0319-4942-95cf-9188bd8cb816" class="wlWriterEditableSmartContent">
<pre name="code" class="csharp">
&lt;dotless minifyCss="false" cacheEnabled="true" source="dotless.Core.VirtualPathSource"&gt;
&#160;&#160;
&lt;/dotless&gt;
</pre>
</div>
<p>The important part is the <u>source attribute</u> as it has to reference a type name implementing ILessSource. So if you want to create your own less source you could simply create another implementation of ILessSource and reference it’s name in the .less config.</p>
<p>If you want to use .less directly from your code to transform something you can just new up a LessSourceObject (the very output we get from ILessSource) and throw your code in there like this:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:2e6d557b-b705-4c34-b5ad-8606cf99c7de:60b3fc68-e78d-4c8b-91ba-4ebc6cbc8158" class="wlWriterEditableSmartContent">
<pre name="code" class="csharp">
ILessEngine lessEngine = new EngineFactory().GetEngine(new DotlessConfiguration());
var output = lessEngine.TransformToCss(new LessSourceObject() {Content = "my .less code here"});
</pre>
</div>
<p>As always you can get the latest code from <a href="http://github.com/chrisjowen/nLess" target="_blank">GitHub</a>, or the latest binary release through our <a href="http://www.dotlesscss.com:8081/viewLog.html?buildId=lastPinned&amp;buildTypeId=bt3&amp;tab=artifacts&amp;guest=1" target="_blank">TeamCity build server</a>. You can read more about .less (pronounced dot-less) on the project’s website at <a href="http://www.dotlesscss.com">http://www.dotlesscss.com</a>. </p>
<p>And while at it, we’d appreciate it if you spread the word about .less <img src='http://www.tigraine.at/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tigraine.at/2010/01/06/less-now-supports-files-from-the-virtualpathprovider/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Pandora used in dotless and moved to GitHub</title>
		<link>http://www.tigraine.at/2009/11/23/pandora-used-in-dotless-and-moved-to-github/</link>
		<comments>http://www.tigraine.at/2009/11/23/pandora-used-in-dotless-and-moved-to-github/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 17:18:42 +0000</pubDate>
		<dc:creator>Daniel Hölbling</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Pandora]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[dotless]]></category>

		<guid isPermaLink="false">http://www.tigraine.at/2009/11/23/pandora-used-in-dotless-and-moved-to-github/</guid>
		<description><![CDATA[Pandora, my personal IoC Container (mostly written for educational purposes) has recently been integrated into dotless. This has helped us improve the design of dotless without having to take on a big dependency like Windsor or StructureMap. 
I chose to implement Pandora through the Common Service Locator interface by Microsoft, so if we ever feel [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tigraine.at/category/programmierung/projects/pandora/" target="_blank">Pandora</a>, my personal IoC Container (mostly written for educational purposes) has recently been integrated into <a href="http://www.dotlesscss.com/" target="_blank">dotless</a>. This has helped us improve the design of dotless without having to take on a big dependency like Windsor or StructureMap. </p>
<p>I chose to implement Pandora through the <a href="http://www.tigraine.at/2009/06/04/common-service-locator-adapter-for-pandora/" target="_blank">Common Service Locator</a> interface by Microsoft, so if we ever feel restricted by Pandora we can easily switch to a more potent container without touching the actual dotless code. </p>
<p>This step also made me bring the Pandora repository from mercurial to git with some help from Horst. He was kind enough to run hg-fast-import for me. </p>
<p>Pandora can now be found on GitHub with a similar build process as dotless and <a href="http://www.tigraine.at/category/programmierung/projects/elmsconnector/" target="_blank">elms-connector</a>.</p>
<p><a href="http://github.com/Tigraine/pandora-container" target="_blank">Pandora on GitHub</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tigraine.at/2009/11/23/pandora-used-in-dotless-and-moved-to-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
