<?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>piotrzurek.net &#187; development</title>
	<atom:link href="http://www.piotrzurek.net/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.piotrzurek.net</link>
	<description>...but what do I know?!</description>
	<lastBuildDate>Sun, 16 Jan 2011 22:22:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>My first Revit plugin</title>
		<link>http://www.piotrzurek.net/2011/01/14/my-first-revit-plugin/</link>
		<comments>http://www.piotrzurek.net/2011/01/14/my-first-revit-plugin/#comments</comments>
		<pubDate>Fri, 14 Jan 2011 01:20:34 +0000</pubDate>
		<dc:creator>piotr</dc:creator>
				<category><![CDATA[Autodesk]]></category>
		<category><![CDATA[Blog entries]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Revit]]></category>

		<guid isPermaLink="false">http://www.piotrzurek.net/?p=355</guid>
		<description><![CDATA[Update: The post had to be redacted for the sake of our relationship with the customer. They feel some of their exclusive IP was made public so I removed all reference to data/screenshots that is not publicly available elsewhere &#8211; in this case mostly at Building Coder blog. A few months ago I got the [...]]]></description>
			<content:encoded><![CDATA[<p><em><strong>Update:</strong> The post had to be redacted for the sake of our relationship with the customer. They feel some of their exclusive IP was made public so I removed all reference to data/screenshots that is not publicly available elsewhere &#8211; in this case mostly at <a href="http://thebuildingcoder.typepad.com">Building Coder</a> blog.<br />
</em><br />
A few months ago I got the opportunity to do some programming for reasons other than curiosity or fun. A bunch of clever guys came up with a few ideas on how to improve their Revit workflow and they asked us to translate those ideas into code.</p>
<p><strong>The problem</strong><br />
Before I explain what the plug-in does I should take a step back and show what problem it is trying to solve. <a href="http://revitclinic.typepad.com">Revit Clinic</a> touches on that in a bit more detail <a href="http://revitclinic.typepad.com/my_weblog/2010/03/sort-order-referencing-sheet-parameters-dependent-views.html">here</a>, but the short version is that the &#8220;Referencing Sheet&#8221; parameter always references the first view in which the given section appears. If there are dozens or hundreds of views, hiding the section tag in all but the one that you want, may be a very time consuming and tedious task.</p>
<p><strong>The solution</strong><br />
Quite simple really but unfortunately the details are confidential&#8230;</p>
<p><strong>The workaround</strong><br />
When I wrote the first version of that plug-in, it all worked great except for one small part. The problem was that the &#8220;Referencing Sheet&#8221; parameter was not updated automatically as it should happen &#8211; clearly a bug in Revit. Fortunately, the guys at ADN were able to suggest a workaround. A simple trick &#8211; changing the discipline of the section view and then bringing it back to what it was originally. Everything within the same transaction! I was quite surprised that it worked but it did so that&#8217;s what counts. Here&#8217;s a snippet of the code that does that.</p>
<p><script src="https://gist.github.com/778928.js?file=UpdateReferencingSheet.cs"></script></p>
<p><strong> </strong></p>
<p><strong>Shameless plug</strong><br />
I&#8217;ve had tons of fun developing that plug-in and I wouldn&#8217;t mind repeating that experience. In fact, I have already created a few other Revit plug-ins and looking forward to creating some more in the future. If you or your company has an idea for a Revit plug-in that would make your life easier let us know through the comment in this blog &#8211; I won&#8217;t publish those comments to keep your inquiries private.</p>
<p><strong>The thanks</strong><br />
Big &#8220;Thank you&#8221; goes to <a href="http://thebuildingcoder.typepad.com/">Jeremy Tammik</a> and the rest of the AEC DevTech team at <a href="http://adn.autodesk.com/">ADN</a>. The level of support they provide is amazing and that was a very big part of why I enjoyed working on that plug-in.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.piotrzurek.net/2011/01/14/my-first-revit-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>World&#8217;s first F# web browser runs on Linux using Gtk and WebKit</title>
		<link>http://www.piotrzurek.net/2009/07/11/worlds-first-f-web-browser-runs-on-linux-using-gtk-and-webkit/</link>
		<comments>http://www.piotrzurek.net/2009/07/11/worlds-first-f-web-browser-runs-on-linux-using-gtk-and-webkit/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 02:47:53 +0000</pubDate>
		<dc:creator>piotr</dc:creator>
				<category><![CDATA[Blog entries]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[F#]]></category>
		<category><![CDATA[Functional programming]]></category>
		<category><![CDATA[Gtk#]]></category>

		<guid isPermaLink="false">http://www.piotrzurek.net/?p=221</guid>
		<description><![CDATA[After a long break I finally managed to do some programming for fun. This time I decided to see what WebKit has to offer and at the same time create the world&#8217;s first browser written in F#. I whipped it up in a couple of hours and the the whole experience was highly enjoyable, thanks [...]]]></description>
			<content:encoded><![CDATA[<p>After a long break I finally managed to do some programming for fun. This time I decided to see what WebKit has to offer and at the same time create the world&#8217;s first browser written in F#. I whipped it up in a couple of hours and the the whole experience was highly enjoyable, thanks to F#&#8217;s succinct syntax and WebKit&#8217;s and Gtk#&#8217;s easy APIs. In fact it got me so positively wound up that I&#8217;ve put shampoo on my toothbrush and then I didn&#8217;t remember if I washed my hair already. The only thing missing was MonoDevelop with full F# support, but that I guess, will happen sooner or later. I would also love to see MS finally release F# under Ms-PL so that I could use it for something actually useful. Anyway, here&#8217;s a screenshot:</p>
<p><a href="http://farm4.static.flickr.com/3485/3708914208_c1de57d3c9_o.png" rel="lightbox[221]"><img class="alignnone" title="FebKit - F#, Gtk#, WebKit" src="http://farm4.static.flickr.com/3485/3708914208_d5bd98cd14.jpg" alt="" width="500" height="442" /></a></p>
<p>Compiled binary is <a href="http://files.getdropbox.com/u/118505/FebKit.exe">here</a>, but good luck getting it to run. Source code it<a href="http://gist.github.com/144209"> here</a>.<br />
If you decide to run it, I would recommend doing that on Ubuntu Karmic (9.10 alfa 2). When I run that on 9.04 it crashes and I think that an older version of WebKit is responsible for that.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.piotrzurek.net/2009/07/11/worlds-first-f-web-browser-runs-on-linux-using-gtk-and-webkit/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>More fun with Gtk# and Cairo in F#</title>
		<link>http://www.piotrzurek.net/2008/12/03/more-fun-with-gtk-and-cairo-in-f/</link>
		<comments>http://www.piotrzurek.net/2008/12/03/more-fun-with-gtk-and-cairo-in-f/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 18:37:48 +0000</pubDate>
		<dc:creator>piotr</dc:creator>
				<category><![CDATA[Blog entries]]></category>
		<category><![CDATA[Cairo]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[F#]]></category>
		<category><![CDATA[Functional programming]]></category>
		<category><![CDATA[Gtk#]]></category>

		<guid isPermaLink="false">http://www.piotrzurek.net/?p=200</guid>
		<description><![CDATA[This time it has taken me more than I planned but I finally have something to show off. As usual the compiled exe here and the full code here. This week I have really struggled to figure out how to mix functional and imperative concpets. After a few days of trying to recursively build an [...]]]></description>
			<content:encoded><![CDATA[<p>This time it has taken me more than I planned but I finally have something to show off.</p>
<p style="text-align: center;"><a rel="lightbox" href="http://www.piotrzurek.net/wp-content/uploads/2008/12/screenshot-fucull.png"><img class="aligncenter size-full wp-image-198" title="Fucull" src="http://www.piotrzurek.net/wp-content/uploads/2008/12/screenshot-fucull.png" alt="" width="462" height="370" /></a></p>
<p>As usual the compiled exe <a href="http://dl.getdropbox.com/u/118505/Fucull.exe">here</a> and the full code <a href="http://gist.github.com/31071/">here</a>.</p>
<p>This week I have really struggled to figure out how to mix functional and imperative concpets. After a few days of trying to recursively build an F# list I gave up and resorted to using a ResizeArray&lt;&gt; which is simply an equivalent of C# List&lt;&gt;. I really wonder if a bit more &#8220;functional&#8221; way of building a list is possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.piotrzurek.net/2008/12/03/more-fun-with-gtk-and-cairo-in-f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another F# sunday</title>
		<link>http://www.piotrzurek.net/2008/11/23/another-f-sunday/</link>
		<comments>http://www.piotrzurek.net/2008/11/23/another-f-sunday/#comments</comments>
		<pubDate>Sun, 23 Nov 2008 08:30:38 +0000</pubDate>
		<dc:creator>piotr</dc:creator>
				<category><![CDATA[Blog entries]]></category>
		<category><![CDATA[Cairo]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[F#]]></category>
		<category><![CDATA[Functional programming]]></category>
		<category><![CDATA[Gtk#]]></category>

		<guid isPermaLink="false">http://www.piotrzurek.net/?p=185</guid>
		<description><![CDATA[So, another weekend, another F# excercise. This time I decided have some fun with Cairo inside Gtk# and a port of the old Knockout example from C# seemed like a prefect idea. Here&#8217;s what I got: Compiled executable here, code here. Now, what I&#8217;ve done was pretty much a simple &#8220;translation&#8221; to get it running [...]]]></description>
			<content:encoded><![CDATA[<p>So, another weekend, another F# excercise. This time I decided have some fun with Cairo inside Gtk# and a port of the old <a href="http://anonsvn.mono-project.com/viewvc/trunk/mcs/class/Mono.Cairo/Samples/png/knockout.cs?revision=54543&amp;content-type=text%2Fplain">Knockout</a> example from C# seemed like a prefect idea. Here&#8217;s what I got:</p>
<p><img class="aligncenter size-full wp-image-186" title="F# Cairo" src="http://www.piotrzurek.net/wp-content/uploads/2008/11/f-cairo.png" alt="" width="420" height="449" /></p>
<p>Compiled executable <a href="http://dl.getdropbox.com/u/118505/FsCairo.exe">here</a>, code <a href="http://gist.github.com/28157">here</a>. Now, what I&#8217;ve done was pretty much a simple &#8220;translation&#8221; to get it running but I would love to make the code really functional. So, go headed and comment on what I could change to do it.</p>
<p><strong><br />
Another embarrassing udpate: fixed indentation</strong><br />
<strong><br />
Update 2: indentation is broken by WordPress editor. Code replaced with a link. </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.piotrzurek.net/2008/11/23/another-f-sunday/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Playing with F#</title>
		<link>http://www.piotrzurek.net/2008/11/16/playing-with-f/</link>
		<comments>http://www.piotrzurek.net/2008/11/16/playing-with-f/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 08:05:15 +0000</pubDate>
		<dc:creator>piotr</dc:creator>
				<category><![CDATA[Blog entries]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[F#]]></category>
		<category><![CDATA[Functional programming]]></category>
		<category><![CDATA[Gtk#]]></category>

		<guid isPermaLink="false">http://www.piotrzurek.net/?p=175</guid>
		<description><![CDATA[This little pretty window: is a result of this tiny bit of F# code: #light open System open Gtk Application.Init() let window = new Gtk.Window(&#8220;F# Gtk&#8221;) let vBox = new Gtk.VBox() let closeButton = new Gtk.Button() let label = new Gtk.Label(&#8220;Hello World!&#8221;) window.WindowPosition &#60; &#8211; Gtk.WindowPosition.Center window.SetDefaultSize(160, 40) window.Destroyed.Add(fun _ -&#62; Application.Quit() ) closeButton.Label &#60; [...]]]></description>
			<content:encoded><![CDATA[<p>This little pretty window:</p>
<p><img class="aligncenter size-full wp-image-176" title="F# GTK" src="http://www.piotrzurek.net/wp-content/uploads/2008/11/fsgtk.png" alt="" width="180" height="123" /></p>
<p>is a result of this tiny bit of F# code:<br />
<code><br />
#light</code></p>
<p>open System<br />
open Gtk</p>
<p>Application.Init()</p>
<p>let window = new Gtk.Window(&#8220;F# Gtk&#8221;)<br />
let vBox = new Gtk.VBox()<br />
let closeButton = new Gtk.Button()<br />
let label = new Gtk.Label(&#8220;Hello World!&#8221;)</p>
<p>window.WindowPosition &lt; &#8211; Gtk.WindowPosition.Center<br />
window.SetDefaultSize(160, 40)<br />
window.Destroyed.Add(fun _ -&gt; Application.Quit() )</p>
<p>closeButton.Label &lt; &#8211; &#8220;Close&#8221;<br />
closeButton.Clicked.Add(fun _ -&gt; Application.Quit() )</p>
<p>vBox.BorderWidth &lt; &#8211; (uint32) 6<br />
vBox.PackStart(label, false, false, (uint32) 6)<br />
vBox.PackStart(closeButton, false, false, (uint32) 6)</p>
<p>window.Add(vBox)<br />
window.ShowAll()</p>
<p><strong>//brown paperbag update: I&#8217;ve missed this line during Copy/Paste</strong><br />
Application.Run()</p>
<p>Next step is piece of code that actually does something semi-useful. I&#8217;m thinking about implementing a convex hull algorithm which F# seems pretty well suited for.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.piotrzurek.net/2008/11/16/playing-with-f/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

