<?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>Digital Base - Blog &#187; Programming</title>
	<atom:link href="http://www.digitalbase.eu/blog/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.digitalbase.eu/blog</link>
	<description>A blog about webdesign, PHP, development and IT</description>
	<lastBuildDate>Mon, 10 May 2010 16:16:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>What is important in a PHP editor/IDE ?</title>
		<link>http://www.digitalbase.eu/blog/what-is-important-in-a-php-editoride/</link>
		<comments>http://www.digitalbase.eu/blog/what-is-important-in-a-php-editoride/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 11:00:37 +0000</pubDate>
		<dc:creator>Gijs Nelissen</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://dibav3.gnelisse.desktop01/blog/?p=45</guid>
		<description><![CDATA[An overview of what i find important in an IDE. What to look for when looking for a nice php developing tool.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been building websites for a while now. So i could say i am quite experienced although my (programming) knowledge is <span style="text-decoration: line-through;">limited</span> mainly focussed on building php applications. As a developer time is expensive, that&#8217;s why i am always looking for ways to speed up the web development process. A good start for fast &amp; secure development is to have the right tools and the right feeling/connection with your editor.</p>
<p>On day-to-day basis i could say 80% of the time i have an open editor somewhere. Based on the amount of time you are &#8220;working together&#8221; with this piece of software, you could compare it to a marriage (although you shouldn&#8217;t trade wives as soon as you meet a younger, smarter and more beautiful girl).</p>
<p>I have a few expectations / requirements for a modern, good working editor</p>
<h1>Decent Code Completion / Code Assistance</h1>
<p>We all know word completion : auto completion involves the program predicting a word or sentence without the user actually having to type it in completely. This feature is used alot in text messaging (sms), email clients, browsers, search engines etc&#8230;</p>
<p><img class="aligncenter size-full wp-image-259" title="google_image_autocomplete" src="http://www.digitalbase.eu/blog/wp-content/uploads//2008/12/google_image_autocomplete.png" alt="google_image_autocomplete" width="622" height="352" /></p>
<p>Autocompletion speeds up the entire process of typing a message, entering an address or, in our case, writing PHP code.</p>
<p>A decent source code editor analyses your source and suggests the function based on the first characters of the variable, function name or object. Most editors these days have code completion although they come in many flavours.</p>
<p><img class="aligncenter size-full wp-image-160" title="eclipse autocomplete" src="http://www.digitalbase.eu/blog/wp-content/uploads//2008/12/3138497480_8b6500d9e4_o.png" alt="eclipse autocomplete" width="591" height="95" /></p>
<p>Larger web applications tend to use alot of classes &amp; files. That&#8217;s what it is really important your autocompletion allows you to use an unlimited depth of super- &amp; sub classes (<a title="Inheritance OO" href="http://en.wikipedia.org/wiki/Inheritance_%28computer_science%29" target="_blank">inheritance</a>). For this your IDE should have a decent understanding of the relation between classes. If in some case the code completion does not work for a certain object, you should be able to tell the editor which class your object belongs to, so it will allow you to use the code completion on next occurences of the same object/variable.</p>
<h1><strong>Code Documentation / PHPDoc<br />
</strong></h1>
<p>Another important aspect of code completion is documentation. It is very useful for a programmer to get as much visible feedback as possible about the method/function he is calling. For a php core function this should be a short summary what the function does, for custom methods/functions this would be the description as entered by the one that created the class/method.</p>
<p><img class="aligncenter size-full wp-image-262" title="eclipse_link" src="http://www.digitalbase.eu/blog/wp-content/uploads//2008/12/eclipse_link.jpg" alt="eclipse_link" width="716" height="235" /></p>
<p>Next to that information it could be useful to show the return type and perhaps some information about the needed arguments. All these things should be integrated in the IDE, readily available when i enter the name of a method/class without opening a seperate manual or the php.net website.</p>
<p>When adding custom classes/methods/functions it is important that you document this code using phpdoc. Eclipse will then pick up this documentation and show it whenever you are using it somewhere else throughout your project.</p>
<h1><strong>Syntax Highlighting / Coloring</strong></h1>
<p>Code should look good. If you&#8217;re spending most of your time looking at code, it&#8217;s important to take care of your eyes. A good syntax highlighter highlights the different code to make a clear distinction between actual code, variables &amp; documentation. Marking different type of elements in seperate colors will increase readability and help you understand a function faster.</p>
<p>Syntax highlighting also helps in finding errors in your code. Some editors mark incorrect code (missing delimiter, etc), this comes in handy when you are paying less attention. The editor will immediately show you you are doing something wrong&#8230;</p>
<p>Personally i prefer dark editors, many other programmers agree that this is alot better for your eyes. Next to that i find dark color schemes to be alot clearer and more beautiful to look at. TO give you an idea, this is what my eclipse looks like :</p>
<p><img class="aligncenter size-full wp-image-258" title="screenshot1" src="http://www.digitalbase.eu/blog/wp-content/uploads//2008/12/screenshot1.png" alt="screenshot1" width="659" height="471" /></p>
<h1>Code Bookmarks</h1>
<p>When we are writing code it is important to keep track of important locations throughout the project. Code Bookmarks is the easiest way to do it.</p>
<p>A good implementation of bookmarks should allow you to easily switch to next/previous bookmark and give you an overview/listing of the current &#8220;bookmarks&#8221;.</p>
<p><img class="aligncenter size-full wp-image-264" title="screenshot3" src="http://www.digitalbase.eu/blog/wp-content/uploads//2008/12/screenshot3.png" alt="screenshot3" width="494" height="172" /></p>
<p>If you look on the left side, you will see a small flag that marks the current line as being bookmarked.</p>
<p><img class="aligncenter size-full wp-image-269" title="screenshot7" src="http://www.digitalbase.eu/blog/wp-content/uploads//2008/12/screenshot7.png" alt="screenshot7" width="600" height="169" /></p>
<p>Once you have these &#8220;code bookmarks&#8221;, its hard to code without them.</p>
<h1>Smart/Quick opening</h1>
<p>Now where did i put this code/file again ? Which class defines the foo() method ? Most of you will agree with me that opening the correct resource/file/method takes alot of time. A good editor should allow you to find/open everything you are looking for with a few keystrokes and (more important) without touching your mouse.</p>
<p>My favourite editor (Eclipse) allows you to use ctrl+shift+R to &#8220;open resource&#8221; and quickly find the file you were looking for.</p>
<p><img class="aligncenter size-full wp-image-274" title="screenshot8" src="http://www.digitalbase.eu/blog/wp-content/uploads//2008/12/screenshot8.png" alt="screenshot8" width="657" height="181" /></p>
<p>This means i do not need to touch my mouse or open the &#8220;file explorer&#8221; to look for the file. Easy &amp; Fast&#8230;</p>
<p>I know some people who use &#8220;grep -r &#8216; methodname()&#8217; to find the location of a method. I personally think this stinks. A good editor should contains some ways to easily open a file/method.</p>
<h1>Class Outline</h1>
<p>It&#8217;s easy to lose track of the variables/methods that are defined in a class. This is where the &#8220;outline view&#8221; comes in handy. This &#8220;outline&#8221; view will give you a the overview of every method/variable defined.</p>
<p><img class="aligncenter size-full wp-image-276" title="screenshot9" src="http://www.digitalbase.eu/blog/wp-content/uploads//2008/12/screenshot9.png" alt="screenshot9" width="732" height="394" /></p>
<p>Double clicking a method will take you to this method. No search, no scrolling, no touching the mouse. In eclipse there is an even better way. Once inside a class you can use CTRL+O to get a quick outline with autocomplete functionality, finding the method you were looking for never was this easy&#8230;</p>
<p><img class="aligncenter size-full wp-image-277" title="eclipse quick outline" src="http://www.digitalbase.eu/blog/wp-content/uploads//2008/12/screenshot.png" alt="eclipse quick outline" width="707" height="443" /></p>
<p>Thanks Eclipse <img src='http://www.digitalbase.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h1>Platform Independance</h1>
<p>If you are a regular reader of this blog, you will know we are using several linux flavours in our office. So for us it is very important t he same editor can be used on Windows &amp; Linux platforms. Most &#8220;multi-platform&#8221; ide&#8217;s are based on java (zend, eclipse,&#8230;) but there are some other ide&#8217;s that have clients for both platforms.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalbase.eu/blog/what-is-important-in-a-php-editoride/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>My Favourite Design Tools</title>
		<link>http://www.digitalbase.eu/blog/my-favourite-design-tools/</link>
		<comments>http://www.digitalbase.eu/blog/my-favourite-design-tools/#comments</comments>
		<pubDate>Wed, 06 Feb 2008 17:48:40 +0000</pubDate>
		<dc:creator>Gijs Nelissen</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://dibav3.gnelisse.desktop01/blog/?p=33</guid>
		<description><![CDATA[This post is all about the tools we are using to create your website.]]></description>
			<content:encoded><![CDATA[<p>
As a professional web developer i tried alot of software, this results in a great deal of expertise &amp; experience with the most common design tools. In this post i will list the software i am currently using to create our websites.
</p>
<p>
First of all, all the developers at <a href="/about" title="About the Developers">Digital Base</a>  work in a linux environment. All of our workstations are running an 64bit build of <a href="http://www.ubuntu.com/getubuntu" target="_blank" title="Ubuntu">Ubunty Gutsy 7.10</a>. So if you are hoping for a listing of windows software, you could stop right here, although some of the tools we are using have a windows version.
</p>
<p>
Because we all (or at least most of us, *wink* @ Jan) like &quot;eye-candy&quot;, we are using <a href="http://www.compiz-fusion.org/" target="_blank" title="Compiz Fusion">Compiz Fusion</a>  on a Gnome Window Manager. The advantage of this package, besides having a kickass desktop environment, is you can set shortcut keys &amp; customise almost every aspect of your user interface (maximise toggle buttons, window positioning etc..).
</p>
<p>
We develop all our websites on a <a href="http://en.wikipedia.org/wiki/LAMP" target="_blank" title="What is LAMP ?">LAMP</a>  platform (LAMP : Linux Apache MySQL PHP), it speaks for itself these packages are installed on all workstations for local development &amp; debugging purposes. As for the programming we are still using Zend Studio 5.51 (the linux binary), this very nice (but never updated) IDE gives you the needed functions like :
</p>
<ul>
<li>code completion</li>
<li>syntax highlighting</li>
<li>debugging capabilities</li>
<li>code assist</li>
<li>source/code templates</li>
</ul>
<p>
At this moment Zend is switching their IDE to an Eclipse based IDE (codename <a href="http://www.zend.com/en/products/studio/compare" target="_blank" title="Zend Neon">Zend Neon</a> ), we did try it, but back then it wasn&#39;t stable enough for us to start using it. Although i am currently testing <a href="http://www.eclipse.org/pdt/" target="_blank" title="Eclipse PDT">Eclipse PDT</a>  &amp; Zend Neon, most of us still use the Zend IDE as it is rocksteady, responsive.
</p>
<p>
Next to that we&#39;re using the popular webbrowser Firefox with a few interesting developer plugins like Web Developer Toolbar, Firebug. To test the applications in IE webbrowsers we use an RDP connection to a virtual machine or Windows Server, or use the <a href="http://www.tatanka.com.br/ies4linux/page/Main_Page" target="_blank" title="IE 4 linux">IE4Linux</a>  binaries to check/improve how a website looks when rendered by the IE engine.
</p>
<p>
So there you have a basic insight how we do things, i&#39;ll make sure to complete this list as we&#39;re using alot more tools, but my time is limited <img src="/js/tiny_fck/plugins/emotions/images/smiley-smile.gif" border="0" alt="Smile" title="Smile" />  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalbase.eu/blog/my-favourite-design-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

