<?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>The Software Gorilla &#187; Drupal</title>
	<atom:link href="http://www.thesoftwaregorilla.com/tag/drupal/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thesoftwaregorilla.com</link>
	<description>The Software Gorilla</description>
	<lastBuildDate>Wed, 20 Oct 2010 19:56:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Tools of the Trade &#8211; What I use for my Development Work</title>
		<link>http://www.thesoftwaregorilla.com/2010/05/tools-of-the-trade-what-i-use-for-my-development-work/</link>
		<comments>http://www.thesoftwaregorilla.com/2010/05/tools-of-the-trade-what-i-use-for-my-development-work/#comments</comments>
		<pubDate>Sat, 08 May 2010 20:38:43 +0000</pubDate>
		<dc:creator>Bruce Gruenbaum</dc:creator>
				<category><![CDATA[Commentary]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[OpenClient]]></category>
		<category><![CDATA[OpenEdge]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Bug Tracking]]></category>
		<category><![CDATA[Development Environments]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Enterprise Architecture]]></category>
		<category><![CDATA[SDLC]]></category>
		<category><![CDATA[VMWare]]></category>

		<guid isPermaLink="false">http://www.thesoftwaregorilla.com/?p=521</guid>
		<description><![CDATA[Someone e-mailed me off-line and pointed out that I post UML diagrams on my blog fairly regularly. He wanted to know what tool I use for this. In the process, his e-mail reminded me that I had written a post back in March of 2009, where I said that an upcoming post would talk about this. Promises, promises! 

Actually, now is a really good time to have this conversation because with the work I am doing on the Exchange Web Service code, I have just finished revamping my internal infrastructure to support the equipment and software I need to do the job. So this is going to be a two-part article. In this part, I'll tell you about the software development components that I use. In the next part, I'll tell you about the infrastructure components. The problem is that you need to understand some of the details of why, so I'm going to start with a little background.]]></description>
			<content:encoded><![CDATA[<p>Someone e-mailed me off-line and pointed out that I post UML diagrams on my blog fairly regularly. He wanted to know what tool I use for this. In the process, his e-mail reminded me that I had written <a href="http://www.thesoftwaregorilla.com/2009/03/the-cost-of-it/">a post back in March of 2009</a>, where I said that an upcoming post would talk about this. Promises, promises!&nbsp;</p>
<p>Actually, now is a really good time to have this conversation because with the work I am doing on the Exchange Web Service code, I have just finished revamping my internal infrastructure to support the equipment and software I need to do the job. So this is going to be a two-part article. In this part, I&#39;ll tell you about the software development components that I use. In the next part, I&#39;ll tell you about the infrastructure components. The problem is that you need to understand some of the details of why, so I&#39;m going to start with a little background.</p>
<h3>Background</h3>
<p>There are a few basic facts about me that effect everything else:</p>
<ol>
<li>I am not rich. I have to rely on the most cost-efficient solutions I can. That means that I prefer open source/free software where it makes sense.<a href="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/EclipseAll.jpg"><img align="right" alt="My Eclipse Environment for JavaSE, OpenEdge and PHP" height="313" src="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/EclipseAll.jpg" width="501" /></a></li>
<li>I am not cheap. I recognize that building software that is commercial grade requires a serious commitment to quality. That means a serious commitment to the development process, which, in turn, requires things like solid designs, automated builds and testing, and extremely good discipline.</li>
<li>I am <em><strong>the worst</strong></em> perfectionist. A gentleman I used to work for back in South Africa, Jan Fernhout, used to tell me that I would way over-engineer things because I wanted a perfect design. That is true. I have to be very disciplined about remembering that I need to deliver something.</li>
<li>I hate mundane work. If at all possible, someone else is going to do the work for me, and I there is no way that I am going to manually do something that can be completely automated. If you make me do it, I will bleat like a sheep until you fix the problem &#8211; just ask some of my co-workers.</li>
</ol>
<p>There are also a few facts about the development work that I do that affect everything, too:</p>
<ol>
<li>I believe that Windows is for the desktop or as a departmental product and Unix is what the enterprise needs. No one has proven me wrong on this. For every example of a large Windows product installation, I can point you at hundreds of more successful, more cost-efficient, more stable, less administered Unix installations that just run.</li>
<li>I do a lot of work with both Unix and Windows.</li>
<li>Java is the most platform-independent language for back-end work.</li>
<li>.NET is the richest GUI experience you can have outside the browser on the Windows platform.</li>
<li>OpenEdge is a fact of my life. I have used it more than any other development platform. I have made a good living off it, and I love the product, warts (many of them) and all. OpenEdge is kinda like an old pair of shoes that fits your feet a certain way and you&#39;re always most comfortable wearing them, no matter how ugly they are.</li>
</ol>
<h3>Machines and Operating Systems</h3>
<p><a href="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/VMWareESXi.jpg" target="_blank"><img align="right" alt="VMWare ESXi " height="248" src="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/VMWareESXi.jpg" width="300" /></a>My desktop machine &#8211; and primary development workstation &#8211; is a Windows 7-based HP Pavilion Entertainment 64-bit laptop with 6GB of RAM and 450GB of disk space. It runs nothing but Windows, and I have a ton of software on it.</p>
<p>My primary server machine is a &nbsp;<a href="http://www.dell.com/us/en/enterprise/servers/server-poweredge-t710/pd.aspx?refid=server-poweredge-t710&amp;cs=555&amp;s=biz" target="_blank">Dell PowerEdge T710</a> with 2 4-Core Intel Xeon processors, 16GB of RAM and 2 500GB drives. It runs <a href="http://www.vmware.com/products/esxi/" target="_blank">VMWare ESXi</a>&nbsp;(see screenshot at right)&nbsp;with 20 different virtual machines on it, some constantly running and some not. I&#39;ll tell you more about this in the next post on infrastructure. There are 6 VMs, though, that are important to this discussion:</p>
<ul>
<li>A Windows Server 2008R2 primary domain controller (pdc);</li>
<li>A Windows Server 2008R2 build server (winbuild);</li>
<li>A Windows 7 32-bit build machine (clientbuild);</li>
<li>A CentOS-64 development server that hosts a whole lot of stuff (develop);</li>
<li>A CentOS-64 build server (build64); and</li>
<li>A CentOS-32 build server (build32) .</li>
</ul>
<p>I then have 2 other machines that are both older machines that I use for various things. I&#39;ll talk about these in my infrastructure post, too.</p>
<h3>Components of a Development Environment</h3>
<p>As I said, I&#39;m the worst perfectionist. So development starts with an idea, and ends when the code has been packaged, deployed, and installed on the end-user&#39;s machine, and they have completed user acceptance testing. In other words, it not only spans the entire <a href="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/ArchitectureStack.jpg" target="_blank">Enterprise Architecture stack</a>, but it also spans the Software Development Life-Cycle (SDLC).&nbsp;<a href="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/Enterprise-Architect.jpg" target="_blank"><img align="right" alt="Enterprise Architect" height="199" src="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/Enterprise-Architect.jpg" width="300" /></a></p>
<p>Now as much as I said I am not rich, there are two very expensive tool-sets that I have to buy:</p>
<ol>
<li><strong>Visual Studio Premium with MSDN</strong>. This one sticks in my throat every time I pay for it. The only reason I need the Premium subscription is for the Windows Server and Microsoft Exchange Server licenses. The more than $5500 that this product costs is very hard to justify, and the $2300 a year charge for renewing the subscription is as bad as paying tax to the IRS. I am a firm believer that development tools should be free. If you want me to develop products for your platform, <strong><em>give</em></strong> me the tools I need to do it.</li>
<li><strong>PSDN Professional</strong>. Although I also believe that Progress should provide its tools for free, I am less resentful about it, probably because I used to work for the company. I still think the $3,000 that we pay for PSDN is excessive, but there you have it. My guess is there would be more people developing Progress-based applications if the development tools were given away free.</li>
</ol>
<p><a href="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/SubversionBrowser.jpg" target="_blank"><img align="right" alt="Subversion Web UI" height="228" src="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/SubversionBrowser.jpg" width="300" /></a>I need the MSDN license for the operating system and server licenses that I am using for Exchange Server. For my non-Microsoft-based development, I rely heavily on the Java and LAMP (Linux-Apache-MySQL-PHP) stack. Because I have some experience with PHP, I try as far as possible to use Open Source tools that are based on PHP rather than Perl. I don&#39;t know Perl and I don&#39;t particularly want to spend the time on it.</p>
<p>So starting from concept, here are the tools that I use to get my stuff done:</p>
<ul>
<li>&nbsp;<a href="http://www.sparxsystems.com/" target="_blank">Sparx System&#39;s Enterprise Architect (EA)</a>&nbsp;for all my modeling (not just diagrams, models). The product cost me about $300 for the original license, which included the MDG technology for Eclipse integration, and I use it as a design tool from the conception of an idea all the way through delivery. It contains the business process models, the requirements, and all the UML diagrams and test cases. I am not a fan of model-to-code driven development. I think the fact that we have been looking at the equivalent of CASE tools for the last 20 years shows that there will always be those cases where the code cannot be automatically generated for you. Two of EA&#39;s strongest suites are the traceability it provides from requirements to test case, and the incredibly powerful document generation facility. I literally generate all my documents from Enterprise Architect.<a href="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/Mantis.jpg" target="_blank"><img align="right" alt="Mantis Web UI" height="296" src="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/Mantis.jpg" width="300" /></a></li>
<li><a href="http://www.open.collab.net/products/subversion/" target="_blank">Collabnet Subversion</a> is used as my Source Code Control System. Everything goes into Subversion, including my models, source code, document artifacts, and even my research code. Subversion runs on my development server (develop) on CentOS. Subversion has clients for all kinds of platforms, so I have <a href="http://ankhsvn.open.collab.net/" target="_blank">AnkhSVN</a> plugged into Visual Studio to control my .NET code, I have <a href="http://subclipse.tigris.org/" target="_blank">Subclipse</a> plugged into Eclipse for all my Java code, and I use <a href="http://tortoisesvn.tigris.org/" target="_blank">TortoiseSVN</a> at the operating system level to control documents and stuff that are outside of either development environment.</li>
<li><a href="http://www.mantisbt.org/" target="_blank">Mantis</a> is used as my issue tracking system. There is an Eclipse plugin for Mantis so I can get at it directly from my project workspaces in Eclipse.</li>
<li><a href="http://hudson-ci.org/" target="_blank">Hudson CI</a>&nbsp;is used as my automated build and test environment. It runs on develop, but starts builds on build64, build32, winbuild, and clientbuild. I use both <a href="http://ant.apache.org/" target="_blank">Apache Ant </a>and <a href="http://maven.apache.org/" target="_blank">Apache Maven</a> to build Java code, and I use <a href="https://code.google.com/p/pct/" target="_blank">PCT</a> to build OpenEdge code in Hudson. I use <a href="http://nant.sourceforge.net/" target="_blank">Nant</a> to build .NET code.</li>
<li>Unit testing is the scope of <a href="http://www.junit.org/" target="_blank">JUnit</a> and <a href="http://www.nunit.org/" target="_blank">NUnit</a>&nbsp;although I am vehemently opposed to test-driven development. I think it is flawed and creates really lousy software.</li>
<li><a href="http://www.eclipse.org" target="_blank">Eclipse</a>&nbsp;is my Integrated Development Environment of choice. I have at least two installations of Eclipse at any one time. One is for non-Enterprise development (stuff that does not require Java EE) and the other is for Enterprise development (Java EE). The&nbsp;<a href="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/EclipseAll.jpg" target="_blank">Eclipse screenshot at the top of this post</a>&nbsp;shows my working environment for non-JavaEE work. From the screenshot, you will notice that I have OpenEdge running inside the Eclipse environmnent (Database Explorer is at the bottom, and there is an OpenEdge Editor open above it. You can also see an Enterprise Architect model in the right-hand pane, and my Hudson build status is in the left-hand pane. In the&nbsp;<a href="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/EclipseEE.jpg" target="_blank">Eclipse screenshot at the bottom of this post</a>&nbsp;that shows my working environment for JavaEE work, you will see the Mylyn task list at the bottom on the left, with the Mantis task repository open in the pane on the bottom right and a Mantis task open on the right. All of the tools that I have highlighted are integrated right into my Eclipse IDE in both environments.&nbsp;<a href="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/Hudson.jpg" target="_blank"><img align="right" alt="Hudson Web UI" height="228" src="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/Hudson.jpg" width="300" /></a></li>
<li><strong>Visual Studio&nbsp;</strong>is used only for development work that doesn&#39;t work in Eclipse. So most .NET/Windows-based development is done in Visual Studio. I have both Visual Studio 2008 and 2010 installed.&nbsp;</li>
</ul>
<p>All the tools I have discussed so far have plugins for Eclipse and, as the screenshots show, that is the configuration in which I use them.</p>
<p>A couple of other products that I use extensively that are not really integrated into the development environment per se, are:</p>
<ul>
<li><a href="http://www.scootersoftware.com/" target="_blank">Beyond Compare</a>&nbsp;is one of those tools that I just cannot imagine not having. It is a tool for doing advanced 3-way compares of files and it is, without reservation, the best diff tool that I know. It runs on both Windows and Linux, and I use it on both.</li>
<li><a href="http://www.winzip.com/index.htm" target="_blank">WinZip</a> is another tool that I use so much, I cannot imagine being without it. It is used for creating zip archives, but it can just as easily read and understand Linux tarballs and .jar and .war files.</li>
<li><a href="http://www.nero.com/enu/index.html" target="_blank">Nero</a>&nbsp;is an outstanding tool for burning media, especially CD or DVD burning.</li>
</ul>
<p>Most of my publishing stuff is done with either <a href="http://wordpress.org/" target="_blank">WordPress</a> or <a href="http://drupal.org/" target="_blank">Drupal</a>. Like most of the other stuff I use that is web-based, these two are both PHP-based solutions. PHP is not a hard language to learn and it is very good at getting pretty sophisticated web apps up and running relatively quickly. WordPress and Drupal both have extension APIs that make it possible to build pretty sophisticated plugins for both in PHP &#8211; something I have done reasonably effectively.</p>
<p><a href="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/EclipseEE.jpg" target="_blank"><img align="absBottom" alt="Eclipse environment for Java EE development" height="375" src="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/EclipseEE.jpg" width="600" /></a></p>
<h3>Conclusion</h3>
<p>Most of the tools I have mentioned above are freeware or open source or really, really cost-effective, and the good thing about them is that they lead you to build much better quality code than would otherwise be the case. If you are not looking at tools like these, I would highly recommend giving them a try.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thesoftwaregorilla.com/2010/05/tools-of-the-trade-what-i-use-for-my-development-work/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Joomla update</title>
		<link>http://www.thesoftwaregorilla.com/2009/03/joomla-update/</link>
		<comments>http://www.thesoftwaregorilla.com/2009/03/joomla-update/#comments</comments>
		<pubDate>Sun, 22 Mar 2009 00:30:34 +0000</pubDate>
		<dc:creator>Bruce Gruenbaum</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Content Management Systems]]></category>
		<category><![CDATA[Web Security]]></category>

		<guid isPermaLink="false">http://www.intangere.com/tsg/?p=22</guid>
		<description><![CDATA[A little while ago I wrote an article on my blog about Joomla. I have had a few off-line comments about the article and as they were not written here I have decided to treat them as private responses and not publish the author&#8217;s names and their comments. But there were some very valid suggestions made [...]]]></description>
			<content:encoded><![CDATA[<p>A little while ago I wrote an <a href="2009/03/joomla-an-interesting-platform-for-web-ui/">article on my blog </a>about Joomla. I have had a few off-line comments about the article and as they were not written here I have decided to treat them as private responses and not publish the author&#8217;s names and their comments. But there were some very valid suggestions made that I believe others may benefit from so I would like to include some of these comments as well as my take on them.</p>
<p>A number of people have pitched Drupal to me as a competitor to Joomla. One person wrote:<br />
<em><br />
&#8220;When we surveyed content management systems &#8230;, Joomla was one of the ones we looked at, but on balance Drupal won out. I recently converted my &#8230; site to Drupal and brought up two other sites &#8230; on the same code base, but with very different appearance and different features on each. I am very impressed.&#8221;<br />
</em><br />
I have spent some time evaluating both of these content management systems and while I have chosen to go with Joomla myself, Drupal could probably have done the job I wanted to get done. My initial post was in no way meant to imply that Drupal was not equaly as capable. There were a couple of things that swayed my vote to Joomla.</p>
<ol>
<li>By the time I looked into Drupal, I already understood how Joomla worked. The argument that Drupal is easier to use therefore did not carry the water for me that it would for others and I felt like Joomla&#8217;s flexibility was probably better than Drupal&#8217;s provided I was willing to make the investment;</li>
<li>I am not scared of getting my hands dirty with PHP, MySQL, CSS and XHTML. That means that if I find an obstacle with Joomla, I have the flexibility to get into it with these technologies if I need to; and</li>
<li>I like what Joomla has done to address and caution against security issues within Joomla itself. Security is a very real consideration for any web-site and I think the Joomla team understand this. They may not have all the answers but they definitely understand the issues. You should at least look at the <a href="http://developer.joomla.org/security.html" target="_blank">Joomla security site</a> and their <a href="http://forum.joomla.org/viewforum.php?f=432&amp;start=0" target="_blank">security forum</a> before you implement a site using Joomla.</li>
</ol>
<p>In fact, it is the latter point that made me realize I needed to take down my family site while I work on making sure that I have dealt with any potential security threats. It will be back up in a couple of weeks. </p>
<p>In a discussion on the issue, someone I was talking to made the statement that they did not want a content management system that required a database because of the administration issues associated with it. To me, that argument does not make any sense because if you go with static HTML instead, you still have the complexity of managing the content and determining what the broken links are. With a good content management system, that process can be easily automated. So although you may not have the expense of the database maintenance, you do have the expense of the static HTML management. Most of the maintenance stuff around my 4 Joomla installations is all automated anyway and I simply check the e-mail that I get on a nightly basis to verify that the backup verification process worked. Moreover, there is so much functionality that you simply get for free that I would hate to have to write manually.</p>
<p>Finally, a gentleman by the name of <strong>Jeff Pilant </strong>pointed me at a web site that is absolutely invaluable on the security side of things. The site calls itself &#8220;<a href="http://cwe.mitre.org/top25/" target="_blank">Common Weakness Enumeration &#8211; A Community-Developed Dictionary of Software Weakness Types</a>&#8221; and it enumerates 25 of the most dangerous mistakes that developers make that can create serious security threats in their code. This is a highly recommended read. The information is also available in PDF form and although a lot of this information is available in a number of the security books that are already out there, this is a very valuable and concise reminder.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.thesoftwaregorilla.com%2F2009%2F03%2Fjoomla-update%2F&amp;title=Joomla%20update" id="wpa2a_2"><img src="http://www.thesoftwaregorilla.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.thesoftwaregorilla.com/2009/03/joomla-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

