<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<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/"
	>

<channel>
	<title>Semiotic Pixels Blog</title>
	<link>http://www.semioticpixels.com</link>
	<description></description>
	<pubDate>Mon, 15 Sep 2008 16:44:51 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>Exclude Traffic from Google Analytics with a Cookie</title>
		<link>http://www.semioticpixels.com/2008/testing/exclude-traffic-from-google-analytics-with-a-cookie/</link>
		<comments>http://www.semioticpixels.com/2008/testing/exclude-traffic-from-google-analytics-with-a-cookie/#comments</comments>
		<pubDate>Fri, 25 Jan 2008 20:26:46 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[testing]]></category>

		<category><![CDATA[website analytics]]></category>

		<category><![CDATA[google analytics]]></category>

		<guid isPermaLink="false">http://www.semioticpixels.com/blog/2008/testing/exclude-traffic-from-google-analytics-with-a-cookie/</guid>
		<description><![CDATA[When reviewing the analytics for this site, I often guess how much of that traffic is myself. After some consideration, I decided to use Justin Cutroni&#8217;s cookie solution. He wrote the solution in 2006 for the old analytics. I&#8217;m testing it on the new GA code and it seems to be working just fine.
The basic [...]]]></description>
			<content:encoded><![CDATA[<p>When reviewing the analytics for this site, I often guess how much of that traffic is myself. After some consideration, I decided to use Justin Cutroni&#8217;s cookie solution. He wrote the solution in 2006 for the old analytics. I&#8217;m testing it on the new GA code and it seems to be working just fine.</p>
<p>The basic idea is put a form on your website that lets  you name a cookie. The form will set the cookie on your computer. This lets you set a cookie for any number of computers. The only downside is if  you clear your cookies, you&#8217;ll have to reset it.</p>
<p>The next step is to create a custom filter in your Google Analytics account that will exclude traffic from computers with that cookie on them.</p>
<p>See Justin&#8217;s article at <a href="http://www.epikone.com/blog/2006/07/11/count-me-out/">Analytics Talk</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.semioticpixels.com/2008/testing/exclude-traffic-from-google-analytics-with-a-cookie/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ubuntu Gutsy Gibbon Development Server Setup</title>
		<link>http://www.semioticpixels.com/2008/infrastructure/gutsy-gibbon-development-server-setup/</link>
		<comments>http://www.semioticpixels.com/2008/infrastructure/gutsy-gibbon-development-server-setup/#comments</comments>
		<pubDate>Mon, 21 Jan 2008 17:21:26 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[infrastructure]]></category>

		<guid isPermaLink="false">http://www.semioticpixels.com/blog/2008/uncategorized/gutsy-gibbon-development-server-setup/</guid>
		<description><![CDATA[I know there are plenty of articles and posts for setting up a development server. Yet I still find the need to write up the exact commands and process for my later self to refer to, especially since I haven&#8217;t found a clone function in VMware Fusion like the linux version has.  A pet [...]]]></description>
			<content:encoded><![CDATA[<p>I know there are plenty of articles and posts for setting up a development server. Yet I still find the need to write up the exact commands and process for my later self to refer to, especially since I haven&#8217;t found a clone function in VMware Fusion like the linux version has.  A pet &#8220;when-I-have-time&#8221; project would be to turn these steps into a bash script.</p>
<p>Again, the environment is <a href="http://releases.ubuntu.com/7.10/">Ubuntu Gutsy Gibbon</a></p>
<h2>Setting up a new LAMP server</h2>
<h3>File Permissions</h3>
<p>If you&#8217;re going to access your web directory from another computer, you&#8217;ll need to change the file permissions on the web directory so you can put files. For example, my development server is a Ubuntu virtual machine but I do some development in a Windows vm and some development on my mac. In both cases, I connect with my development server over an sftp client that&#8217;s integrated into my editor environment.</p>
<p><code>sudo chown yourusername /var/www</code><br />
alternatively,  you might create a new user like &#8220;web&#8221; or &#8220;www&#8221;. If  you&#8217;ll occasionally make your server public, you might want to create a user that does not have sudo access for an extra layer of security.<sup>1</sup></p>
<h3>install Apache 2</h3>
<p><code>sudo apt-get install apache2</code><br />
<code>sudo /etc/init.d/apache2 start</code><br />
test apache by navigating in browser to <a href="http://localhost">localhost</a>.<br />
place an index.html page into /var/www to test that&#8217;s all set up.</p>
<p>I like to stop apache while installing other things, but you can always restart it so it doesn&#8217;t really matter<br />
<code>sudo /etc/init.d/apache2 stop (or restart)</code></p>
<h3>Install php 5</h3>
<p><code>sudo apt-get install php5 libapache2-mod-php5</code><br />
restart apache so it registers with php<br />
<code>sudo /etc/init.d/apache2 restart</code><br />
test that it worked by placing a phpinfo file into /var/www<br />
create the file<br />
<code>vi /var/www/phpinfo.php</code><br />
then type<br />
<code>&lt;?php phpinfo(); &gt;</code></p>
<p>Navigate in browser to <a href="http://localhost/phpinfo.php">localhost/phpinfo.php</a> to see that it&#8217;s working</p>
<h3>install mysql server</h3>
<p><code>sudo apt-get install mysql-server</code><br />
<code>sudo apt-get install libapache2-mod-auth-mysql php5-mysql mysql-client</code></p>
<p>tell php about mysql<br />
<code>sudo vi /etc/php5/apache2/php.ini</code></p>
<p>It doesn&#8217;t matter where you put it, but I like to put it under the line that says &#8220;Directory in which the loadable extensions (modules) reside&#8221;.<br />
<code> extension=mysql.so</code><br />
restart apache again.<br />
<code>sudo /etc/init.d/apache2 restart</code></p>
<h3>Install phpmyadmin</h3>
<p>This can be done the Ubuntu way or it can be done manually by installing phpmyadmin to /var/www like any other web application.</p>
<h4>The Ubuntu way</h4>
<p>the benefit to doing it this way is that phpmyadmin is installed as a managed package which means it will be updated by our lovely package manager, apt-get which saves us a little time. Since I use phpmyadmin on multiple virtual machines, this makes a cumulative difference.</p>
<p><code>sudo apt-get install phpmyadmin</code></p>
<p>tell apache where phpmyadmin actually lives (which is in /etc/phpmyadmin)<br />
<code>sudo vi /etc/apache2/apache2.conf</code><br />
You can place the following directive anywhere, but I prefer to place it under the line:<br />
<code># Include all the user configurations</code><br />
add the line<br />
<code>Include /etc/phpmyadmin/apache.conf</code></p>
<p>If you didn&#8217;t want to edit your apache.conf, you could always use a symlink instead.</p>
<p>navigate to <a href="http://localhost/phpmyadmin">localhost/phpmyadmin</a> to check that it&#8217;s working</p>
<p>Done with the LAMP setup! Next up &#8230; subversion and trac</p>
<h2>Footnotes</h2>
<ol class="footnotes"><li id="footnote_0_13" class="footnote">for more on managing user accounts see this <a href="http://www.reallylinux.com/docs/usersubuntu.shtml">O&#8217;Reilly article</a> or for an in-depth treatise that addresses best practices - check out my favorite reference book <a href="http://www.amazon.com/Essential-System-Administration-Third-Frisch/dp/0596003439/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1201113196&amp;sr=8-1">&#8220;Essential System Administration&#8221;</a>.</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.semioticpixels.com/2008/infrastructure/gutsy-gibbon-development-server-setup/feed/</wfw:commentRss>
		</item>
		<item>
		<title>install plone 3 on ubuntu 7.10</title>
		<link>http://www.semioticpixels.com/2007/infrastructure/install-plone-3-on-ubuntu-710/</link>
		<comments>http://www.semioticpixels.com/2007/infrastructure/install-plone-3-on-ubuntu-710/#comments</comments>
		<pubDate>Thu, 13 Dec 2007 01:05:47 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[content management systems]]></category>

		<category><![CDATA[infrastructure]]></category>

		<category><![CDATA[plone]]></category>

		<category><![CDATA[system administration]]></category>

		<guid isPermaLink="false">http://www.semioticpixels.com/blog/?p=3</guid>
		<description><![CDATA[This is on a freshly installed Ubuntu 7.10 (Gutsy Gibbon). Modify version numbers as needed

install g++
sudo apt-get install linux-headers-`uname -r` build-essential xinetd
download plone unified installer or in your terminal  type:
wget https://launchpad.net/plone/3.0/3.0.4/+download/Plone-3.0.4-UnifiedInstaller.tar.gz --no-check-certificate
tar -xvzf Plone-3.0.4-Unifiedinstaller-Rev3.tar.gz
cd Plone-3.0.4-Unifiedinstaller
If you need to change the install path for Plone, edit the PLONE_HOME variable in install.sh. I changed mine to [...]]]></description>
			<content:encoded><![CDATA[<p>This is on a freshly installed Ubuntu 7.10 (Gutsy Gibbon). Modify version numbers as needed</p>
<ol>
<li>install g++<br />
<code>sudo apt-get install linux-headers-`uname -r` build-essential xinetd</code></li>
<li>download <a href="http://plone.org/products/plone">plone unified installer</a> or in your terminal  type:<br />
<code>wget https://launchpad.net/plone/3.0/3.0.4/+download/Plone-3.0.4-UnifiedInstaller.tar.gz --no-check-certificate</code></li>
<li><code>tar -xvzf Plone-3.0.4-Unifiedinstaller-Rev3.tar.gz</code><br />
<code>cd Plone-3.0.4-Unifiedinstaller</code><br />
If you need to change the install path for Plone, edit the PLONE_HOME variable in install.sh. I changed mine to /usr/local/Plone304</li>
<li><code>sudo ./install.sh zeo</code></li>
<li> <code>cd /usr/local/Plone304/zeocluster</code><br />
and<br />
<code>sudo vi adminPassword.txt</code><br />
to view admin password</li>
<li> start Plone (first time will take a few minutes):<br />
<code> sudo /usr/local/Plone304/zeocluster/bin/startcluster.sh</code></li>
<li> navigate to localhost:8080 to check that zope is working</li>
<li> in localhost:8080/manage go to Root Folder, click on acl_users=&gt;users=&gt;admin and change admin password to something you&#8217;ll remember</li>
<li> from dropdown menu select Plone Site to create a new site</li>
<li> navigate to plone site: localhost:8080/ploneSiteName</li>
<li>navigate to zmi by: localhost:8080/ploneSiteName/manage</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.semioticpixels.com/2007/infrastructure/install-plone-3-on-ubuntu-710/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Don&#8217;t Make Me Think: Infrastructure for Web Development</title>
		<link>http://www.semioticpixels.com/2007/infrastructure/a-web-developers-infrastructure/</link>
		<comments>http://www.semioticpixels.com/2007/infrastructure/a-web-developers-infrastructure/#comments</comments>
		<pubDate>Thu, 13 Dec 2007 00:31:31 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[infrastructure]]></category>

		<category><![CDATA[]]></category>

		<category><![CDATA[system administration]]></category>

		<guid isPermaLink="false">http://www.semioticpixels.com/blog/?p=6</guid>
		<description><![CDATA[When I was in college, my fellow classmates and I whined to each other about the gyrations it took to just get our development environments configured so we could do our homework  &#8230; building a development environment was not the assignment.
Working as a web developer or web designer isn&#8217;t much different. Setting up your [...]]]></description>
			<content:encoded><![CDATA[<p>When I was in college, my fellow classmates and I whined to each other about the gyrations it took to just get our development environments configured so we could do our homework  &#8230; building a development environment was not the assignment.</p>
<p>Working as a web developer or web designer isn&#8217;t much different. Setting up your infrastructure and development environment is not billable time but sometimes it seems we spend an inordinate amount of effort creating an infrastructure that supports us in getting our work done with less distraction.</p>
<p>The past couple years, infrastructure has gotten easier and more cost effective  using <a href="http://en.wikipedia.org/wiki/Virtual_machine">virtual machine</a> environments combined with free Linux distributions such as Ubuntu that strive to be more user friendly. So now seemed like a good time re-evaluate how we were doing things and how we might do things differently to both increase productivity and reduce the environmental impact of our office.</p>
<h2>Our General Infrastructure Requirements:</h2>
<ol>
<li>A Linux development and test server for programming projects.</li>
<li>A Windows webserver for .NET development</li>
<li>Windows workstations for IE browser testing <sup>1</sup></li>
<li>A design station: Apple computers have superior system-level image rendering and have long been the standard for design stations.</li>
<li>A workhorse: this can double as your design station. If you need to run the many Windows-only business applications, this might be a Windows PC.</li>
<li>A server for internal applications - this should be more stable than the development/test server.</li>
<li>A router, preferably that combines wireless and print networking.</li>
<li>And last, but certainly not least, we want to become more productive while reducing environmental impact of our office &#8230; which is a whole different topic I&#8217;ll cover another time.</li>
</ol>
<p>Our starting point was</p>
<ol>
<li>A year ago, my computer was desperately old but I was too busy with work to really think through what our ideal infrastructure should be. So I quickly built 2 computers from scavenged parts with the intent of using them for a year. Well, that year is up!</li>
<li>1 Ubuntu machine which was my workhorse, running  VMware with multiple installs of Windows and Linux for testing. I had built this a year ago reusing a cpu from a Dell</li>
<li>1 Windows server for .NET development. I had built this machine a year ago reusing another old cpu from a Dell.</li>
<li>1 linux server (a 5 year old Dell sc600) chugging noisily away in the closet. This was our development server</li>
<li>1 power pc used as a design station.</li>
</ol>
<p>Functionally, what I needed was a multi-core computer that would let me run lots of virtual machines simultaneously for testing and development. I&#8217;ve subscribed to <a href="http://www.browsercam.com">browsercam</a> for years to test websites which is expensive.  I need to be able to test websites on Windows, Mac and Linux and in multiple versions.  When Apple switched over to the Intel processor, I decided to get an Intel-based Mac as soon as VMware released a mac version.  So, the end result is:</p>
<ul>
<li>We kept our PowerPC design station with Adobe Creative Suite, professional fonts and font manager, and various other design and multimedia tools.</li>
<li>I purchased an Intel Apple and migrated from my Ubuntu workstation to the Apple. This is experimental for me and is what prompted me to write this. I have to admit that I really miss my Ubuntu desktop but I&#8217;ll give the mac a fair try. I installed VMware Fusion on my mac, and created a number of VMs:
<ul>
<li>A standard LAMP+RoR+Plone installation (replacing my ancient Dell sc600)</li>
<li>A Windows workhorse install for mostly business applications such as QuickBooks, Microsoft Office, etc</li>
<li>Multiple installs of Windows for website testing in different versions of Internet Explorer</li>
<li>multiple installs of Ubuntu for various client projects that require different versions and packages installed on the server.<sup>2</sup></li>
</ul>
</li>
<li>Most of our internal knowledge management and productivity tools are php, java and ruby on rails web applications. I spent more time than I thought was reasonable setting up hosting on my mac (Leopard), so I ended up creating a separate Ubuntu VM which took about 15 minutes to setup. This is fine since with a quad core, I can comfortably run multiple VMs and all our internal knowledge management is browser based anyway so the vm just has to be on and have an IP address.</li>
<li>Anyhoo &#8230; right before I switched over to the Intel Apple our old Linksys router went belly up. We&#8217;ve been pretty loyal to the Cisco-owned Linksys over the years despite the Windows-only admin interface. But I didn&#8217;t want to waste money on obsolete technology like G-band so I bought the wireless N Linksys router &#8230;.. and promptly returned it.<br />
We did more research and discovered that with the Apple Airport Extreme, we&#8217;d get not only a wireless-N router that we could administrate from our macs, but also a built-in print server which was something else we&#8217;d never been satisfied with in our infrastructure (well, dissatisfied isn&#8217;t really accurate. We were never able to get our old linksys print server to work nicely with our mac).<br />
So, the upshot is we got the Apple Airport Extreme and it works great - absolutely no complaints. Both macs can print, I can print from my linux and Windows VMs and, most importantly, I don&#8217;t have to think about it.</li>
</ul>
<p>The end result?  pretty good! I replaced 3 older, noisy, energy consuming computers with 1 for a grand total of 2 computers in our office. Which is nice since there are only 2 of us who work in this particular office. This should save us some maintenance time, means we&#8217;re consuming less energy and the office is quieter  now that our 2 computers are both water cooled. I put away my KVM switch and cleared my desk of cables - I&#8217;ll eventually sell it. I put the router and printer in the closet<sup>3</sup>  and rarely have to &#8220;power cycle&#8221; the router.</p>
<p>VMware Fusion isn&#8217;t perfect yet - I&#8217;ll write about the trade offs in a separate post</p>
<ol class="footnotes"><li id="footnote_0_6" class="footnote">you can use various hacks for running multiple versions of IE on one machine &#8230; but the risks are:
<ul>
<li>they may not behave the same way as an installed version</li>
<li>a Microsoft update will break them</li>
<li> they don&#8217;t work consistently across Windows 2000, XP or Vista</li>
<li>when testing javascript behavior, I need to trust any errors are the javascript, not the browser install.</li>
</ul>
<p></li><li id="footnote_1_6" class="footnote">Although in most cases multiple versions of software can be run side by side in Linux, I find that it&#8217;s less time consuming and less fraught with weird errors that must be resolved to just run a separate VM for those special cases rather than running 4 different versions of Python, for example, on the same machine&#8230;</li><li id="footnote_2_6" class="footnote">laser printers release some nasty particulates when printing largish documents. So it&#8217;s a good idea to place them in another room or enclosure. See <a href="http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2007/08/01/PRINTERS.TMP&amp;tsp=1">&#8220;SF Gate article&#8221;</a> Here&#8217;s a link to the <a href="http://pubs.acs.org/cgi-bin/abstract.cgi/esthag/2007/41/i17/abs/es063049z.html">Particle Emission Characteristics of Office Printers</a></li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.semioticpixels.com/2007/infrastructure/a-web-developers-infrastructure/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
