<?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>Next Web Designs &#187; Web Development</title>
	<atom:link href="http://nextwebdesigns.com/category/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://nextwebdesigns.com</link>
	<description>Growing the Artistic Web</description>
	<lastBuildDate>Wed, 14 Jul 2010 13:23:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Firefox 3 RC2 Available</title>
		<link>http://nextwebdesigns.com/2008/06/05/firefox-3-rc2-available/</link>
		<comments>http://nextwebdesigns.com/2008/06/05/firefox-3-rc2-available/#comments</comments>
		<pubDate>Thu, 05 Jun 2008 14:04:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Off the Wall]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://nextwebdesigns.com/?p=32</guid>
		<description><![CDATA[Firefox version 3, Release Candidate 2 is now available for download!  The immediate improvement I noticed: speed.  Version 3 appears to start up a bit faster, load pages faster, and handle javascript-laden pages faster.  Also nice to see were the numerous tasteful UI enhancements.  Firefox has always had a simple UI before, and I'm glad [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mozilla.com/en-US/firefox/all-rc.html" target="_blank">Firefox version 3, Release Candidate 2 is now available for download</a>!  The immediate improvement I noticed: speed.  Version 3 appears to start up a bit faster, load pages faster, and handle javascript-laden pages faster.  Also nice to see were the numerous tasteful UI enhancements.  Firefox has always had a simple UI before, and I'm glad they didn't make the mistake of overhauling the interface for some whiz-bang features (see IE7).  There are subtle enhancements that the average user probably won't even consciously notice like fading in of highlighted tabs, site icons next to sites in the URL, smooth tab scrolling, and subtle toolbar color differences that better define action areas.  It's great to see smooth and subtle changes like this to further enhance this great browser.</p>
<p><strong>Disclaimer</strong>: as a company that provides web development services, Holley Grove is partial to browsers which actually attempt to adhere to web standards and valid HTML/CSS.  Firefox 3 is a great browser to use to make sure you're doing your part to promote web standards and make the Internet a better place to visit!</p>
<p><a href="http://www.spreadfirefox.com/node&amp;id=0&amp;t=272"><img title="Download Day - English" src="http://www.spreadfirefox.com/files/images/affiliates_banners/468x60_ddayb_en.png" border="0" alt="Download Day - English" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://nextwebdesigns.com/2008/06/05/firefox-3-rc2-available/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SSHFS: A Perfect Remote File Manager?</title>
		<link>http://nextwebdesigns.com/2008/03/26/sshfs-a-perfect-remote-file-manager/</link>
		<comments>http://nextwebdesigns.com/2008/03/26/sshfs-a-perfect-remote-file-manager/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 01:26:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux Hosting]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://nextwebdesigns.com/2008/03/26/sshfs-a-perfect-remote-file-manager/</guid>
		<description><![CDATA[SSHFS is a Fuse-based Linux filesystem that allows you to connect to an SSH server, and mount it as you would any other mountable device.  The difference is... this "device" is a remote server using an SSH connection.  At Holley Grove, we use SSHFS on all of our servers, SSHFS might be something you should [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/SSHFS">SSHFS</a> is a Fuse-based Linux filesystem that allows you to connect to an SSH server, and mount it as you would any other mountable device.  The difference is... this "device" is a remote server using an SSH connection.  At <a href="http://www.holleygrove.com">Holley Grove</a>, we use SSHFS on all of our servers, SSHFS might be something you should consider as well... here's just a few reasons why:</p>
<ol>
<li>You're basically using SSH to communicate.  SSH is encrypted, and as such can be one of the most secure methods of communication available.</li>
<li>The setup is relatively simple, as you only need a few libraries on the client computers, and an SSH server running on the remote server.</li>
<li>Permissions, users, and groups are all preserved as they would be using normal SSH.</li>
<li>You can turn off in-secure, un-encrypted FTP completely.</li>
<li>Fast access to files via your file manager application as if they were stored locally on your computer.  For Linux Gnome users, your SSHFS mounted shares will show up in Nautilus and act accordingly.</li>
</ol>
<p><strong>HowTo:</strong></p>
<p>For Ubuntu, simply install <strong>sshfs</strong> via the package manager.  You'll then need to add your Ubuntu user account to the Fuse group so that you'll have permission to use Fuse.  To do this, go to <em>System -&gt; Administration -&gt; Users and Groups</em>.  Click on your username and click the "Properties" button.  Make sure the checkbox for "fuse" is checked and save your settings.  You may need to log out and log back in for these changes to take effect.  Now you can mount an SSH server in the directory called "remote":</p>
<p><code>sshfs landon@holleygrove.com: remote</code></p>
<p>And to disconnect:</p>
<p><code>fusermount -u remote</code></p>
<p><a href="http://nextwebdesigns.com/wp-content/uploads/2008/03/screenshot.png" title="SSHFS Desktop Example"><img src="http://nextwebdesigns.com/wp-content/uploads/2008/03/screenshot.thumbnail.png" alt="SSHFS Desktop Example" align="right" hspace="5" vspace="5" /></a>It's great to be able to run a command to mount an SSH server, then pop open nautlius and have all the remote files and directories listed right there just as any other files!</p>
]]></content:encoded>
			<wfw:commentRss>http://nextwebdesigns.com/2008/03/26/sshfs-a-perfect-remote-file-manager/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Simple Candidate Aptitude Test</title>
		<link>http://nextwebdesigns.com/2008/01/14/simple-candidate-aptitude-test/</link>
		<comments>http://nextwebdesigns.com/2008/01/14/simple-candidate-aptitude-test/#comments</comments>
		<pubDate>Mon, 14 Jan 2008 16:27:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://nextwebdesigns.com/2008/01/14/simple-candidate-aptitude-test/</guid>
		<description><![CDATA[When looking for new hires, many companies make the mistake of requiring all candidates to complete a simple skill test.  At first, these tests seem like a good idea, and a quick way to eliminate a huge chunk of possible applicants who aren't as technically proficient as you need them to be.  However, often times, [...]]]></description>
			<content:encoded><![CDATA[<p>When looking for new hires, <strong>many</strong> companies make the mistake of requiring all candidates to complete a simple skill test.  At first, these tests seem like a good idea, and a quick way to eliminate a huge chunk of possible applicants who aren't as technically proficient as you need them to be.  However, often times, these "simple" tests offer no real benefit to the employer, waste time for both the employer (and it's developers who have to sift through the results) and the applicant, and can actually have detrimental results on your hiring campaign.</p>
<p><strong>Reason #1: Insulting the Wrong Crowd</strong></p>
<p><strong> </strong>Let's suppose that you're looking to hire a few mid to senior level developers for an object-oriented PHP position.  So, you may spend the course of a week developing some really great, practical PHP questions and problems.  After you've posted the job on <a href="http://www.dice.com" target="_blank">dice</a>, you've got a few offers, yay!  Kindly, you'll send them an email with your "simple" questionnaire attached and give them a 24-hour deadline to complete the problems.  Well, right off the bat, you've turned off a number of qualified candidates by requiring them to take time out of their day to submit a blind PHP test that is admittedly "simple".  Many of the most qualified and highly sought-after candidates may view your test as beneath them, too basic, boring, and a waste of time.  Some of the most qualified candidates may have years and years of experience (some may have even more than you!); they may have built some extremely successful and robust projects far beyond the range of what you are even hiring them for; they may have advanced degrees, have started their own companies, done consultant work for even larger companies; they may also be recognized leaders in the industry... Those are precisely the kind of applicants your company needs, but also precisely the kind of applicants that feel an aptitude test (with basic aptitude questions) is well beneath their skill level.  <em>"Any position that may require completing such a simple test, is probably a low-level <a href="http://en.wikipedia.org/wiki/Code_monkey" target="_blank">code-monkey</a> style position anyway."</em></p>
<p><strong>Reason #2: Logistics</strong></p>
<p>Let's take a second to think about the types of people are most likely to excel at a "take home" aptitude test.  Chances are you've run into these same people before...  These people are great test takers, and they excel at scouring the web and regurgitating information verbatim.  They will put in long hours, and they can afford to work all night on this test, mostly because they don't have as many other applications to fill out as the more qualified candidates.  They spend hours finding the exact right answers (which they did NOT already know and probably didn't even take the time to comprehend).  They'll polish up their answers, add some extra bells and whistles to their code (such as CSS styles and simple Javascript), and submit their results to you just before the deadline.  On the surface their results look great, but <strong>they are not there to explain their answers, describe to you their thought process, or even tell you how they arrived at their conclusion</strong>.  So, all you're really left with is some simple, regurgitated information from the web looked up by the same person who's cheated his or her way through the majority of his or her academic and professional life... probably not your <em>ideal</em> candidate.</p>
<p><strong>Reason #3: Missing the Point</strong></p>
<p>In the tech industry, code tools, languages, and platforms are often times stressed as the most important aspects of an applicant's resume.  This couldn't <em>be </em>a bigger misconception.  The truth is, an applicant's ability to think, design, problem-solve, and engineer overall solutions will determine his or her success in any technology-laden position, not his or her experience with a particular language.  Everyone knows a guy who has 20+ years experience with C programming, but has no concept of how to design a scalable, robust, object-oriented application.  His experience far out-matches that of a newly graduated Doctoral student, but when placed with the responsibility of designing a system from scratch, he has no idea which route would be best to take in order to solve the problem, he just immediately starts hacking his C libraries.  With an aptitude test, you may very well validate the applicants who've memorized all the built in functionality of their particular language, but you really haven't evaluated their ability to problem solve efficiently, which, is really what development is all about.</p>
]]></content:encoded>
			<wfw:commentRss>http://nextwebdesigns.com/2008/01/14/simple-candidate-aptitude-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Virtual Hosts with Apache and SSL Certificates</title>
		<link>http://nextwebdesigns.com/2007/12/21/using-virtual-hosts-with-apache-and-ssl-certificates/</link>
		<comments>http://nextwebdesigns.com/2007/12/21/using-virtual-hosts-with-apache-and-ssl-certificates/#comments</comments>
		<pubDate>Fri, 21 Dec 2007 16:04:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux Hosting]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://nextwebdesigns.com/?p=19</guid>
		<description><![CDATA[When we first started using our own server to host multiple client websites, one problem we commonly came across was "how can we host different virtual domains and different SSL certificates?"  After some research, we came to the same conclusion you probably already know, because of the SSL protocol, you can't use Virtual Hosts [...]]]></description>
			<content:encoded><![CDATA[<p>When we first started using our own server to host multiple client websites, one problem we commonly came across was "how can we host different virtual domains and different SSL certificates?"  After some research, we came to the same conclusion you probably already know, because of the SSL protocol, you can't use Virtual Hosts with SSL.  This is because SSL is encrypted, and it must be read and un-encrypted <strong>before</strong> the requested domain name can be read by Apache, because... <em>it is encypted</em>.</p>
<p>So, how can you provide your multiple clients with Virtual Domains their own SSL and https:// address?  You can:</p>
<ul>
<li>Let them share your server's SSL certificate, and server name (e.g. https://holleygrove.com/secure/CustomerName). This, unfortunately is a different domain name, so it may bring up a red flag to some shoppers, however, if you have a valid SSL certificate for <em>your</em> domain (holleygrove.com), the site will be valid and no security warnings will appear.</li>
<li>Redirect them to the https version of their domain name even though there is not a valid SSL certificate for their domain (or there is, but because of the SSL protocol, Apache cannot access it).  This will present the user with a domain name/ SSL certificate mis-match (which is bad), but the URL will read https://CustomerName.</li>
</ul>
<p>Both of the above solutions have compromises.  The best way to get around this is to use a separate IP address specifically for your VirtualDomain.  This will allow you to setup Apache to listen for your VitrualDomain... SSL (port 443) and HTTP (port 80) on this particular IP address.  Below is a working code excerpt from Apache 2.2 for a VirtualDomain listening on a separate IP address:</p>
<pre> # IP Based Virtual Host - Example.com - IP:  192.168.1.1
NameVirtualHost 192.168.1.1:80
&lt;VirtualHost 192.168.1.1:80&gt;
        ServerAdmin support@holleygrove.com
        DocumentRoot /home/example/public_html
        ServerName www.example.com
        ServerAlias example.com *.example.com
        ErrorLog /etc/httpd/groups/example/logs/error_log
        CustomLog /etc/httpd/groups/example/logs/access_log combined
        #TransferLog /etc/httpd/groups/example/logs/access_log
        &lt;Directory "/home/example/public_html"&gt;
                AllowOverride All
                Order allow,deny
                Allow from all
        &lt;/Directory&gt;
&lt;/VirtualHost&gt;</pre>
<p>Make sure to change the above directive to match your IP and system configuration, and place it in your Apache's configuration file.  Any IP-based VirtaulHost directives, such as the one above, should be placed after any non-IP based (name based) VirtualHost directives.</p>
]]></content:encoded>
			<wfw:commentRss>http://nextwebdesigns.com/2007/12/21/using-virtual-hosts-with-apache-and-ssl-certificates/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Updating the Database from CFGRID</title>
		<link>http://nextwebdesigns.com/2007/01/24/updating-the-database-from-cfgrid/</link>
		<comments>http://nextwebdesigns.com/2007/01/24/updating-the-database-from-cfgrid/#comments</comments>
		<pubDate>Wed, 24 Jan 2007 20:24:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://nextwebdesigns.com/?p=18</guid>
		<description><![CDATA[ColdFusion MX7 offers Flash Forms which is a very nice, new, and quick touch to any application. Unfortunately, it does have limitations that send developers like myself hunting for answers to keep the integrity of strong application development with an effortless and clean interface. Here is one example that set me back a few and [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">ColdFusion MX7 offers <a href="http://www.adobe.com/devnet/coldfusion/articles/richforms.html" title="Flash Forms" target="_blank">Flash Forms</a> which is a very nice, new, and quick touch to any application. Unfortunately, it does have limitations that send developers like myself hunting for answers to keep the integrity of strong application development with an effortless and clean interface. Here is one example that set me back a few and left me extremely frustrated with Adobe Live Docs.</p>
<p align="justify"><a href="http://livedocs.macromedia.com/coldfusion/6.1/htmldocs/tags-p46.htm" title="CFGRID" target="_blank"><strong>CFGRID</strong></a> is a very powerful tool when displaying records from any database because they eliminate the annoyance tables can tend to have when writing HTML. It’s just a different way of thinking though when building style into the simple idea of a clean record set that gets returned. I have come across this one too many times with using Flash Forms, “How can I make this presentation/application more efficient for the user?” Simple, by reducing the amount of steps it takes to add, edit, and manipulate data without giving a mess of confusion in one page. This is not so simple when it comes to <a href="http://livedocs.macromedia.com/coldfusion/6.1/htmldocs/tags-p46.htm" title="CFGRID" target="_blank"><strong>CFGRID</strong></a>. There are a million examples of how to edit data within the grid, delete rows, insert new rows, even total a column’s values. But very few actually show how to edit the information in the grid and write back to the database leading to my frustration with documentation available for ColdFusionMX7 &amp; MX6. This really only poses a problem to those of us that started coldfusion a little later then most.</p>
<p align="justify">There is hope though! It is actually documented in ColdFusion 5’s explanations/examples of <a href="http://livedocs.macromedia.com/coldfusion/6.1/htmldocs/tags-p46.htm" title="CFGRID" target="_blank"><strong>CFGRID</strong></a>. It gives a few tags that are extremely powerful making two days of <a href="http://www.google.com/" title="Google Search Engine" target="_blank">Google</a> searching worth the five maybe ten lines of code it takes to accomplish this. Here is my example which we will call “<strong>licenses.cfm</strong>“:</p>
<p align="justify">In your Grid there are only but two to three statements needed to make columns and/or whole rows editable. The first one resides in your start tag. For example:</p>
<p align="left">&nbsp;</p>
<pre>cfgrid name="AllLicenses" query="qAllLicenses" format="flash" sort="yes" height="200"
selectmode="edit"</pre>
<p align="justify">Notice the last part. <em>Selectmode</em> is what makes your grid editable allowing you to select any area and change the data. Within your tag you can designate which columns to make editable. Here is an example of how to restrict editing:</p>
<p align="left">&nbsp;</p>
<pre>cfgridcolumn name="LicenseID" header="License ID" width="50" display="no" select="no"</pre>
<p align="justify">The <em>select=”no”</em> statement is an immmediate reference to “<em>selectmode</em>” and this columns particular state/function. This example shows how to allow for an edit in a given column:</p>
<p align="left">&nbsp;</p>
<pre>cfgridcolumn name="LicenseAdd" header="Add" width="30" type="boolean" select="yes"</pre>
<p align="justify">Simple enough. Keep in mind that without these “select” tags in each <a href="http://livedocs.macromedia.com/coldfusion/6.1/htmldocs/tags-p51.htm" title="CFGRIDCOLUMN" target="_blank">cfgridcolumn</a>it will just default making all columns editable. For my case I wanted to assign hardware items multiple software licenses. My goal was to provide a “oneshot” that would display a little information about the box, it’s current list of licenses applied, and all available licenses to add. With respect to building it in one page for the user I wanted them to have the ability to select via “checkbox” any remaining licenses attaching them to that specific box. Without Flash Forms it is a pretty easy task but then you lose the power of clean interface elements on the fly. With them is a different story.</p>
<p align="justify">I inserted a new field into my inventory database within my <em>Licenses</em> table called “<strong>LicenseAdd</strong>“. This is of boolean type and has no purpose other than to temporarily tag each license for later review upon “submit”. There is really only one more part to consider at this point. How do we update the database depending on which licenses have been checked inside the ? It’s pretty easy actually! You want to build a <a href="http://livedocs.macromedia.com/coldfusion/6.1/htmldocs/tags-p76.htm" title="CFLOOP" target="_blank">cfloop</a>that moves through an array that is combined of all records selected from the grid for insertion. Like so:</p>
<p align="left">&nbsp;</p>
<pre>cfif IsDefined("FORM.LicenseAdd")

cfloop from="1" to="#ArrayLen(FORM.allLicenses.LicenseID)#" index="i"

cfinvoke component="inventoryCollectionManager.items" method="insertLicenseLocations"

cfinvokeargument name="LicenseID" value="#FORM.allLicenses.LicenseID[i]#"

cfinvokeargument name="ItemID" value="#URL.ItemID#"

/cfinvoke

/cfloop

cflocation url="viewAllLicenses.cfm?ItemID=#URL.ItemID#"

/cfif</pre>
<p align="justify">Depending on whether any boxes are checked in the designated column:</p>
<p align="left">&nbsp;</p>
<pre>cfif IsDefined("FORM.LicenseAdd")</pre>
<p align="justify">Start at one and go until the Length of the Array:</p>
<p align="left">&nbsp;</p>
<pre>cfloop from="1" to="#ArrayLen(FORM.allLicenses.LicenseID)#" index="i"</pre>
<p align="justify">Then perform this action(write to a table in your database):</p>
<p align="left">&nbsp;</p>
<pre>cfinvoke component="inventoryCollectionManager.items" method="insertLicenseLocations"

cfinvokeargument name="LicenseID" value="#FORM.allLicenses.LicenseID[i]#"

cfinvokeargument name="ItemID" value="#URL.ItemID#"

/cfinvoke</pre>
<p align="justify">Stop loop after insert and redirect back to that same page to show added licenses.</p>
<p align="left">&nbsp;</p>
<pre>/cfloop

cflocation url="viewAllLicenses.cfm?ItemID=#URL.ItemID#"

/cfif</pre>
<p align="justify">That is about it. For another example on this please visit:</p>
<p align="justify"><a href="http://cfsilence.com/blog/client/index.cfm/2006/2/2/Cant-use-CFGRIDUPDATE--Try-this"><u><font color="#0000ff" size="2">http://cfsilence.com/blog/client/index.cfm/2006/2/2/Cant-use-CFGRIDUPDATE–Try-this</font></u></a></p>
<p align="justify">and</p>
<p align="justify"><font size="2"><a href="http://livedocs.macromedia.com/coldfusion/5.0/CFML_Reference/Tags41.htm"><u><font color="#0000ff" size="2">http://livedocs.macromedia.com/coldfusion/5.0/CFML_Reference/Tags41.htm</font></u></a></font></p>
]]></content:encoded>
			<wfw:commentRss>http://nextwebdesigns.com/2007/01/24/updating-the-database-from-cfgrid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
