<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Wright This Way</title>
    <link rel="alternate" type="text/html" href="http://www.wrightthisway.com/" />
    <link rel="self" type="application/atom+xml" href="http://www.wrightthisway.com/atom.xml" />
    <id>tag:www.wrightthisway.com,2010-11-07://1</id>
    <updated>2011-11-10T05:22:18Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 5.04</generator>

<entry>
    <title>Postfix compile on Snow Leopard</title>
    <link rel="alternate" type="text/html" href="http://www.wrightthisway.com/Articles/2011/11/postfix-compile.html" />
    <id>tag:www.wrightthisway.com,2011://1.898</id>

    <published>2011-11-03T04:19:11Z</published>
    <updated>2011-11-10T05:22:18Z</updated>

    <summary>Since I can never find my notes on compiling Postfix, I&apos;m making an entry here to document my compile options. The command below will configure the build for 64bit, and include Dovecot SASL support, MySql support, and PCRE support. make...</summary>
    <author>
        <name>Jim</name>
        
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://www.wrightthisway.com/">
        <![CDATA[<p>Since I can never find my notes on compiling Postfix, I'm making an entry here to document my compile options.</p>

<p>The command below will configure the build for 64bit, and include Dovecot SASL support, MySql support, and PCRE support.</p>

<pre>make -f Makefile.init makefiles \
CCARGS='-arch x86_64 -DUSE_TLS -DUSE_SASL_AUTH \
-DDEF_SERVER_SASL_TYPE=\"dovecot\" \
-DHAS_PCRE -I/usr/local/include \
-DHAS_SSL -I/usr/include/openssl \
-DHAS_MYSQL -I/usr/local/mysql/include' \
AUXLIBS='-L/usr/lib -llber -lresolv -L/usr/local/lib \
-L/usr/local/lib -lpcre -lssl -L/usr/local/mysql/lib \
-lmysqlclient -lz -lm'
</pre>]]>
        
    </content>
</entry>

