<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"
	xml:lang="en">
	<title>Software Development</title>
	<subtitle>Some of my experiences in the trenches</subtitle>
        <link rel="alternate" type="text/html" href="http://www.ejg-consulting.com/weblog/index.php"/>
        <link rel="self" type="application/atom+xml" href="http://www.ejg-consulting.com/weblog/atom.xml"/>
	<updated>2010-08-29T09:31:07-04:00</updated>
	<author>
	<name>John</name>
	<uri>http://www.ejg-consulting.com/weblog/index.php</uri>
	<email>jgagnon@technologist.com</email>
	</author>
	<id>tag:gagnonconsulting,2010:SoftwareDevelopment</id>
	<generator uri="http://www.pivotlog.net" version="Pivot - 1.40.6: 'Dreadwind'">Pivot</generator>
	<rights>Copyright (c) 2010, Authors of Software Development</rights>
	
	
	
	<entry>
		<title>Cloud Systems and Chef</title>
		<link rel="alternate" type="text/html" href="http://www.ejg-consulting.com/weblog/pivot/entry.php?id=10" />
		<updated>2010-08-29T09:31:00-04:00</updated>
		<published>2010-08-29T09:31:00-04:00</published>
		<id>tag:gagnonconsulting,2010:SoftwareDevelopment.10</id>
		<link rel="related" type="text/html" href=""  />
		<summary type="text">I've been using Opscode's Chef to spin up new instances of servers, both on our internal XenServer cloud and at Rackspace. With a little judicious planning and some attention to detail, the recipes themselves can be used on either of the two sites.</summary>
        <content type="html" xml:lang="en" xml:base="http://www.ejg-consulting.com/weblog/pivot/entry.php?id=10"><![CDATA[
                I've been using Opscode's Chef to spin up new instances of servers, both on our internal XenServer cloud and at Rackspace. With a little judicious planning and some attention to detail, the recipes themselves can be used on either of the two sites.<h1>Chef</h1><p><span class="Apple-style-span" style="font-weight: normal; font-size: 13px">Opscode has spent a great deal of time and effort building up their</span> Chef managed deployment mechanism. My hat is off to them, they've done something very difficult with considerable success. If I have one concern, it's the dearth of documentation. I can understand why, as they're trying to create an opportunity to consult with folks who are building things using their technology, but that doesn't mean they have to make the thing nearly opaque. I've had to pick a few things up by trial and error, and maybe I can leave a few breadcrumbs here so I won't have to go through all of those paths again. Who knows, it may be handy for someone else as well.</p>
		]]></content>
		<author>
			<name>jgagnon</name>
		</author>
	</entry>
	
	
	
	<entry>
		<title>Internal Clouds</title>
		<link rel="alternate" type="text/html" href="http://www.ejg-consulting.com/weblog/pivot/entry.php?id=9" />
		<updated>2010-07-03T10:38:00-04:00</updated>
		<published>2010-07-03T10:35:00-04:00</published>
		<id>tag:gagnonconsulting,2010:SoftwareDevelopment.9</id>
		<link rel="related" type="text/html" href=""  />
		<summary type="text">Creating a private cloud for internal use can be challenging. The documentation provided by the vendor can range from terse to absent, and the chances of a mistake are greatly increased as you scale up the number of actual servers.  


