<?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>Big Big Technical</title>
	<atom:link href="http://bigbigtech.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://bigbigtech.com</link>
	<description>Web Development Blog</description>
	<lastBuildDate>Thu, 04 Nov 2010 01:51:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Override WordPress Plugin Options for All Sites in MultiSite</title>
		<link>http://bigbigtech.com/2010/11/override-wordpress-plugin-options-for-all-sites-in-multi-site/</link>
		<comments>http://bigbigtech.com/2010/11/override-wordpress-plugin-options-for-all-sites-in-multi-site/#comments</comments>
		<pubDate>Thu, 04 Nov 2010 01:49:53 +0000</pubDate>
		<dc:creator>Jason Tremblay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[MultiSite]]></category>
		<category><![CDATA[Must-Use Plugins]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Settings]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://bigbigtech.com/?p=73</guid>
		<description><![CDATA[These days, enabling a plugin for all sites in WordPress MultiSite is a breeze&#8230; you just install the plugin files, then click &#8220;Network Activate&#8221; from any site&#8217;s plugins page.  However, configuring plugins on a site-wide basis is a different matter.  If you don&#8217;t want to use the default settings for a plugin, or if you [...]]]></description>
			<content:encoded><![CDATA[<p>These days, enabling a plugin for all sites in WordPress MultiSite is a breeze&#8230; you just install the plugin files, then click &#8220;Network Activate&#8221; from any site&#8217;s plugins page.  However, <em>configuring</em> plugins on a site-wide basis is a different matter.  If you don&#8217;t want to use the default settings for a plugin, or if you want to be <em>sure</em> the settings to be the same for all sites in your network, you&#8217;re forced to go through one site at a time and change the settings manually.</p>
<p>I&#8217;d run into this problem before, and since I&#8217;m typically up against a mountain of work, I&#8217;ve never had time to solve it in an elegant way.  But with flexibility of WordPress, I was <em>sure</em> there was a hook or action somewhere that could help make this a bit easier.</p>
<h2>Using the &#8220;pre_option_{option_name}&#8221; Filter</h2>
<p>Turns out, it&#8217;s pretty easy to override options saved in the database.  Just use the <a href="http://codex.wordpress.org/Plugin_API/Filter_Reference" onclick="urchinTracker('/outgoing/codex.wordpress.org/Plugin_API/Filter_Reference?referer=');">pre_option_{option_name}</a> filter or the <a href="http://codex.wordpress.org/Plugin_API/Filter_Reference" onclick="urchinTracker('/outgoing/codex.wordpress.org/Plugin_API/Filter_Reference?referer=');">option_{option_name}</a> filter.  As I understand it, you should use the first if you simply want to replace the option&#8217;s value outright, and the second if you want to manipulate the value that&#8217;s saved in the database.  For example, if you wanted to change the value of the &#8220;blogname&#8221; option, you could add a filter to &#8220;pre_option_blogname&#8221;.</p>
<h2>Gotcha: Limits of Filtering Options from Within A Theme</h2>
<p>Typically, I put this kind of hack somewhere in my functions.php file in my theme (I&#8217;m using the same theme for all sites in the network).  However, after a bit of debugging, I realized that plugins are loaded before the theme files (makes sense), so if you set up a pre_option_ filter in your theme, you&#8217;ll filter the options in time for use in your theme itself, but not in time to see the values reflected in the admin pages.</p>
<p>To solve that, I figured I&#8217;d just try to add the filter earlier&#8230;</p>
<h2>Solved: Override Options with &#8220;Must Use&#8221; Plugins</h2>
<p>Basically, I just created a <a href="http://hakre.wordpress.com/2010/05/01/must-use-and-drop-ins-plugins/" onclick="urchinTracker('/outgoing/hakre.wordpress.com/2010/05/01/must-use-and-drop-ins-plugins/?referer=');">&#8220;must use&#8221; plugin</a> &#8212; which is just a php file in the wp-content/mu-plugins folder that WordPress loads automatically.  I named the file to match the plugin whose settings I was overriding&#8230; i.e. if the original plugin was called &#8220;foobar&#8221;, I called my plugin &#8220;foobar-settings.php&#8221;.  From within that file, I added the &#8220;pre_option_&#8221; filters I wanted, and viola, everything worked as expected.</p>
<p>Of course, things being every more complex, I also had to override the creation of some custom terms by the original plugin &#8212; also accomplished from my mu-plugin using <a href="http://codex.wordpress.org/Function_Reference/register_activation_hook" onclick="urchinTracker('/outgoing/codex.wordpress.org/Function_Reference/register_activation_hook?referer=');">register_activation_hook</a>.  And <em>then</em> I had to install another mu-plugin called <a href="http://wordpress.org/extend/plugins/proper-network-activation/" onclick="urchinTracker('/outgoing/wordpress.org/extend/plugins/proper-network-activation/?referer=');">Proper Network Activation</a> to be sure the plugin activation hooks were fired for all blogs when the plugin is network-activated.  But that&#8217;s a story for another time.</p>
]]></content:encoded>
			<wfw:commentRss>http://bigbigtech.com/2010/11/override-wordpress-plugin-options-for-all-sites-in-multi-site/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello world!</title>
		<link>http://bigbigtech.com/2010/10/hello-world/</link>
		<comments>http://bigbigtech.com/2010/10/hello-world/#comments</comments>
		<pubDate>Fri, 08 Oct 2010 16:29:15 +0000</pubDate>
		<dc:creator>Jason Tremblay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://bigbigtech.alertmybanjos.com/?p=1</guid>
		<description><![CDATA[Welcome to Alert My Banjos United. This is your first post. Edit or delete it, then start blogging!]]></description>
			<content:encoded><![CDATA[<p>Welcome to <a href="http://alertmybanjos.com/" onclick="urchinTracker('/outgoing/alertmybanjos.com/?referer=');">Alert My Banjos United</a>. This is your first post. Edit or delete it, then start blogging!</p>
]]></content:encoded>
			<wfw:commentRss>http://bigbigtech.com/2010/10/hello-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HTML Tags: An Opposite to Emphasis?</title>
		<link>http://bigbigtech.com/2010/04/html-tags-an-opposite-to-emphasis/</link>
		<comments>http://bigbigtech.com/2010/04/html-tags-an-opposite-to-emphasis/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 19:37:03 +0000</pubDate>
		<dc:creator>Jason Tremblay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[em]]></category>
		<category><![CDATA[emphasis]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[strong]]></category>
		<category><![CDATA[tags]]></category>

		<guid isPermaLink="false">http://www.bigbigtech.com/?p=60</guid>
		<description><![CDATA[I thought I&#8217;d write a quick post about something that always seems missing when I&#8217;m marking up content for a web project.  HTML provides us with plenty of tags that increase the importance/weight of text, but very few (if any) to decrease the weight.  If you want to emphasize text, you have a number of [...]]]></description>
			<content:encoded><![CDATA[<p>I thought I&#8217;d write a quick post about something that always seems missing when I&#8217;m marking up content for a web project.  HTML provides us with plenty of tags that <em>increase</em> the importance/weight of text, but very few (if any) to <em>decrease</em> the weight.  If you want to emphasize text, you have a number of reasonable options:</p>
<ul>
<li>&lt;em&gt; &#8211; meaning &#8220;emphasis&#8221;</li>
<li>&lt;strong&gt; &#8211; meaning &#8220;strong emphasis&#8221;</li>
<li>&lt;b&gt; and &lt;i&gt; &#8211; deprecated, but accomplish similar goals</li>
<li>&lt;h1&gt; &#8230; &lt;h6&gt; &#8211; headers, usually larger fonts</li>
<li>&lt;big&gt; &#8211; may mean size, may mean importance</li>
</ul>
<p>But where do I turn if I&#8217;d like to <em>deemphasize</em> text.  There are lots of situations where I&#8217;d like to semantically define some  content as less important than the surrounding content.  Typically, I just use a &lt;small&gt; tag, but I feel like that&#8217;s not  ideal&#8230; I don&#8217;t necessarily want to make the text smaller.</p>
<p>Here are some ideas I&#8217;ve brainstormed&#8230; I&#8217;m looking for short words that won&#8217;t interfere with legibility of inline content:</p>
<ul>
<li>&lt;de&gt; &#8211; meaning &#8220;depreciate&#8221; or &#8220;deemphasize&#8221;</li>
<li>&lt;dim&gt; &#8211; meaning &#8220;diminish&#8221;</li>
<li>&lt;dp&gt; &#8211; meaning &#8220;downplay&#8221;</li>
<li>&lt;ig&gt; &#8211; meaning &#8220;ignorable&#8221;</li>
<li>&lt;less&gt; &#8211; meaning &#8220;lessen&#8221; or &#8220;less important&#8221;</li>
<li>&lt;min&gt; &#8211; meaning &#8220;minimize&#8221;</li>
<li>&lt;un&gt; &#8211; meaning &#8220;unimportant&#8221; or &#8220;unnecessary&#8221; or &#8220;understate&#8221;</li>
<li>&lt;weak&gt; &#8211; the opposite of &lt;strong&gt;</li>
</ul>
<p>What do you think?  Would there be any value to an HTML tag that allows us to semantically de-emphasize text?  Do you have any ideas</p>
]]></content:encoded>
			<wfw:commentRss>http://bigbigtech.com/2010/04/html-tags-an-opposite-to-emphasis/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>WordPress MU: Cross-Posting with &quot;switch_to_blog()&quot;</title>
		<link>http://bigbigtech.com/2009/07/wordpress-mu-cross-posting-with-switch_to_blog/</link>
		<comments>http://bigbigtech.com/2009/07/wordpress-mu-cross-posting-with-switch_to_blog/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 16:36:20 +0000</pubDate>
		<dc:creator>Jason Tremblay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.bigbigtech.com/?p=38</guid>
		<description><![CDATA[This weekend I tackled a MU template challenge that I&#8217;d been procrastinating on because I thought it would be really tough.  The problem, simply, was that I needed to display posts from one MU blog on another blog within my MU installation. The answer: a handly pair of WordPress MU functions called switch_to_blog() and restore_current_blog().  [...]]]></description>
			<content:encoded><![CDATA[<p>This weekend I tackled a MU template challenge that I&#8217;d been procrastinating on because I thought it would be really tough.  The problem, simply, was that I needed to display posts from one MU blog on another blog within my MU installation.</p>
<p>The answer: a handly pair of WordPress MU functions called <a href="http://codex.wordpress.org/WPMU_Functions/switch_to_blog" onclick="urchinTracker('/outgoing/codex.wordpress.org/WPMU_Functions/switch_to_blog?referer=');"><strong>switch_to_blog()</strong></a> and <a href="http://codex.wordpress.org/WPMU_Functions/restore_current_blog" onclick="urchinTracker('/outgoing/codex.wordpress.org/WPMU_Functions/restore_current_blog?referer=');"><strong>restore_current_blog()</strong></a>.  Using these functions, you can jump around temporarily between MU blogs, allowing you to pull posts &#8212; or anything else, I presume &#8212; from wherever you like.  It&#8217;s as easy as:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
// do some stuff on the current blog...
switch_to_blog(9);
// ...do some stuff on the other blog...
restore_current_blog();
// ...do some stuff back on the current blog
?&gt;
</pre>
<p>Read on for more detail&#8230;</p>
<h2>Searching for and Discovering WordPress Functions</h2>
<p>When I am trying to learn something new about WordPress&#8217;s code, the first thing I do is open <span style="text-decoration: line-through;">the whole WordPress directory</span> the wp-includes directory (where most of the interesting functions live) as a <a href="http://macromates.com/" onclick="urchinTracker('/outgoing/macromates.com/?referer=');">Textmate</a> project.  That lets me do two important things:</p>
<ol>
<li>Search through all the files at once, using Find In Project (Cmd + Shift + F&#8230;) &#8212; useful for following the labyrinth of function calls.</li>
<li>Within a single file, use the function drop-down menu in the Textmate window footer &#8212; useful for quickly scanning all the function names.</li>
</ol>
<p>To solve this problem, I had very little idea what to look for.  At first, I examined the get_posts() function in /wp-includes/post.php, thinking I&#8217;d be able to pass in a blog ID, and just get posts from a specific blog.  That yeilded some interesting information, but I couldn&#8217;t find any way to get another blog&#8217;s posts simply.  So I switched tracks and focused on the file /wp-includes/wpmu-functions.php, figuring there must be some hints amongst the MU-specific code.</p>
<p>Didn&#8217;t take much looking to discover switch_to_blog()&#8230; not exactly what I had been looking for, but I figured it was worth a shot.</p>
<h2>An Example of Switching Blogs</h2>
<p>After a little theme massaging, here&#8217;s what I ended up with, and it worked perfectly!</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php

$other_blog_id = 1;

// get posts from current blog
$self_posts = get_posts(array(
    'numberposts' =&gt; 4
));

// switch blogs
switch_to_blog($other_blog_id);

// get some posts from the other blog
$other_posts = get_posts(array(
    'numberposts' =&gt; 4
));

// ok, we're done with that other blog
restore_current_blog();

// merge the two arrays
$posts = array_merge($self_posts, $other_posts);

// sort the entire array by date
function sort_posts_array_by_post_date($a, $b) {
    if ($a-&gt;post_date == $b-&gt;post_date)
        return 0;
    return $a-&gt;post_date &lt; $b-&gt;post_date ? -1 : 1;
}
usort($posts, 'sort_posts_array_by_post_date');
?&gt;
</pre>
<p>That left me with a sorted array of posts, from two separate blogs.  All I had to do then was loop through and output all the post content&#8230;</p>
<h2>One More Gotcha&#8230; <span style="text-decoration: line-through;">Switch <em>Again</em> For Post Template Functions</span> Use get_blog_permalink()</h2>
<p><span style="text-decoration: line-through;">Everything looked ok, but a little testing revealed that permalinks weren&#8217;t working&#8230; they were linking to the wrong URL.  So, I had to switch back to right blog for each post before using standard WP template functions, like this:</span></p>
<p>UPDATE: @Bira pointed out in the comments that there&#8217;s a function called <a rel="nofollow" href="http://codex.wordpress.org/WPMU_Functions/get_blog_permalink" onclick="urchinTracker('/outgoing/codex.wordpress.org/WPMU_Functions/get_blog_permalink?referer=');">get_blog_permalink()</a> that seems to do exactly what I wanted&#8230; get the permalink to a post  in another blog.  So I deleted the code sample below.  Instead of  switching back-and-forth for each post, it would make sense to stash the  blog id for posts when you retrieve them from the other blog, then use  it when calling get_blog_permalink().</p>
]]></content:encoded>
			<wfw:commentRss>http://bigbigtech.com/2009/07/wordpress-mu-cross-posting-with-switch_to_blog/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Installing Brother Printer Driver from OS X Install Discs</title>
		<link>http://bigbigtech.com/2009/07/indyhall-printer/</link>
		<comments>http://bigbigtech.com/2009/07/indyhall-printer/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 15:29:38 +0000</pubDate>
		<dc:creator>Jason Tremblay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.bigbigtech.com/?p=20</guid>
		<description><![CDATA[After a hard drive failure and replacement, I reinstalled OS X with &#8220;printer drivers&#8221; un-checked.  Of course it would be easy to get the ONE driver I needed later, right?  Wrong.  It wasn&#8217;t super-difficult, but I figured I&#8217;d save y&#8217;all the trouble of repeating the research&#8230; How to Install the Brother MFC7820N Driver For OS [...]]]></description>
			<content:encoded><![CDATA[<p style="font-size: 13px;line-height: 19px">After a hard drive failure and replacement, I reinstalled OS X with &#8220;printer drivers&#8221; un-checked.  Of course it would be easy to get the ONE driver I needed later, right?  Wrong.  It wasn&#8217;t super-difficult, but I figured I&#8217;d save y&#8217;all the trouble of repeating the research&#8230;</p>
<h1 style="font-size: 13px;line-height: 19px">How to Install the Brother MFC7820N Driver<br />
For OS X users at IndyHall<br />
The Abridged Instructions:</h1>
<ol>
<li>Download this Brother Printer Driver:  <a href="http://www.bigbigtech.com/wp-content/uploads/2009/07/brother-mfc-7820n.gz" onclick="urchinTracker('/outgoing/www.bigbigtech.com/wp-content/uploads/2009/07/brother-mfc-7820n.gz?referer=');">Brother MFC-7820N.gz</a>, and double-click to un-gzip it.</li>
<li>Open System Preferences &gt; Print &amp; Fax.</li>
<li>Add a printer (+), select Print Using: &#8220;Other&#8230;&#8221;, choose the file &#8220;Brother MFC-7820N&#8221;</li>
<li>Click &#8220;OK&#8221;, print a test page&#8230; you&#8217;re done!</li>
</ol>
<h2 style="font-size: 13px;line-height: 19px">Director&#8217;s Cut:</h2>
<p style="font-size: 13px;line-height: 19px">Here&#8217;s what I had to do to gain access to the <a href="http://www.indyhall.org" onclick="urchinTracker('/outgoing/www.indyhall.org?referer=');">IndyHall</a> printer&#8230; documenting this as I do it, and will summarize afterward.</p>
<ol>
<li>Google search: &#8220;os x install printer drivers from dvd&#8221;<br />
Result 1 looked promising:  <a href="http://forums.mactalk.com.au/11/68246-installing-printer-drivers-only-os-x-server.html" onclick="urchinTracker('/outgoing/forums.mactalk.com.au/11/68246-installing-printer-drivers-only-os-x-server.html?referer=');">Installing printer drivers only &#8211; OS X Server &#8211; MacTalk Forums</a></li>
<li>Reply to forum question mentions &#8220;Pacifist&#8221; as software that will let you get the printer drivers off the install dics&#8230; but there&#8217;s no link.</li>
<li>Google search: &#8220;os x pacifist&#8221;<br />
Result 1 wins again: <a href="http://www.charlessoft.com/" onclick="urchinTracker('/outgoing/www.charlessoft.com/?referer=');">CharlesSoft &#8211; software you always wished someone would write</a></li>
<li>Downloaded and installed Pacifist, which lets you look inside the OS X install discs or installer packages.</li>
<li>Ran the app, clicked on the &#8220;Open Apple Install Discs&#8221; button (duh) <img src='http://bigbigtech.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>Searched down through the directories and found my Brother driver at:
<ul>
<li>Contents of OSInstall.mpkg
<ul>
<li>Contents of PrinterDriversGroup
<ul>
<li>Contents of BrotherPrinterDrivers.pkg
<ul>
<li>Library
<ul>
<li>Printers
<ul>
<li>PPDs
<ul>
<li>Contents
<ul>
<li>Resources
<ul>
<li>Brother MFC-7820N.gz</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>Dragged-and-dropped that file to the desktop (had to enter admin password), then double-clicked the file to un-gzip it</li>
<li>Opened OS X System Preferences &gt; Print &amp; Fax</li>
<li>Clicked on &#8220;+&#8221; below left table to add a printer</li>
<li>Selected the printer from the list of available printers</li>
<li>In the &#8220;Print Using&#8221; drop-down menu, selected &#8220;Other&#8230;&#8221;, which opened a find-file sheet.</li>
<li>Picked the brother driver from the desktop&#8230; but hesitated, wondering if I should store the printer driver elsewhere before doing this.  Asked Allum, who said to just go for it.  Clicked &#8220;OK&#8221;.</li>
<li>Printed a test page with no problems&#8230; printer installed!</li>
</ol>
<p style="font-size: 13px;line-height: 19px"></p>
]]></content:encoded>
			<wfw:commentRss>http://bigbigtech.com/2009/07/indyhall-printer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google Analytics and its Tiny URLs</title>
		<link>http://bigbigtech.com/2009/01/google-analytics-and-its-tiny-urls/</link>
		<comments>http://bigbigtech.com/2009/01/google-analytics-and-its-tiny-urls/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 02:03:39 +0000</pubDate>
		<dc:creator>Jason Tremblay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.bigbigtech.com/?p=10</guid>
		<description><![CDATA[Google.  I love your products.  But please&#8230; usability! As a user on several Google Analytics accounts encompasing many website profiles, it would be really helpful if I could tell &#8212; at a glance &#8212; which one I&#8217;m looking at.  Typically, one would do that with some type of contextual information &#8212; a header of sorts [...]]]></description>
			<content:encoded><![CDATA[<p>Google.  I love your products.  But please&#8230; usability!</p>
<p>As a user on several Google Analytics accounts encompasing many website profiles, it would be <em>really</em> helpful if I could tell &#8212; at a glance &#8212; which one I&#8217;m looking at.  Typically, one would do that with some type of contextual information &#8212; a header of sorts &#8212; that contains the title of the page.</p>
<p>The Google Analytics solution to the &#8220;what page am I on problem&#8221;?  A drop-down selection item.  Boo.</p>
<p>Move that stuff down.  Make it bigger!</p>
<p><img class="alignnone size-large wp-image-11" src="http://www.bigbigtech.com/wp-content/uploads/2009/01/google-analytics-title-fail-610x360.jpg" alt="google-analytics-title-fail" width="610" height="360" /></p>
]]></content:encoded>
			<wfw:commentRss>http://bigbigtech.com/2009/01/google-analytics-and-its-tiny-urls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

