<?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>The Brian Olore Story</title>
	<atom:link href="http://brian.olore.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://brian.olore.net</link>
	<description>Less of a story, more of a brain dump</description>
	<lastBuildDate>Fri, 05 Mar 2010 03:59:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Make it faster</title>
		<link>http://brian.olore.net/wp/2010/03/make-it-faster/</link>
		<comments>http://brian.olore.net/wp/2010/03/make-it-faster/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 03:02:03 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[timeout]]></category>

		<guid isPermaLink="false">http://brian.olore.net/?p=119</guid>
		<description><![CDATA[This past week or so I&#8217;ve been concentrating on improving the performance of our system. Thankfully this isn&#8217;t a solo task and my teammate really knows what he&#8217;s doing. Luckily I was able to contribute based on my past experiences with things like cache settings in Apache, ulimit settings and other tweaks here and there.
We&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>This past week or so I&#8217;ve been concentrating on improving the performance of our system. Thankfully this isn&#8217;t a solo task and my teammate really knows what he&#8217;s doing. Luckily I was able to contribute based on my past experiences with things like cache settings in Apache, ulimit settings and other tweaks here and there.<img class="alignright size-medium wp-image-123" title="Pole Position" src="http://brian.olore.net/wp/wp-content/uploads/2010/03/pole-position-300x225.jpg" alt="Make it fast like Pole Postion fast!" width="300" height="225" /></p>
<p>We&#8217;ve uncovered a slew of things to work on. The first obvious place was to have the static content served by Apache rather than the mongrels. This has been on the todo-list for a long time, but has always fallen to the wayside. We knocked that off and looked towards the other items that were slowing us down. That&#8217;s when I uncovered some TCPSocket weirdness within memcache-client 1.7.4 that comes with activesupport 2.3.5.</p>
<p>During some tests we noticed a severe lag which we narrowed down to the fact that we were pointing to a list of memcached servers that contained one that didn&#8217;t exist. Turns out that when the memcached hostname resolves, but is not pingable, memcache-client 1.7.4 waits <strong>3 seconds</strong> before responding with an error message (in addition it doesn&#8217;t mark the server as &#8220;down&#8221;, which I think is also a bug). This 3 second delay happens on RHEL 4, and in some brief tests on Ubuntu 10.9, it was even worse, taking over 30 seconds to respond. My guess is that there is some OS level setting that affects this, but I have yet to locate it. The fun part however, is that this problem does not exist in our old environment where we run acivesupport 2.1.2 which uses memcache-client 1.5.0.</p>
<p>Turns out, in 1.5.0, <a href="http://github.com/fiveruns/memcache-client/blob/master/lib/memcache.rb#L767" target="_blank">the memcache-client uses a 250ms timeout when calling TCPSocket.new</a>. Something that was lost on the way to 1.7.4. Some initial tests of simply adding this CONNECT_TIMEOUT back in have been promising. It&#8217;s currently not throwing the right exception or marking the server as &#8220;down&#8221;, but once I do that, I will see about posting the source somewhere.</p>
]]></content:encoded>
			<wfw:commentRss>http://brian.olore.net/wp/2010/03/make-it-faster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Snow days &amp; pair programming</title>
		<link>http://brian.olore.net/wp/2010/02/snow-days-par-programming/</link>
		<comments>http://brian.olore.net/wp/2010/02/snow-days-par-programming/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 02:58:37 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[pair programming]]></category>
		<category><![CDATA[snow]]></category>
		<category><![CDATA[team]]></category>

		<guid isPermaLink="false">http://brian.olore.net/?p=115</guid>
		<description><![CDATA[One of the things I really like about my new job is pair programming. On Tuesday of this week, there was a bit of a panic as we tried to figure out how we were going to get work done with everyone in different locations due to the impending snow storm on Wednesday. To me, [...]]]></description>
			<content:encoded><![CDATA[<p>One of the things <a href="http://brian.olore.net/wp/2010/02/worst-parts-of-my-new-job/">I really like about my new job is pair programming</a>. On Tuesday of this week, there was a bit of a panic as we tried to figure out how we were going to get work done with everyone in different locations due to the impending snow storm on Wednesday. To me, it was almost comical. I mean, I had been working from home for the last 6 or so years. I never had someone looking over my shoulder as I wrote code. One day wasn&#8217;t going to be a big deal&#8230; was it? Given the way this team has worked for the last few years, there really was no plan for how to operate when we aren&#8217;t all in the same room.</p>
<p>There was talk of iChat and sharing screens and some other not-so-simple-to-setup environment stuff, but in the end we coordinated what we were working on via chat and agreed we&#8217;d pair up on Thursday to review changes/updates we made or wanted to make. Even though I ended up doing the same on Thursday (no plow on my street all day, I couldn&#8217;t leave the house!), I was able to be productive and reviewed my work today with some team members.</p>
<p>It was weird working from home again. It was definitely different &#8211; I had to use my home laptop and my office space was a bit of a wreck. It took a little while to get totally setup with the VPN etc, but I ended up cranking out some good work.</p>
<p>My final conclusion is that I really like pairing, and working in an open space. Maybe I have great teammates, maybe I&#8217;m still in the honeymoon phase of pair programming, who knows, but for now, I&#8217;m loving it.</p>
]]></content:encoded>
			<wfw:commentRss>http://brian.olore.net/wp/2010/02/snow-days-par-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Worst parts of my new job</title>
		<link>http://brian.olore.net/wp/2010/02/worst-parts-of-my-new-job/</link>
		<comments>http://brian.olore.net/wp/2010/02/worst-parts-of-my-new-job/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 14:56:25 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://brian.olore.net/?p=106</guid>
		<description><![CDATA[Worst parts of my new job:

No more personal bathroom
Coordinating my attire
Not being able to pick through leftovers for lunch
I can&#8217;t (easily) hit the gym at say 11am.
No laptop, no cell phone
No one cared if I had bad breath when working from home!

Best parts of my new job:

The people &#8211; incredibly smart, and unbelievable willing to [...]]]></description>
			<content:encoded><![CDATA[<h2>Worst parts of my new job:</h2>
<ol>
<li>No more personal bathroom</li>
<li>Coordinating my attire</li>
<li>Not being able to pick through leftovers for lunch</li>
<li>I can&#8217;t (easily) hit the gym at say 11am.</li>
<li>No laptop, no cell phone</li>
<li>No one cared if I had bad breath when working from home!</li>
</ol>
<h2>Best parts of my new job:</h2>
<ol>
<li>The people &#8211; incredibly smart, and unbelievable willing to take time out of their day to explain how something works or why something was done a certain way. The openness is infectious.</li>
<li>Pair programming with really smart people, like <a href="http://dablog.rubypal.com/">David Black</a></li>
<li>No email. OK not ZERO email, but with everyone working in the same place, email is rarely used.</li>
<li>No conference calls. Literally none. I had one on my first day which was a &#8220;Welcome to Boeing&#8221; deal, but zero since.</li>
<li>Ruby &amp; Rails &#8211; No more Java, no more WebSphere Portal <img src='http://brian.olore.net/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>No laptop, no cell phone. My day is now done when I walk out the door. I can VPN in to check my mail, but see #3</li>
</ol>
<p>It comes as no surprise to me that the toughest things am dealing with so far are all related to no longer working from home. I&#8217;m not completely over the fact that I now get up at 6 &amp; get into the office at 7:30, but I think I am getting used to it. I feel like an old man sometimes going to bed before 10, but I could be doing worse.</p>
<p>Of course the title of this post was written to make you want to read it. I&#8217;m really enjoying the new job but need gimmicks to get people to come read my stuff  <img src='http://brian.olore.net/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://brian.olore.net/wp/2010/02/worst-parts-of-my-new-job/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>New year, new job</title>
		<link>http://brian.olore.net/wp/2010/01/new-year-new-job/</link>
		<comments>http://brian.olore.net/wp/2010/01/new-year-new-job/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 03:30:49 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[boeing]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[skarven]]></category>

		<guid isPermaLink="false">http://brian.olore.net/?p=98</guid>
		<description><![CDATA[A few weeks ago, after 10 fun years at IBM I left and took a new job with Skarven Enterprises, a Boeing Company. I call my years at IBM &#8220;fun&#8221;, because they were &#8211; I really did enjoy my time there. Tons of great projects, always playing with new technologies, building applications that targeted all [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://skarven.net"><img class="alignright" style="padding: 5px; background-color: black;" src="http://skarven.net/images/skarven_boeing_Logo_white.gif" alt="" width="296" height="80" /></a>A few weeks ago, after 10 fun years at IBM I left and took a new job with <a href="http://skarven.net">Skarven Enterprises, a Boeing Company</a>. I call my years at IBM &#8220;fun&#8221;, because they were &#8211; I really did enjoy my time there. Tons of great projects, always playing with new technologies, building applications that targeted all 300,000 IBMers, and most of all, making so many good friends along the way.</p>
<p>At IBM I did a lot of development, in what I now realize was in a non-traditional environment, for better or worse at times. Skaven is hardcore into Agile. It&#8217;s actually a fairly thin layer on top of what I was most doing at IBM (other people are worrying more about the semantics of Agile right now), but it adds enough structure &amp; reporting to make me feel like management is aware of what&#8217;s going on. It&#8217;s kinda cool to be learning about Agile at the same time as a Sprint is already in progress &#8211; it&#8217;s a great way to pick up on things quickly.</p>
<p>In my new position I&#8217;m going to be doing Ruby on Rails development, which means I have to actually learn it! I&#8217;m currently going through lotsa of learning: the system, the development environment, Agile, scrum&#8230; and the roads to get there! I&#8217;m really psyched, and I can&#8217;t wait to contribute some real work. That should be coming in the next few weeks after I &#8220;pass the Qualifications Board&#8221;.</p>
<p>I&#8217;m going to start trying to blog more as I figure out exactly what I&#8217;m doing  <img src='http://brian.olore.net/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://brian.olore.net/wp/2010/01/new-year-new-job/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Game console idea</title>
		<link>http://brian.olore.net/wp/2009/08/game-console-idea/</link>
		<comments>http://brian.olore.net/wp/2009/08/game-console-idea/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 00:51:38 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[xbox360]]></category>

		<guid isPermaLink="false">http://brian.olore.net/?p=92</guid>
		<description><![CDATA[I love being able to install games to by Xbox 360. It makes playing much quieter &#38; stuff seems to load faster. Unfortunately, like PC games I&#8217;ve played in the past, playing a game from the hard drive requires the disc to be in the player. Makes sense, as it proves that I didn&#8217;t copy [...]]]></description>
			<content:encoded><![CDATA[<p>I love being able to install games to by Xbox 360. It makes playing much quieter &amp; stuff seems to load faster. Unfortunately, like PC games I&#8217;ve played in the past, playing a game from the hard drive requires the disc to be in the player. Makes sense, as it proves that I didn&#8217;t copy it from my buddy &amp; pass it around.</p>
<p>Here&#8217;s the thing&#8230;. <strong>it sucks!</strong></p>
<p>I&#8217;m no more lazy than the next person, but come on! I mean, I can turn the console on &amp; off with the wireless remote. I change the turner on my TV with my remote &amp; I&#8217;m off &amp; playing .. as long as the game is in the console.</p>
<p>So here&#8217;s what we do:  I usually keep my games close by my console anyway (for easy access &#8211; cuz they <strong>need</strong> to be in to play) so why not install some kind of RFID or wireless thing-a-ma-bob that is part of the game case. The console can just check if it&#8217;s in range &#8211; and preseto &#8211; I don&#8217;t have to get off my lazy butt to play!</p>
]]></content:encoded>
			<wfw:commentRss>http://brian.olore.net/wp/2009/08/game-console-idea/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Proper timeout handling with Apache HttpClient</title>
		<link>http://brian.olore.net/wp/2009/08/apache-httpclient-timeout/</link>
		<comments>http://brian.olore.net/wp/2009/08/apache-httpclient-timeout/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 14:31:31 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[httpclient]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[timeouts]]></category>

		<guid isPermaLink="false">http://brian.olore.net/?p=86</guid>
		<description><![CDATA[I&#8217;ve seen some really bad things happen when developers don&#8217;t code in proper timeout handling. Occasionally I&#8217;ve been asked what the best way to handle timeouts is &#8211; so I thought I&#8217;d share my take on it:



MultiThreadedHttpConnectionManager connectionManager =  new MultiThreadedHttpConnectionManager&#40;&#41;;


HttpConnectionManagerParams params = connectionManager.getParams&#40;&#41;;


&#160;


params.setConnectionTimeout&#40;connectiontimeout&#41;; //set connection timeout (how long it takes to connect to remote [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve seen some really bad things happen when developers don&#8217;t code in proper timeout handling. Occasionally I&#8217;ve been asked what the best way to handle timeouts is &#8211; so I thought I&#8217;d share my take on it:</p>
<div class="dean_ch" style="overflow: scroll;white-space: nowrap;">
<ol>
<li class="li1">
<div class="de1">MultiThreadedHttpConnectionManager connectionManager =  <span class="kw2">new</span> MultiThreadedHttpConnectionManager<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">HttpConnectionManagerParams params = connectionManager.<span class="me1">getParams</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">params.<span class="me1">setConnectionTimeout</span><span class="br0">&#40;</span>connectiontimeout<span class="br0">&#41;</span>; <span class="co1">//set connection timeout (how long it takes to connect to remote host)</span></div>
</li>
<li class="li2">
<div class="de2">params.<span class="me1">setSoTimeout</span><span class="br0">&#40;</span>sotimeout<span class="br0">&#41;</span>; <span class="co1">//set socket timeout (how long it takes to retrieve data from remote host)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">HttpMethodBase baseMethod = <span class="kw2">null</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">try</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; HttpClient httpClient = <span class="kw2">new</span> HttpClient<span class="br0">&#40;</span>connectionManager<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; httpClient.<span class="me1">getParams</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">setParameter</span><span class="br0">&#40;</span><span class="st0">&quot;http.connection-manager.timeout&quot;</span>, poolTimeout<span class="br0">&#41;</span>; <span class="co1">//set timeout on how long we&#8217;ll wait for a connection from the pool</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; baseMethod = <span class="kw2">new</span> GetMethod<span class="br0">&#40;</span>&#8230;<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw4">int</span> statusCode = httpClient.<span class="me1">executeMethod</span><span class="br0">&#40;</span>&#8230;<span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &#8230;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">catch</span> <span class="br0">&#40;</span>ConnectTimeoutException cte <span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1">//Took too long to connect to remote host</span></div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">catch</span> <span class="br0">&#40;</span>SocketTimeoutException ste<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1">//Remote host didn&#8217;t respond in time</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">catch</span> <span class="br0">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AException+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Exception</span></a> se<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="co1">//Some other error occurred</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">finally</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>baseMethod != <span class="kw2">null</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; baseMethod.<span class="me1">releaseConnection</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://brian.olore.net/wp/2009/08/apache-httpclient-timeout/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Subversion keeps changing permissions of my files [FIX]</title>
		<link>http://brian.olore.net/wp/2009/08/svn-permissions-fix/</link>
		<comments>http://brian.olore.net/wp/2009/08/svn-permissions-fix/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 18:06:03 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[permissions]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://brian.olore.net/?p=78</guid>
		<description><![CDATA[On my Unix machine whenever I did an &#8220;svn update&#8221; and files were actually updated, the permissions would change, rendering them inaccessible to the httpd process, therefore 403 Forbidden errors in the browser.
After much searching that yielded a lot of results about storing executable flags in SVN using propset. This didn&#8217;t help as I didn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>On my Unix machine whenever I did an &#8220;svn update&#8221; and files were actually updated, the permissions would change, rendering them inaccessible to the httpd process, therefore 403 Forbidden errors in the browser.</p>
<p>After much searching that yielded a lot of results about storing executable flags in SVN using propset. This didn&#8217;t help as I didn&#8217;t want it to be executable, just world readable. Turns out the problem was in my .profile, my umask setting was 077. Changing it to 012 solved it for me. Note: 012 makes files you create group writable.</p>
<p>Snippet from my .profile</p>
<pre>#umask 077
umask 012
export SVN_SSH="ssh -l olore"
export EDITOR="/usr/bin/vi"</pre>
<p>Read more about <a href="http://en.wikipedia.org/wiki/Umask">umask on Wikipedia</a></p>
]]></content:encoded>
			<wfw:commentRss>http://brian.olore.net/wp/2009/08/svn-permissions-fix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dojo 1.1 and 1.3 on the same page</title>
		<link>http://brian.olore.net/wp/2009/06/multiple-versions-of-dojo/</link>
		<comments>http://brian.olore.net/wp/2009/06/multiple-versions-of-dojo/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 16:24:33 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[dojo]]></category>

		<guid isPermaLink="false">http://brian.olore.net/?p=73</guid>
		<description><![CDATA[Today I dug into the deep dark world of running multiple versions of Dojo on the same page. Turns out, it&#8217;s not all that dark! Working with some pages as my guide I was able to get 1.1 &#38; 1.3 working in the same page.
This is a step towards running multiple versions withing WebSphere Portal, [...]]]></description>
			<content:encoded><![CDATA[<p>Today I dug into the deep dark world of running multiple versions of <a href="http://www.dojotoolkit.org">Dojo</a> on the same page. Turns out, it&#8217;s not all that dark! Working with <a href="http://www.dojotoolkit.org/book/book-dojo/part-3-javascript-programming-dojo-and-dijit/multiple-versions-dojo-page">some</a> <a href="http://neonstalwart.blogspot.com/2008/11/multiple-versions-of-dojo.html">pages</a> as my guide I was able to get 1.1 &amp; 1.3 working in the same page.</p>
<p>This is a step towards running multiple versions withing WebSphere Portal, which I&#8217;ll likely be dealing with in the near future.</p>
<div class="dean_ch" style="overflow: scroll;white-space: nowrap;">
<ol>
<li class="li1">
<div class="de1">&lt;html&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;head&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;title&gt;Dojo <span class="nu0">1.1</span> and Dojo <span class="nu0">1.3</span> together on the same page &lt;/title&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&lt;!&#8211; Bring in Dojo <span class="nu0">1.1</span>.<span class="me1">x</span> &#8211;&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;script type=<span class="st0">&quot;text/javascript&quot;</span>&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; djConfig = <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; parseOnLoad: <span class="kw2">true</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; baseUrl: <span class="st0">&quot;dojo11/dojo/&quot;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&lt;/script&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;script type=<span class="st0">&quot;text/javascript&quot;</span> src=<span class="st0">&quot;dojo11/dojo/dojo.js&quot;</span>&gt;&lt;/script&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;!&#8211;</div>
</li>
<li class="li2">
<div class="de2">redefine djConfig <span class="br0">&#40;</span>allowed in <span class="nu0">1.1</span>+<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">create namespaced dojo, dijit &amp;amp; dojox</div>
</li>
<li class="li1">
<div class="de1">&#8211;&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;script type=<span class="st0">&quot;text/javascript&quot;</span>&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; djConfig = <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; isDebug: <span class="kw2">true</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; baseRelativePath: <span class="st0">&quot;dojo13/dojo&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; scopeMap: <span class="br0">&#91;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span><span class="st0">&quot;dojo&quot;</span>, <span class="st0">&quot;dojo13&quot;</span><span class="br0">&#93;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span><span class="st0">&quot;dijit&quot;</span>, <span class="st0">&quot;dijit13&quot;</span><span class="br0">&#93;</span>,</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span><span class="st0">&quot;dojox&quot;</span>, <span class="st0">&quot;dojox13&quot;</span><span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&lt;/script&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;script type=<span class="st0">&quot;text/javascript&quot;</span> src=<span class="st0">&quot;dojo13/dojo/dojo.js&quot;</span>&gt;&lt;/script&gt;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;!&#8211; test it &#8211;&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;script type=<span class="st0">&quot;text/javascript&quot;</span>&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; dojo.<span class="me1">addOnLoad</span><span class="br0">&#40;</span>function<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; alert<span class="br0">&#40;</span>dojo.<span class="me1">version</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; dojo13.<span class="me1">addOnLoad</span><span class="br0">&#40;</span>function<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; alert<span class="br0">&#40;</span>dojo13.<span class="me1">version</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&lt;/script&gt;</div>
</li>
<li class="li2">
<div class="de2">&lt;/head&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;body&gt;</div>
</li>
<li class="li1">
<div class="de1">Dojo <span class="nu0">1.1</span> and Dojo <span class="nu0">1.3</span> together on the same page</div>
</li>
<li class="li1">
<div class="de1">&lt;/body&gt;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;/html&gt;</div>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://brian.olore.net/wp/2009/06/multiple-versions-of-dojo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Websphere Portal theme navigation context menus</title>
		<link>http://brian.olore.net/wp/2009/05/websphere-portal-theme-navigation-context-menus/</link>
		<comments>http://brian.olore.net/wp/2009/05/websphere-portal-theme-navigation-context-menus/#comments</comments>
		<pubDate>Fri, 01 May 2009 15:06:55 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[navigation]]></category>
		<category><![CDATA[portal]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[websphere]]></category>

		<guid isPermaLink="false">http://brian.olore.net/?p=51</guid>
		<description><![CDATA[I spend a lot of my day working with WebSphere Portal server, and as of late, spending more time (than I&#8217;d like!) with themes &#38; skins. I am currently working with Portal v6.1, but the information below should be useful for previous versions as well.
Our portal is pretty open, we want people to come in [...]]]></description>
			<content:encoded><![CDATA[<p>I spend a lot of my day working with WebSphere Portal server, and as of late, spending more time (than I&#8217;d like!) with themes &amp; skins. I am currently working with Portal v6.1, but the information below should be useful for previous versions as well.<img src="http://www-01.ibm.com/software/main/img/com/ws-mark-title-235x50.gif" alt="WebSphere software" width="235" height="50" align="right" /></p>
<p>Our portal is pretty open, we want people to come in &amp; customize it as much as they&#8217;d like. One feature that we allow is for the user to come in &amp; create new pages. We are running our own <a href="http://publib.boulder.ibm.com/infocenter/wpdoc/v6r1m0/topic/com.ibm.wp.ent.doc/dev/dgn_thempolicy.html">theme policy</a> which is a copy of the <a href="http://publib.boulder.ibm.com/infocenter/wpdoc/v6r1m0/topic/com.ibm.wp.ent.doc/dev/dgn_thempolicy.html?resultof=%22%64%6f%75%62%6c%65%74%6f%70%6e%61%76%22%20">DoubleTopNav</a> policy. Our theme displays these 2 levels of navigation at the top, and we have no side navigation.</p>
<p>The hurdle I ran into was &#8211; how do I prevent the &#8220;New Page&#8221; option from appearing in the portlet menu for pages in the second level of navigation? The way the out-of-the-box Portal theme works is that when you create a new page, it is created as a child of the page that you are on. This works fine for top level pages, but there no policy or rule that can be set to prevent the &#8220;New Page&#8221; option from appearing in the portlet menu for second level pages.</p>
<p>The solution, proposed by a member of the Portal team was to create an alternate<strong> pageContextMenu.jsp</strong> which simply didn&#8217;t have a &#8220;New Page&#8221; option. Since the call the that JSP is done via AJAX, prior to the call we can determine what navigation level we are on and call the appropriate version of <strong>pageContextMenu.jsp</strong>.</p>
<p>Piece of cake, right? Eh .. maybe not cake, but not all that difficult. After creating the new <strong>pageContextMenu2.jsp</strong> &amp; removing the &#8220;New Page&#8221; option, the next place to go is <strong>head_inlineJS.jspf</strong>. Below is the code I have added/modified to the <strong>head_inlineJS.jspf</strong>.</p>
<div class="dean_ch" style="overflow: scroll;white-space: nowrap;">
<ol>
<li class="li1">
<div class="de1">&lt;%&#8211; START &#8211; see <span class="kw1">if</span> we are in 2nd level of navigation &#8211;%&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;%</div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AString+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a> pageContextMenuJSP = <span class="st0">&quot;pageContextMenu&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">%&gt;</div>
</li>
<li class="li2">
<div class="de2">&lt;portal-navigation:navigation startLevel=<span class="st0">&quot;2&quot;</span> stopLevel=<span class="st0">&quot;3&quot;</span>&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;portal-navigation:navigationLoop&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;portal-logic:<span class="kw1">if</span> nodeInSelectionPath=<span class="st0">&quot;yes&quot;</span>&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;%</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="co1">//it&#8217;s in selection path &amp;amp; it&#8217;s selected (this is the page we are on!</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>wpsSelectionModel.<span class="me1">isNodeSelected</span><span class="br0">&#40;</span>wpsNavNode<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> level = wpsNavLevel.<span class="me1">intValue</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>level == <span class="nu0">2</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pageContextMenuJSP = <span class="st0">&quot;pageContextMenu2&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; %&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;/portal-logic:if&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;/portal-navigation:navigationLoop&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;/portal-navigation:navigation&gt;</div>
</li>
<li class="li2">
<div class="de2">&lt;%&#8211; END &#8211; see <span class="kw1">if</span> we are in 2nd level of navigation &#8211;%&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;%&#8211; <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AContext+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Context</span></a> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AMenu+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Menu</span></a> Initialization &#8211;%&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;c-rt:set var=<span class="st0">&quot;pageNoActionsText&quot;</span> &gt;&lt;portal-fmt:text bundle=<span class="st0">&#8216;nls.engine&#8217;</span> key=<span class="st0">&#8216;info.emptymenu&#8217;</span> /&gt;&lt;/c-rt:set&gt;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#40;</span>function<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">var pageMenuURL = <span class="st0">&#8216;&lt;portal-navigation:url themeTemplate=&quot;&lt;%=pageContextMenuJSP%&gt;&quot; /&gt;&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&lt;%&#8211; OLD var pageMenuURL = <span class="st0">&#8216;&lt;portal-navigation:url themeTemplate=&quot;pageContextMenu&quot; /&gt;&#8217;</span>; &#8211;%&gt;</div>
</li>
</ol>
</div>
<p>Now that you&#8217;ve got that taken care of, <strong>touch head.jspf &amp;&amp; touch Default.jsp</strong>, reload your page and you should no longer see &#8220;New Page&#8221; as an option in the page drop down for pages in the 2nd level of your navigation.</p>
<p>That worked and was a thing of beauty .. well, almost. I wasn&#8217;t a big fan of looping through the entire navigation model, but I didn&#8217;t know any other way. I ran the code past my colleague from the Portal team and he pointed me at the <strong>navigationSelectionModel</strong>. The code below is smaller &amp; faster. Best of all &#8211; it works <img src='http://brian.olore.net/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="dean_ch" style="overflow: scroll;white-space: nowrap;">
<ol>
<li class="li1">
<div class="de1">&lt;%&#8211; <span class="nu0">2009.05</span><span class="nu0">.04</span> OLORE &#8211; see <span class="kw1">if</span> we are in 2nd level of navigation &#8211;%&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;%</div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AString+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a> pageContextMenuJSP = <span class="st0">&quot;pageContextMenu&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="kw4">int</span> level_count = <span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">for</span> <span class="br0">&#40;</span>java.<span class="me1">util</span>.<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AIterator+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Iterator</span></a> i = nsm.<span class="me1">iterator</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; i.<span class="me1">hasNext</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; NavigationNode node = <span class="br0">&#40;</span>NavigationNode<span class="br0">&#41;</span> i.<span class="me1">next</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; level_count++;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="kw1">if</span> <span class="br0">&#40;</span>level_count &gt;= <span class="nu0">4</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">// level 4 == our 2nd level of top navigation (shouldn&#8217;t ever be &gt;)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; pageContextMenuJSP = <span class="st0">&quot;pageContextMenu2&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">%&gt;</div>
</li>
<li class="li2">
<div class="de2">&lt;%&#8211; <span class="nu0">2009.05</span><span class="nu0">.04</span> OLORE &#8211; see <span class="kw1">if</span> we are in 2nd level of navigation &#8211;%&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;%&#8211; <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AContext+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Context</span></a> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AMenu+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Menu</span></a> Initialization &#8211;%&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;c-rt:set var=<span class="st0">&quot;pageNoActionsText&quot;</span> &gt;&lt;portal-fmt:text bundle=<span class="st0">&#8216;nls.engine&#8217;</span> key=<span class="st0">&#8216;info.emptymenu&#8217;</span> /&gt;&lt;/c-rt:set&gt;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#40;</span>function<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;%&#8211; <span class="nu0">2009.05</span><span class="nu0">.01</span> OLORE &#8211; use pageContextMenu2 <span class="kw1">if</span> we are in 2nd level nav &#8211;%&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; var pageMenuURL = <span class="st0">&#8216;&lt;portal-navigation:url themeTemplate=&quot;&lt;%=pageContextMenuJSP%&gt;&quot; /&gt;&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;%&#8211; <span class="nu0">2009.05</span><span class="nu0">.01</span> OLORE &#8211; use pageContextMenu2 <span class="kw1">if</span> we are in 2nd level nav &#8211;%&gt;</div>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://brian.olore.net/wp/2009/05/websphere-portal-theme-navigation-context-menus/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Launched new Twitter accounts</title>
		<link>http://brian.olore.net/wp/2009/04/launched-new-twitter-accounts/</link>
		<comments>http://brian.olore.net/wp/2009/04/launched-new-twitter-accounts/#comments</comments>
		<pubDate>Fri, 01 May 2009 00:52:02 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[play]]></category>
		<category><![CDATA[alaska]]></category>
		<category><![CDATA[dreamhost]]></category>
		<category><![CDATA[retweet]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[twitterbot]]></category>

		<guid isPermaLink="false">http://brian.olore.net/2009/04/launched-new-twitter-accounts/</guid>
		<description><![CDATA[I was inspired by this story in the Anchorage Daily News about a woman that started @AKBadDrivers &#8220;who started describing bad drivers on her personal Twitter feed from her spot in the passenger seat as she commuted in from Wasilla.&#8221; The simple brilliance of this usage of Twitter really struck me.
With tweets like

silver jeep, FLB [...]]]></description>
			<content:encoded><![CDATA[<p>I was inspired by <a href="http://www.adn.com/news/alaska/anchorage/story/774084.html">this story in the Anchorage Daily News</a> about a woman that started <a href="http://twitter.com/AKBadDrivers">@AKBadDrivers</a> &#8220;who started describing bad drivers on her personal Twitter feed from her spot in the passenger seat as she commuted in from Wasilla.&#8221; The simple brilliance of this usage of Twitter really struck me.</p>
<p>With tweets like</p>
<ul>
<li><span class="status-body"><span class="entry-content">silver jeep, FLB 272. thanks for cutting me off not once but TWICE when you were going straight in turn only lanes prick. </span></span></li>
<li><span class="status-body"><span class="entry-content">To the girl in the Green Explorer outside Muldoon Fred Meyers this afternoon: Sorry my U-turn scared you. My bad <img src='http://brian.olore.net/wp/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </span></span></li>
<li><span class="status-body"><span class="entry-content">white Nissan pu FEL 365 hang up ur cell phone pay attention 2 ur driving. ur lane ended &amp; you nearly hit me merging 2 mine.</span></span></li>
</ul>
<p><span class="status-body"><span class="entry-content">&#8230; </span></span>I wanted a piece of that action!</p>
<p>So I started <a href="http://twitter.com/NJBadDrivers">@NJBadDrivers</a> and <a href="http://twitter.com/CTBadDrivers">@CTBadDrivers</a>. Then I realized I better grab <a href="http://twitter.com/NYBadDrivers">@NYBadDrivers</a> to complete the tri-state trifecta. Imitation is the sincerest form, right ? After talking to my buddy who moved up to Alaska, he said that people really are crazy drivers up there, but come on, can they really be worse than New York, Connecticut or New Jersey drivers? (Admittedly, I&#8217;ve had licenses in all 3 states.)</p>
<p>I&#8217;m running with <span>Christopher Finke</span>&#8217;s slick little python application called <a href="http://code.google.com/p/retweet/">retweet</a> on my Dreamhost account. If Chrstopher&#8217;s name sounds familiar (it should!) it&#8217;s cuz he&#8217;s the mastermind behind <a href="http://www.scribefire.com/">ScribeFire</a> and the <a href="https://addons.mozilla.org/en-US/firefox/addon/4664">TwitterBar</a> Firefox add-on. For those interested in running <em>retweet</em> on Dreamhost, be sure to use <em>python2.5 </em>as it already has the <em>sqlite3</em> library configured. Once I figured that out, I cron&#8217;d it and it&#8217;s been working like a charm.</p>
<p>So how&#8217;s it work? All you need to do is send a message to one of the accounts via Twitter and it will get retweeted by the bot. Just say &#8220;@NJBadDrivers does anyone around here know how to function at a four way stop???&#8221; or &#8220;@NYBadDrivers srsly people, traffic circles are not that difficult&#8221;.</p>
<p>I wonder&#8230; is reserving Twitter names the new domain squatting? If so, would it be called <a href="http://www.youtube.com/watch?v=E4EoN4nr5FQ"><em>twatting</em></a>?</p>
]]></content:encoded>
			<wfw:commentRss>http://brian.olore.net/wp/2009/04/launched-new-twitter-accounts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
