<?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>Solution Reduction</title>
	<atom:link href="http://www.norith.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.norith.com</link>
	<description>&#34;Reductio ad absurdum&#34; indeed! Hmm, perhaps meliorism is false after all...</description>
	<lastBuildDate>Thu, 18 Jun 2015 21:00:55 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.15</generator>
	<item>
		<title>Pentax DA* 55mm F1.4 SDM lens and B+W filters</title>
		<link>http://www.norith.com/2012/02/pentax-da-55mm-f1-4-sdm-lens-and-bw-filters/</link>
		<comments>http://www.norith.com/2012/02/pentax-da-55mm-f1-4-sdm-lens-and-bw-filters/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 05:00:11 +0000</pubDate>
		<dc:creator><![CDATA[norith]]></dc:creator>
				<category><![CDATA[Photography Gear]]></category>

		<guid isPermaLink="false">http://www.norith.com/?p=34</guid>
		<description><![CDATA[I discovered the other day that the Pentax DA* 55mm lens has very tight tolerances for the provided lens cap. It fits tightly over the outside of the lens and doesn&#8217;t allow any overlap by an attached filter. I was trying to use a B+W MRC Nano UV-Haze filter which slightly overlaps the outside of [&#8230;]]]></description>
				<content:encoded><![CDATA[<p></p><p>I discovered the other day that the Pentax DA* 55mm lens has very tight tolerances for the provided lens cap. It fits tightly over the outside of the lens and doesn&#8217;t allow any overlap by an attached filter.</p>
<div id="attachment_35" class="wp-caption alignnone" style="width: 300px">
	<a href="http://www.norith.com/wp-content/uploads/2012/02/55mm_w_bw_filter_box.jpg"><img class="size-medium wp-image-35" title="Pentax 55mm w. B+W Filter" src="http://www.norith.com/wp-content/uploads/2012/02/55mm_w_bw_filter_box-300x198.jpg" alt="" width="300" height="198" /></a>
	<p class="wp-caption-text">Pentax 55mm w. B+W Filter</p>
</div>
<p>I was trying to use a B+W MRC Nano UV-Haze filter which slightly overlaps the outside of the lens.</p>
<div id="attachment_36" class="wp-caption alignnone" style="width: 300px">
	<a href="http://www.norith.com/wp-content/uploads/2012/02/55mm_from_side.jpg"><img class="size-medium wp-image-36" title="Pentax 55mm side view with attached B+W filter" src="http://www.norith.com/wp-content/uploads/2012/02/55mm_from_side-300x198.jpg" alt="" width="300" height="198" /></a>
	<p class="wp-caption-text">Pentax 55mm side view with attached B+W filter</p>
</div>
<p>A close up photo shows the 1mm overlap.</p>
<div id="attachment_37" class="wp-caption alignnone" style="width: 300px">
	<a href="http://www.norith.com/wp-content/uploads/2012/02/55mm_barrel_w_overlap.jpg"><img class="size-medium wp-image-37" title="55mm_barrel_w_overlap" src="http://www.norith.com/wp-content/uploads/2012/02/55mm_barrel_w_overlap-300x199.jpg" alt="Filter overlap" width="300" height="199" /></a>
	<p class="wp-caption-text">B+W Filter overlap</p>
</div>
<p>That extra 1mm prevents the lens cap from attaching. I&#8217;ll try another brand soon and post which one fits.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.norith.com/2012/02/pentax-da-55mm-f1-4-sdm-lens-and-bw-filters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating a Grails Execute and Wait Interceptor (a Grails Service)</title>
		<link>http://www.norith.com/2009/02/creating-a-grails-execute-and-wait-interceptor-a-grails-service/</link>
		<comments>http://www.norith.com/2009/02/creating-a-grails-execute-and-wait-interceptor-a-grails-service/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 04:02:11 +0000</pubDate>
		<dc:creator><![CDATA[norith]]></dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.norith.com/2009/02/creating-a-grails-execute-and-wait-interceptor-a-grails-service/</guid>
		<description><![CDATA[Creating a Grails Execute and Wait Interceptor (a Grails Service) A year or so ago I was building a simple payment processing website using Grails and realized that I wanted an ‘execute and wait’ interceptor’, similar to what I had become used to in WebWork (the basis of Struts2). I wanted the user to be [&#8230;]]]></description>
				<content:encoded><![CDATA[<p></p><p>Creating a Grails Execute and Wait Interceptor (a Grails Service) A year or so ago I was building a simple payment processing website using Grails and realized that I wanted an ‘<a href="http://www.opensymphony.com/webwork/wikidocs/Execute%20and%20Wait%20Interceptor.html">execute and wait’ interceptor</a>’, similar to what I had become used to in <a href="http://www.opensymphony.com/webwork/">WebWork</a> (the basis of <a href="http://struts.apache.org/2.x/">Struts2</a>). I wanted the user to be able to submit their payment information, and the page to refresh with progress information and then finally display the results. WebWork’s EaWI prevents the HTTP request from timing out by wrapping the action request in a background thread and returning a result to the browser. The browser can then ‘check in’ periodically, using a <code>META</code> refresh or AJAX call, and retrieve the current status of the backgrounded thread. When the background process has completed, the next browser check in cycle displays the result to the user. While this is simple to implement in WebWork, Grails doesn’t seem to have a similar concept. I ended up using a Grails Service, and checking in on it’s progress periodically. First, handle the form submit:</p>
<pre class="brush: groovy; title: ; notranslate">
class OrderController {
// grails injected services
def paymentService
...
def payment = { CreditCard creditcard -&amp;gt;
if (request.method != 'POST') {
// error   flash.message = 'A problem occurred in your order'
redirect(action : 'index')
return
}
def orderDetails = new OrderDetails(params)
if (!creditcard.validate() || !orderDetails.validate()) {
return [ creditcard : creditcard, orderDetails : orderDetails ]
}
if (paymentService.inUse) {
flash.message = &quot;A credit card submission for you already appears to be in progress. Please return again after 30-40 minutes.&quot;
return [ creditcard : creditcard, orderDetails : orderDetails ]
}
session.orderDetails = orderDetails
paymentService.processCreditCard(creditcard, orderDetails)
redirect(action : 'processing')
}
...
}&lt;/pre&gt;
The action &lt;code&gt;payment&lt;/code&gt; begins with defining a &lt;a href=&quot;http://grails.org/doc/1.0.x/guide/single.html#6.1.9%20Command%20Objects&quot;&gt;Command Object&lt;/a&gt; which allows you to bind posted form fields to a temporary object that supports the standard validation system. I’m not using a domain object here because the user’s credit card details should never be persisted on your system. They’re privileged information that you should only hold for the purposes of actually processing a transaction. Next, a simple check to ensure that the user is submitting the form via a ‘POST’ request. Though it’s a simple &lt;a href=&quot;http://www.owasp.org/index.php/Cross_Site_Scripting&quot;&gt;XSS&lt;/a&gt; check, a GET request should never change or store information on the system. The order details are then captured from the form and the two objects validated. After that a quick check to ensure that the &lt;code&gt;paymentService&lt;/code&gt; is not already in use by this user. Though there’s a possibility of a race condition here if there are two quick form submissions, it’s still best to check. The &lt;code&gt;orderDetails&lt;/code&gt; are stored in the session for later use and the &lt;code&gt;paymentService&lt;/code&gt;is then called to process the transaction and the browser shown a processing status page.
&lt;pre class=&quot;brush:groovy&quot;&gt;def declined = {
flash.message = &quot;Your payment was declined &quot; + flash.errorMsg
if (!session.orderDetails)
render(view : 'payment')
else
render(view : 'payment', model : [ orderDetails : session.orderDetails ])
}
def processing = {
if (!paymentService.inUse) {
flash.message = &quot;A problem occurred processing your order. &quot;
if (!session.orderDetails)
render(view : 'payment')
else
render(view : 'payment', model : [ orderDetails : session.orderDetails ])
return
}
// show the 'your order is being processed' waiting page
if (paymentService.finishedProcessing) {
def orderDetails = paymentService.processedOrderDetails
paymentService.processedOrderDetails = null
if (paymentService.hasError || paymentService.declined) {
flash.errorMsg = paymentService.getErrorMsg()
paymentService.inUse = false
redirect(action : declined)
return
}
paymentService.inUse = false
flash.orderDetails = orderDetails
redirect(action : 'finished')
return
}
[orderDetails : orderDetails]
}
</pre>
<p>The <code>declined</code> action simply displays the error message to the user and likely provides them with a way to change their payment information. The <code>processing</code> action gets called repeatedly to check in on the status of the credit card transaction. It first checks to make sure that are actually in the middle of processing a card, then checks whether the transaction is completed. If it is, then the <code>orderDetails</code> are retrieved from the <code>paymentService</code> and if the transaction was declined the user is sent to the <code>declined</code> action. If the transaction was approved we’re redirected to the <code>finished</code>action. Otherwise we’re shown the in-progress status page.</p>
<pre class="brush: groovy; title: ; notranslate">
def finished = {
if (!flash.orderDetails) {
flash.message = &quot;A problem occurred processing your order. &quot;
if (!session.orderDetails)
render(view : 'payment')
else
render(view : 'payment', model : [ orderDetails : session.orderDetails ])
return
}
session.removeAttribute('orderDetails')
def orderDetails = flash.orderDetails
[orderDetails : orderDetails]
}
</pre>
<p>The <code>finished</code> action displays the Thank You page to the user with the details of the order. But the interesting bit of the code is the <code>paymentService</code></p>
<pre class="brush: groovy; title: ; notranslate">
class PaymentService {
static scope = 'session'
static transactional = true
boolean inUse = false
boolean finishedProcessing = false
boolean hasError = false
boolean declined = false
OrderDetails processedOrderDetails
synchronized processCreditCard(CreditCard cc, OrderDetails orderDetails) {
while (inUse) {
// already processing a credit card from another submission
sleep 500
}
inUse = true
finishedProcessing = false
hasError = false
declined = false
// store the order in the DB before we go to the payment processor
// this ensures that if our server goes down or
// we don't hear back from the processor, but the card is authorized
// we have a record of the purchase. Also it builds an incrementing
// unique orderid which is usually required by the payment processor
OrderCache orderCache = new OrderCache()
orderCache.cache = orderDetails.dump()
orderCache.save()
String orderId = 'CC-' + orderCache.id.toString()
processedOrder = orderDetails
// create the transaction request
PreAuth preAuthRequest = new PreAuth(
orderId,
cc.number,
cc.expiryMonth,
cc.expiryYear,
cc.name,
cc.cvv,
...
);
// create a thread to run the payment request
Thread.start {
hasError = false
try {
// the constructor actually performs the remote call to the processor
// so it will possibly take real time
HttpsPostRequest paymentReq =
new HttpsPostRequest(
preAuthRequest
...
);
processedOrder.receipt = ...
if (paymentReq.isSuccessful) {
// save the order to the database
processedOrder.orderId = orderId
processedOrder.save()
// send confirmation email...
}
else {
declined = true
}
}
catch(Exception e) {
log.error(e.getMessage(), e)
hasError = true
}
finishedProcessing = true
}
}
}
</pre>
<p>Here we define the <code>PaymentService</code> as being both transactional and having a session scope. This means that it participates in transactional database scopes and that each browser session will be guaranteed a unique instance of the PaymentService. For safety’s sake, I first cached the order details to ensure that if the unthinkable happens and the server computer fails during processing we’ll still have a record of it, and secondarily it we get a incremented order ID that we can send to the card processor. We build the payment request, and start a thread so that the actual processing will happen in the background. Flow of control then returns back to the controller so that we can send a status update to the user. In the mean time the thread is waiting for the payment request to return and if it turns out to be successful it saves the order to the database and updates a flag indicating that we’re finished. At this point the next time the user’s browser comes back to check the order status, the controller will notice that it’s finished and display the appropriate result. While this code is a bit abstracted, the major components are there. One rough point would be how Grails session objects are handled between requests (or across servers if they’re replicated across a cluster). Since the service object is unique to the session it’s possible that it might be serialized too, Tomcat will do this just between normal shutdowns and restarts. That would be an interesting experiment.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.norith.com/2009/02/creating-a-grails-execute-and-wait-interceptor-a-grails-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Pavlovian process for the environment</title>
		<link>http://www.norith.com/2009/02/a-pavlovian-process-for-the-environment/</link>
		<comments>http://www.norith.com/2009/02/a-pavlovian-process-for-the-environment/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 23:28:04 +0000</pubDate>
		<dc:creator><![CDATA[norith]]></dc:creator>
				<category><![CDATA[Environment]]></category>

		<guid isPermaLink="false">http://www.norith.com/2009/02/a-pavlovian-process-for-the-environment/</guid>
		<description><![CDATA[The back story is that my cat has developed a kidney condition which requires daily subcutaneous fluid drips. It didn&#8217;t take long before she started recognizing the signs: &#8220;He&#8217;s about to stick a needle in me and I don&#8217;t like that!&#8221;. The end result is a chase which always results in a stressed cat and [&#8230;]]]></description>
				<content:encoded><![CDATA[<p></p><p>The back story is that my cat has developed a kidney condition which requires daily subcutaneous fluid drips. It didn&#8217;t take long before she started recognizing the signs: &#8220;He&#8217;s about to stick a needle in me and I don&#8217;t like that!&#8221;. The end result is a chase which always results in a stressed cat and a frazzled caregiver. That got me thinking: &#8220;Is this a conditioned reflex on her part?&#8221;</p>
<p>So taking a walk down the anthropomorphic laneway, I outlined the mental steps that my cat might have gone through the first several times I gave her the subcutaneous drip. By associating my preparations to the insertion of the needle each day she may have thought each day in turn:</p>
<ol>
<li>No association</li>
<li>Huh?</li>
<li>Interesting.</li>
<li>I wonder if&#8230;</li>
<li>Could it be?</li>
<li>Anticipation! (or more appropriately: Fear!)</li>
</ol>
<p>Your kilometrage may vary, and you might choose to rename the steps but it&#8217;s likely that a similar pattern will be followed in most conditioning situations.</p>
<p>Of course some may argue that an animal can&#8217;t &#8220;think&#8221; through these steps like a human can; that my cat is exhibiting a purely conditioned relex: an instinctual reaction. My response is that the burden of proof is on those who insist on <a href="http://www.newscientist.com/article/dn13860-six-uniquely-human-traits-now-found-in-animals-.html" target="_blank">creating an artificial separation</a> between humans and the rest of the animal kingdom. If you wish to elevate yourself based on ego, my response will be: &#8220;the id will prevail&#8221;. But any such differentiation is a human concept, a human conceit. And in turn, as we have experienced, an environmental disaster.</p>
<p>By separating ourselves from the environment around us we are no longer capable of understanding the consequences of our actions. Apparently, to a large number of humans, even the idea of an &#8216;environmental system&#8217; that we are a part of is an abomination. We have been bequeathed unlimited control with no responsibility. Not unlike an addiction, this ideological high will have a painful rehabilitation.</p>
<p>For most of human history we&#8217;ve likely been at stage 1 in our ability to understand the association of our actions to their larger environmental outcomes. By the late 1800&#8217;s <a href="http://en.wikipedia.org/wiki/History_of_ecology#The_botanical_geography_and_Alexander_von_Humboldt" target="_blank">there were a few</a> that had moved to stage 2 or stage 3 but they were hidden in a society proud of the concept of &#8216;<a href="http://www.publicbookshelf.com/public_html/The_Great_Republic_By_the_Master_Historians_Vol_IV/americanh_ee.html" target="_blank">progress</a>&#8216;. In the 1960&#8217;s there was a movement by a <a href="http://www.nrdc.org/health/pesticides/hcarson.asp" target="_blank">select group</a> past stage 3 to sometimes stage 6. But the larger part of western society is still stuck at stage 2 despite the last 15 years of educational outreach, and at that I&#8217;m being overly generous.</p>
<p>Politicians, I would suggest, are in general at stage 3; or more likely they&#8217;ve relabelled it &#8220;sounds very expensive&#8221;. Where the word &#8216;expense&#8217; comes to play, our society brings with it a cacophony of  economic  memes that our society has engendered. All of them are over simplified models that ignore the fact that we exist in a context, a context that is  a <a href="http://en.wikipedia.org/wiki/Complex_adaptive_system" target="_blank">complex adaptive system</a>. The collapse of the world&#8217;s economic systems in 2008 reminds us that the idea of getting something for nothing is a childish, perhaps churlish, fantasy.</p>
<p>If a resource is a one time only resource then it cannot be renewed. If it can&#8217;t be renewed then, if we are lucky, it can only be reused. And economic growth can only happen if there remains expansion room in the system. As we start hitting our head on the limits to expansion, and the reactions of the system to our actions then each of us will in turn, move along these Pavlovian conditioning steps. Unfortunately, as my cat experiences daily, the last step can be labelled &#8216;Fear&#8217;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.norith.com/2009/02/a-pavlovian-process-for-the-environment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mac Disk Repair Utilities</title>
		<link>http://www.norith.com/2009/01/mac-disk-repair-utilities/</link>
		<comments>http://www.norith.com/2009/01/mac-disk-repair-utilities/#comments</comments>
		<pubDate>Sun, 04 Jan 2009 20:16:57 +0000</pubDate>
		<dc:creator><![CDATA[norith]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.norith.com/2009/01/mac-disk-repair-utilities/</guid>
		<description><![CDATA[A friend&#8217;s Mac needed some hand holding the other day and I pulled out all of the repair tools that I&#8217;ve collected over the years. The best one of all is another Mac itself because you can put the sick Mac into target disk mode (hold down the &#8216;T&#8217; key while it&#8217;s booting) and you&#8217;ll [&#8230;]]]></description>
				<content:encoded><![CDATA[<p></p><p>A friend&#8217;s Mac needed some hand holding the other day and I pulled out all of the repair tools that I&#8217;ve collected over the years. The best one of all is another Mac itself because you can put the sick Mac into target disk mode (hold down the &#8216;T&#8217; key while it&#8217;s booting) and you&#8217;ll see it&#8217;s disks as FireWire attached disks on the repair Mac. Of course this assumes that both Macs support Firewire &#8212; Apple is changing its mind here with the latest MacBooks.</p>
<p>From the repair Mac you can now run disk utilities against the sick drive without the interminable wait of booting from a CD or DVD disk. And you can also copy over any important files assuming you can get to them (and that for some weird reason they&#8217;re not in your Time Machine backup &#8212; you are using it aren&#8217;t you?).</p>
<p>One of the really neat target disk tricks is to put the repair computer into target disk mode and use it&#8217;s DVD drive to boot from a Mac OS disk or repair disk if the sick Mac&#8217;s DVD drive is bad. This is also handy if the sick Mac has only a CD capable drive and you need to boot from a DVD disk. The normal Mac boot key trick of holding down the &#8216;C&#8217; key to boot from CD won&#8217;t work in this case though, use the boot disk chooser interface instead by holding down the &#8216;Opt&#8217; key while the Mac is booting. A menu of all attached system disks will appear allowing you to choose a Firewire attached DVD drive and proceed (by clicking on the right arrow button in the screen.)</p>
<p>So then we come to volume repair utilities themselves. What&#8217;s the best option? I&#8217;ve had mixed results with <a href="http://www.micromat.com/index.php?option=com_content&amp;task=view&amp;id=31&amp;Itemid=48">TechTool Pro</a> though it has many handy diagnostic features and sometimes will save the day. <a href="http://www.alsoft.com/DiskWarrior/index.html">Diskwarrior</a> is my fave as it doesn&#8217;t attempt to simply correct the damaged file system tables but instead replace them with  a rebuilt one. It walks the file system and builds a new table structure from scratch. Apple&#8217;s own Disk Utility is sort of a &#8216;first try&#8217; tool. I dont&#8217; expect it to fix the problem but it&#8217;s aways a good choice to start with.</p>
<p>Fixing disks is something that you don&#8217;t want to be doing and you don&#8217;t pay attention to until you need to. My collection of tools had grown old with outdated boot disks and warning screens about not being tested with this version of the OS.&nbsp; Updating them is frustration itself. Neither Diskwarrior or TechTool Pro boot disk updates can be downloaded, you have to pay for a physical disk to be shipped to you. Not a likely solution in an emergency. After Apple&#8217;s Disk Utility refused to help fix the damaged disk I went looking for an alternative. <a href="http://www.prosofteng.com/products/drive_genius.php">Drive Genius</a> seemed to fit the bill and you can download a DVD boot image and burn it immediately. Imagine that! The internet allows you download large files! Hopefully the other guys figure out that times have changed too.</p>
<p>But while Drive Genius seemed to be a saviour it soon proved itself an also-ran. It gives the same warning messages, the same error messages and the fails in the same places as Apple&#8217;s own Disk Utilitiy. So my running assumption is that it <em>is </em>the same. They&#8217;ve simply wrapped Apple&#8217;s disk repair with their own GUI. If you need a repair boot disk in a hurry and don&#8217;t have a Mac OS disk with Disk Utility handy then it&#8217;s a good choice, otherwise look carefully at the additional features that it has (which I have not tested) before deciding whether it&#8217;s worthwhile.</p>
<p>Hopefully Apple will move to <a href="http://en.wikipedia.org/wiki/ZFS">ZFS</a> soon and we can enjoy having some of the dynamic volumes, flexible RAID, and <a href="http://blogs.sun.com/jag/entry/zfs_boot_saves_the_day">filesystem recovery snapshot</a> features that other OSs are starting to enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.norith.com/2009/01/mac-disk-repair-utilities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bell&#8217;s customer service becomes self evident</title>
		<link>http://www.norith.com/2008/09/bells-customer-service-becomes-self-evident/</link>
		<comments>http://www.norith.com/2008/09/bells-customer-service-becomes-self-evident/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 07:32:38 +0000</pubDate>
		<dc:creator><![CDATA[norith]]></dc:creator>
				<category><![CDATA[CRM]]></category>
		<category><![CDATA[Marketing]]></category>

		<guid isPermaLink="false">http://www.norith.com/2008/09/bells-customer-service-becomes-self-evident/</guid>
		<description><![CDATA[I just received an email notification of my Bell e-bill and noticed that its branding was still from the previous version. Bell has recently undergone a total rebranding; at a minimum as a desperate attempt to convince their market that they&#8217;re not the same company that has only been capable of losing money for the [&#8230;]]]></description>
				<content:encoded><![CDATA[<p></p><p>I just received an email notification of my Bell e-bill and noticed that its branding was still from the previous version.</p>
<p><a href="http://www.norith.com/wp-content/uploads/2008/09/bell_ebill.jpg"><img src="http://www.norith.com/wp-content/uploads/2008/09/bell_ebill-300x68.jpg" alt="Bell ebill" title="bell_ebill" width="300" height="68" class="alignnone size-medium wp-image-17" /></a></p>
<p>Bell has recently undergone a total rebranding; at a minimum as a desperate attempt to convince their market that they&#8217;re not the same company that has only been capable of losing money for the last 10 years. Perhaps employing talking rodents has its downside after all.</p>
<p>Their new branding is a much needed improvement though their current ad campaign of &#8220;er&#8221; is meaningless but quirky.</p>
<p>Of course being the good customer that I am, I took the e-bill at it&#8217;s face value and decided to give it more than the 1.3 seconds I usually would. What could Bell have have in store for me that would make my life bett<strong><em>er</em></strong>?</p>
<p>Well, apparently nothing. Almost none of the links on the e-bill notification actually work because they take you to pages on their old site from before the rebranding. Pages that don&#8217;t exist anymore.</p>
<p><em><strong>Er</strong></em>ror.</p>
<p>I&#8217;m glad that their monthly email communication with me, one that I might actually have a reason to read has value to them. Perhaps marketing really is all about undermining customer touch points.</p>
<p>From their error landing page, I navigated around a bit to see if I could find what I was actually looking for. I never did, but I stumbled upon their new <a href="http://www.socializer.ca" target="_blank">Samsung Instinct micro-site</a>.</p>
<p>Can this phone compete with the iPhone? Let&#8217;s see what Bell has to say about that. Since I&#8217;m interested in mobile email, I went to that section and noticed that Bell actually does have something in-store for me:</p>
<p><a href="http://www.norith.com/wp-content/uploads/2008/09/Bell_This_year-_be_the-ultimate_socializer.jpg"><img src="http://www.norith.com/wp-content/uploads/2008/09/Bell_This_year-_be_the-ultimate_socializer-300x136.jpg" alt="" title="Bell_This_year _be_the ultimate_socializer" width="300" height="136" class="alignnone size-medium wp-image-18" /></a></p>
<p>More foreshadowing seems unnecessary. Thrash<em><strong>er</strong></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.norith.com/2008/09/bells-customer-service-becomes-self-evident/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPod video out</title>
		<link>http://www.norith.com/2008/07/pod-video-out/</link>
		<comments>http://www.norith.com/2008/07/pod-video-out/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 18:54:19 +0000</pubDate>
		<dc:creator><![CDATA[norith]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[iPod]]></category>

		<guid isPermaLink="false">http://www.norith.com/?p=12</guid>
		<description><![CDATA[If you&#8217;re looking for a video out accessory for a recent iPod (nano 3rd generation, iTouch, iPhone) then there&#8217;s really only one cable vendor: Apple&#8217;s composite or component video out cables. Previous video capable iPods allowed you to use a 1/8th&#8221; adapter for video out but this option has been removed. Now you must use [&#8230;]]]></description>
				<content:encoded><![CDATA[<p></p><p>If you&#8217;re looking for a video out accessory for a recent iPod (nano 3rd generation, iTouch, iPhone) then there&#8217;s really only one cable vendor: Apple&#8217;s <a class="offsite-link-inline" href="http://store.apple.com/1-800-MY-APPLE/WebObjects/AppleStore?productLearnMore=MB129LL/A" target="_blank">composite</a> or <a class="offsite-link-inline" href="http://store.apple.com/1-800-MY-APPLE/WebObjects/AppleStore?productLearnMore=MB128LL/A" target="_blank">component</a> video out cables.</p>
<p>Previous video capable iPods allowed you to use a <a class="offsite-link-inline" href="http://store.apple.com/1-800-MY-APPLE/WebObjects/AppleStore?productLearnMore=M9765G/B" target="_blank">1/8th&#8221; adapter</a> for video out but this option has been removed. Now you must use the dock connector instead. The reason is that the iPods now require a video &#8216;authorization&#8217; chip to be embedded in the accessory (cable or dock). It doesn&#8217;t seem clear whether this is a new DRM requirement  or a simple accessory tax on Apple&#8217;s part.</p>
<p>While the 3rd party product, <a class="offsite-link-inline" href="http://www.monstercable.com/productdisplay.asp?pin=3897" target="_blank">Monster iTV Link for iPod</a>, uses the dock adapter it doesn&#8217;t embed the authorization chip so can&#8217;t display video on recent iPods.</p>
<p>One benefit to the Apple video cables is that they include an AC/USB power adapter so you don&#8217;t need to buy a separate charger. Ironically, this makes it one of the first accessories you should buy with a new iPod rather than one of the last.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.norith.com/2008/07/pod-video-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
