<?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>base42.nl &#187; workflow</title>
	<atom:link href="http://blog.base42.nl/category/workflow/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.base42.nl</link>
	<description></description>
	<lastBuildDate>Tue, 07 Feb 2012 19:40:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>LiveReload</title>
		<link>http://blog.base42.nl/2011/livereload/</link>
		<comments>http://blog.base42.nl/2011/livereload/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 15:18:10 +0000</pubDate>
		<dc:creator>jankees</dc:creator>
				<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://blog.base42.nl/?p=1861</guid>
		<description><![CDATA[When I am development mode i constantly do command-tab to the browser, where I press command-R. I stumbled upon a solution for this! I have been using it today and it works pretty well! It even compiles Sass, Coffeescript etc.. For more information see: livereload.com]]></description>
			<content:encoded><![CDATA[<p>When I am development mode i constantly do command-tab to the browser, where I press command-R. I stumbled upon a solution for this! I have been using it today and it works pretty well! It even compiles Sass, Coffeescript etc..</p>
<p><img class="size-large wp-image-1862 alignnone" title="Livereload" src="http://blog.base42.nl/wp-content/uploads/Screen-Shot-2011-12-19-at-16.16.52-650x479.png" alt="" width="650" height="479" /></p>
<p>For more information see: <a title="livereload.com" href="http://livereload.com/" target="_blank">livereload.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.base42.nl/2011/livereload/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lessons learned; starting a new project</title>
		<link>http://blog.base42.nl/2011/lessons-learned-starting-a-new-project/</link>
		<comments>http://blog.base42.nl/2011/lessons-learned-starting-a-new-project/#comments</comments>
		<pubDate>Tue, 17 May 2011 07:15:05 +0000</pubDate>
		<dc:creator>jankees</dc:creator>
				<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://blog.base42.nl/?p=1628</guid>
		<description><![CDATA[I would like to share some things I have learned during the last few years while working as a freelance developer. These are some basic steps I use for almost every project&#8230; Use a default folder structure Whenever I start a project, I always start by creating a new folder in my projects folder. The [...]]]></description>
			<content:encoded><![CDATA[<p>I would like to share some things I have learned during the last few years while working as a freelance developer. These are some basic steps I use for almost every project&#8230;</p>
<h3>Use a default folder structure</h3>
<p>Whenever I start a project, I always start by creating a new folder in my projects folder. The contents of this folder looks like this:</p>
<p><img class="alignnone size-large wp-image-1629" title="Default folder stucture" src="http://blog.base42.nl/wp-content/uploads/Screen-shot-2011-05-16-at-20.22.13-650x79.jpg" alt="01_managment, 02_docs, 03_interaction, 04_design, 05_development, 06_dropbox" width="650" height="79" /></p>
<p>I prefix the folders with a number so they are ordered in a reasonable fashion. I only use the &#8217;06_dropbox&#8217; folder if I work with someone else, so that one is not always required..</p>
<h3>Use revision control software</h3>
<p>This one is kind of obvious, but I put it in this list because I talked to a developer last week who still was working without any revision control software. So I really encourage you to use SVN or Git. Personally I prefer Git because it&#8217;s much more portable and you don&#8217;t need to have a server to save your revisions.</p>
<h3>Automate the boring stuff</h3>
<p>Another thing I learned is that clients like to see the current progress of the project and because they aren&#8217;t always around to look on your screen (which is a good thing) I upload my progress to my staging server. If you use a regular FTP program this could take a few minutes. First you open FTP, login to your server, find the right folder and upload. This manual uploading has two problems. The first is that it&#8217;s really slow. The second; you can make a lot of mistakes. Those two reasons made me choose for automation. So you probably wonder how you automate uploading a bunch of files?</p>
<p>The easiest way is use <a title="Automator" href="http://en.wikipedia.org/wiki/Automator_(software)" target="_blank">Automator</a> (which ships with every Mac), and create a workflow which resembles this:</p>
<p><img class="alignnone size-full wp-image-1630" title="Screen shot 2011-05-16 at 20.38.29" src="http://blog.base42.nl/wp-content/uploads/Screen-shot-2011-05-16-at-20.38.29.jpg" alt="" width="613" height="440" /></p>
<p>Alternatively you could do it the way I do it, this is slightly more dificult and requires a server with <a title="SSH" href="http://en.wikipedia.org/wiki/Secure_Shell" target="_blank">SSH</a> access. The majority of shared hosting providers don&#8217;t provide you this kind of access unfortunately. If you have access, you could use this code sniplet to upload your project using <a href="http://en.wikipedia.org/wiki/Rsync" target="_blank">RSync</a>. This method is much faster because it does a comparison on byte level before starting the upload.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">URL</span>=<span style="color: #ff0000;">&quot;http://clients.base42.nl/projectname/&quot;</span>
rsync <span style="color: #660033;">--recursive</span> <span style="color: #660033;">--checksum</span> <span style="color: #660033;">--progress</span> <span style="color: #660033;">--compress</span> <span style="color: #660033;">--update</span> <span style="color: #660033;">--delete</span>  folder-to-upload<span style="color: #000000; font-weight: bold;">/</span> base42.nl:<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>jankeesvw<span style="color: #000000; font-weight: bold;">/</span>upload-to-this-folder<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$URL</span> <span style="color: #000000; font-weight: bold;">|</span> pbcopy
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Upload to staging complete, link copied to clipboard: <span style="color: #007800;">$URL</span>&quot;</span>
<span style="color: #000000; font-weight: bold;">/</span>Users<span style="color: #000000; font-weight: bold;">/</span>jankees<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>binaries<span style="color: #000000; font-weight: bold;">/</span>growlnotify <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;Upload complete, link copied to clipboard: <span style="color: #007800;">$URL</span>&quot;</span></pre></td></tr></table></div>

<p>This defines a variable (line 1) then uploads it to my sever (line 2) copies the link to my clipboard (line 3) outputs a text to the console and to growl so I notice it&#8217;s done (line 4 and 5)</p>
<h3>Use (and update) frameworks</h3>
<p>When I work on projects I rely on open source projects; this is what I am currently using:</p>
<ul>
<li>Flash: <a href="http://www.robotlegs.org/" target="_blank">Robotlegs</a>, <a href="https://github.com/epologee/navigator-as3" target="_blank">Navigator-AS3</a>, <a href="https://github.com/base42/LogMeister" target="_blank">LogMeister</a>, <a href="http://www.minimalcomps.com/" target="_blank">MinimalComps</a>, <a href="http://www.greensock.com/tweenlite/" target="_blank">Tweenlite</a> and <a href="https://github.com/robertpenner/as3-signals/wiki/" target="_blank">Signals-as3 </a></li>
<li>HTML: <a href="http://html5boilerplate.com/" target="_blank">Boilerplate</a>, <a href="http://www.blueprintcss.org/" target="_blank">Blueprint</a>, <a href="http://compass-style.org/reference/compass/" target="_blank">Compass</a> and <a href="http://jquery.com/" target="_blank">JQuery</a></li>
<li>PHP: <a href="http://cakephp.org/" target="_blank">CakePHP</a></li>
</ul>
<p>Another part of using frameworks is updating them, this can be a hard thing because it involves a lot of steps. That&#8217;s why I created an automation for this too! I put the shell script in a <a href="https://gist.github.com/975100" target="_blank">gist on github</a> so you can see how it works. (<a href="http://www.inlet.nl" target="_blank">Patrick Brouwer</a> helped me building this). With my update script it&#8217;s really easy to update the external frameworks and I do this every few days when I work on a project.</p>
<h3>Prepare a project to run in different environments</h3>
<p>The last but not least is to prepare your projects to be ran in different environments. What this means is to be sure that your application is aware of it&#8217;s current location. To give an example. My flash project knows if it&#8217;s on the real server or on my local machine. If it&#8217;s on my local machine it generates some test data and shows some debug information. This does not mean I set something manualy everytime I publish to the server. This is some code that is smart enough to detect it&#8217;s current state. This is a glimp of what I use in Flash:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span> browserpath : <span style="color: #0066CC;">String</span> = <span style="color: #0066CC;">stage</span>.<span style="color: #006600;">loaderInfo</span>.<span style="color: #006600;">loaderURL</span>;
<span style="color: #000000; font-weight: bold;">var</span> isLive : <span style="color: #0066CC;">Boolean</span> = <span style="color: #000000; font-weight: bold;">true</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> localPaths : <span style="color: #0066CC;">Array</span> = <span style="color: #66cc66;">&#91;</span><span style="color: #000000; font-weight: bold;">new</span> RegExp<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;file://&quot;</span>, <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #000000; font-weight: bold;">new</span> RegExp<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;/localhost/&quot;</span>, <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #000000; font-weight: bold;">new</span> RegExp<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;.local/&quot;</span>, <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>;
<span style="color: #b1b100;">for</span> <span style="color: #b1b100;">each</span> <span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> regexp : RegExp <span style="color: #b1b100;">in</span> localPaths<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>browserpath.<span style="color: #006600;">match</span><span style="color: #66cc66;">&#40;</span>regexp<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
      isLive = <span style="color: #000000; font-weight: bold;">false</span>;
   <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>isLive<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
   <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;You are on a server!&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #66cc66;">&#123;</span>
   <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Hi developer&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>I hope this helps to optimize your workflow. If you have other suggestions please let me know!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.base42.nl/2011/lessons-learned-starting-a-new-project/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Todomeister</title>
		<link>http://blog.base42.nl/2011/todomeister/</link>
		<comments>http://blog.base42.nl/2011/todomeister/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 14:11:18 +0000</pubDate>
		<dc:creator>jankees</dc:creator>
				<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://blog.base42.nl/?p=1440</guid>
		<description><![CDATA[Today I want to share my latest project that I started about two weeks ago. This idea came to me months ago while working on a freelance job at a studio in Amsterdam. Me and my fellow co-worker created a typical scrumboard for the project we were working on. (below you see the first result when [...]]]></description>
			<content:encoded><![CDATA[<p>Today I want to share my latest project that I started about two weeks ago. This idea came to me months ago while working on a freelance job at a studio in Amsterdam. Me and my fellow co-worker created a typical scrumboard for the project we were working on. (below you see the first result when you Google-Image search for the term &#8216;scrumboard&#8217;).</p>
<p><img class="size-full wp-image-1441" title="Typical scrumboard" src="http://blog.base42.nl/wp-content/uploads/scrum-board.jpg" alt="" width="500" height="323" /></p>
<p>So what is a scrumboard? A scrumboard is basically a todolist with three columns, <em>t</em><em>odo</em>, in <em>progress</em> and <em>done</em>. I really like this approach when it comes to keeping track of todos.</p>
<p>There is nothing wrong with keeping this analog feel with post-it&#8217;s. However this analog approach has it&#8217;s downsides.</p>
<p>The problem with this analog version came up when I wanted to work from home, because I couldn&#8217;t see or move items on the todolist. So I thought to myself why not make this into a simple webapp so everybody can use this from where ever they are at that moment. So that&#8217;s when I started &#8216;todomeister&#8217;.</p>
<p>After a few days there was a first prototype I could use for my own projects and in the following weeks this first prototype evolved while I continued to work on it. And I can safely say it&#8217;s stable and usable for other people at this moment (I even passed the 1.0 version number).</p>
<p>I want to keep Todomeister really simple, just like the analog version. So no user management system or project management system. Just pick a project name and go, create a digital scrumboard in a split second!</p>
<p>Here are some photos of Todomeister running on my iPad.</p>
<p><img class="alignnone size-large wp-image-1443" title="Screenshot todomeister" src="http://blog.base42.nl/wp-content/uploads/IMG_1595-650x485.jpg" alt="" width="650" height="485" /></p>
<p><img class="alignnone size-large wp-image-1444" title="Screenshot todomeister" src="http://blog.base42.nl/wp-content/uploads/IMG_1596-650x485.jpg" alt="" width="650" height="485" /></p>
<p>If you want to try it for yourself go to <a title="todomeister " href="http://todo.base42.nl" target="_blank">http://todo.base42.nl</a>.</p>
<p>There is also the possibility to install it on your own server if you would like some more privacy  *although I got password protection for a todolist*</p>
<p>Some of the features are</p>
<ul>
<li>Draggable todo&#8217;s</li>
<li>Color coding</li>
<li>Project archive</li>
<li>Password protection</li>
<li>iPad compatible</li>
<li>NO user managment</li>
<li>NO project managment</li>
</ul>
<p>I hope you guys can give it a test drive, and please provide feedback in the comments so I can continue to improve it.</p>
<p>I want to give some additional credit to Jeroen Braspenning from EDHV for upgrading my original design! And to Bernard Visser for hosting the site!</p>
<p>*last note, it&#8217;s on <a href="https://github.com/base42/todomeister" target="_blank">github</a> as well*</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.base42.nl/2011/todomeister/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Invisible launching of apps on OSX</title>
		<link>http://blog.base42.nl/2011/invisible-launching-of-apps-on-osx/</link>
		<comments>http://blog.base42.nl/2011/invisible-launching-of-apps-on-osx/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 10:27:46 +0000</pubDate>
		<dc:creator>jankees</dc:creator>
				<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://blog.base42.nl/?p=1402</guid>
		<description><![CDATA[I was wondering how this could have happened. After seeing the following screen I got suspicious. When I started to dig into this problem, @cottow pointed me in the right direction. When I opened the Console.app I saw lot&#8217;s of errors: Then I found out that there were some applications I removed a long time [...]]]></description>
			<content:encoded><![CDATA[<p>I was wondering how this could have happened. After seeing the following screen I got suspicious.</p>
<p><img class="alignnone size-large wp-image-1403" title="Terminal error" src="http://blog.base42.nl/wp-content/uploads/8fj-650x276.png" alt="" width="650" height="276" /></p>
<p>When I started to dig into this problem, <a href="http://twitter.com/cottow">@cottow</a> pointed me in the right direction. When I opened the Console.app I saw lot&#8217;s of errors:</p>
<p><img class="alignnone size-large wp-image-1404" title="Console.app" src="http://blog.base42.nl/wp-content/uploads/Screen-shot-2011-01-27-at-11.20.54--650x282.png" alt="" width="650" height="282" /><br />
Then I found out that there were some applications I removed a long time ago still polling in the background. You can fix this by removing the .plist files in:</p>
<ul>
<li><em>/Library/LaunchAgents</em></li>
<li><em>/Users/<strong>Youruser</strong>/Library/LaunchAgents</em></li>
</ul>
<p>I think it’s good for everyone to take a look at these folders, because there is a big chance you will have some agents there as well.</p>
<p>My laptop got a whole lot faster since I fixed this!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.base42.nl/2011/invisible-launching-of-apps-on-osx/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Lessons learned: custom post type archives in WordPress</title>
		<link>http://blog.base42.nl/2010/lessons-learned-custom-post-type-archives-in-wordpress/</link>
		<comments>http://blog.base42.nl/2010/lessons-learned-custom-post-type-archives-in-wordpress/#comments</comments>
		<pubDate>Wed, 03 Nov 2010 07:42:24 +0000</pubDate>
		<dc:creator>jankees</dc:creator>
				<category><![CDATA[workflow]]></category>
		<category><![CDATA[Adobe User Group XL]]></category>
		<category><![CDATA[AUG]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://blog.base42.nl/?p=1310</guid>
		<description><![CDATA[Since WordPress 2.9 there is a new feature I really like, and in the current project I am doing right now I found something I didn&#8217;t know. To give a quick summary, since a few months I work for the Adobe User Group Netherlands. And together with my partner in crime Niels de Keizer I [...]]]></description>
			<content:encoded><![CDATA[<p>Since <a href="http://codex.wordpress.org/Version_2.9">WordPress 2.9</a> there is a new feature  I really like, and in the current project I am doing right now I found something I didn&#8217;t know.</p>
<p>To give a quick summary, since a few months I work for the Adobe User Group Netherlands. And together with my partner in crime <a href="http://www.adobeusergroup.nl/site/page/niels_de_keizer_nyls">Niels de Keizer</a> I am building a mobile website for the Adobe User Group XL event. This website will be the guide for all visitors of the event, and contains a map, the program, and a description of all speakers. We decided to make this mobile website in WordPress because it fits to our needs and it&#8217;s an efficient way to build something like this.</p>
<p>We created some custom post types, which is a commonly used feature since WordPress 2.9. With this feature you can easily create custom types of content for your website. This is the menu we build in the WordPress admin for the AUGXL website:</p>
<p><img class="alignnone size-full wp-image-1318" src="http://blog.base42.nl/wp-content/uploads/Screen-shot-2010-10-30-at-14.17.24-.png" alt="" width="164" height="153" /></p>
<p><span id="more-1310"></span></p>
<p>The code you need to build the sponsors item is below:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">register_post_type<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'sponsors'</span><span style="color: #339933;">,</span>
	<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
		<span style="color: #0000ff;">'labels'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
			<span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> __<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Sponsors'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #0000ff;">'singular_name'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> __<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Sponsors'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #0000ff;">'add_new'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> __<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Add sponsor'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #0000ff;">'add_new_item'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> __<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Add new sponsor'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #0000ff;">'edit'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> __<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Edit'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #0000ff;">'edit_item'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> __<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Edit sponsor'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #0000ff;">'new_item'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> __<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'New Sponsor'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #0000ff;">'view'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> __<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'View sponsors'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #0000ff;">'view_item'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> __<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'View sponsor'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #0000ff;">'search_items'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> __<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Search for sponsor'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #0000ff;">'not_found'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> __<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Sponsor not found'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #0000ff;">'not_found_in_trash'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> __<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'No sponsors in trash'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #0000ff;">'parent'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> __<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Parent'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'public'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'show_ui'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'_builtin'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'capability_type'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">'post'</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'hierarchical'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'supports'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'title'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'editor'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'thumbnail'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'revisions'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'custom-fields'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'post-thumbnails'</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>When you create a sponsor it gets a custom link like <em>www.website.com/sponsors/sponsor-xyz</em> and WordPress loads this from the <em>single-sponsor.php</em> template page.</p>
<p>That&#8217;s awesome, but there comes the problem, you also need a list of all sponsors. By default this is all done in the <em>index.php</em> and if you have a lot of custom post types your <em>index.php</em> gets really messy!</p>
<p>The best thing to do would be to redirect <em>www.website.com/sponsors</em> to <em>sponsors.php</em>. This is not possible by default. However this will be in the next major version of WordPress! For now you need this <a href="http://ratvars.com/custom-post-type-archives/">plugin</a> by Rolands Atvars. If you use this plugin you create a list of custom post type items (a custom post type archive) in separate php files. Awesome!</p>
<p>The plugin looks like this:</p>
<p><img title="Custom post types plugin screenshot" src="../wp-content/uploads/Screen-shot-2010-11-03-at-08.04.02--650x230.png" alt="" width="650" height="230" /></p>
<p>This is a preview of the mobile website we are building:</p>
<p><img class="alignnone size-full wp-image-1323" title="Adobe User Group XL mobile website" src="http://blog.base42.nl/wp-content/uploads/Screen-shot-2010-11-02-at-10.10.36-.png" alt="" width="414" height="770" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.base42.nl/2010/lessons-learned-custom-post-type-archives-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Getting Google Maps in your CMS</title>
		<link>http://blog.base42.nl/2010/getting-google-maps-in-your-cms/</link>
		<comments>http://blog.base42.nl/2010/getting-google-maps-in-your-cms/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 08:00:53 +0000</pubDate>
		<dc:creator>jankees</dc:creator>
				<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://blog.base42.nl/?p=1223</guid>
		<description><![CDATA[A few weeks ago I finished my first big Google Maps project. My client &#8216;Gemeente Deurne&#8217; asked me to make an interactive map where they could show their inhabitants where valuable trees where found within the city. I decided to use Google Maps for this project. Gemeente Deurne wanted to show single trees, lines of [...]]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago I finished my first big Google Maps project. My client &#8216;Gemeente Deurne&#8217; asked me to make an interactive map where they could show their inhabitants where valuable trees where found within the city. I decided to use Google Maps for this project. Gemeente Deurne wanted to show single trees, lines of trees and small forests (shapes). To do this I needed to come up with a way to store this information in the database. In this post I want to show you how I did this.</p>
<p><span id="more-1223"></span></p>
<p>After some testing and thinking I came up with the following format to save the coordinates as a single string.</p>
<p>For a line:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&#123;</span>line<span style="color: #66cc66;">&#125;</span>::<span style="color: #66cc66;">&#123;</span><span style="color: #cc66cc;">51.46501341580547</span>:<span style="color: #cc66cc;">5.792863368988037</span><span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span><span style="color: #cc66cc;">51.4642714876185</span>:<span style="color: #cc66cc;">5.794955492019653</span><span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span><span style="color: #cc66cc;">51.46358302094324</span>:<span style="color: #cc66cc;">5.794869661331177</span><span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span><span style="color: #cc66cc;">51.46343596846251</span>:<span style="color: #cc66cc;">5.793324708938599</span><span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Points:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&#123;</span>point<span style="color: #66cc66;">&#125;</span>::<span style="color: #66cc66;">&#123;</span><span style="color: #cc66cc;">51.46501341580547</span>:<span style="color: #cc66cc;">5.792863368988037</span><span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span><span style="color: #cc66cc;">51.4642714876185</span>:<span style="color: #cc66cc;">5.794955492019653</span><span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span><span style="color: #cc66cc;">51.46358302094324</span>:<span style="color: #cc66cc;">5.794869661331177</span><span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span><span style="color: #cc66cc;">51.46343596846251</span>:<span style="color: #cc66cc;">5.793324708938599</span><span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Shape:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&#123;</span>fill<span style="color: #66cc66;">&#125;</span>::<span style="color: #66cc66;">&#123;</span><span style="color: #cc66cc;">51.46501341580547</span>:<span style="color: #cc66cc;">5.792863368988037</span><span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span><span style="color: #cc66cc;">51.4642714876185</span>:<span style="color: #cc66cc;">5.794955492019653</span><span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span><span style="color: #cc66cc;">51.46358302094324</span>:<span style="color: #cc66cc;">5.794869661331177</span><span style="color: #66cc66;">&#125;</span>,<span style="color: #66cc66;">&#123;</span><span style="color: #cc66cc;">51.46343596846251</span>:<span style="color: #cc66cc;">5.793324708938599</span><span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>After I came up with this format I needed an easy way to let users insert these coordinates in my database. I wanted to make something that had the least impact, so I didn&#8217;t need to rewrite the whole CMS that I allready had written. Therefore I created a small Flash widget that easily could be hooked into the CMS. I did a little jQuery magic to make this possible. First I load the regular edit page. When the page is done loading I let jQuery look for a textfield called &#8216;treeCoordinates&#8217;. When jQuery finds the textfield it hides it and places my Flash widget below it. In this way the user only sees the Flash widget and not the data it outputs. The Flash widget writes all it&#8217;s data directly in the invisible textfield. The nice thing about this is the CMS doensn&#8217;t care that the textfield is actually filled by a Flash widget instead of a user.</p>
<p>This is what the editor looks like with a visible textfield:</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/_c6Rnt1fhCc&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/_c6Rnt1fhCc&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p>Another vital part of my little coordinate system is my AS3 parser. The parser reads the string from the database and converts in to Google maps LatLng objects. I want to share the parser with you so you can use this in your own Google Maps project. The parser can be found on GitHub: <a href="http://gist.github.com/458361" target="_blank">http://gist.github.com/458361</a></p>
<p>If you want to see the complete project please see this video from my portfolio:</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/sqGMt42kji0&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/sqGMt42kji0&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p>If you have any comments or questions, please leave a comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.base42.nl/2010/getting-google-maps-in-your-cms/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Create projects in a breeze</title>
		<link>http://blog.base42.nl/2010/create-projects-in-a-breeze/</link>
		<comments>http://blog.base42.nl/2010/create-projects-in-a-breeze/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 14:26:54 +0000</pubDate>
		<dc:creator>jankees</dc:creator>
				<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://blog.base42.nl/?p=1188</guid>
		<description><![CDATA[I am working on a script to create complete projects in few seconds, this is very usefull when you prototype a lot. Or when you just want to do the boring stuff twice&#8230; :) The script copies a folder and then does a search and replace on the content. Let me know if you are [...]]]></description>
			<content:encoded><![CDATA[<p>I am working on a script to create complete projects in few seconds, this is very usefull when you prototype a lot. Or when you just want to do the boring stuff twice&#8230; :) The script copies a folder and then does a search and replace on the content.</p>
<p>Let me know if you are interested&#8230;</p>
<p><object width="650" height="500"><param name="movie" value="http://www.youtube.com/v/r7nMlXWJSck&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/r7nMlXWJSck&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="650" height="500"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.base42.nl/2010/create-projects-in-a-breeze/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Create a project for FDT fast!!</title>
		<link>http://blog.base42.nl/2010/create-a-project-for-fdt-fast/</link>
		<comments>http://blog.base42.nl/2010/create-a-project-for-fdt-fast/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 17:59:49 +0000</pubDate>
		<dc:creator>jankees</dc:creator>
				<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://blog.base42.nl/?p=1097</guid>
		<description><![CDATA[I made a terminal script for creating new FDT projects. I use it when I want to test something or create a prototype. The code can be found on the post detail page. #!/bin/sh &#160; # ------------------------------ # - FDT stub project creator - # - Jankees van Woezik, 2010 - # - http://blog.base42.nl - [...]]]></description>
			<content:encoded><![CDATA[<p>I made a terminal script for creating new FDT projects. I use it when I want to test something or create a prototype.</p>
<p><a href="http://blog.base42.nl/wp-content/uploads/Screen-shot-2010-01-18-at-18.18.23-.png"><img src="http://blog.base42.nl/wp-content/uploads/Screen-shot-2010-01-18-at-18.18.23--650x321.png" alt="" title="Screenshot of terminal script" width="650" height="321" class="alignnone size-large wp-image-1098" /></a></p>
<p>The code can be found on the post detail page.</p>
<p><span id="more-1097"></span></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># ------------------------------</span>
<span style="color: #666666; font-style: italic;"># -  FDT stub project creator  - </span>
<span style="color: #666666; font-style: italic;"># -  Jankees van Woezik, 2010  -</span>
<span style="color: #666666; font-style: italic;"># -   http://blog.base42.nl    -</span>
<span style="color: #666666; font-style: italic;"># -      januari 11, 2010      -</span>
<span style="color: #666666; font-style: italic;"># ------------------------------</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$#</span> <span style="color: #660033;">-ne</span> <span style="color: #000000;">1</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">then</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;&quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Problem, missing path&quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Usage: ./create_project.sh &lt;path&gt; &quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;&quot;</span>
<span style="color: #000000; font-weight: bold;">else</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;&quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;What's the name of the project:&quot;</span>
	<span style="color: #c20cb9; font-weight: bold;">read</span> project_name
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;&quot;</span>	
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;creating folder: $1&quot;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">#####</span>
	<span style="color: #666666; font-style: italic;"># Create project folder</span>
	<span style="color: #666666; font-style: italic;">#####</span>
&nbsp;
	<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #007800;">$1</span>	
&nbsp;
	<span style="color: #666666; font-style: italic;">#####</span>
	<span style="color: #666666; font-style: italic;"># Create AS3_ClassPath</span>
	<span style="color: #666666; font-style: italic;">#####</span>
&nbsp;
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;creating file: $1/.as3_classpath&quot;</span>
&nbsp;
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;&lt;?xml version=<span style="color: #000099; font-weight: bold;">\&quot;</span>1.0<span style="color: #000099; font-weight: bold;">\&quot;</span> encoding=<span style="color: #000099; font-weight: bold;">\&quot;</span>UTF-8<span style="color: #000099; font-weight: bold;">\&quot;</span> standalone=<span style="color: #000099; font-weight: bold;">\&quot;</span>no<span style="color: #000099; font-weight: bold;">\&quot;</span>?&gt;
&lt;AS3Classpath&gt;
    &lt;AS3Classpath generateProblems=<span style="color: #000099; font-weight: bold;">\&quot;</span>false<span style="color: #000099; font-weight: bold;">\&quot;</span> type=<span style="color: #000099; font-weight: bold;">\&quot;</span>lib<span style="color: #000099; font-weight: bold;">\&quot;</span> useAsSharedCode=<span style="color: #000099; font-weight: bold;">\&quot;</span>false<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;playerglobal.swc&lt;/AS3Classpath&gt;
    &lt;AS3Classpath generateProblems=<span style="color: #000099; font-weight: bold;">\&quot;</span>false<span style="color: #000099; font-weight: bold;">\&quot;</span> type=<span style="color: #000099; font-weight: bold;">\&quot;</span>lib<span style="color: #000099; font-weight: bold;">\&quot;</span> useAsSharedCode=<span style="color: #000099; font-weight: bold;">\&quot;</span>false<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;flex.swc&lt;/AS3Classpath&gt;
    &lt;AS3Classpath generateProblems=<span style="color: #000099; font-weight: bold;">\&quot;</span>false<span style="color: #000099; font-weight: bold;">\&quot;</span> type=<span style="color: #000099; font-weight: bold;">\&quot;</span>lib<span style="color: #000099; font-weight: bold;">\&quot;</span> useAsSharedCode=<span style="color: #000099; font-weight: bold;">\&quot;</span>false<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;framework.swc&lt;/AS3Classpath&gt;
    &lt;AS3Classpath generateProblems=<span style="color: #000099; font-weight: bold;">\&quot;</span>false<span style="color: #000099; font-weight: bold;">\&quot;</span> type=<span style="color: #000099; font-weight: bold;">\&quot;</span>lib<span style="color: #000099; font-weight: bold;">\&quot;</span> useAsSharedCode=<span style="color: #000099; font-weight: bold;">\&quot;</span>false<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;rpc.swc&lt;/AS3Classpath&gt;
    &lt;AS3Classpath generateProblems=<span style="color: #000099; font-weight: bold;">\&quot;</span>false<span style="color: #000099; font-weight: bold;">\&quot;</span> type=<span style="color: #000099; font-weight: bold;">\&quot;</span>lib<span style="color: #000099; font-weight: bold;">\&quot;</span> useAsSharedCode=<span style="color: #000099; font-weight: bold;">\&quot;</span>false<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;utilities.swc&lt;/AS3Classpath&gt;
    &lt;AS3Classpath generateProblems=<span style="color: #000099; font-weight: bold;">\&quot;</span>true<span style="color: #000099; font-weight: bold;">\&quot;</span> type=<span style="color: #000099; font-weight: bold;">\&quot;</span>source<span style="color: #000099; font-weight: bold;">\&quot;</span> useAsSharedCode=<span style="color: #000099; font-weight: bold;">\&quot;</span>false<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;source&lt;/AS3Classpath&gt;
    &lt;AS3Classpath generateProblems=<span style="color: #000099; font-weight: bold;">\&quot;</span>false<span style="color: #000099; font-weight: bold;">\&quot;</span> type=<span style="color: #000099; font-weight: bold;">\&quot;</span>source<span style="color: #000099; font-weight: bold;">\&quot;</span> useAsSharedCode=<span style="color: #000099; font-weight: bold;">\&quot;</span>false<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;inlet42&lt;/AS3Classpath&gt;
&lt;/AS3Classpath&gt;&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">$1</span><span style="color: #000000; font-weight: bold;">/</span>.as3_classpath
&nbsp;
	<span style="color: #666666; font-style: italic;">#####</span>
	<span style="color: #666666; font-style: italic;"># Create .project</span>
	<span style="color: #666666; font-style: italic;">#####</span>
&nbsp;
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;creating file: $1/.project&quot;</span>
&nbsp;
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;&lt;?xml version=<span style="color: #000099; font-weight: bold;">\&quot;</span>1.0<span style="color: #000099; font-weight: bold;">\&quot;</span> encoding=<span style="color: #000099; font-weight: bold;">\&quot;</span>UTF-8<span style="color: #000099; font-weight: bold;">\&quot;</span>?&gt;
&lt;projectDescription&gt;
	&lt;name&gt;<span style="color: #007800;">$project_name</span>&lt;/name&gt;
	&lt;comment&gt;&lt;/comment&gt;
	&lt;projects&gt;
	&lt;/projects&gt;
	&lt;buildSpec&gt;
		&lt;buildCommand&gt;
			&lt;name&gt;com.powerflasher.fdt.core.FlashBuilder&lt;/name&gt;
			&lt;arguments&gt;
			&lt;/arguments&gt;
		&lt;/buildCommand&gt;
	&lt;/buildSpec&gt;
	&lt;natures&gt;
		&lt;nature&gt;com.powerflasher.fdt.core.FlashNature&lt;/nature&gt;
	&lt;/natures&gt;
	&lt;linkedResources&gt;
		&lt;link&gt;
			&lt;name&gt;flex.swc&lt;/name&gt;
			&lt;type&gt;1&lt;/type&gt;
			&lt;locationURI&gt;Flex_3_SDK_0/frameworks/libs/flex.swc&lt;/locationURI&gt;
		&lt;/link&gt;
		&lt;link&gt;
			&lt;name&gt;framework.swc&lt;/name&gt;
			&lt;type&gt;1&lt;/type&gt;
			&lt;locationURI&gt;Flex_3_SDK_0/frameworks/libs/framework.swc&lt;/locationURI&gt;
		&lt;/link&gt;
		&lt;link&gt;
			&lt;name&gt;playerglobal.swc&lt;/name&gt;
			&lt;type&gt;1&lt;/type&gt;
			&lt;locationURI&gt;Flex_3_SDK_0/frameworks/libs/player/9/playerglobal.swc&lt;/locationURI&gt;
		&lt;/link&gt;
		&lt;link&gt;
			&lt;name&gt;rpc.swc&lt;/name&gt;
			&lt;type&gt;1&lt;/type&gt;
			&lt;locationURI&gt;Flex_3_SDK_0/frameworks/libs/rpc.swc&lt;/locationURI&gt;
		&lt;/link&gt;
		&lt;link&gt;
			&lt;name&gt;utilities.swc&lt;/name&gt;
			&lt;type&gt;1&lt;/type&gt;
			&lt;locationURI&gt;Flex_3_SDK_0/frameworks/libs/utilities.swc&lt;/locationURI&gt;
		&lt;/link&gt;
	&lt;/linkedResources&gt;
&lt;/projectDescription&gt;&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">$1</span><span style="color: #000000; font-weight: bold;">/</span>.project
&nbsp;
	<span style="color: #666666; font-style: italic;">#####</span>
	<span style="color: #666666; font-style: italic;"># Create .settings folder</span>
	<span style="color: #666666; font-style: italic;">#####</span>
&nbsp;
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;creating folder: $1/.settings&quot;</span>
&nbsp;
	<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #007800;">$1</span><span style="color: #000000; font-weight: bold;">/</span>.settings
&nbsp;
	<span style="color: #666666; font-style: italic;">#####</span>
	<span style="color: #666666; font-style: italic;"># Create settings files</span>
	<span style="color: #666666; font-style: italic;">#####</span>
&nbsp;
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;creating file: $1/.settings/com.powerflasher.fdt.core.prefs&quot;</span>
&nbsp;
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;#Sun Jan 10 22:13:28 CET 2010
com.powerflasher.fdt.core.Language=AS3
com.powerflasher.fdt.core.LanguageType=Flex_3_SDK_0
eclipse.preferences.version=1&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">$1</span><span style="color: #000000; font-weight: bold;">/</span>.settings<span style="color: #000000; font-weight: bold;">/</span>com.powerflasher.fdt.core.prefs
&nbsp;
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;creating file: $1/.settings/org.eclipse.core.resources.prefs&quot;</span>
&nbsp;
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;#Sun Jan 10 22:13:28 CET 2010
eclipse.preferences.version=1
encoding/&lt;project&gt;=UTF-8&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">$1</span><span style="color: #000000; font-weight: bold;">/</span>.settings<span style="color: #000000; font-weight: bold;">/</span>org.eclipse.core.resources.prefs
&nbsp;
	<span style="color: #666666; font-style: italic;">#####</span>
	<span style="color: #666666; font-style: italic;"># Create source folder</span>
	<span style="color: #666666; font-style: italic;">#####</span>
&nbsp;
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;creating folder: $1/source&quot;</span>	
&nbsp;
	<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #007800;">$1</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">source</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">#####</span>
	<span style="color: #666666; font-style: italic;"># Create Main.as</span>
	<span style="color: #666666; font-style: italic;">#####</span>
&nbsp;
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;creating file: $1/source/Main.as&quot;</span>
&nbsp;
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;package {
	import flash.display.Sprite;
&nbsp;
	/**
	 *	@author Jankees.van.Woezik [jankees at base42 dot nl] 
	 */
	public class Main extends Sprite {
&nbsp;
		public function Main() {
		}
	}
}&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">$1</span><span style="color: #000000; font-weight: bold;">/</span>source<span style="color: #000000; font-weight: bold;">/</span>Main.as
&nbsp;
	<span style="color: #666666; font-style: italic;">#####</span>
	<span style="color: #666666; font-style: italic;"># Create builders folder</span>
	<span style="color: #666666; font-style: italic;">#####</span>
&nbsp;
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;creating folder: $1/builders&quot;</span>
&nbsp;
	<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #007800;">$1</span><span style="color: #000000; font-weight: bold;">/</span>builders
&nbsp;
	<span style="color: #666666; font-style: italic;">#####</span>
	<span style="color: #666666; font-style: italic;"># Create builder for Main.as</span>
	<span style="color: #666666; font-style: italic;">#####</span>
&nbsp;
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;creating file: $1/builders/Main.launch&quot;</span>
&nbsp;
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;&lt;?xml version=<span style="color: #000099; font-weight: bold;">\&quot;</span>1.0<span style="color: #000099; font-weight: bold;">\&quot;</span> encoding=<span style="color: #000099; font-weight: bold;">\&quot;</span>UTF-8<span style="color: #000099; font-weight: bold;">\&quot;</span> standalone=<span style="color: #000099; font-weight: bold;">\&quot;</span>no<span style="color: #000099; font-weight: bold;">\&quot;</span>?&gt;
&lt;launchConfiguration type=<span style="color: #000099; font-weight: bold;">\&quot;</span>com.powerflasher.fdt.ui.MxmlcGroup<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;
&lt;stringAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>APP_ARGUMENTS<span style="color: #000099; font-weight: bold;">\&quot;</span> value=<span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;stringAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>ARGUMENTS<span style="color: #000099; font-weight: bold;">\&quot;</span> value=<span style="color: #000099; font-weight: bold;">\&quot;</span>-default-size 800 600 -default-frame-rate 31 -default-background-color 0xFFFFFF -library-path {flexSDK}/frameworks/locale/en_US<span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;stringAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>FLEX_SDK_NAME<span style="color: #000099; font-weight: bold;">\&quot;</span> value=<span style="color: #000099; font-weight: bold;">\&quot;</span>Flex_3_SDK_0<span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;booleanAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>KILL_PREVIUOS_VIEWER<span style="color: #000099; font-weight: bold;">\&quot;</span> value=<span style="color: #000099; font-weight: bold;">\&quot;</span>false<span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;stringAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>MAIN_CLASS<span style="color: #000099; font-weight: bold;">\&quot;</span> value=<span style="color: #000099; font-weight: bold;">\&quot;</span>source/Main.as<span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;stringAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>OUTPUT<span style="color: #000099; font-weight: bold;">\&quot;</span> value=<span style="color: #000099; font-weight: bold;">\&quot;</span>bin/main.swf<span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;booleanAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>PASS_CP<span style="color: #000099; font-weight: bold;">\&quot;</span> value=<span style="color: #000099; font-weight: bold;">\&quot;</span>true<span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;booleanAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>PASS_MAIN_CLASS<span style="color: #000099; font-weight: bold;">\&quot;</span> value=<span style="color: #000099; font-weight: bold;">\&quot;</span>true<span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;booleanAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>PASS_SWCS<span style="color: #000099; font-weight: bold;">\&quot;</span> value=<span style="color: #000099; font-weight: bold;">\&quot;</span>true<span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;intAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>PLAYER_HEIGHT<span style="color: #000099; font-weight: bold;">\&quot;</span> value=<span style="color: #000099; font-weight: bold;">\&quot;</span>600<span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;intAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>PLAYER_WIDTH<span style="color: #000099; font-weight: bold;">\&quot;</span> value=<span style="color: #000099; font-weight: bold;">\&quot;</span>800<span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;stringAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>POST_COMPILE_ANT<span style="color: #000099; font-weight: bold;">\&quot;</span> value=<span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;stringAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>PRE_COMPILE_ANT<span style="color: #000099; font-weight: bold;">\&quot;</span> value=<span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;stringAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>PROJECT_NAME<span style="color: #000099; font-weight: bold;">\&quot;</span> value=<span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #007800;">$project_name</span><span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;stringAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>PUBLISHER_ID<span style="color: #000099; font-weight: bold;">\&quot;</span> value=<span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;booleanAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>START_SWF_ENABLED<span style="color: #000099; font-weight: bold;">\&quot;</span> value=<span style="color: #000099; font-weight: bold;">\&quot;</span>true<span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;stringAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>START_SWF_LOCATION<span style="color: #000099; font-weight: bold;">\&quot;</span> value=<span style="color: #000099; font-weight: bold;">\&quot;</span>bin/main.swf<span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;stringAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>START_SWF_WITH<span style="color: #000099; font-weight: bold;">\&quot;</span> value=<span style="color: #000099; font-weight: bold;">\&quot;</span>External SWF Viewer<span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;booleanAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>USE_GLOBAL_FCSH_LOCATION<span style="color: #000099; font-weight: bold;">\&quot;</span> value=<span style="color: #000099; font-weight: bold;">\&quot;</span>true<span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;listAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>org.eclipse.debug.core.MAPPED_RESOURCE_PATHS<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;
&lt;listEntry value=<span style="color: #000099; font-weight: bold;">\&quot;</span>/<span style="color: #007800;">$project_name</span><span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;/listAttribute&gt;
&lt;listAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>org.eclipse.debug.core.MAPPED_RESOURCE_TYPES<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;
&lt;listEntry value=<span style="color: #000099; font-weight: bold;">\&quot;</span>4<span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;/listAttribute&gt;
&lt;listAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>org.eclipse.debug.ui.favoriteGroups<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;
&lt;listEntry value=<span style="color: #000099; font-weight: bold;">\&quot;</span>org.eclipse.debug.ui.launchGroup.debug<span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;listEntry value=<span style="color: #000099; font-weight: bold;">\&quot;</span>org.eclipse.debug.ui.launchGroup.run<span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;/listAttribute&gt;
&lt;stringAttribute key=<span style="color: #000099; font-weight: bold;">\&quot;</span>process_factory_id<span style="color: #000099; font-weight: bold;">\&quot;</span> value=<span style="color: #000099; font-weight: bold;">\&quot;</span>com.powerflasher.fdt.ui.launch.fcsh.ProcessFactory<span style="color: #000099; font-weight: bold;">\&quot;</span>/&gt;
&lt;/launchConfiguration&gt;&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">$1</span><span style="color: #000000; font-weight: bold;">/</span>builders<span style="color: #000000; font-weight: bold;">/</span>Main.launch
&nbsp;
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;&quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;All done, the project is created and ready to be imported in FDT&quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;&quot;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">fi</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.base42.nl/2010/create-a-project-for-fdt-fast/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Profiling a FDT project with Flash Builder</title>
		<link>http://blog.base42.nl/2010/profiling-a-fdt-project-with-flash-builder/</link>
		<comments>http://blog.base42.nl/2010/profiling-a-fdt-project-with-flash-builder/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 13:30:18 +0000</pubDate>
		<dc:creator>jankees</dc:creator>
				<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://blog.base42.nl/?p=1090</guid>
		<description><![CDATA[I made a screencast on how I profile my FDT applications using the Flash Builder profiler. With this profiler you can easily find memory leaks in your application. All the files I used in the video can be downloaded here:]]></description>
			<content:encoded><![CDATA[<p>I made a screencast on how I profile my FDT applications using the Flash Builder profiler. With this profiler you can easily find memory leaks in your application.</p>
<p><object width="640" height="505"><param name="movie" value="http://www.youtube.com/v/3D4zsEII4yQ&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/3D4zsEII4yQ&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"></embed></object></p>
<p>All the files I used in the video can be downloaded here:</p>
<p><a href='http://blog.base42.nl/wp-content/uploads/Profiler.zip'><img src="http://blog.base42.nl/wp-content/uploads/Screen-shot-2009-12-11-at-21.46.37.png" alt="" title="" width="89" class="alignnone size-full wp-image-1060" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.base42.nl/2010/profiling-a-fdt-project-with-flash-builder/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>My workflow with ANT and FDT</title>
		<link>http://blog.base42.nl/2009/my-workflow-with-ant-and-fdt/</link>
		<comments>http://blog.base42.nl/2009/my-workflow-with-ant-and-fdt/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 21:30:15 +0000</pubDate>
		<dc:creator>jankees</dc:creator>
				<category><![CDATA[workflow]]></category>
		<category><![CDATA[ANT]]></category>
		<category><![CDATA[FDT]]></category>

		<guid isPermaLink="false">http://blog.base42.nl/?p=1041</guid>
		<description><![CDATA[I am a big fan of things that speed up my workflow. One of the things that I have been using a lot lately is ANT. ANT is a scripting language you can use from within Eclipse (and FDT). ANT is quite powerful. You can use it to show input dialogs, manipulate files, create files, [...]]]></description>
			<content:encoded><![CDATA[<p>I am a big fan of things that speed up my workflow. One of the things that I have been using a lot lately is <a href="http://en.wikipedia.org/wiki/Apache_Ant">ANT</a>. ANT is a scripting language you can use from within Eclipse (and FDT). ANT is quite powerful. You can use it to show input dialogs, manipulate files, create files, compile an application, FTP, SVN and much much more!</p>
<p>In my last three projects I have been using the same ANT file and I think it is pretty useful for other Flash developers too. That&#8217;s why I want to share it with you.</p>
<p>My ANT file has four targets (functions).</p>
<ol>
<li>Debug in Firefox</li>
<li>Create deployable swf</li>
<li>Deploy to FTP server</li>
<li>Clean debug in Firefox</li>
</ol>
<p>The most important target is the first one, that&#8217;s the target I use the most. It compiles the actionscript into a SWF and then gives Firefox focus. If you want to know how this works see <a href="http://epologee.com/blog/2009/focus-and-reload-pages-in-firefox-with-ant/">epologee.com/blog</a>. I know a lot of people use the external player in FDT, I switched to Firefox because it is much faster and as a bonus you can use SWFAdress and other HTML stuff. In my opinion it&#8217;s much better to test from within the browser because it it behaves a bit different then external player in some occasions. </p>
<p>The second target (Create deployable SWF) creates a SWF which is smaller that the debug version; this is because I excluded the &#8216;verbose stacktraces&#8217; on a large project this somethings takes 200kb of a SWF file. </p>
<p>Another thing I added to my ANT task is a <a href="http://wiki.joa-ebert.com/index.php/Conditional_Compilation_With_FDT">conditional compilation arguments</a> to the compiler. With these arguments it&#8217;s really easy to create a code block which only works for deployment, or a piece of code which only works for testing. </p>
<p>The code to do this looks like this:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">CONFIG::Debug
{
	// code for debugging
}
&nbsp;
CONFIG::Release
{
	// code for release version
}</pre></div></div>

<p>Another interesting thing I added was FTP, the only problem is it isn&#8217;t supported by FDT by default. You need to install a external script (pretty easy). All about FTP and ANT is on the <a href="http://www.rumblingskies.com/blog/?p=75">blog</a> of Erik van Nieuwburg. </p>
<p>Every time you compile using my script ANT creates a build.txt with some information about the build (deploment or development, time of compilation, filesize, user, etc) I store this information in Subversion to keep track of all the builds. I copy this to a folder on the webserver too. In another project I used a modified version of this code to update a Version.as file before compiling&#8230;.</p>
<h2>Video</h2>
<p>I created a video of my workflow to show you how it works.</p>
<p><object width="640" height="505"><param name="movie" value="http://www.youtube.com/v/DBS93_MRwWg&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/DBS93_MRwWg&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"></embed></object></p>
<p>If you have any feedback or suggestions please let me know. I created a zip file with all the files used in the video;</p>
<p><a href='http://blog.base42.nl/wp-content/uploads/AntBuildFileExample.zip'><img src="http://blog.base42.nl/wp-content/uploads/Screen-shot-2009-12-11-at-21.46.37.png" alt="" title="" width="89" class="alignnone size-full wp-image-1060" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.base42.nl/2009/my-workflow-with-ant-and-fdt/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>