<entry>
    <title>DNS Hosting</title>
    <link rel="alternate" type="text/html" href="http://www.wrightthisway.com/Articles/2011/01/dns-hosting.html" />
    <id>tag:www.wrightthisway.com,2011://1.896</id>

    <published>2011-01-05T04:33:08Z</published>
    <updated>2011-01-05T05:00:00Z</updated>

    <summary>So, many years ago when this site started, I needed a Dynamic DNS provider, and after some searching I decided to go with Sitelutions.com, and they continue to be an excellent provider of this service. Unfortunately, some months back they...</summary>
    <author>
        <name>Jim</name>
        
    </author>
    
        <category term="Tech" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web/html/Apache" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.wrightthisway.com/">
        <![CDATA[<p>So, many years ago when this site started, I needed a Dynamic DNS provider, and after some searching I decided to go with <a href='http://www.sitelutions.com/' target='_blank'>Sitelutions.com</a>, and they continue to be an excellent provider of this service.  Unfortunately, some months back they changed their policy on how low of a TTL (Time To Live) value could be set, this value controls when previously looked up data expires, and much be looked up again in order to stay current.  I was in the process of upgrading my router, and as a result picked up a new IP address, and after encountering an issue had to switch back to my old router, using my old IP address.  Unfortunately, I couldn't set a low enough TTL value via Sitelutions to keep up with these changes, and my site was effectively offline on the new router.</p>

<p>Some renewed searching led me to <a href='http://www.dnsexit.com/' target='_blank'>DNSexit.com</a>, another free provider of this service, and they not only allow low TTL values (as low as 2 minutes), but actually encourage this for dynamic IPs.</p>

<p>They also provide Domain Name registration, hosting, and a variety of other services.  I strongly recommend them.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Otterbox Impact case for iPhone 4</title>
    <link rel="alternate" type="text/html" href="http://www.wrightthisway.com/Articles/2010/12/otterbox-impact-1.html" />
    <id>tag:www.wrightthisway.com,2010://1.895</id>

    <published>2010-12-13T21:33:52Z</published>
    <updated>2011-01-05T04:58:09Z</updated>

    <summary>Otterbox has expanded their line of protective cases for the iPhone 4, the new Otterbox Impact Series case is a great case at a great price. Read on for more details....</summary>
    <author>
        <name>Jim</name>
        
    </author>
    
        <category term="Reviews" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="iPhone" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.wrightthisway.com/">
        <![CDATA[<p>Otterbox has expanded their line of protective cases for the iPhone 4, the new <a href='http://www.otterbox.com/iPhone-4-Impact-Series-Case/APL1-I4XXX,default,pd.html?dwvar_APL1-I4XXX_color=05&start=4&cgid=apple-iphone-4-cases' target='_blank'>Otterbox Impact Series case</a> is a great case at a great price.  Read on for more details.</p>]]>
        <![CDATA[<p> <p style="float:right;"><img style='border: thin solid #aaaaaa; margin: 3px;' src="http://www.wrightthisway.com/images/apl1-i4xxx-46-1.jpg" /></p>Like their Defender Series case, the Impact Series case matches the form factor of the iPhone 4 nicely, it wraps the phone securely without adding unnecessary bulk.  The case allows for easy access to the dock connector, which is uncovered, as well as the mute switch along the side and the headset jack.  The silicone case does cover the volume up/down buttons, as well as the power button, but without impeding their function in the slightest.</p>

<p>The case is a textured silicone skin that wraps around the iPhone 4, it is form fitting, but still slightly stretchy.  It provides excellent grip, and protection against minor bumps and abuse.  I've spent some time with this case, keeping the phone in my pocket when not in use, and have not seen any deforming or stretching from this like other cases have been known to have.  The case doesn't have a tacky feel that some other cases have, and doesn't pick up fuzz or lint when kept in the pocket.</p>

<p>There is a good bit of protection around the screen, there is no actual screen protector over the glass, but almost a quarter of an inch of raised silicone surrounds the screen, helping to protect it from accidental damage.</p>

<p>The case is available in several colors, including white, for those of you still pining for a white iPhone 4.  The case has a suggested retail price of $19.95, I've seen many lesser cases sell for much more.</p>]]>
    </content>
</entry>

<entry>
    <title>MovableType 5 installed</title>
    <link rel="alternate" type="text/html" href="http://www.wrightthisway.com/Articles/2010/11/movabletype-5-i.html" />
    <id>tag:www.wrightthisway.com,2010://1.894</id>

    <published>2010-11-08T05:25:14Z</published>
    <updated>2010-11-08T05:33:46Z</updated>

    <summary>I few weeks ago, I installed MovableType 5 here to play with, I had toyed with MT4 a while back, but there were too many template differences from MT3 for me to make the switch at the time, and I...</summary>
    <author>
        <name>Jim</name>
        
    </author>
    
        <category term="Movable Type" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.wrightthisway.com/">
        <![CDATA[<p>I few weeks ago, I installed MovableType 5 here to play with, I had toyed with MT4 a while back, but there were too many template differences from MT3 for me to make the switch at the time, and I had no good reason to upgrade.  The increase in comment spam of late, though, finally prompted me to make the upgrade, as MT5 had improved tools in this area.</p>

<p>After some slow going at first, I finally managed to create templates that matched my MT3 blog, and from where began working on converting my style sheets.  This process went a bit quicker, but still took a bit of time to work through.</p>

<p>One of the main issues that I struggled with was the lack of adequate documentation with regards to building a Theme that could be installed, and how to create different Styles for a given theme.  It took some time piecing bits together from various sources, but I've finally managed to create a working theme with multiple styles.  I'll be working on a write up of this that should hopefully help others to get through this process a tad faster than I did.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Dovecot 2.0 install</title>
    <link rel="alternate" type="text/html" href="http://www.wrightthisway.com/Articles/2010/08/dovecot-20-inst.html" />
    <id>tag:www.wrightthisway.com,2010://1.630</id>

    <published>2010-08-21T03:00:54Z</published>
    <updated>2010-12-23T16:34:53Z</updated>

    <summary>Ran into some minor hurdles in upgrading to Dovecot 2.0. Definitely need to read the docs on upgrading a bit better next time... But after some work, I have it running here....</summary>
    <author>
        <name>Jim</name>
        
    </author>
    
        <category term="Postfix" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.wrightthisway.com/">
        <![CDATA[<p>Ran into some minor hurdles in upgrading to Dovecot 2.0.  Definitely need to read the docs on upgrading a bit better next time...  But after some work, I have it running here.</p>]]>
        <![CDATA[<p>Found an undocumented configuration option called service(dns_client), this was logged when it was trying to use the user 'dovecot' instead of the OS X user '_dovecot', which I had already listed in my config for some other services.  Simple fix here, I took out the lines specifying 'user = _dovecot' for my listed services, and instead used this line at the top of my config file:</p>

<p><tt>default_internal_user = _dovecot</tt></p>

<p>Second issue that I ran into was the default install looks for a user called dovenull.  This user didn't yet exist on my system, so I needed to create it (as opposed to defining a different existing user for this function, which I didn't want to do).  My concern is that when Dovecot 2 is rolled into OS X, a new dovenull user will be created, or more likely, _dovenull.  So, I can create the user now, and have it later overwritten, and who knows what issues might arise, or I create this user with a different name to avoid the whole issue.</p>

<p>Creating unix level users with OS X is a bit more involved than other systems, but once you read up on the <tt>dscl</tt> command, you can find some quick examples of this.  The trickiest part is picking an appropriate UniqueID for the user.</p>

<p>Here's a handy command for listing all of the used UniqueIDs:<br />
<tt>sudo dscl . -list /Users UniqueID | awk '{print $2}' | sort</tt></p>

<p>We'll use a similar command to get a list of all Group IDs that are used:<br />
<tt>dscl . -readall  /Groups | grep PrimaryGroupID | awk '{print $2}' | sort</tt></p>

<p>It seems best to avoid the range 0-99, and the low 200's are slowly filling up for UserIDs.  There's nothing from 100-199, and OS X starts creating new users (the ones used by the Finder) at 501.  Why 100-199 was left blank, I don't know, and who knows what other 200 range codes might be used in a future OS update.  For the Group IDs, 0-100 were full up, again the break from 101-199, starting again with the low 200's, then starting with the 400's.  So, throwing caution to the wind, I'll use 301 for my new user and the group associated with it, created with the following commands:</p>

<p><tt><br />
sudo dscl . -create /Users/_dovenull<br />
sudo dscl . -create /Users/_dovenull UniqueID 301<br />
sudo dscl . -create /Users/_dovenull PrimaryGroupID 301<br />
sudo dscl . -create /Users/_dovenull UserShell /usr/bin/false<br />
sudo dscl . -create /Users/_dovenull RealName "Dovenull"<br />
sudo dscl . -create /Users/_dovenull NFSHomeDirectory /var/empty<br />
sudo dscl . -append /Users/_dovenull RecordName _dovenull</p>

<p>sudo dscl . -create /Groups/_dovenull<br />
sudo dscl . -create /Groups/_dovenull PrimaryGroupID 301<br />
sudo dscl . -append /Groups/_dovenull RecordName dovenull</p>

<p></tt></p>

<p>I set the UserShell above so that the user has no shell access, and set NFSHomeDirectory so that there is no home directory.</p>

<p>Once I had the _dovenull user created, I was successfully able to get dovecot running, so far, no issues.</p>]]>
    </content>
</entry>

<entry>
    <title>Otterbox Defender case for iPhone 4</title>
    <link rel="alternate" type="text/html" href="http://www.wrightthisway.com/Articles/2010/08/otterbox-defend-3.html" />
    <id>tag:www.wrightthisway.com,2010://1.629</id>

    <published>2010-08-09T20:17:44Z</published>
    <updated>2010-08-09T21:14:48Z</updated>

    <summary> It is worth stressing that anyone with an iPhone should have a case of some sort, the day this case arrived in the mail here, that very morning I dropped my iPhone 4 for the first time, and all...</summary>
    <author>
        <name>Jim</name>
        
    </author>
    
        <category term="Reviews" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="iPhone" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.wrightthisway.com/">
        <![CDATA[<p> It is worth stressing that anyone with an iPhone should have a case of some sort, the day this case arrived in the mail here, that very morning I dropped my iPhone 4 for the first time, and all I could do was watch in horror as it fell to the floor, my muscles frozen, unable even to move my foot to brace the phone's fall.  Think of all the times your phone is out, you tapping the screen, holding it up for friends, taking pictures.  Sooner or later, it's going to drop.</p>

<p>That said, I'm extremely happy to have my new iPhone 4 wrapped in the <a href='http://www.otterbox.com/iphone-cases/iphone-4-cases/iphone-4-defender-series-case/' target='_blank'>Otterbox Defender case</a>, and as usual they've done an outstanding job with this version. </p>]]>
        <![CDATA[<p> <p style="float:right;"><img style='border: thin solid #aaaaaa; margin: 3px;' src="http://www.wrightthisway.com/images/apl2-i4xxx-20-c4otr.1.jpg" /></p>The shape of the new iPhone 4 has let them come up with what I think is a much more user friendly case.  The feel of this case is much nicer than that Defender cases for prior generations of iPhone, which were themselves darned good.  The silicone exterior is textured, providing for an excellent grip, without being too tacky to the touch.  It slides in and out of my pocket far better than prior models, which I generally would never use without the included holster.  Having used my iPhone 4 without a case for a few weeks, I had become accustomed to sliding it into my pocket, and discovered that this new case supported that habit quite well.  The downside though is that the case isn't quite as grippy on flat surfaces, quite often I would have my phone charging in my car, and have the case resting on the armrest between the front seats.  Prior cases would stay put around corners and hard braking, this new case has a harder time staying put, but overall this is, to me, an acceptable trade off.</p>

<p>The included holster has also been redesigned, the original iPhone version had the phone sliding straight down into the holster, the 3G version had the bottom of the phone sliding in at a slight angle, then the rest of the phone clicking into place.  The iPhone 4 version requires that one edge of the phone slide into place, then the other edge snaps in.  This has the advantage of the phone screen either facing the inner part of the holster, totally protected, or unprotected and exposed, but viewable to the wearer.  I actually prefer the screen facing outwards, as it makes it easy to see who is calling, quickly check the time, read a text message, etc.  The holster now also doubles as a stand, which has come in very handy for my wife and I to watch baseball games via the MLB At Bat app while dining out.</p>

<p>The case's built in screen protector has also been redesigned, incorporating a textured surface on the inside that eliminates any bubbling, but does not interfere in any way with the touch screen operation.</p>

<p>The Defender case, like prior models, is a multipart design.  It includes an inner polycarbonate shell, which includes the protective screen cover, and a silicone skin which goes over the hard shell.  The ports on the phone are well protected from dust and accidental exposure, small flaps easily peel back to expose the dock connector, headphone jack, and mute switch.  The volume buttons on the phone are also easily accessible through the case.</p>

<p>As usual, Otterbox also has the Commuter and Impact series cases available for the iPhone 4, which offer less extreme protection for those who already pamper their phones, these models do not include a holster, but are still fairly rugged.  All models are currently only available in black.  Full details on these and other offerings can be found at <a href='Otterbox.com' target='_blank'>Otterbox.com</a>.</p>

<p>In summary, I think that every minor complaint I may have had regarding prior models have been addressed with this case; it works great with and without the holster, the mute switch is accessible, the phone can fit into the holster with the screen facing outwards, and the fit of the phone within the holster is excellent.</p>]]>
    </content>
</entry>

<entry>
    <title>iPhone 4</title>
    <link rel="alternate" type="text/html" href="http://www.wrightthisway.com/Articles/2010/08/iphone-4.html" />
    <id>tag:www.wrightthisway.com,2010://1.628</id>

    <published>2010-08-05T02:52:21Z</published>
    <updated>2010-11-14T02:54:42Z</updated>

    <summary>In case you&apos;ve been under a rock, on vacation, or otherwise avoiding news of any sort, Apple&apos;s new iPhone is out and is a hit everywhere. I&apos;ve been using mine for a little over a month, and have finally managed...</summary>
    <author>
        <name>Jim</name>
        
    </author>
    
        <category term="Reviews" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="iPhone" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.wrightthisway.com/">
        <![CDATA[<p>In case you've been under a rock, on vacation, or otherwise avoiding news of any sort, Apple's new iPhone is out and is a hit everywhere.  I've been using mine for a little over a month, and have finally managed to put it down long enough to write this review.<br />
</p>]]>
        <![CDATA[<p>To be honest, when the phone was announced, I wasn't crazy about the design, the straight edges, the rounded corners, the flat top and bottom.  It just didn't look like the iPhone so many had come to know and love.  But the moment I held it in my hand, any doubts I had regarding the styling faded to a distant memory.</p>

<p>I prefer to have my phone in a nice, sturdy case, on those rare occasions when I would remove it from its shell, I would always take a few moments to enjoy the feel of it in my hand, admire the size of the case, and generally appreciate the overall design aesthetics.  Overall, I much preferred the feel of the original iPhone to the later iPhone 3Gs, but the feel of the iPhone 4 is much superior, I came to know and appreciate this feel quite well while I patiently waited for a proper iPhone 4 case to ship.  It has a very solid feel in the hand, a good weight (4.8 oz, same as the iPhone 3Gs), but smaller and thinner than its predecessor. </p>

<p>The glass on the front and back is aluminosilicate glass, a high tech material used for helicopter and high speed train windshields, which gives great strength and scratch resistance.</p>

<p>Buttons, switches, and ports are all where they were on prior models, though somewhat redesigned.  A new addition on the front is the front facing camera for video chats (FaceTime), and a welcome addition on the back is a flash for the rear camera which, thanks to several apps, makes a very handy, and bright, flashlight.  Beneath the surface is a new noise-cancelling microphone, the rear camera is now offers 5 Megapixel resolution for still photos, and 720p HD video.</p>

<p>Talking more about features of the rear camera, we first have HDR, short for high dynamic range, which takes three separate photos at different exposure levels, and then combines these to bring out a very vibrant image, usually only possible with photo manipulation software to tweak exposure levels.  Next we have the ability to zoom the image, and auto focus, so it's even easier than ever to get great shots.</p>

<p>Also under the hood is Apple's new A4 processor which, combined 512Mb of RAM, twice that of the 3Gs, makes performance noticeably snappier than the 3Gs, which was no slouch either.  And finally, out from under the hood are the antennas used for phone, WiFi, and Bluetooth.  And despite the perceived antenna issues widely sensationalized in the media, I have yet to experience any dropped calls even though I tend to hold the phone in the classic 'death grip'.</p>

<p>Finally, the most visible feature on the new iPhone, the display itself.  Apple's new 'Retina Display' features an incredible 326 pixels per inch, and a much improved contrast ratio, 300:1, resulting in blacker blacks, whiter whites, and colors more colory.</p>

<p>For anyone still carrying an original iPhone or a 3G, this phone is definitely worth upgrading to.  For anyone that's been carrying a 3Gs for a while, the features and performance are definitely worth looking into.  And if you don't already have an iPhone, what are you waiting for?</p>]]>
    </content>
</entry>

<entry>
    <title>iPhone 4 review coming</title>
    <link rel="alternate" type="text/html" href="http://www.wrightthisway.com/Articles/2010/06/iphone-4-review.html" />
    <id>tag:www.wrightthisway.com,2010://1.627</id>

    <published>2010-06-29T02:25:02Z</published>
    <updated>2010-06-29T02:30:34Z</updated>

    <summary>So, like many folks, I now have an iPhone 4 in my hands, and will be posting a review in the upcoming days of my precious the new model. I also have confirmation of some new cases on the way,...</summary>
    <author>
        <name>Jim</name>
        
    </author>
    
        <category term="iPhone" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.wrightthisway.com/">
        <![CDATA[<p>So, like many folks, I now have an iPhone 4 in my hands, and will be posting a review in the upcoming days of <del>my precious</del> the new model.  I also have confirmation of some new cases on the way, and will have those reviews online when samples arrive.  Most manufacturers that I've checked with for the better cases won't be shipping for at least a few weeks, so hopefully I'll be able to offer some advise on interim protection shortly.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Upgrade to 10.6.3 complete</title>
    <link rel="alternate" type="text/html" href="http://www.wrightthisway.com/Articles/2010/04/upgrade-to-1063.html" />
    <id>tag:www.wrightthisway.com,2010://1.626</id>

    <published>2010-04-19T03:36:23Z</published>
    <updated>2010-04-19T03:58:08Z</updated>

    <summary>As I mentioned last week, I&apos;ve been working on upgrading my system from 10.5.7 to 10.6.3, performing as clean of an install as possible to clear out years of crud under the hood. I&apos;ve wrapped up the last of my...</summary>
    <author>
        <name>Jim</name>
        
    </author>
    
        <category term="Mac" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Postfix" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web/html/Apache" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.wrightthisway.com/">
        <![CDATA[<p>As I <a href='http://www.wrightthisway.com/Articles/000623.html' target='_blank'>mentioned last week</a>, I've been working on upgrading my system from 10.5.7 to 10.6.3, performing as clean of an install as possible to clear out years of crud under the hood.  I've wrapped up the last of my upgrades, and am up and running on a freshly built system.</p>

<p>The only real hiccup was with the Postfix compile, once that was sorted, everything else was fairly straightforward, simply a matter of grabbing all of the various packages to make everything here run, run through all the necessary compiles, then finally transfer over various changed files since the last copy.</p>

<p>Here is a list of the software currently installed for mail and web services:</p>

<p>Xcode 3.2.2<br />
PHP 5.3.1 (10.6 built in version)<br />
Apache 2.2.14 (10.6 built in version)<br />
MySQL 5.1.45<br />
Postfix 2.7<br />
Dovecot 1.2.11<br />
Cluebringer 2.0.10 (Policyd 2.0)<br />
PCRE 8.0<br />
DBI 1.609<br />
DBD-mysql 4.014<br />
Net-Server 0.97<br />
Net-CIDR 0.13<br />
Config-IniFiles 2.57<br />
Cache-FastMmap 1.35</p>

<p>Initially I needed to copy the etc/postfix directory to preserve configuration files when installing the new Postfix,also copied over /var/mail to bring over the mail stores used by Postfix/Dovecot, and a handful of other config files, /Library/Webserver for the web pages.</p>

<p>To get Apache running, there were some simple edits to enable the built in PHP, and setting up the correct vhosts again; I hand edited the files to match the old config to keep from introducing any unneeded changes.</p>

<p>I think that the only real surprise was that there weren't more surprises.  I now have everything running in 64 bit mode on the new server, with the exception of some 3rd party apps.  Sweet.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Great site with Mac server info</title>
    <link rel="alternate" type="text/html" href="http://www.wrightthisway.com/Articles/2010/04/great-site-with.html" />
    <id>tag:www.wrightthisway.com,2010://1.625</id>

    <published>2010-04-15T02:08:58Z</published>
    <updated>2010-04-15T02:16:10Z</updated>

    <summary>In my web searching recently, I came across DIYMacServer, a site who&apos;s focus is all about running Postfix, Apache, PHP, Dovecot, and related code on the Mac. There are numerous articles about each software update that comes down the line,...</summary>
    <author>
        <name>Jim</name>
        
    </author>
    
        <category term="Mac" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Postfix" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web/html/Apache" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.wrightthisway.com/">
        <![CDATA[<p>In my web searching recently, I came across <a href='http://diymacserver.com' target='_blank'>DIYMacServer</a>, a site who's focus is all about running Postfix, Apache, PHP, Dovecot, and related code on the Mac.  There are numerous articles about each software update that comes down the line, and the author, Richard Valk, does a great job at documenting everything he can about changes each update brings, and how it effects his system.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Compiling Postfix on Mac OS X 10.6</title>
    <link rel="alternate" type="text/html" href="http://www.wrightthisway.com/Articles/2010/04/compiling-postf.html" />
    <id>tag:www.wrightthisway.com,2010://1.624</id>

    <published>2010-04-14T15:58:12Z</published>
    <updated>2010-04-15T02:10:01Z</updated>

    <summary>So, I&apos;m trying to compile Postfix 2.7 on my new 10.6 system. During make, I get this: In file included from dns_lookup.c:152: dns.h:23:29: error: nameser8_compat.h: No such file or directory make: *** [dns_lookup.o] Error 1 make: *** [update] Error 1...</summary>
    <author>
        <name>Jim</name>
        
    </author>
    
        <category term="Mac" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Postfix" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.wrightthisway.com/">
        <![CDATA[<p>So, I'm trying to compile Postfix 2.7 on my new 10.6 system. During make, I get this:</p>

<p>In file included from dns_lookup.c:152:<br />
dns.h:23:29: error: nameser8_compat.h: No such file or directory<br />
make: *** [dns_lookup.o] Error 1<br />
make: *** [update] Error 1</p>

<p>A google search found a suggested fix, in /src/util/sys_defs.h, the following line should be commented out:</p>

<p>#define RESOLVE_H_NEEDS_NAMESER8_COMPAT_H</p>

<p>With this line commented out, I'm able to get a good build, but at what cost?  Presumably this is going to break some of the name resolution that Postfix uses, which would not be good.  After reporting this on the Postfix mailing list, I spent some additional time researching the issue, but ironically kept coming up with various pages that mirror the Postfix list, and kept coming back to my own posting...  Time to switch gears.</p>]]>
        <![CDATA[<p>More searching online found some similar reports for software other than Postfix, but no hints at fixes.  Digging into the OS, I found that Mac OS X 10.6 no longer has an include file named nameser8_compat.h, which is the source of the issue. The equivalent file now seems to be arpa/nameser_compat.h. Updating the Postfix dns.h file (line 23) to include this file instead finally resulted in a good build. It may be another day or so before I'm able to put this server online to test.</p>

<p>This information has also been reported to the Postfix mailing list, it is likely that the 2.7.1 version of Postfix should have this change and compile properly out of the box.</p>]]>
    </content>
</entry>

<entry>
    <title>Upgrading to 10.6</title>
    <link rel="alternate" type="text/html" href="http://www.wrightthisway.com/Articles/2010/04/upgrading-to-10.html" />
    <id>tag:www.wrightthisway.com,2010://1.623</id>

    <published>2010-04-12T01:41:40Z</published>
    <updated>2010-04-15T01:58:52Z</updated>

    <summary>It&apos;s upgrade time again here, and I&apos;ve made the decision to set up a brand new system on the Mac Mini here. The current system originally started out under 10.3, was then upgraded to 10.4, then 10.5, and also saw...</summary>
    <author>
        <name>Jim</name>
        
    </author>
    
        <category term="Mac" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Postfix" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web/html/Apache" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.wrightthisway.com/">
        <![CDATA[<p>It's upgrade time again here, and I've made the decision to set up a brand new system on the Mac Mini here.  The current system originally started out under 10.3, was then upgraded to 10.4, then 10.5, and also saw at least one hardware switch in there.  While fairly stable, I know there's a lot of crud under the hood left over from all the various installs, upgrades, and software changes. So, I'm setting up a new server completely from scratch on Snow Leopard, Mac OS X 10.6.3.  I've set up a spare Mini for this work, so I can have both systems up and running simultaneously.<br />
</p>]]>
        <![CDATA[<p>That said, I do need to preserve the web site, and keep the old mail stores around, so this will need to be copied over to the new drive I've set up.  After setting up the new drive, I've used Carbon Copy Cloner to copy the web directories, mail storage, and the Postfix directory to the new system, this gets me most of the data that I'll need.</p>

<p>Next I'll need the MySQL data.  Since this process is likely to be ongoing for a few days as I test and retest, I'm not going to want to make several data moves from MySQL, so the simplest solution was to set up a Master/Slave relationship on the two systems, so the data will always be in sync between both boxes.  I know that at the end I'll need to clone over the web and mail data again, but that will be a quick process at that point.</p>

<p>Now to figure out what works and what doesn't...</p>]]>
    </content>
</entry>

<entry>
    <title>Thermaltake Mobile Fan II</title>
    <link rel="alternate" type="text/html" href="http://www.wrightthisway.com/Articles/2010/04/thermaltake-mob.html" />
    <id>tag:www.wrightthisway.com,2010://1.622</id>

    <published>2010-04-08T01:22:46Z</published>
    <updated>2010-04-08T02:17:43Z</updated>

    <summary>Recently I had to add a second external hard drive to the web server here to get a clone of the main drive to work with on another machine. The web server is a Mac Mini, with data cloned nightly...</summary>
    <author>
        <name>Jim</name>
        
    </author>
    
        <category term="Reviews" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.wrightthisway.com/">
        <![CDATA[<p>Recently I had to add a second external hard drive to the web server here to get a clone of the main drive to work with on another machine.  The web server is a Mac Mini, with data cloned nightly to an external 2.5" hard drive via FireWire.  I plugged in another 2.5" drive, after hooking up an old FireWire hub, and got the clone started, then promptly forgot about it.  A day or so later I remembered, did another clone to catch any updates, and went to unplug the drive, and about burned my hand the enclosure was so hot.  It was at this point that I realized that my original drive was no longer online, after some testing it appeared that the heat had caused it to shut down.  Not good!  So the search was on to find a way to keep the drives cool, should I ever need to stack them again in the future.</p>

<p>After some searching, I found a number of fans that connected via USB, a perfect way to add a small fan to get some air moving around the drives.  One model stuck out because of the name, Thermaltake, well known for their cooling products.  So I headed down to the local comp-u-mart, and picked up the <a href='http://www.thermaltakeusa.com/Product.aspx?C=1295&ID=1801' target='_blank'>Thermaltake Mobile Fan II</a><br />
</p>]]>
        <![CDATA[<p>Before hooking it up, I thought it best to take a few temperature readings.  Ambient Temp was 79.3F, Drive Enclosure 1 Temp read 109.0F, with the second drive having been disconnected the night before.  I fired up the second drive, and watched the enclosure temp climb past 118F within just a few minutes, and this was simply with the drives powered up and spinning, no drive activity to speak of.  Now, I knew that the drive enclosures had little airflow through them, but the aluminum cases had ventilation holes front and rear, and this apparently was simply for aesthetics, any cooling provided is certainly minimal.  Time to fire up the fan!</p>

<p>The Mobile Fan II plugs in via USB, using an included retractable cable, keeping cable clutter to a minimum.  The fan end of the cable uses a custom connector for fan power, which the fan then plugs into.  It would have been nice if the fan itself had a standard USB jack, allowing for a standard USB cable to be used, but the retractable cable seems relatively sturdy and should not present any issues.</p>

<p>I set the fan to its lowest speed setting using the built in knob, according to the spec sheet this should have been about 1300 RPM, which, again according to the specs, should have a noise level of 17 dBA.  Unless I had my ear right against the fan, I couldn't hear a bit of noise coming from it over the whirring of the drives.  I placed the fan, still on low, next to the drives, and saw the temperature drop rapidly from the 122F that it had reached, dropping down to 114F in under a minute, and under 100F after a few more.</p>

<p>At the highest setting, the fan is capable of moving 47.28 cubic feet per minute of air, which is quite a lot for such a small fan, obviously the lower speeds will move much less.</p>

<p>There are a number of novelty fans that plug into the USB ports on the computer for keeping the user 'cool', but having seen these in action, their gentle breeze wasn't all that appealing for serious cooling, and I knew the Thermaltake brand wouldn't disappoint, and it didn't.</p>

<p>It is a great fan for notebooks, which aren't known for having large fans, or can be used anywhere you have a USB port and need some air moving, external drives are a great place for such a fan, if you have drives that don't include fans in their enclosures.  Larger 3.5" drives especially would be great candidates for a fan like this.</p>

<p>I paid $14 for mine locally, a quick Google has these anywhere from $8 - $22 at a number of retailers.</p>]]>
    </content>
</entry>

<entry>
    <title>Hierarchical menu for web forms</title>
    <link rel="alternate" type="text/html" href="http://www.wrightthisway.com/Articles/2010/03/hierarchical-me.html" />
    <id>tag:www.wrightthisway.com,2010://1.621</id>

    <published>2010-03-18T02:09:04Z</published>
    <updated>2010-03-18T03:08:32Z</updated>

    <summary>Recently I was working on a web page that used several chained menus for selecting data in a form. We&apos;ve all seen the type, pull down one menu, select a value, pick something from the next menu, maybe make a...</summary>
    <author>
        <name>Jim</name>
        
    </author>
    
        <category term="Web/html/Apache" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.wrightthisway.com/">
        <![CDATA[<p>Recently I was working on a web page that used several chained menus for selecting data in a form.  We've all seen the type, pull down one menu, select a value, pick something from the next menu, maybe make a selection from yet a 3rd menu before you're done with just that one bit.  There had to be a better way...</p>

<p>The thought of using <tt>optgroup</tt> tags to build a hierarchical select was thrown out, mainly because Safari's rendering of these basically just creates one big long list, with only slight formatting.  What I needed was unordered list style menu, such as what many sites use for managing their menus and links.  The issue, though, was that I could find no samples of this type of menu being used in a web form, so off I went into unexplored territory.</p>

<p>After a few days of research, trial, and plenty of error, I finally came up with something that fit the bill.</p>]]>
        <![CDATA[<p>There were many challenges involved with working up this code, the list had to be usable without each element being a link, the selected item needed to be displayed after selected, and finally the menu had to collapse after a selection was made.  Most of this was easily handled by pure CSS, but the last item needed a little javascript to make work.</p>

<p>Almost every article I came across dealing with a hierarchical menu using unordered lists came with plenty of code to fix problems in IE.  Since my target audience was strictly Mac based, I left out all hacks that may be necessary for IE, IE users should well be accustomed to their browser not being standards compliant, so no harm done.  Dropping the need for IE compatibility made the coding much easier.  I needed a menu that would display a single option on the page until the user hovered over the menu, a primary list of selections would drop down, hovering over each of these could cause a secondary menu to appear to the right of each choice, each of these choices could have their own list of selections.</p>

<p>If you'd like to skip ahead to see the final result, <a href='http://wrightthisway.com/examples/hierarchicalmenu.html' target='_blank'>click here</a>.</p>

<p>That said, here is the required CSS code:<br />
<tt>body {<br />
	font-size: 10px;<br />
	font-family: Helvetica, sans-serif;<br />
}</p>

<p>.fancygroup, .fancygroup ul {<br />
	display: inline-block;<br />
	padding: 0px;<br />
	margin: 0px;<br />
	background-color:#eee;<br />
	font-size: 11px;<br />
	line-height: 18px;<br />
	color: #333;<br />
	border:1px solid #aaa;<br />
	-moz-border-radius:3px;<br />
	-webkit-border-radius:3px;<br />
}<br />
.fancygroup li {<br />
	white-space: nowrap;<br />
	padding-left: 8px;<br />
	padding-right: 8px;<br />
	list-style-type: none;<br />
	position: relative;<br />
	margin: 0px;<br />
}</p>

<p>.fancygroup li > ul {<br />
	width: auto;<br />
	display: none;<br />
}<br />
.fancygroup li:hover {<br />
	background-color: #ccc;<br />
	background: #95a3b2;<br />
	color: #fff;<br />
	z-index: 1; /* Place this at a higher level so it appears on top of other page elements */<br />
}<br />
.fancygroup li:hover > ul {<br />
	display: block;<br />
	position: absolute;<br />
	top: 18px;<br />
	left: -1px;	<br />
}<br />
.fancygroup li:hover li:hover ul {<br />
	position: absolute;<br />
	top: -5px;<br />
	left: 100%;<br />
}<br />
</tt></p>

<p>As I said earlier, some javascript was also needed to handle the menu.  each <tt>LI</tt> element with selectable choices needed to use an <tt>onClick</tt> function to call a bit of code that would take the selected value, and populate a hidden input field on the form, and also update the menu to display this choice in the place of the 'select your entry' text, much like a normal menu would.  At first, I had these combined, but overriding the input field style to be used within the menu was a pain, ultimately going with two separate items for this proved easier.</p>

<p>Next, I needed the menu to collapse itself after selecting an entry.  Several techniques were tried to make this go away, but as long as the user's cursor was still hovering over the selected choice, the menu remained visible.  So, time for some javascript.</p>

<p>In the HTML, the <tt>LI</tt> elements each have an onClick function that calls selGroup to choose the selection, and then a second function to change the CSS style of the parent element to hide it, thereby making the menu collapse since the user is no longer hovering over a displayed item.  The problem with doing that, though, was that if the user went back to the menu, the hidden part of the menu remained hidden, preventing any of those selections from being chosen.  After much more experimenting, two more bits of javascript were created, resetMenu, and a related function resetChild, which loops through the entire list resetting the display settings to make these visible again.</p>

<p><tt><br />
function selGroup(theValue)<br />
{<br />
	document.frm.sel_location2.value = theValue.outerText;<br />
	document.getElementById('sel_location').innerHTML = theValue.outerText;<br />
}</p>

<p>function resetMenu(theMenu)<br />
{<br />
	navRoot = document.getElementById(theMenu);<br />
	for (var i=0; i<navRoot.childNodes.length; i++) {<br />
		node = navRoot.childNodes[i];<br />
		if (node.nodeName=='LI') {<br />
			resetChild(node);<br />
		}<br />
	}<br />
}<br />
function resetChild(node) {<br />
	for (var i=0; i<node.childNodes.length; i++) {<br />
		if (node.childNodes[i].nodeName == 'UL') {<br />
			if (node.childNodes[i].style.display != '') {<br />
				node.childNodes[i].style.display = '';<br />
			}<br />
			resetChild(node.childNodes[i]);<br />
		}<br />
		if (node.childNodes[i].nodeName == 'LI') {<br />
			if (node.childNodes[i].style.display != '') {<br />
				node.childNodes[i].style.display = '';<br />
			}<br />
			resetChild(node.childNodes[i]);<br />
		}<br />
	}<br />
}<br />
</tt></p>

<p>Some last notes about the final code, when creating the menu, you'll need to set a width on the first <tt>UL</tt> element that is large enough to hold your largest selectable choice.  A bit further down, the list items that appear first under the menu will need to have (almost) matching widths so that the sides line up, in the example provided, these numbers are 16 pixels off, because of the 8 pixel left/right padding used.  Subsequent choices use an auto width setting, or we can quickly create a menu that is too wide for the page.<br />
</p>]]>
    </content>
</entry>

<entry>
    <title>PAC AAI-NIS2</title>
    <link rel="alternate" type="text/html" href="http://www.wrightthisway.com/Articles/2010/02/pac-aainis2.html" />
    <id>tag:www.wrightthisway.com,2010://1.620</id>

    <published>2010-02-28T05:30:17Z</published>
    <updated>2010-02-28T05:43:53Z</updated>

    <summary>I&apos;ve taken the first step in cleaning up the cabling for my carputer with the installation of a Pacific Accessory Corporation AAC-NIS2 interface for Nissan/Infinity vehicles. My ride is a 2006 Sentra SE-R Spec V, and despite the fact that...</summary>
    <author>
        <name>Jim</name>
        
    </author>
    
        <category term="Carputer" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.wrightthisway.com/">
        <![CDATA[<p>I've taken the first step in cleaning up the cabling for my carputer with the installation of a Pacific Accessory Corporation <a href='http://www.pac-audio.com/productDetails.aspx?ProductId=119&CategoryID=24' target='_blank'>AAC-NIS2</a> interface for Nissan/Infinity vehicles.  My ride is a 2006 Sentra SE-R Spec V, and despite the fact that this vehicle isn't listed in their list of compatible models, the radio for the factory Rockford-Fosgate system had all the correct buttons, and supported a satellite radio, so I took a chance and it installed just fine.</p>

<p>This interface gives two RCA inputs direct to the rear of the radio, so no more AUX cable plugged into the front of the dash. The sound is a bit cleaner, frequency response seems a bit better, but overall volume is slightly lower; nothing that couldn't be compensated for.</p>

<p>Next step will be to run the cables for the VGA display down through the dash (instead of down the front), then tap some power for that and the new USB hub to replace the passive hub under my seat.  Final phase will be to properly route all of the cabling from the trunk under the carpet, and come up with a better way to power the MacBook.</p>]]>
        
    </content>
</entry>

</feed>