Why aren't there any books on this?</summary>
        <content type="html" xml:lang="en" xml:base="http://www.ejg-consulting.com/weblog/pivot/entry.php?id=9"><![CDATA[
                <p>
Creating a private cloud for internal use can be challenging. The documentation provided by the vendor can range from terse to absent, and the chances of a mistake are greatly increased as you scale up the number of actual servers.  
</p>
<p>
Why aren't there any books on this?</p><p>
I have been setting up a small set of virtual servers for use in house as a development lab. I experimented with Ubuntu's offering, <a rel="external" href="http://www.ubuntu.com/server/features/virtualisation" target="_blank" title="Ubuntu Enterprise Cloud">Ubuntu Enterprise Cloud</a>, but they neglect to mention that their system can only host a <a rel="external" href="http://www.linux-kvm.org/page/Main_Page" target="_blank" title="KVM">KVM</a> based virtual machine. If you want a <a rel="external" href="http://www.xen.org/" target="_blank" title="XEN">XEN</a> based system, it cannot directly host the mode 0 operating system without recompiling the OS. This is not impossible, it's just hard, and the path is poorly laid out. The UEC management is similar to that used by Amazon, giving this some advantages if the deployment environment is based on Amazon's cloud. I will likely describe my experiences in a future post. 
</p>
<p>
Unfortunately, we were aiming at Rackspace's cloud. Theirs is based on a Xen virtual management system. When I first looked into that, it seemed like it was going to be far too expensive for our simple deployment. When it was shown to me that they are offering the base system, <a rel="external" href="http://www.citrix.com/English/ps2/products/product.asp?contentID=683148&amp;ntref=prod_top" target="_blank" title="XenServer">XenServer</a> for free, I thought it was too good to be true. It wasn't. This advanced virtualization system is available for the cost of signing up and requesting a license. Unbelievable. 
</p>
<p>
Coming up.... 
</p>
<p>
How to deploy a XenServer</p>
		]]></content>
		<author>
			<name>jgagnon</name>
		</author>
	</entry>
	
	
	
	<entry>
		<title>PHP Programming</title>
		<link rel="alternate" type="text/html" href="http://www.ejg-consulting.com/weblog/pivot/entry.php?id=8" />
		<updated>2009-02-15T20:52:00-04:00</updated>
		<published>2009-02-15T20:52:00-04:00</published>
		<id>tag:gagnonconsulting,2010:SoftwareDevelopment.8</id>
		<link rel="related" type="text/html" href=""  />
		<summary type="text">How do I create thumbnail images? Find out here.</summary>
        <content type="html" xml:lang="en" xml:base="http://www.ejg-consulting.com/weblog/pivot/entry.php?id=8"><![CDATA[
                How do I create thumbnail images? Find out <a rel="external" target="_blank" href="http://webcheatsheet.com/php/create_thumbnail_images.php">here</a>.
		]]></content>
		<author>
			<name>jgagnon</name>
		</author>
	</entry>
	
	
	
	<entry>
		<title>Dude! They're stealing from my website!</title>
		<link rel="alternate" type="text/html" href="http://www.ejg-consulting.com/weblog/pivot/entry.php?id=7" />
		<updated>2009-02-15T01:46:00-04:00</updated>
		<published>2009-02-15T01:42:00-04:00</published>
		<id>tag:gagnonconsulting,2010:SoftwareDevelopment.7</id>
		<link rel="related" type="text/html" href=""  />
		<summary type="text">I noticed that there were a number of hits against Sherry's website that didn't appear to go through the html for that page. Sherry has a number of music pages, where she makes an image that shows how she feels about a song, and a low quality mp3 of the song to give the atmosphere. She recommends that anyone interested in the songs should purchase a copy, and the low fidelity of the MP3's prevent anyone from being too interested in them. Or so we thought...</summary>
        <content type="html" xml:lang="en" xml:base="http://www.ejg-consulting.com/weblog/pivot/entry.php?id=7"><![CDATA[
                I noticed that there were a number of hits against Sherry's website that didn't appear to go through the html for that page. Sherry has a number of music pages, where she makes an image that shows how she feels about a song, and a low quality mp3 of the song to give the atmosphere. She recommends that anyone interested in the songs should purchase a copy, and the low fidelity of the MP3's prevent anyone from being too interested in them. Or so we thought...<br /><br /><br /><br />It turned out that there are a number of 'music player' sites that have linked directly to the mp3s, circumventing Sherry's pages altogether. I find this annoying and unethical in the extreme. They are stealing my bandwidth to sell their ads.<br /><br />Please go to this <a rel="external" target="_blank" href="http://www.vbseo.com/f34/hotlink-protection-tutorial-apache-server-htaccess-files-6456/">hotlink protection tuturial</a>, they gave the most coherent description of the solution that I've found so far. They also offer a link to a <a rel="external" target="_blank" href="http://altlab.com/hotlinking.html">test page</a>, where you can verify whether you have set up the protection properly. There's also some concern about the interaction with Internet Explorer 6, which has any number of peculiarities. Please see <a rel="external" target="_blank" href="http://www.divahtml.com/articles-tutorials/hotlinking/prevent_hotlinking_ie6.php">this page</a> which describes the most compliant way to manage that situation.<br /><br />I've had it set up for about 10 minutes, and it's already stopped 10 people from using those songs. And it kind of worries me, that those playlist sites offer up these low quality songs in the first place, they must have googled for the songs, and they don't care about the fidelity, just the existence.
		]]></content>
		<author>
			<name>jgagnon</name>
		</author>
	</entry>
	
	
	
	<entry>
		<title>How to manage geeks</title>
		<link rel="alternate" type="text/html" href="http://www.ejg-consulting.com/weblog/pivot/entry.php?id=6" />
		<updated>2009-02-14T23:28:00-04:00</updated>
		<published>2009-02-11T21:16:00-04:00</published>
		<id>tag:gagnonconsulting,2010:SoftwareDevelopment.6</id>
		<link rel="related" type="text/html" href=""  />
		<summary type="text">I've always known that there was a basic disconnect between management and techies, here's an article that spells that out.</summary>
        <content type="html" xml:lang="en" xml:base="http://www.ejg-consulting.com/weblog/pivot/entry.php?id=6"><![CDATA[
                I've always known that there was a basic disconnect between management and techies, here's an article that spells that out.I found this article on <a rel="external" href="http://www.wikihow.com/Manage-Geeks" title="How to manage geeks">wikihow</a> that spells out some of the basic differences in worldview between management and IT workers. I was particularly impressed by the comment:<br />
<blockquote><p>Geeks must constantly come up with solutions to new problems and rarely ever solve the same problem twice.</p></blockquote> <br />
Finally, someone acknowledges that there is a certain degree of creativity involved. Isn't it funny how you can't say, "I'm going to be really creative next Tuesday and solve that binomial expansion problem in 4 hours." But most managers try to coerce the project into such terms early in the process, leading to 'lateness' and 'slipped shipping dates'. If they had to ask a novelist to produce under those circumstances, they might get second rate books. I wonder if that leads to some of the second rate software I've seen out there?
		]]></content>
		<author>
			<name>jgagnon</name>
		</author>
	</entry>
	
	
	
	<entry>
		<title>ASP Programming</title>
		<link rel="alternate" type="text/html" href="http://www.ejg-consulting.com/weblog/pivot/entry.php?id=5" />
		<updated>2009-02-14T12:04:00-04:00</updated>
		<published>2009-02-06T04:58:00-04:00</published>
		<id>tag:gagnonconsulting,2010:SoftwareDevelopment.5</id>
		<link rel="related" type="text/html" href=""  />
		<summary type="text">I'm doing a little work in ASP, just for fun, and I'm starting to look for basic information on usage and programming. I'll gather some of the better resources here to save myself some time in the future.</summary>
        <content type="html" xml:lang="en" xml:base="http://www.ejg-consulting.com/weblog/pivot/entry.php?id=5"><![CDATA[
                I'm doing a little work in ASP, just for fun, and I'm starting to look for basic information on usage and programming. I'll gather some of the better resources here to save myself some time in the future.<br /><br /><br /><br /><br /><br /><br />As usual, when I'm looking for a cheat sheet, or a quick reference, <a rel="external" target="_blank" href="http://www.w3schools.com/">w3schools </a>comes to the rescue. They have a wide variety of useful links, and enough information to get the job done without a lot of fluff and bother. I found their <a rel="external" target="_blank" href="http://www.w3schools.com/ASP/asp_quickref.asp">ASP quick reference</a> and got enough of a refresher that I was able to get the basics of my pages done immediately.

<p class="technorati-tags"><a href="http://technorati.com/tag/ASP" rel="tag external">ASP</a>, <a href="http://technorati.com/tag/programming" rel="tag external">programming</a></p>
		]]></content>
		<author>
			<name>jgagnon</name>
		</author>
	</entry>
	
	
	
	<entry>
		<title>Securing a name based apache server</title>
		<link rel="alternate" type="text/html" href="http://www.ejg-consulting.com/weblog/pivot/entry.php?id=4" />
		<updated>2009-02-14T11:40:00-04:00</updated>
		<published>2009-02-04T13:13:00-04:00</published>
		<id>tag:gagnonconsulting,2010:SoftwareDevelopment.4</id>
		<link rel="related" type="text/html" href=""  />
		<summary type="text">The Apache server is an extremely capable system, and I've been using it to serve up several web sites. I've been using the name based Virtual Hosting mechanism, which is quite simple and effective. But adding an https secure set of pages adds a whole new set of problems.</summary>
        <content type="html" xml:lang="en" xml:base="http://www.ejg-consulting.com/weblog/pivot/entry.php?id=4"><![CDATA[
                The Apache server is an extremely capable system, and I've been using it to serve up several web sites. I've been using the name based Virtual Hosting mechanism, which is quite simple and effective. But adding an https secure set of pages adds a whole new set of problems.<br /><br /><br /><br /><br /><br /><br /><br />Apache can use a name based virtual server simply by setting up the configuration files (see <a rel="external" target="_blank" href="http://httpd.apache.org/docs/1.3/vhosts/name-based.html">name based virtual hosts</a>). But one of the problems is that when the server responds to an https: interaction, there is no host visible in the header, it's encrypted. From <a rel="external" target="_blank" href="http://www.instantssl.com/ssl-certificate-support/server_faq/ssl-server-certificate-iis5.html">instantssl</a>:<br /><br />"<strong>When I access my secure site  (https), a certificate for another site is displayed</strong><br /><br />        This problem occurs if you assign the same IP address to each host in <br />        your config file. SSL does not support name based virtual hosting (host <br />        headers are encrypted in SSL), so only the first certificate listed in <br />      your config file will be sent."<br /><br />So, we either host a single site, or give up on the idea of secured socket access. Right?<br /><br />There are some definitive answers for the apache and ssl settings <a rel="external" target="_blank" href="http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html">here</a>. They are pretty specific:<br /><br />"<em>Why is it not possible to use Name-Based Virtual Hosting to identify different SSL virtual hosts?<br />    </em><p>Name-Based Virtual Hosting is a very popular method of identifying<br />    different virtual hosts. It allows you to use the same IP address and<br />    the same port number for many different sites. When people move on to<br />    SSL, it seems natural to assume that the same method can be used to have<br />    lots of different SSL virtual hosts on the same server.</p><br /><br />    <p>It comes as rather a shock to learn that it is impossible.</p> <br /><br />    <p>The reason is that the SSL protocol is a separate layer which<br />    encapsulates the HTTP protocol. So the SSL session is a separate <br />    transaction, that takes place before the HTTP session has begun. <br />    The server receives an SSL request on IP address X and port Y <br />    (usually 443). Since the SSL request does not contain any Host: <br />    field, the server has no way to decide which SSL virtual host to use.<br />    Usually, it will just use the first one it finds, which matches the <br />    port and IP address specified.</p> <br /><br />    <p>You can, of course, use Name-Based Virtual Hosting to identify many<br />    non-SSL virtual hosts (all on port 80, for example) and then <br />    have a single SSL virtual host (on port 443). But if you do this,<br />    you must make sure to put the non-SSL port number on the NameVirtualHost<br />    directive, e.g.</p> <br /><br />    <div class="example"><p><code><br />      NameVirtualHost 192.168.1.1:80<br />    </code></p></div><br />    <br />    <p>Other workaround solutions include: </p><br /><br />    <p>Using separate IP addresses for different SSL hosts. <br />    Using different port numbers for different SSL hosts."</p><p><br /></p><p>Rats.</p><p><br /></p><p><br /><hr class="jump" /></p><p>Just so we don't forget how, you can find instructions for creating an SSL certificate <a rel="external" target="_blank" href="http://stllinux.org/meeting_notes/1999/0715/ca.html">here</a>. This page describes both the 'self signed' certificate, as well as getting a cert from a root authority.</p>
		]]></content>
		<author>
			<name>jgagnon</name>
		</author>
	</entry>
	
	
	
	<entry>
		<title>Job Fairs</title>
		<link rel="alternate" type="text/html" href="http://www.ejg-consulting.com/weblog/pivot/entry.php?id=3" />
		<updated>2009-02-14T23:27:00-04:00</updated>
		<published>2009-02-03T20:09:00-04:00</published>
		<id>tag:gagnonconsulting,2010:SoftwareDevelopment.3</id>
		<link rel="related" type="text/html" href=""  />
		<summary type="text">I was notified about a Dice Job Fair, the Tech, Engineering and Security Clearance Career Fair in Atlanta the other day. I thought I might go, as I could really use a job.</summary>
        <content type="html" xml:lang="en" xml:base="http://www.ejg-consulting.com/weblog/pivot/entry.php?id=3"><![CDATA[
                <p>I was notified about a Dice Job Fair, the Tech, Engineering and Security Clearance Career Fair in Atlanta the other day. I thought I might go, as I could really use a job.<br /><p>When I arrived, the parking lot was full. Not just a little, either, I mean <i>way</i> full. I noticed that there were a lot of people dressed in suits coming from across the street, where there were a handful of lunch places and plenty of parking. So I went over there and parked. As I walked toward the hotel, I noticed a number of people walking out. I asked one of them why he was leaving, and he told me that they were going to tow all of the cars parked across the street, that they should park at a business park next to the hotel. So, I trudged all the way back to my car and moved it. I suppose that beats wondering where they towed it to.</p><br /><p>When I got to the hotel, there was a pretty good line, wrapped around the main lobby a couple of times. We moved slowly through the line, until we reached the sign in table. I had pre registered, apparently all you needed to do was leave them a copy of your resume if you hadn't, so no big deal.</p><br /><p>They handed me a pamphlet, with a handful of companies listed, and one of them described as being a 'virtual' participant. When the line meandered all the way to the main tent (Yes, it was in a tent!) there were a total of four companies. There were big long lines in front of each, and it looked like the representatives were taking the time to speak with each person. This was a good thing, and better than I had anticipated. But I was concerned with the limited number of companies there. There were at least a thousand people looking for technical work, and only four companies. That must say something about the economy, but I would have thought that there were a lot more opportunities for technical help right now. It's not like the companies have fewer computers, or that they've started programming themselves.</p><br /><p> What gives? Anybody else have a similar experience, or a better one?</p><p>I guess I'm not the only one, it seems that a number of job fairs here in Atlanta are being catastrophically overwhelmed by the response. I know that we have one of the highest unemployment rates in the country, so I suppose it shouldn't be a surprise. It does make one feel uncomfortable, and less sanguine about the chances of finding a job anytime soon.</p>
		]]></content>
		<author>
			<name>jgagnon</name>
		</author>
	</entry>
	
	
	
	<entry>
		<title>Added a Weblog</title>
		<link rel="alternate" type="text/html" href="http://www.ejg-consulting.com/weblog/pivot/entry.php?id=1" />
		<updated>2009-02-03T19:54:00-04:00</updated>
		<published>2007-09-03T20:01:00-04:00</published>
		<id>tag:gagnonconsulting,2010:SoftwareDevelopment.1</id>
		<link rel="related" type="text/html" href=""  />
		<summary type="text">I've decided that I want to keep notes on the various problems as I run into them, and perhaps save somebody some steps. Today, I'm trying to set up a password protected subdirectory on my LAMPP server, and I figure that I'm not the only person to have had this problem. So, if I can save someone a few searches, or prevent them from tripping over the same issues that I have, this might be worthwhile.</summary>
        <content type="html" xml:lang="en" xml:base="http://www.ejg-consulting.com/weblog/pivot/entry.php?id=1"><![CDATA[
                <p>
I've decided that I want to keep notes on the various problems as I run into them, and perhaps save somebody some steps. Today, I'm trying to set up a password protected subdirectory on my LAMPP server, and I figure that I'm not the only person to have had this problem. So, if I can save someone a few searches, or prevent them from tripping over the same issues that I have, this might be worthwhile.</p><div align="left">
First things first, we're going to have to create some certificates for our server. This is not hard, it's been done hundreds of times, there's just one minor glitch... I want to have more than one site on my server. So, how are we going to create a separate certificate for each site? Do we have to?
</div>
		]]></content>
		<author>
			<name>Pivot team</name>
		</author>
	</entry>
	
	
	
	<entry>
		<title>Quick links</title>
		<link rel="alternate" type="text/html" href="http://www.ejg-consulting.com/weblog/pivot/entry.php?id=2" />
		<updated>2010-07-03T10:36:00-04:00</updated>
		<published>2007-09-03T20:00:00-04:00</published>
		<id>tag:gagnonconsulting,2010:SoftwareDevelopment.2</id>
		<link rel="related" type="text/html" href=""  />
		<summary type="text">A list of interesting links I've found in my cruising</summary>
        <content type="html" xml:lang="en" xml:base="http://www.ejg-consulting.com/weblog/pivot/entry.php?id=2"><![CDATA[
                <p>
A list of interesting links I've found in my cruising</p>
		]]></content>
		<author>
			<name>Pivot team</name>
		</author>
	</entry>
	
	
	
</feed>
