<?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/"
	>

<channel>
	<title>Caxy, Inc.</title>
	<atom:link href="http://www.caxy.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.caxy.com/blog</link>
	<description>A blog about technology, culture, open-source, PHP, Linux, MySQL with tips, tricks and extra bits.</description>
	<pubDate>Sat, 30 Jan 2010 00:02:36 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Caxy Founder Michael LaVista to speak at PMG Innovation Summit</title>
		<link>http://www.caxy.com/blog/2009/03/caxy-founder-michael-lavista-to-speak-at-pmg-innovation-summit/</link>
		<comments>http://www.caxy.com/blog/2009/03/caxy-founder-michael-lavista-to-speak-at-pmg-innovation-summit/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 20:40:22 +0000</pubDate>
		<dc:creator>Michael LaVista</dc:creator>
		
		<category><![CDATA[Business]]></category>

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

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

		<guid isPermaLink="false">http://www.caxy.com/blog/?p=219</guid>
		<description><![CDATA[Caxy founder Michael LaVista will be speaking at the PMG Innovation Summit on April 21st, 2009.  Wondering what interactivism is? Are you an interactivist? There&#8217;s a site about it just for you. What will Michael be talking about, anyway? Gald you asked:
This is Michael LaVista, your Technology Squad Leader, and I have some good news: [...]]]></description>
			<content:encoded><![CDATA[<p>Caxy founder Michael LaVista will be speaking at the PMG Innovation Summit on April 21st, 2009.  Wondering what interactivism is? Are you an interactivist? <a title="PMG Interactivism" href="http://www.pmginteractivism.com/" target="_blank">There&#8217;s a site about it just for you</a>. What will Michael be talking about, anyway? Gald you asked:</p>
<blockquote><p>This is Michael LaVista, your Technology Squad Leader, and I have some good news: interactive marketing isn’t that complicated. It’s true! Web technology isn’t as wild as it once was—you could say that the universe has at last settled into a system of interconnected tools and parts.</p>
<p>By that, I mean that marketers shouldn’t let apprehension about technology prevent them from big plans. So much more is possible and affordable now than it ever has been, and it’s all just waiting to be tapped.</p>
<p>My section of the day will focus on teaching you how web tools like data base management and e-commerce can be integrated into your system in the most headache-free, cost-effective manners, and you’ll also learn the basics about website hosting.</p></blockquote>
<p style="text-align: center;"><img class="size-medium wp-image-221 aligncenter" title="pmg_interactivism1" src="http://www.caxy.com/blog/wp-content/uploads/2009/03/pmg_interactivism1-300x137.png" alt="pmg_interactivism1" width="300" height="137" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caxy.com/blog/2009/03/caxy-founder-michael-lavista-to-speak-at-pmg-innovation-summit/feed/</wfw:commentRss>
		</item>
		<item>
		<title>iPhones saved our office</title>
		<link>http://www.caxy.com/blog/2009/02/iphones-saved-our-office/</link>
		<comments>http://www.caxy.com/blog/2009/02/iphones-saved-our-office/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 20:34:34 +0000</pubDate>
		<dc:creator>Michael LaVista</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.caxy.com/blog/?p=214</guid>
		<description><![CDATA[The 1800 block of West Grand in Chicago suffered a blackout today.
However, aided by his trusty Flashlight iPhone app, Senior Developer Jason Bautista got a few more devices into our battery backup and kept us online.
It took the power company a few hours longer than we thought to get power back up. Too bad there [...]]]></description>
			<content:encoded><![CDATA[<p>The 1800 block of West Grand in Chicago suffered a blackout today.</p>
<p>However, aided by his trusty Flashlight iPhone app, Senior Developer Jason Bautista got a few more devices into our battery backup and kept us online.</p>
<p>It took the power company a few hours longer than we thought to get power back up. Too bad there isn&#8217;t a &#8220;Power Station&#8221; app or we would have plugged in.</p>
<p><img class="alignnone size-full wp-image-216" title="jb_iphone_saves_the_day_cm1" src="http://www.caxy.com/blog/wp-content/uploads/2009/02/jb_iphone_saves_the_day_cm1.jpg" alt="jb_iphone_saves_the_day_cm1" width="579" height="434" /></p>
<p>Picture taken &#8230; with iPhone</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caxy.com/blog/2009/02/iphones-saved-our-office/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Google Maps of the Traffic by Caxy&#8217;s Chicago office</title>
		<link>http://www.caxy.com/blog/2009/01/caxy-maps/</link>
		<comments>http://www.caxy.com/blog/2009/01/caxy-maps/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 22:00:17 +0000</pubDate>
		<dc:creator>Michael LaVista</dc:creator>
		
		<category><![CDATA[Google]]></category>

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

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

		<guid isPermaLink="false">http://www.caxy.com/blog/?p=108</guid>
		<description><![CDATA[Here's a look at the traffic outside our office via Google maps.

This is why I take the train.

If you live in Chicago, your car never gets above 30 miles per hour in the winter.

[inline]
 
    



    function load() {
      if (GBrowserIsCompatible()) {
   [...]]]></description>
			<content:encoded><![CDATA[<p>Here's a look at the traffic outside our office via Google maps.</p>

<p>This is why I take the train.</p>

<p>If you live in Chicago, your car never gets above 30 miles per hour in the winter.</p>

[inline]
 <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAA0km8OgVYf7UVwaWKukCDVRSm7SDyRmWZPW2EUjxMPmCQeOBmABQuqGJa80DgmSxnzXSqqYBJjb-_Cg"
      type="text/javascript"></script>
    <script type="text/javascript">



    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(41.9897862, -87.203111), 14);

var tiny = new GIcon();
      tiny.image = "http://www.caxy.com/caxy_map_flag.png";
      tiny.shadow = "";
      tiny.iconSize = new GSize(35, 35);
      tiny.shadowSize = new GSize(22, 20);
      tiny.iconAnchor = new GPoint(0, 0);
      
      var where = new GLatLng(41.8897862, -87.673111);
      var opts = {
        title: "Caxy, Inc. World Headquarters",
        //icon: tiny
      };
      var marker = new GMarker(where, opts);
      map.addOverlay(marker);
      
      marker.openInfoWindowHtml("<div id='map_blurb'><img src='/caxy_logo_small.png' /><br /><span class='map_head'>Caxy, Inc. World Headquarters<br />1812 W Hubbard St, Chicago, IL<br />312.829.4990<br /><a href='http://www.caxy.com'>http://www.caxy.com</a><br/ >&nbsp;<br /></span>");
    
      var traffic = new GTrafficOverlay();
      map.addOverlay(traffic);

      }
    }

   
    </script>
<div id="map" style="width:600px; height:400px;background-color: rgb(255,255,255) !important; color: #000 !important;"></div>
[/inline]


<p>&nbsp;</p>
<p>Tech note: if you are interested in how this works in WordPress, the first step is to download a great plug-on for allowing for unformatted text in your blog:</p>

<a href="http://www.ooso.net/index.php/archives/379" target="_blank">http://www.ooso.net/index.php/archives/379</a>]]></content:encoded>
			<wfw:commentRss>http://www.caxy.com/blog/2009/01/caxy-maps/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Cutting costs, staying green</title>
		<link>http://www.caxy.com/blog/2009/01/cutting-costs-staying-green/</link>
		<comments>http://www.caxy.com/blog/2009/01/cutting-costs-staying-green/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 07:38:52 +0000</pubDate>
		<dc:creator>Michael LaVista</dc:creator>
		
		<category><![CDATA[Business]]></category>

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

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

		<guid isPermaLink="false">http://www.caxy.com/blog/?p=46</guid>
		<description><![CDATA[As times get tough, perhaps the biggest issue facing businesses is cost management—small businesses in particular can only afford actions that cut costs immediately. So will businesses take this opportunity to ignore environmental consciousness to save cash?

I’m hoping that the tide has turned enough that businesses will use a desire to become greener as a [...]]]></description>
			<content:encoded><![CDATA[As times get tough, perhaps the biggest issue facing businesses is cost management—small businesses in particular can only afford actions that cut costs immediately. So will businesses take this opportunity to ignore environmental consciousness to save cash?

I’m hoping that the tide has turned enough that businesses will use a desire to become greener as a lens to filter all their cost savings through.

At Caxy, we’ve upgraded our web server systems significantly in recent months, reducing our server landscape by 75% by running on fewer, more efficient systems. The primary goal was to reduce cost (which it did), but it also reduced our direct and indirect consumption of power, saved precious metals and decreased our production of difficult-to-dispose-of waste.

As we look forward to the rest of 2009, we are simultaneously looking for cost savings solutions that can also do things like reduce our carbon footprint.

The double-entendre of conserving resources here is interesting. In general, whatever we reduce in the company is reflected in reduced resource consumption. That means businesses need not look at cash vs. eco as an either/or situation, but rather as an opportunity to do both. All it takes is smart planning, in the short and long term—in the end, it’s all green.]]></content:encoded>
			<wfw:commentRss>http://www.caxy.com/blog/2009/01/cutting-costs-staying-green/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Managing DNS and the hosts file on your Mac OS X system</title>
		<link>http://www.caxy.com/blog/2009/01/managing-dns-the-hosts-file-on-your-mac-os-x-system/</link>
		<comments>http://www.caxy.com/blog/2009/01/managing-dns-the-hosts-file-on-your-mac-os-x-system/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 02:08:59 +0000</pubDate>
		<dc:creator>Michael LaVista</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Mac OS X]]></category>

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

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

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

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

		<guid isPermaLink="false">http://www.caxy.com/blog/?p=32</guid>
		<description><![CDATA[Subtitle: Working with /etc/hosts and lookupd for Mac OS X

If you are a developer looking to test web sites on your Mac or maybe you have different DNS for different locations (office, home, client, airport, etc...), you may need to temporarily override the authoratative DNS for a host.

Checklist:

	Do you have root? If you've never enabled [...]]]></description>
			<content:encoded><![CDATA[Subtitle: Working with /etc/hosts and lookupd for Mac OS X

If you are a developer looking to test web sites on your Mac or maybe you have different DNS for different locations (office, home, client, airport, etc...), you may need to temporarily override the authoratative DNS for a host.

Checklist:
<ul>
	<li>Do you have root? If you've never enabled root, try <a title="Apple's page on enabling root" href="http://support.apple.com/kb/HT1528" target="_blank">Apple's page on enabling root</a></li>
	<li>Do you have the IP of the host you want to override?</li>
</ul>
First, open up the /etc/hosts file as root. In a Terminal (Applications &gt; Utilities &gt; Terminal) ...
<div class="bash" style="font-family: monospace;">% <span class="kw2">sudo</span> vi /etc/hosts</div>
Then go to to the bottom of the file and make an entry. The format is IP, followed by whitespace (tabs are nice) and then a list of space-separated domains. Don't forget the "www" version if you need it.
<div class="bash" style="font-family: monospace;"><span class="re3"># IP Address&nbsp; Host</span><br />
<span class="nu0">127.0</span><span class="nu0">.0</span><span class="nu0">.1</span>&nbsp;&nbsp; yahoo.com www.yahoo.com</div>
Then, voila, your computer will think that site is found at the IP you specified.

What? Didn't work? You need to clear your DNS cache:

(For Mac OS 10.4 ...)
<div class="bash" style="font-family: monospace;">% lookupd -flushcache</div>
Later, when you're done fooling your machine, do the same thing again and just comment out or delete your

(For Mac OS 10.5 ...)
<div class="bash" style="font-family: monospace;">% dscacheutil -flushcache</div>
entry and flush your DNS again.]]></content:encoded>
			<wfw:commentRss>http://www.caxy.com/blog/2009/01/managing-dns-the-hosts-file-on-your-mac-os-x-system/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Where is my Google Analytics tracking code?</title>
		<link>http://www.caxy.com/blog/2009/01/where-is-my-google-analytics-tracking-code/</link>
		<comments>http://www.caxy.com/blog/2009/01/where-is-my-google-analytics-tracking-code/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 20:22:39 +0000</pubDate>
		<dc:creator>Michael LaVista</dc:creator>
		
		<category><![CDATA[Google]]></category>

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

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

		<guid isPermaLink="false">http://www.caxy.com/blog/?p=27</guid>
		<description><![CDATA[I have no idea why this is so hard to find, but if you're looking for the JavaScript code for your Google Analytics account, here's how you find it. (This is direct from Google's site, just not in an easy-to-find spot)
To find your personalized tracking code and account number, please follow the steps below.

1. Log [...]]]></description>
			<content:encoded><![CDATA[I have no idea why this is so hard to find, but if you're looking for the JavaScript code for your Google Analytics account, here's how you find it. (This is direct from Google's site, just not in an easy-to-find spot)
<blockquote>To find your personalized tracking code and account number, please follow the steps below.

1. Log in to your Google Analytics account.
2. From the Analytics Settings page, find the profile for which you would like to retrieve the tracking code. Please note that tracking code is profile-specific.
3. From that profile's Actions column, click 'Edit.'
4. Above the top right-hand side of the Main Website Profile Information box, click 'Check Status.'
5. Your tracking code can be copied and pasted from the text box in the "Instructions for adding tracking" section.

When adding your tracking code to your web pages, make sure to paste it into the body section of your HTML code, immediately preceding the &lt;/body&gt; tag. If you're adding tracking code to the new version of Blogger, the instructions may differ. Read more about adding code to your Blogger account.

The Analytics account number will appear in the format UA-xxxxxxx-y. The '-y' towards the end refers to the profile number. This number is unique for each of the profiles within your account although the account number will be the same.</blockquote>]]></content:encoded>
			<wfw:commentRss>http://www.caxy.com/blog/2009/01/where-is-my-google-analytics-tracking-code/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Open Season for Open Source</title>
		<link>http://www.caxy.com/blog/2008/12/open-season-for-open-source/</link>
		<comments>http://www.caxy.com/blog/2008/12/open-season-for-open-source/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 13:36:42 +0000</pubDate>
		<dc:creator>Michael LaVista</dc:creator>
		
		<category><![CDATA[Business]]></category>

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

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

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

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

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

		<guid isPermaLink="false">http://www.caxy.com/blog/?p=24</guid>
		<description><![CDATA[A recession is no time to pay through the nose for software. So in these tough economic times, with proprietary software vendors increasing the licensing fees and locking in their customers, open source is king.

The idea behind open source is simple: find a relevant solution that already exists, use that as a starting point and [...]]]></description>
			<content:encoded><![CDATA[A recession is no time to pay through the nose for software. So in these tough economic times, with proprietary software vendors increasing the licensing fees and locking in their customers, open source is king.

The idea behind open source is simple: find a relevant solution that already exists, use that as a starting point and customize from there. After all, most of what you’re looking for (e-commerce, CRM, content management, social networking, blogging) has already been done. Thousands. Of. Times.

But the strength of open source is also a challenge—in an infinite sea of alternatives, how do you find what you’re looking for?

That’s where an open source guru like Caxy comes in. We’ve vetted hundreds of options, learning firsthand which ones work and which don’t. So when a client comes to us with just about any request—the latest content management interface, for example, or a more flexible e-commerce system—we instantly pull up the top 1% of open source material and go from there.

Here’s an example. One of our University clients needed websites for each of its four locations, but only budgeted for two. So we found the open source software that best matched what they needed (with features like photo galleries, updatable calendar and contact forms) and developed one site for them. When they signed off on that, we took that same system—sans licensing fees—and duplicated it to create the other three sites. We could have done 30 more sites, with barely a change in the cost of implementing the software.

But back to the economy. The last time things took a downturn (2001-02), Linux established itself as a widely-accepted enterprise operating system, and vendors who got on board early reaped the benefits. This time around there’s a bigger focus on databases and higher-level software apps, but the principle is the same: don’t start from scratch. Depending on the scope of your project, a head start can mean real savings. Sure, saving $10k on a million dollar job isn’t a big deal, but saving $10k on a $50k is a real dent.

So if you’re on a project that’s not a brand new, earth-shattering, clouds-parting genesis of a concept, find yourself an open source specialist whose budget goes to customizing, not software. We happen to know a good place to start.

Caxy is a custom development shop specializing in open source technology, notably interactive PHP and Flash. Founded in 1999 on the mean streets of Chicago, our master coding ninjas are currently conquering CodeIgniter, Drupal, Wordpress, ExpressionEngine, SugarCRM, jQuery, prototype &amp; more.

<strong>Rackspace is proud to name Caxy VIP Partner of the Month for December</strong>.]]></content:encoded>
			<wfw:commentRss>http://www.caxy.com/blog/2008/12/open-season-for-open-source/feed/</wfw:commentRss>
		</item>
		<item>
		<title>building a quiet / silent PC</title>
		<link>http://www.caxy.com/blog/2008/11/building-a-quiet-silent-pc/</link>
		<comments>http://www.caxy.com/blog/2008/11/building-a-quiet-silent-pc/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 18:17:29 +0000</pubDate>
		<dc:creator>JC Jordan</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.caxy.com/blog/?p=19</guid>
		<description><![CDATA[Well, as everyone around the office knows, I don't get on the upgrade wagon that often.  I see software upgrades as being a never-ending cycle meant to pull customers in and take their money, when oftentimes, an upgrade isn't necessary because the software already works. From a hardware standpoint, this is not as true though. [...]]]></description>
			<content:encoded><![CDATA[Well, as everyone around the office knows, I don't get on the upgrade wagon that often.  I see software upgrades as being a never-ending cycle meant to pull customers in and take their money, when oftentimes, an upgrade isn't necessary because the software already works. From a hardware standpoint, this is not as true though. Over time, users' computing needs change, and software and OS take up more and more system resources, so hardware upgrades are a necessity at some point.

I last built a quiet PC in or around 2001/2002, and this box is finally starting to show its age. My first thought was, "I'll just update a few key components to boost the speed and then I won't have to build a whole new machine." WRONG. Everything has changed:

<strong>OUT </strong>

IDE

VGA

SDRAM

Socket A / Socket 478

<strong>IN</strong>

SATA

PCI express (PCI x16 / x8)

DDR2 / DDR3

Socket AM2 / LGA775

My main focus wasn't necessarily complete silence, because often that comes at the cost of performance. I tried to get a maximum of performance with a minimum of sound, and without breaking the bank. I ranked silence and cost slightly above performance however, but if I could have all three, I did. I also wanted to be able to overclock this machine to get the most performance possible.

I started with the case. There are few good manufacturers that make quiet cases, like Antec, Lian Li and Zalmann, and I am sure there are others. I settled on an Antec case. Then, I chose a chipset and processor (Intel's LGA775 and their dual core e8500 3.16 GHz chip) and motherboard (Gigabyte EP45 UD3P). The next step was the video card and the power supply. There are still manufacturers who make silent video cards (heatsink only), and granted, you have to give up a little bit of performance, and your case cooling needs to be a little better with a heatsink-only card, but it's not that bad and I don't do heavy-duty graphics anyway. I chose a fanless ASUS ATI 3650 PCI-Express card. Next was the PSU; it needed to have enough power but also be fairly quiet. I chose a Seasonic S12 550W model; there are others to choose from, but this one seemed to fit my needs well and seems to be well-received on the internet. Finally, I chose a quiet hard drive (Western Digital's Caviar line is very quiet and is also long-lasting ) and some quiet case fans and a heatsink/fan unit for the processor (the supplied Intel HSF for the processor is far too loud). Nexus makes quiet case fans as does Scythe, and I chose the Xigmatek SDT-HD964 as the HSF, replacing the supplied stock fan with a quieter Nexus 92mm fan.

I'll tell you what, this thing is QUIET! I compared it to my old "quiet" machine, and it surpasses it easily. You have to turn everything off and listen very closely to even hear the fan noise (which is just a very soft "whooshing" sound). And even as quiet as it is, my CPU temps haven't gone above 34C <strong>with the processor overclocked to 4.08GHz!</strong> Right now, the loudest thing is the PSU fan and the 120mm case fan, whose decibel levels can actually be lowered even more by replacing with quieter fans and using some "undervolting" tricks.

There are a couple of sites I used extensively for the quiet pc component reviews: silentpcreview.com and to a lesser extent, endpcnoise.com. They are both valuable resources in your quest to build the ultimate quiet PC.]]></content:encoded>
			<wfw:commentRss>http://www.caxy.com/blog/2008/11/building-a-quiet-silent-pc/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A common oversight in CSS fluid layouts</title>
		<link>http://www.caxy.com/blog/2008/10/a-common-oversight-in-css-fluid-layouts/</link>
		<comments>http://www.caxy.com/blog/2008/10/a-common-oversight-in-css-fluid-layouts/#comments</comments>
		<pubDate>Sat, 04 Oct 2008 03:22:01 +0000</pubDate>
		<dc:creator>Ben Lister</dc:creator>
		
		<category><![CDATA[Technology]]></category>

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

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

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

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

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

		<guid isPermaLink="false">http://www.caxy.com/blog/?p=12</guid>
		<description><![CDATA[A couple of weeks ago, while working on an elastic CSS layout using floated divs, I noticed an annoying problem: when using a fixed width left floated div as well as a 100% width “elastic” div, if the browser is resized and the content is scrolled horizontally, the elastic div’s background  stops at the [...]]]></description>
			<content:encoded><![CDATA[A couple of weeks ago, while working on an elastic CSS layout using floated divs, I noticed an annoying problem: when using a fixed width left floated div as well as a 100% width “elastic” div, if the browser is resized and the content is scrolled horizontally, the elastic div’s background  stops at the edge of the floated div. Since a large number of web users still use monitors with resolution under 1280px, I knew that the problem would cause usability issues.

After a bit of debugging the code and the lengthy CSS file, I realized that the issue was not with the code, but with the browser itself. During my testing, I found that the issue occurs in Firefox 2, IE7 and Safari (windows) but oddly enough, not in IE6.

<a href="http://www.caxy.com/blog/wp-content/uploads/2008/04/css_bug1.gif"><img class="alignnone size-medium wp-image-13" title="FireFox Before Min-Width tag" src="http://www.caxy.com/blog/wp-content/uploads/2008/04/css_bug1-300x156.gif" alt="FireFox Before Min-Width tag" width="300" height="156" /></a>

<strong>FireFox 2 - Without min-width</strong>

<a href="http://www.caxy.com/blog/wp-content/uploads/2008/04/css_bug2.gif"><img class="alignnone size-medium wp-image-14" title="FireFox After Min-Width tag" src="http://www.caxy.com/blog/wp-content/uploads/2008/04/css_bug2-300x189.gif" alt="FireFox After Min-Width tag" width="300" height="189" /></a>

<strong>FireFox 2 - With min-width</strong>

The first solution that came to mind was the min-width tag, and after not seeing the issue in IE6 (which does not support min-width or min-height CSS tags), I knew that this was the solution. Because this bug is somewhat difficult to find, I was curious how many other sites using similar design techniques had this issue.
The CSS
<div class="css" style="font-family: monospace;"><span class="re0">#container</span> <span class="br0">&#123;</span><br />
width<span class="re2">:<span class="nu0">100</span></span>%;<br />
min-width<span class="re2">:<span class="re3">960px</span></span>;<br />
height<span class="re2">:<span class="re3">200px</span></span>;<br />
<span class="kw1">background</span>:<span class="re0">#<span class="nu0">444</span></span>;<br />
<span class="br0">&#125;</span><br />
<span class="re0">#content</span> <span class="br0">&#123;</span><br />
float<span class="re2">:left</span>;<br />
width<span class="re2">:<span class="re3">960px</span></span>;<br />
background<span class="re2">:green</span>;<br />
height<span class="re2">:<span class="re3">65px</span></span>;<br />
<span class="br0">&#125;</span></div>
The HTML
<div style="font-family: monospace;"><br />
&lt;div id=&quot;container&quot;&gt;<br />
&lt;div id=&quot;content&quot;&gt;<br />
  &nbsp; &nbsp; &nbsp; im inside text&lt;/div&gt;<br />
&lt;/div&gt;<br />
text below</div>
After browsing through about 10 popular websites ranging from design blogs to CSS galleries, to online retailers, I was surprised to find that roughly 30% had not corrected this bug. Although the chance that any given user experiences the bug are shrinking as monitor sizes are growing, if only 8% of the users have 800x600 resolution and the site gets 10,000 visitors a week who use a browser other than IE6, that is roughly 41,500+/- visitors a year that are not seeing the site correctly because of the absence of one short CSS tag.]]></content:encoded>
			<wfw:commentRss>http://www.caxy.com/blog/2008/10/a-common-oversight-in-css-fluid-layouts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Managing Legacy Code While Remaining Somewhat Sane</title>
		<link>http://www.caxy.com/blog/2008/05/managing-legacy-code-while-remaining-somewhat-sane/</link>
		<comments>http://www.caxy.com/blog/2008/05/managing-legacy-code-while-remaining-somewhat-sane/#comments</comments>
		<pubDate>Thu, 29 May 2008 16:31:27 +0000</pubDate>
		<dc:creator>JC Jordan</dc:creator>
		
		<category><![CDATA[PHP]]></category>

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

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

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

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

		<guid isPermaLink="false">http://www.caxy.com/blog/?p=11</guid>
		<description><![CDATA[I think every coder and every company that's been around long enough arrives at a situation where for whatever reason, old code needs to be re-used. But not in a 'Hey, I'll grab this function from the site' way but in a 'Hey, we need to redo the frontend for this site without redesigning the [...]]]></description>
			<content:encoded><![CDATA[I think every coder and every company that's been around long enough arrives at a situation where for whatever reason, old code needs to be re-used. But not in a 'Hey, I'll grab this function from the site' way but in a 'Hey, we need to redo the frontend for this site without redesigning the code base' way. But seemingly without fail, this code was created three versions of coding language ago using barely logical, much less programmatically sound, methods. As a coder, how do you avoid pulling out all your hair in an instance like this?

There could be a number of reasons for doing this. One, there may not be enough budget to redesign the code. The idea is that by not spending the time necessary to document and and then reprogram the code base, time is saved because the code, in theory, already works. Two, if no one really knows how the code works and a deadline is approaching, it may be hard to justify spending lead time on the process necessary to document code that seems to work. However, I might argue that when making a decision like this, one should consider the support time that might be required to ensure that everything is working properly once the site goes live, the time cost of combining two or more disparate types of code which may not want to 'play nice' with each other, and other similar factors.

Ultimately, whether or not to re-use or reappropriate legacy code depends on the budget, time constraints, and other business factors. If the person who designed the code is available, then this process is made easier; if not, the person who picks up the project has to make some tough decisions. If the decision is made to use legacy code, a developer's best plan is to:

1) Be organized. Keep notes on everything and refer to those notes frequently. The code may be unorganized, but that doesn't mean you have to be.

2) Have a plan and follow it throughout your development. If you have a certain way of formatting code, make sure you do it everywhere. Come up with way to address general problems you will encounter. If a function doesn't work, are you going to rewrite it from scratch? Are you going to attempt to fix the code in-place? Whatever you decide, apply the same thing everywhere.

3) Be patient. Dealing with legacy code can be frustrating and slow. Take it one page / function at a time. Speed is always important, but never at the expense of good code.

4) Keep perspective. Yes, you will encounter crazy, illogical ways of doing things. You will not believe that someone could think this way. However, the point is not to let that distract you from the goal of creating good code. Create a 'Wall of Fail' like we have where we poke fun at these things.

So if you are presented with legacy code that needs to be reappropriated, try to follow these steps. If you do, hopefully at the end of the project you will be able to don a smoking jacket, and not a straitjacket.]]></content:encoded>
			<wfw:commentRss>http://www.caxy.com/blog/2008/05/managing-legacy-code-while-remaining-somewhat-sane/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Setting up PEAR on a Linux web server (CentOS)</title>
		<link>http://www.caxy.com/blog/2008/04/setting-up-pear-on-a-linux-web-server-centos/</link>
		<comments>http://www.caxy.com/blog/2008/04/setting-up-pear-on-a-linux-web-server-centos/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 03:01:35 +0000</pubDate>
		<dc:creator>Michael LaVista</dc:creator>
		
		<category><![CDATA[Linux]]></category>

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

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

		<category><![CDATA[how-to]]></category>

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

		<guid isPermaLink="false">http://www.caxy.com/blog/?p=4</guid>
		<description><![CDATA[Installing pear lets you take advantages of some really interesting way to extend PHP. This should be a fairly simple install, so we hope this helps.

First shell into your machine. This is a personal preference, but if you don't have an "installs" directory, your home directory can get messy. Let's cd into it.
% cd installs
Now [...]]]></description>
			<content:encoded><![CDATA[Installing <a title="Pear" href="http://pear.php.net/">pear</a> lets you take advantages of some really interesting way to extend PHP. This should be a fairly simple install, so we hope this helps.

First <a title="Logging into Linux without a password" href="http://www.caxy.com/blog/2008/04/getting-authorized_hosts-to-work-logging-in-without-a-password-in-linux/">shell into your machine</a>. This is a personal preference, but if you don't have an "installs" directory, your home directory can get messy. Let's cd into it.
<pre>% cd installs</pre>
Now get the pear code:
<pre>% wget http://pear.php.net/go-pear</pre>
What? No wget? Install wget and come back.

The following is at the top of the file that wget just downloaded, but they don't seem to mention it, so we will. Just run this file as a php script from the command line.
<pre>% php -q go-pear</pre>
The only thing you need to change is the install path. The default is where you are now. Use <code>/usr/local</code>.

For some reason the default looks like this:
<pre>Below is a suggested file layout for your new PEAR installation.  To
change individual locations, type the number in front of the
directory.  Type 'all' to change all of them or simply press Enter to
accept these locations.

1. Installation prefix ($prefix) : /Users/mlavista
2. Temporary files directory     : $prefix/temp
3. Binaries directory            : $prefix/bin
4. PHP code directory ($php_dir) : $prefix/PEAR
5. Documentation base directory  : $php_dir/docs
6. Data base directory           : $php_dir/data
7. Tests base directory          : $php_dir/tests

1-7, 'all' or Enter to continue:</pre>
Type "1" to change the path. Go with /usr/local/ and hit enter

The rest is all defaults and let it install.

To test, when you're done check to see if it's in your path:
<pre>% which pear</pre>
You should be all set. To install something
<pre>% pear install NAME_OF_MODULE</pre>]]></content:encoded>
			<wfw:commentRss>http://www.caxy.com/blog/2008/04/setting-up-pear-on-a-linux-web-server-centos/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Getting authorized_keys to work &#124; Logging in without a password in Linux</title>
		<link>http://www.caxy.com/blog/2008/04/getting-authorized_keys-to-work-logging-in-without-a-password-in-linux/</link>
		<comments>http://www.caxy.com/blog/2008/04/getting-authorized_keys-to-work-logging-in-without-a-password-in-linux/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 02:43:52 +0000</pubDate>
		<dc:creator>Michael LaVista</dc:creator>
		
		<category><![CDATA[Linux]]></category>

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

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

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

		<category><![CDATA[log in without a password]]></category>

		<guid isPermaLink="false">http://www.caxy.com/blog/?p=7</guid>
		<description><![CDATA[So many of the posts out there about this seem to leave us hanging. This post outlines how to log in to Linux without a password and addresses some of the gotchas that seem to creep up along the way. We manage enough servers that it's nice to be able to get in and around [...]]]></description>
			<content:encoded><![CDATA[So many of the posts out there about this seem to leave us hanging. This post outlines how to log in to Linux without a password and addresses some of the gotchas that seem to creep up along the way. We manage enough servers that it's nice to be able to get in and around quickly.

I'll try to outline the way to do it and then address some of the gotchas that come up.

Make yourself a private key on the machine you'll be coming *from*. This is how to do it using a Mac or Linux. Windows people, I wish you luck with something like cygwin or using your SSH program to do this. If you're using Linux servers, maybe you can do this on the main machine you log in to, then go from there as your "home base."

Open up your shell.
<div class="bash" style="font-family: monospace;">% <span class="kw2">ssh-keygen</span> -t rsa</div>
Just hit enter for the passphrase (that kind of defeats the purpose of what we're doing). The default is to put the file it makes in your $HOME directory. (echo $HOME). For this example, I'm assuming that's what you did.

If it didn't exist already, this will have created a directory called .ssh in your home directory and created 2 files inside it:
<div class="bash" style="font-family: monospace;">-rw------- &nbsp; <span class="nu0">1</span> myuser &nbsp;myuser &nbsp; <span class="nu0">1671</span> May <span class="nu0">24</span> &nbsp;<span class="nu0">2007</span> id_rsa<br />
-rw-r--r-- &nbsp; <span class="nu0">1</span> myuser &nbsp;myuser &nbsp; &nbsp;<span class="nu0">400</span> May <span class="nu0">24</span> &nbsp;<span class="nu0">2007</span> id_rsa.pub</div>
You need to copy the contents of the id_rsa.pub to your clipboard.
<div class="bash" style="font-family: monospace;">% <span class="kw2">cat</span> id_rsa.pub</div>
Copy it. It should looks something like this (not my actual key, of course)
<div class="bash" style="font-family: monospace;">ssh-rsa kjakjhasdhjfjkahsgdfhjkgasdjkhgfajkshdgfhjags834yg<br />
swdhjgfjkashgdfjkhasgdfjkhgasdjkhfgasjkhdgfjkhasgdfjkhgasdjk<br />
<span class="re2">fhgasdcvjhasgdfjhkqg34jhkqgwejkhfgaskjhdgfkjhasgdfkjhagsd=</span>= myuser@Zap.<span class="kw3">local</span></div>
Now ssh to the machine you want to log in to automatically.
<div class="bash" style="font-family: monospace;">% <span class="kw2">ssh</span> <span class="nu0">123.45</span><span class="nu0">.67</span><span class="nu0">.8</span></div>
Enter your password as normal. Once logged in, let's check to see if you have an ssh directory.
<div class="bash" style="font-family: monospace;">% <span class="kw2">ls</span> -la</div>
If you see .ssh, cd into it. Otherwise mkdir .ssh and cd into it. Now we just need to add your key to your authorized_keys file. This next command will either add to what you have already or create it if it doesn't exist.
<div class="bash" style="font-family: monospace;">% <span class="kw2">cat</span> &amp;gt;&amp;gt; authorized_keys</div>
Now paste the key you copied above. Hit enter to get to a new line and then Ctrl-D to stop editing.

To make sure that there aren't any issues with permissions, make sure that only this user can read the file.
<div class="bash" style="font-family: monospace;">% <span class="kw2">chmod</span> <span class="nu0">600</span> authorized_keys</div>
Now let's make sure that this directory has similar permissions. Go back up a directory and fix the permissions
<div class="bash" style="font-family: monospace;">% <span class="kw3">cd</span> ../<br />
% <span class="kw2">chmod</span> <span class="nu0">700</span> .<span class="kw2">ssh</span></div>
That should do it. Try opening up a new shell window and log in.
<div class="bash" style="font-family: monospace;">% <span class="kw2">ssh</span> <span class="nu0">123.45</span><span class="nu0">.67</span><span class="nu0">.8</span></div>
That should get you in without having to enter a password.

Extra credit: I think it's helpful to make sure you have hosts mapped in your /etc/hosts file (Mac / Linux) if the IP or host you're using doesn't have a convenient name for you. Windows XP users, this is conveniently located in your c:\Windows\system32\drivers\etc\hosts file. Of course, other systems vary.

In that file, just make an entry like this
<div class="bash" style="font-family: monospace;"><span class="nu0">123.45</span><span class="nu0">.67</span><span class="nu0">.8</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;server5</div>
And save it. On a Linux system you may need to restart the network to have it take effect.
<div class="bash" style="font-family: monospace;">% /etc/rc.d/init.d/network restart</div>
Now you can just ssh to the name
<div class="bash" style="font-family: monospace;">% <span class="kw2">ssh</span> server5</div>
Need to troubleshoot? See what /var/log/secure says about it.]]></content:encoded>
			<wfw:commentRss>http://www.caxy.com/blog/2008/04/getting-authorized_keys-to-work-logging-in-without-a-password-in-linux/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using Subversion for Web Development</title>
		<link>http://www.caxy.com/blog/2008/04/using-subversion-for-web-development/</link>
		<comments>http://www.caxy.com/blog/2008/04/using-subversion-for-web-development/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 15:58:04 +0000</pubDate>
		<dc:creator>Dan Previte</dc:creator>
		
		<category><![CDATA[Technology]]></category>

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

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

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

		<guid isPermaLink="false">http://www.caxy.com/blog/?p=9</guid>
		<description><![CDATA[Hopefully by now you know what Subversion, aka SVN, is. It's a version control system that keeps track of changes made to files like source code and documentation. It's similar to CVS, but with some major advantages. We've been using it at work for awhile, and I really like it. Changes don't get lost, we [...]]]></description>
			<content:encoded><![CDATA[Hopefully by now you know what <a title="Subversion description on WikiPedia" href="http://en.wikipedia.org/wiki/Subversion_(software)" target="_blank">Subversion</a>, aka SVN, is. It's a version control system that keeps track of changes made to files like source code and documentation. It's similar to CVS, but with some major advantages. We've been using it <a title="Caxy Inc." href="http://www.caxy.com" target="_blank">at work</a> for awhile, and I really like it. Changes don't get lost, we can easily keep track of released versions, and once we get around to implementing it SVN will tie into our bug tracking system.
<p align="center"><img class="alignnone size-full wp-image-10" title="Workflow Example" src="http://www.caxy.com/blog/wp-content/uploads/2008/04/workflow.jpg" alt="" width="369" height="413" /></p>
We usually have two servers for a project, one as the development server, and the other a production server. We all have a working copy checked out on the development server. Using virtual hosts with Apache we all have our own sub domain. So for example on our dev server we'd have:
<ul>
	<li>dan.ourproject.com</li>
	<li>mike.ourproject.com</li>
	<li>jc.ourproject.com</li>
</ul>
... with each pointing to that developer's working copy. We make our changes on the dev server as we're making the site. When we finish a task we check it in, and everyone does an update often to avoid conflicts.

When we are getting ready to push a release out to the production server, we have to be careful since a lot of the time there are people using the site. We don't want to have errors pop up on the production server. To make sure it runs on that server as well as it did in our working copies, we have a staging area. It's on the same server as the production copy, but only we have access to it.

So we do an export to the staging area, click through the site and run through a checklist of things to check for. Once we're sure it's running ok we copy that to the production area and it's live.

Since we want to keep track of the versions we push out to the production server, we give that release a version number, tag it in our Subversion repo, and update our project wiki.

This workflow has worked well for us and if we have a problem we can always roll back to a previous release. We can also use the <a title="A screenshot of the Change Report feature" href="http://www.syntevo.com/smartsvn/screenshots/change-report.png" target="_blank">Change Report feature of SmartSVN</a> to do a kind of code review when others commit code. If we see something a little strange we can fix it, or if it's completely crazy we can roll back quickly.

This is just how we do it. If you do it differently I'd love to hear about it so just leave a comment. In the future I'd also like to look into using Git in a similar way.]]></content:encoded>
			<wfw:commentRss>http://www.caxy.com/blog/2008/04/using-subversion-for-web-development/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
