<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Michael Bianco&#039;s Blog</title>
	<atom:link href="http://mabblog.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://mabblog.com/blog</link>
	<description>Web, Software, and Design</description>
	<lastBuildDate>Sat, 28 Jan 2012 15:57:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Setting Up QuickBooks on Windows XP Professional for Multi-user Environment</title>
		<link>http://mabblog.com/blog/2012/01/setting-up-quickbooks-on-windows-xp-professional-for-multi-user-environment/</link>
		<comments>http://mabblog.com/blog/2012/01/setting-up-quickbooks-on-windows-xp-professional-for-multi-user-environment/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 15:57:15 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=492</guid>
		<description><![CDATA[Recently I was involved in a project moving a company&#8217;s files from a old 2003 windows exchange server to a mac mini server setup. The first setup was to move from Exchange&#8217;s email and calendaring to Google Apps. After that step was complete we moved the shared files drive over to thunderbolt RAID 5 storage [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I was involved in a project moving a company&#8217;s files from a old 2003 windows exchange server to a mac mini server setup. The first setup was to move from <a href="http://mabblog.com/blog/2012/01/migrating-rules-from-microsoft-exchange-to-google-apps/">Exchange&#8217;s email and calendaring to Google Apps</a>. After that step was complete we moved the shared files drive over to thunderbolt RAID 5 storage attached to a mac mini server device. The transition was pretty smooth, however there was one problem which wasted a significant amount of time.</p>
<p>The accountant&#8217;s in the organization use QuickBooks 2010 for all accounting purposes. Moving to a hosted solution was not an option, and they needed multi-user access to the file (2-3 people could be working on the same quickbooks file at any given moment). Our old 2003 server had quickbooks database server installed which seemed to work fine. Unfortunately, if you are not an &#8216;enterprise&#8217; quickbooks customer there is no linux version of the database server available. There was an old windows box lying around (fairly fast: dual core 2.8ghz, 3GB ram) that would be a perfect fit (or so I thought&#8230;) for a quickbooks server. Wiped the box, installed Windows XP with all updates, removed all crapware, installed quickbooks database software, but had significant trouble getting quickbooks database server to work correctly.</p>
<p>I ran the QuickBooks Network Diagnostic tool, but it did not report any errors. When opening the QuickBooks file from a client machine in multi-user machine the login prompt would come up fine, but after entering the correct login information it would time out with an error message stating a connection issue (H202) and suggesting using an &#8216;alternative&#8217; method (there was a significant delay in between initiating login and getting a response). Note that QuickBooks at this stage would correctly report an incorrect password.</p>
<p>The network setup in the location where this was occurring had a local server running DNS. The QuickBooks server had a static IP set.</p>
<p>Here are some general notes on setting up QuickBooks:</p>
<ul>
<li>Some mentioned that <a href="http://community.intuit.com/posts/opening-quickbooks-painfully-slow" target="_blank">anti-virus software on the client machine</a> causes slow operation. This didn&#8217;t seem to make in a difference in my case.</li>
<li>Tried turning firewall off on server + client machines: no difference (proper port settings were already in place)</li>
<li>Pulling data off of the shared QuickBooks folder on the XP machine wasn&#8217;t bad: 15MB/sec on a badly engineered 10/100 network (there are 5-port 10/100 switches in probably 5-10 locations around the office)</li>
<li>Opening the QuickBooks file in single-user mode from a client machine worked fine</li>
<li>Launching QuickBooks 2010 on the server and opening the file in multi-user mode, then opening the file from client machines worked fine as well</li>
<li>The significant delay between the login screen and the error messages pointed to some sort of look-up timeout, but given that file access to the machine was fine, this didn&#8217;t make a ton of sense. However, <a href="http://www.qbgarage.com/blog/what-does-error-code-h202-mean/" target="_blank">this seemed to be part of the issue</a>.</li>
<li>It is important that the daemon process for QuickBooks Database Server is <a href="http://support.quickbooks.intuit.com/support/articles/SLN40493" target="_blank">part of the administration group</a></li>
<li>On another note: <a href="http://serverfault.com/questions/80365/how-can-i-automate-the-backup-of-a-quickbooks-server" target="_blank">some great information on backing up QuickBooks</a></li>
</ul>
<p>What finally fixed the problem was adding the computer-name (aka server name or BIOS name) to the hosts file. Opening up quickbooks is still painfully slow, but at this point it works.</p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2012/01/setting-up-quickbooks-on-windows-xp-professional-for-multi-user-environment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrating Rules From Microsoft Exchange to Google Apps</title>
		<link>http://mabblog.com/blog/2012/01/migrating-rules-from-microsoft-exchange-to-google-apps/</link>
		<comments>http://mabblog.com/blog/2012/01/migrating-rules-from-microsoft-exchange-to-google-apps/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 16:38:31 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=487</guid>
		<description><![CDATA[Recently I was part of transitioning the email system of a 20+ employee business off of a Microsoft Exchange 2003 server to Google Apps. Moving close to half a million emails to a new email service was a big decision. The transition tools that Google has in place are pretty good, albeit slow for that [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I was part of transitioning the email system of a 20+ employee business off of a Microsoft Exchange 2003 server to Google Apps. Moving close to half a million emails to a new email service was a big decision. The transition tools that Google has in place are pretty good, albeit slow for that many emails, Google throttles email transfer to one each second after the first 500. However, the one piece that was missing was a good tool to transition outlook server rules. Many employees used those rules extensively and many had 50-100 rules. Outlook does not have any method in place for extracting those rules. There is no built in way to getting any sort of list or descriptions of the rules, if one wanted to transition the rules manually they would have to click on a rule, look at the pop-up window, and recreate the rules in Gmail using the filters functionality – repeating this two step process <em>for each rule</em>. Horrible.</p>
<p>This would waste many hours of valuable time so I started hunting for a better solution. There is <a href="http://support.microsoft.com/kb/324568" target="_blank">an API </a>in Outlook 2007 or higher that enabled access to rules. There isn&#8217;t much example code available, and to my surprise I couldn&#8217;t find any VB script to export a CSV of all the rules associated with an outlook account! I hacked together a really rough <a href="https://github.com/iloveitaly/outlook-gmail-rules-migration" target="_blank">VB script which exports Outlook rules</a> (only one rule type right now, thats all I needed for my use case) as a CSV and then wrote a small ruby script to generate a XML doc of the rules for import via Gmail&#8217;s import / export available through Gmail labs. It works fairly well assuming you have an updated version of Outlook 2007 or higher.</p>
<h3>Google Apps Transition Notes</h3>
<ul>
<li>The server migration tool pulled in some calendar events that employees claimed they deleted long ago.</li>
<li>The Google Mail Uploader application for Mac is not consistent. It wouldn&#8217;t pickup mail on some computers. Doesn&#8217;t handle folder hierarchy (flattens everything). Use the server migration tool instead.</li>
<li>Mail.app folder doesn&#8217;t update folder&#8217;s unread count immediately. This might be an isolated issue with Lion.</li>
<li>I had a problem with one Mac machine (10.6) where the inbox would randomly appear blank. Clearing all Mail.app support / cache files and adding the mailbox with message + attachment cache disabled fixed the issue (after mail downloaded I enabled cache again).</li>
<li>Gmail doesn&#8217;t seem to handle lots of folders (labels) well. Mail.app seems to be a lot slower with multiple folders.</li>
<li><a href="http://www.jasonhendriks.com/2011/05/using-gmail-with-apple-mail/" target="_blank">Hiding the automatic All Mail, Misc, Follow-up, etc folders </a>was helpful for those who were not familiar with gmail.</li>
<li><a href="http://blog.xiao-ma.com/2011/02/20/make-apple-mail-app-likes-gmail/" target="_blank">Changing some of the local settings</a> on Mail.app makes Gmail play a bit nicer.</li>
<li>Still can&#8217;t find a good solution to allowing a user that is an administrator of another user&#8217;s calendar to create an event with the organizer being marked as the calendar&#8217;s creator. Use case: administrative assistant managing an executive&#8217;s calendar.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2012/01/migrating-rules-from-microsoft-exchange-to-google-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>eBay PHP Framework, Tumblr for Kohana, and More</title>
		<link>http://mabblog.com/blog/2011/11/ebay-ph-tumblr-kohana-open-source/</link>
		<comments>http://mabblog.com/blog/2011/11/ebay-ph-tumblr-kohana-open-source/#comments</comments>
		<pubDate>Sun, 27 Nov 2011 16:26:44 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=479</guid>
		<description><![CDATA[I&#8217;ve been throwing a decent amount of code on GitHub + Gist recently; I wanted to highlight a couple of the projects that the community might find useful.
eBay PHP Framework Wrapper
There isn&#8217;t a ton of documentation or examples around the eBay PHP Accelerator toolkit. Actually, I think it has been a couple years since the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been throwing a decent amount of code on <a href="https://github.com/iloveitaly" target="_blank">GitHub</a> + <a href="https://gist.github.com/iloveitaly" target="_blank">Gist</a> recently; I wanted to highlight a couple of the projects that the community might find useful.</p>
<h2>eBay PHP Framework Wrapper</h2>
<p>There isn&#8217;t a ton of documentation or examples around the eBay PHP Accelerator toolkit. Actually, I think it has been a couple years since the framework itself has been updated. I&#8217;ve put together a small <a href="https://github.com/iloveitaly/ebay-php" target="_blank">eBay PHP library</a> with some generic posting and searching wrapper functions. The code was pulled out of an active project and still has some references to the context in which it was situated, but it should provide a good starting point to anyone looking to work with the eBay PHP framework. In additional to providing some wrapper functions, it also has some fixes to the underlying eBat NS framework.</p>
<h2>NetSuite PHP Framework Wrapper</h2>
<p>Similar to the eBay wrapper library, I&#8217;ve made a <a href="https://github.com/iloveitaly/netsuite-kohana" target="_blank">wrapper around the PHP NetSuite framework</a>. Although the library is structured as a Kohana 2 library, it would be fairly easily to rearrange the library for use in another PHP framework or as a standalone library. The wrapper provides some useful information about working with custom record types (reading + writing) and some wrappers around some trickier NetSuite functionality. The library also provides fixes to the underlying netsuite PHP framework . If you have been having trouble with the NetSuite framework throwing errors when returning a valid SOAP response, take a look through the commit log and pull out the patches.</p>
<h2>Tumblr + Kohana</h2>
<p>If you are looking to integrate a Tumblr blog with a custom design take a look the <a href="https://github.com/iloveitaly/phumblr" target="_blank">phumblr</a> library which provides an easy way to integrate Tumblr via a PHP interface.</p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2011/11/ebay-ph-tumblr-kohana-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MacRuby Deployment + Load Order</title>
		<link>http://mabblog.com/blog/2011/11/macruby-deployment-lion-coco/</link>
		<comments>http://mabblog.com/blog/2011/11/macruby-deployment-lion-coco/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 17:56:58 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=475</guid>
		<description><![CDATA[After reading the official MacRuby docs on deployment, I read over this guide. Although the deployment build seemed to be working fine on my local machine when I dropped it on my laptop with a standard Lion install it crashed, claiming that there was an defined constant – but that constant was a class. How [...]]]></description>
			<content:encoded><![CDATA[<p>After reading the official MacRuby docs on deployment, I read over <a href="http://redwoodapp.posterous.com/macruby-and-xcode-4-build-a-self-contained-ma" target="_blank">this guide</a>. Although the deployment build seemed to be working fine on my local machine when I dropped it on my laptop with a standard Lion install it crashed, claiming that there was an defined constant – but that constant was a class. How could it be undefined if it ran fine locally?</p>
<p>Looking into it a bit more the class that was undefined was being used as a superclass for another ruby class. Taking a look at rb_main.rb revealed that there is no specific load order. Since the load order was undefined, the class requiring the other ruby class as a superclass was being loaded before the superclass was loaded. I ended up tweaking the rb_main.rb file to allow for a manual load order, followed by the standard automatic load.</p>
<div class="codecolorer-container ruby dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;height:300px;"><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color:#008000; font-style:italic;"># Loading the Cocoa framework. If you need to load more frameworks, you can</span><br />
<span style="color:#008000; font-style:italic;"># do that here too.</span><br />
framework <span style="color:#996600;">'Cocoa'</span><br />
<br />
<span style="color:#008000; font-style:italic;"># Loading all the Ruby project files.</span><br />
<br />
<span style="color:#008000; font-style:italic;"># manual load allows up to specify the load order for some of the classes</span><br />
manualLoad = <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;VTiTunesHeader&quot;</span><span style="color:#006600; font-weight:bold;">&#93;</span><br />
<span style="color:#9966CC; font-weight:bold;">for</span> file <span style="color:#9966CC; font-weight:bold;">in</span> manualLoad<br />
<span style="color:#CC0066; font-weight:bold;">require</span> file<br />
<span style="color:#9966CC; font-weight:bold;">end</span><br />
<br />
manualLoad <span style="color:#006600; font-weight:bold;">&lt;</span> <span style="color:#006600; font-weight:bold;">&lt;</span> <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">basename</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF; font-weight:bold;">__FILE__</span>, <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">extname</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF; font-weight:bold;">__FILE__</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />
<br />
<span style="color:#008000; font-style:italic;"># Auto load the direct of the files in the dir</span><br />
dir_path = NSBundle.<span style="color:#9900CC;">mainBundle</span>.<span style="color:#9900CC;">resourcePath</span><br />
<span style="color:#CC00FF; font-weight:bold;">Dir</span>.<span style="color:#9900CC;">glob</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">join</span><span style="color:#006600; font-weight:bold;">&#40;</span>dir_path, <span style="color:#996600;">'*.{rb,rbo}'</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">map</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>x<span style="color:#006600; font-weight:bold;">|</span> <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">basename</span><span style="color:#006600; font-weight:bold;">&#40;</span>x, <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">extname</span><span style="color:#006600; font-weight:bold;">&#40;</span>x<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#125;</span>.<span style="color:#9900CC;">uniq</span>.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>path<span style="color:#006600; font-weight:bold;">|</span><br />
<span style="color:#9966CC; font-weight:bold;">if</span> <span style="color:#9966CC; font-weight:bold;">not</span> manualLoad.<span style="color:#9966CC; font-weight:bold;">include</span>? path<br />
<span style="color:#CC0066; font-weight:bold;">require</span><span style="color:#006600; font-weight:bold;">&#40;</span>path<span style="color:#006600; font-weight:bold;">&#41;</span><br />
<span style="color:#9966CC; font-weight:bold;">end</span><br />
<span style="color:#9966CC; font-weight:bold;">end</span><br />
<br />
<span style="color:#008000; font-style:italic;"># Starting the Cocoa main loop.</span><br />
NSApplicationMain<span style="color:#006600; font-weight:bold;">&#40;</span>0, <span style="color:#0000FF; font-weight:bold;">nil</span><span style="color:#006600; font-weight:bold;">&#41;</span></div></div>
<p>You can grab the gist <a href="https://gist.github.com/1331293" target="_blank">here.</p>
<h2>Cocoa Resources</h2>
<p>Some Cocoa libraries / snippet repos that I found during my latest dev session.</p>
<ul>
<li><a href="https://github.com/jrc/Cocoa-Snippets" target="_blank">jrc&#8217;s Cocoa Snippets</a></li>
<li><a href="https://github.com/johnezang/JSONKit">JSON Kit</a> – awesome objc JSON library</li>
<li><a href="http://cocoaobjects.com/" target="_blank">Cocoa Objects</a> – useful index of pluggable Cocoa code</li>
<li><a href="https://github.com/AlanQuatermain/aqtoolkit" target="_blank">AQToolkit</a> &#8211; great collection of useful pluggable categories / classes. Contains useful NSFileManager category for managing temporary files.</li>
<li><a href="https://gist.github.com/972328" target="_blank">NSString category</a> for generating a query string from a NSDictionary</li>
<li><a href="http://allseeing-i.com/ASIHTTPRequest/" target="_blank">ASIHTTPRequest</a> &#8211; comprehensive HTTP request library</li>
</ul>
<h2>Random Tidbits</h2>
<ul>
<li>Although old news to most, you can grab the the last n <em>bytes </em>of a file using tail -c. Very useful for cutting down on the size of large text log files.</li>
<li>I pulled the build versioning code out from a project I was working on. Take a look at this <a href="https://gist.github.com/1326457">build numbering gist</a>, provides source to pull version number from git or svn and write it in your Info.plist</li>
<li>The Ruby <a href="http://logging.rubyforge.org/" target="_blank">logging</a> class is more robust than the Log4r class and the built in logger class.</li>
<li>attr_accessor :variable makes a instance variable Key Value Coding compliant. Just set @variable in your initializer.</li>
<li>Awesome <a href="http://hyperpolyglot.org/scripting#getter-setter" target="_blank">side-by-side reference</a> sheet for PHP, Ruby, Perl, and Python. Handy reference to python to ruby conversion.</li>
<li><a href="https://gist.github.com/974340" target="_blank">Obj-c blocks in MacRuby</a></li>
<li>Although you can `macgem install json`, macruby comes with a json library built in that seems to have tweaks for deployment. Don&#8217;t install the json gem</li>
<li>The Open3 Ruby library does not return subprocess status correctly when using MacRuby</li>
<li><a href="http://ofps.oreilly.com/titles/9781449380373/index.html" target="_blank">Online version</a> of &#8220;MacRuby: The Definitive Guide&#8221;</li>
<li>PyObjc on Lion is <a href="http://stackoverflow.com/questions/5843508/pyobjc-on-xcode-4" target="_blank">dead</a>. Although you might get an application to run, there are so many bugs it really isn&#8217;t usable for production</li>
<li>Although macrubyd exists, it doesn&#8217;t seem to work with full-fledged Cocoa + MacRuby apps. <a href="http://stackoverflow.com/questions/5757536/use-macruby-debugger-in-xcode" target="_blank">There isn&#8217;t any Xcode integration</a>. Ruby-Debug also doesn&#8217;t seem to be compatible with MacRuby. Bottom line: no strong debugging tools for MacRuby&#8230; yet.</li>
<li>The &#8220;throw your dotfiles on github&#8221; trend has been an interested <a href="https://github.com/iloveitaly/dotfiles" target="_blank">learning experience</a> for me</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2011/11/macruby-deployment-lion-coco/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TextMate 2 Alpha Before Christmas</title>
		<link>http://mabblog.com/blog/2011/09/textmate-2-alpha-before-christmas/</link>
		<comments>http://mabblog.com/blog/2011/09/textmate-2-alpha-before-christmas/#comments</comments>
		<pubDate>Sun, 25 Sep 2011 23:47:49 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=468</guid>
		<description><![CDATA[Just saw this on the macromates twitter today:
@kylefox It does however work better in 2.0 provided soft-wrap is on, there will be a public alpha before Christmas.
I&#8217;ve been a long time TextMate user anxiously awaiting a new version (Allan did such a great job with V1, I&#8217;m curious to see what he will come up [...]]]></description>
			<content:encoded><![CDATA[<p>Just saw this on the <a href="https://twitter.com/#!/macromates/status/117734542005116928">macromates twitter today</a>:</p>
<blockquote><p>@kylefox It does however work better in 2.0 provided soft-wrap is on, there will be a public alpha before Christmas.</p></blockquote>
<p>I&#8217;ve been a long time TextMate user anxiously awaiting a new version (Allan did such a great job with V1, I&#8217;m curious to see what he will come up with for V2).</p>
<p>Couple new TextMate related links / things I&#8217;ve found recently:</p>
<ul>
<li><a href="https://github.com/textmate" target="_blank">TextMate GitHub profile</a> &#8211; Although the SVN repos are mentioned + linked to in the official wiki, this is where you can find the latest updated bundles</li>
<li><a href="http://ethanschoonover.com/solarized" target="_blank">Solarize Theme</a> &#8211; Great theme for</li>
<li><a href="https://github.com/kneath/github_textmate_preview" target="_blank">GitHub MarkDown Preview</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2011/09/textmate-2-alpha-before-christmas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lion, SMTP Postfix Relay, and Dreamhost</title>
		<link>http://mabblog.com/blog/2011/09/lion-smtp-postfix-relay-and-dreamhost/</link>
		<comments>http://mabblog.com/blog/2011/09/lion-smtp-postfix-relay-and-dreamhost/#comments</comments>
		<pubDate>Sat, 10 Sep 2011 14:54:38 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=461</guid>
		<description><![CDATA[When developing web-apps locally it is useful to have a fully functional smtp server to test automated emails associated with your application. Many times the network you are developing on will not allow you to simply start up postfix and and run your own local smtp server. However, this doesn&#8217;t imply that you can&#8217;t use [...]]]></description>
			<content:encoded><![CDATA[<p>When developing web-apps locally it is useful to have a fully functional smtp server to test automated emails associated with your application. Many times the network you are developing on will not allow you to simply start up postfix and and run your own local smtp server. However, this doesn&#8217;t imply that you can&#8217;t use postfix – modifying postfix to relay all outgoing mail to an external / offsite smtp server that you have control of will enable you to develop &amp; test the parts of your application that require a local outgoing smtp server without an issue.</p>
<p>Many times port 25 (the default smtp port) will be blocked somewhere along the line in your network connection. You can figure out if your network configuration or ISP is blocking port 25 by running <code>telnet smtp.server.com 25.</code></p>
<p>Edit <strong>/etc/postfix/main.cf</strong></p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">relayhost = [mail.domain.com]:587<br />
smtp_sasl_auth_enable = yes<br />
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd<br />
smtp_sasl_security_options = noanonymous<br />
smtp_use_tls = yes</div></div>
<p>Create/edit /etc/postfix/sasl_passwd</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[mail.domain.com]:587 username@domain.com:password</div></div>
<p>Run this command in your shell once the above two files are created/modified:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">sudo chmod 600 /etc/postfix/sasl_passwd<br />
sudo postmap /etc/postfix/sasl_passwd<br />
sudo launchctl stop org.postfix.master<br />
sudo launchctl start org.postfix.master<br />
<br />
# test postfix, cmd+d after typing message content to send message<br />
mail -s &quot;Testing, Testing&quot; you@domain.com</div></div>
<h2>References:</h2>
<ul>
<li><a href="http://wiki.debian.org/Postfix" target="_blank">Debian Postfix Docs</a></li>
<li><a href="http://www.zulius.com/how-to/set-up-postfix-with-a-remote-smtp-relay-host/" target="_blank">Remote SMTP on Linux</a></li>
<li><a href="http://bensbits.com/blog/2005/09/06/postfix_smtp_auth_support_for_relayhost/" target="_blank">Postfix SMTP Auth Support for Relayhost</a></li>
<li><a href="http://wiki.dreamhost.com/Port_25_Blocking" target="_blank">Port 25 Blocking</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2011/09/lion-smtp-postfix-relay-and-dreamhost/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Custom Premailer Modifications</title>
		<link>http://mabblog.com/blog/2011/08/custom-premailer-modifications/</link>
		<comments>http://mabblog.com/blog/2011/08/custom-premailer-modifications/#comments</comments>
		<pubDate>Thu, 04 Aug 2011 20:03:23 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=445</guid>
		<description><![CDATA[I&#8217;ve had to do quite a bit of email newsletter design recently and I&#8217;ve become very familiar with premailer, an awesome open source email preprocessing library that makes developing emails a little more sane.
My workflow is a bit different than what premailer expects out of the box, and there are a couple of improvements that [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had to do quite a bit of email newsletter design recently and I&#8217;ve become very familiar with <a href="https://github.com/alexdunae/premailer" target="_blank">premailer</a>, an awesome open source email preprocessing library that makes developing emails a little more sane.</p>
<p>My workflow is a bit different than what premailer expects out of the box, and there are a couple of improvements that I wanted to add to the project. I&#8217;ve <a href="https://github.com/iloveitaly/premailer" target="_blank">forked the project</a>, merged in some other users&#8217; improvements, and made a couple customizations:</p>
<ul>
<li>In plain text mode, links and the parentheses surrounded the links, will not be broken up onto separate lines</li>
<li>Images will be replaced by their alt text</li>
<li>Instead of using the remote CSS file &lt;link /&gt;ed in the HTML when using &#8211;base-path premailer will search for the local CSS file based on the path of the input file and use that if available. This is helpful when you have a local CSS file that you want to use to &#8216;compile&#8217; the email newsletter HTML but have a different CSS file on the server that you want to use to display the email on your website.</li>
<li>Unmergable styles will be written into the body (makes a little easier for copying output into iContact and other ESPs)</li>
<li>The MailChimp reset styles will be preserved</li>
</ul>
<p>Just an FYI for anyone looking for similar modifications to the default premailer.</p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2011/08/custom-premailer-modifications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lion Frustration Fixes</title>
		<link>http://mabblog.com/blog/2011/07/lion-frusteration-fixe/</link>
		<comments>http://mabblog.com/blog/2011/07/lion-frusteration-fixe/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 15:38:02 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=435</guid>
		<description><![CDATA[Installed Lion today, some great improvements, some not so great (iCal&#8230; really?), and some frusterating changes than can be fixed.

Scrolling seemed delayed and generally choppy on my magic mouse. The scrolling preferences are completed removed from the mouse system preferences. Instead they are hidden in the &#8220;Mouse Options&#8221; button in the &#8220;Mouse&#8221; tab of the [...]]]></description>
			<content:encoded><![CDATA[<p>Installed Lion today, some great improvements, some not so great (iCal&#8230; really?), and some frusterating changes than can be fixed.</p>
<ul>
<li>Scrolling seemed delayed and generally choppy on my magic mouse. The scrolling preferences are completed removed from the mouse system preferences. Instead they are hidden in the &#8220;Mouse Options&#8221; button in the &#8220;Mouse&#8221; tab of the Universal Access system preference. In the mouse tab you can also remove the scrolling delay.</li>
<li>Safari&#8217;s cmd+option+l to open the download window was removed! Luckily you can <a href="http://www.tuaw.com/2011/07/23/lion-restoring-safaris-download-list-keyboard-shortcut/" target="_blank">add it back</a> using a <a href="http://www.red-sweater.com/AppleScript/ToggleDownloadsPopover.zip" target="_blank">script</a> by <a href="http://www.red-sweater.com/" target="_blank">Daniel Jalkut</a> bundled in a service bound to to the cmd+option+l keyboard shortcut.</li>
<li>The new window zoom animation is really annoying. Luckily, you can <a href="http://superuser.com/questions/312918/how-do-you-disable-the-zoom-effect-window-animations-in-os-x-lion" target="_blank">disable it</a></li>
<li>The only widget I really use is BeRuler, a simple measuring tool. It is only useful if the dashboard lays on top of the screen. Thankfully you can bring the <a href="http://hints.macworld.com/article.php?story=20110721230506864#comments" target="_blank">translucent Dashboard mode back</a></li>
<li>Mail has annoying new animations too, the hidden preferences to <a href="http://osxdaily.com/2011/07/27/disable-mail-animations-in-mac-os-x-lion/" target="_blank">disabled them</a> are:
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">defaults write com.apple.Mail DisableReplyAnimations -bool YES<br />
defaults write com.apple.Mail DisableSendAnimations -bool YES</div></div>
</li>
<li>Not Lion specific, but I&#8217;ve found this to be very useful:
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">defaults write com.apple.finder _FXShowPosixPathInTitle –bool YES</div></div>
</li>
<li>As a web developer I have <em>a lot </em>of windows open, I don&#8217;t want them restored after when launching Safari.
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">defaults write com.apple.Safari NSQuitAlwaysKeepsWindows -int 0</div></div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2011/07/lion-frusteration-fixe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamic AJAX Content, Internet Explorer, MooTools, and Form Elements</title>
		<link>http://mabblog.com/blog/2011/04/dynamic-ajax-content-internet-explorer-mootools-and-form-elements/</link>
		<comments>http://mabblog.com/blog/2011/04/dynamic-ajax-content-internet-explorer-mootools-and-form-elements/#comments</comments>
		<pubDate>Mon, 18 Apr 2011 13:04:13 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=407</guid>
		<description><![CDATA[Another day, another Internet Explorer bug. I was using MooTool&#8217;s Request.HTML to load some AJAX content to display within an inline popup and IE kept throwing the classic &#8220;Object doesn&#8217;t support this property or method&#8221; error. The error was occurring inside document.id (i.e. the dollar function) which made the issue even stranger. Looking at the [...]]]></description>
			<content:encoded><![CDATA[<p>Another day, another Internet Explorer bug. I was using MooTool&#8217;s Request.HTML to load some AJAX content to display within an inline popup and IE kept throwing the classic &#8220;Object doesn&#8217;t support this property or method&#8221; error. The error was occurring inside document.id (i.e. the dollar function) which made the issue even stranger. Looking at the dollar function&#8217;s source code, it seems as though methods are copied from Element.prototype to the element being retrieved.</p>
<p>The AJAX content I was loading contained a form which had a form element with ID &#8220;position&#8221;. When the Request.HTML receives html content it retrieves a list of all elements contained with the AJAX response using getElements(&#8220;*&#8221;). This caused the document.id method to be called with the form element of ID &#8220;position&#8221; contained within the HTML response as its argument, which caused the following assignment to be made:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">theFormElement[&quot;position&quot;] = Element.prototype[&quot;position&quot;];</div></div>
<p>Which then triggered the above mentioned IE error. Since theFormElement["position"] is a read-only reference to the input element contained within the form IE threw an error. Be aware of the ID / name you assign to input elements when debugging obscure bugs in internet explorer!</p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2011/04/dynamic-ajax-content-internet-explorer-mootools-and-form-elements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using VMWare + Windows to Test Web Sites on Windows</title>
		<link>http://mabblog.com/blog/2011/04/using-vmware-windows-to-test-web-sites-on-windows/</link>
		<comments>http://mabblog.com/blog/2011/04/using-vmware-windows-to-test-web-sites-on-windows/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 00:55:08 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=395</guid>
		<description><![CDATA[Step 1: Retrieve Emulator&#8217;s Gateway IP Address
Grab the inet number resulting from `ifconfig vmnet1`.
Step 2: Add Test Site&#8217;s Local Hostname to Window&#8217;s Host File
For each site I develop I setup a new Apache virtual host (some info on apache virtual hosts here). For instance, the local domain / hostname for a website could be mabblog.localhost. When [...]]]></description>
			<content:encoded><![CDATA[<h2>Step 1: Retrieve Emulator&#8217;s Gateway IP Address</h2>
<p>Grab the inet number resulting from <code>`ifconfig vmnet1`.</code></p>
<h2>Step 2: Add Test Site&#8217;s Local Hostname to Window&#8217;s Host File</h2>
<p>For each site I develop I setup a new Apache virtual host (some info on apache virtual hosts <a href="http://www.evolt.org/node/13138" target="_blank">here</a>). For instance, the local domain / hostname for a website could be <code>mabblog.localhost</code>. When developing locally there are some hardlinks to the local development hostname, for this reason the it isn&#8217;t enough to use the inet vmnet1 address retrieved above when debugging in VMWare / Parallels; the local hostname must be added to the Windows host file.</p>
<p><a href="http://en.wikipedia.org/wiki/Hosts_(file)" target="_blank">Wikipedia</a> has an extensive listing of the location of the host file on various systems, on Windows XP it is located here:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">c:\windows\system32\drivers\etc\hosts</div></div>
<p>Open up the file in notepad and add your host entry, for example:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">172.16.232.1&nbsp; &nbsp; abc.localhost</div></div>
<h2>Step 3: Add Emulator&#8217;s Gateway IP Address to Your VirtualHost</h2>
<p>In order for apache to properly handle the request coming from the emulator gateway you have to add the emulator gateway IP to the VirtualHost statement.</p>
<p>From: /etc/apache2/users/Name.conf</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">NameVirtualHost 172.16.232.1<br />
&lt;virtualhost 127.0.0.1 172.16.232.1&gt;<br />
ServerName abc.localhost<br />
DocumentRoot /Users/Mike/Sites/abc<br />
&lt;/virtualhost&gt;</div></div>
<h2>References:</h2>
<ul>
<li><a href="http://www.rowlando.com/blog/2009/01/11/reaching-localhost-from-vmware-virtual-machines-on-a-mac/" target="_blank">Reaching localhost from VMware / virtual machines on a Mac</a></li>
<li><a href="http://stackoverflow.com/questions/61449/how-do-i-access-the-host-from-vmware-fusion" target="_blank">How Do I Access The Host From VMware Fusion?</a></li>
<li><a href="http://httpd.apache.org/docs/2.0/vhosts/examples.html" target="_blank">VirtualHost Examples</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2011/04/using-vmware-windows-to-test-web-sites-on-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.586 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-02-04 22:12:49 -->

