<?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>Enterprise-class</title>
	<atom:link href="http://www.codyburleson.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.codyburleson.com</link>
	<description>A weblog by Cody Burleson</description>
	<lastBuildDate>Tue, 15 May 2012 16:05:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Enterprise-class is moving&#8230;</title>
		<link>http://www.codyburleson.com/2012/05/15/enterprise-class-is-moving/</link>
		<comments>http://www.codyburleson.com/2012/05/15/enterprise-class-is-moving/#comments</comments>
		<pubDate>Tue, 15 May 2012 01:49:34 +0000</pubDate>
		<dc:creator>Cody Burleson</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.codyburleson.com/?p=667</guid>
		<description><![CDATA[<style type="text/css">
#leftcontainerBox {
	float:left;
	position: fixed;
	top: 60%;
	left: 70px;
}
#leftcontainerBox .buttons {
	float:left;
	clear:both;
	margin:4px 4px 4px 4px;
	padding-bottom:2px;
}
#bottomcontainerBox {
	width: 50%;
	padding-top: 1px;
}
#bottomcontainerBox .buttons {
	float: left;
	margin: 4px 4px 4px 4px;
}
</style>
All of the Enterprise-class blog content about IBM WebSphere Portal, IBM Web Content Manager, IBM Connections, and Java/J2EE is being slowly moved over to the Base22 Knowledge Wiki. There, more individuals are able to actively contribute to content and improve &#8230; <a href="http://www.codyburleson.com/2012/05/15/enterprise-class-is-moving/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<style type="text/css">
#leftcontainerBox {
	float:left;
	position: fixed;
	top: 60%;
	left: 70px;
}
#leftcontainerBox .buttons {
	float:left;
	clear:both;
	margin:4px 4px 4px 4px;
	padding-bottom:2px;
}
#bottomcontainerBox {
	width: 50%;
	padding-top: 1px;
}
#bottomcontainerBox .buttons {
	float: left;
	margin: 4px 4px 4px 4px;
}
</style>
<p>All of the Enterprise-class blog content about IBM WebSphere Portal, IBM Web Content Manager, IBM Connections, and Java/J2EE is being slowly moved over to the <a href="http://wiki.base22.com/display/btg/Knowledge+Wiki" target="_blank">Base22 Knowledge Wiki</a>. There, more individuals are able to actively contribute to content and improve it (it&#8217;s not just me with me limited knowledge and perspective). I will be keeping my domain name and transitioning my blog to serve my hobby interests, perhaps. Please pardon the inconvenience, but don&#8217;t worry; I&#8217;ll be posting as actively there!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codyburleson.com/2012/05/15/enterprise-class-is-moving/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Accessing the WebSphere Portal Service Document</title>
		<link>http://www.codyburleson.com/2012/04/21/accessing-the-wps-service-document/</link>
		<comments>http://www.codyburleson.com/2012/04/21/accessing-the-wps-service-document/#comments</comments>
		<pubDate>Sat, 21 Apr 2012 16:30:41 +0000</pubDate>
		<dc:creator>Cody Burleson</dc:creator>
				<category><![CDATA[IBM WebSphere Portal]]></category>
		<category><![CDATA[webdav]]></category>

		<guid isPermaLink="false">http://www.codyburleson.com/?p=657</guid>
		<description><![CDATA[<style type="text/css">
#leftcontainerBox {
	float:left;
	position: fixed;
	top: 60%;
	left: 70px;
}
#leftcontainerBox .buttons {
	float:left;
	clear:both;
	margin:4px 4px 4px 4px;
	padding-bottom:2px;
}
#bottomcontainerBox {
	width: 50%;
	padding-top: 1px;
}
#bottomcontainerBox .buttons {
	float: left;
	margin: 4px 4px 4px 4px;
}
</style>
I just stumbled onto an interesting feature in WebSphere Portal that I didn&#8217;t know existed. It seems you can access the WebSphere Portal service document by typing the following URL in your browser: http://&#60;host&#62;:&#60;port&#62;/wps/mycontenthandler/!ut/p/model/service-document You can obtain the entry point &#8230; <a href="http://www.codyburleson.com/2012/04/21/accessing-the-wps-service-document/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<style type="text/css">
#leftcontainerBox {
	float:left;
	position: fixed;
	top: 60%;
	left: 70px;
}
#leftcontainerBox .buttons {
	float:left;
	clear:both;
	margin:4px 4px 4px 4px;
	padding-bottom:2px;
}
#bottomcontainerBox {
	width: 50%;
	padding-top: 1px;
}
#bottomcontainerBox .buttons {
	float: left;
	margin: 4px 4px 4px 4px;
}
</style>
<p>I just stumbled onto an interesting feature in WebSphere Portal that I didn&#8217;t know existed. It seems you can access the WebSphere Portal service document by typing the following URL in your browser:</p>
<p>http://&lt;host&gt;:&lt;port&gt;/wps/mycontenthandler/!ut/p/model/service-document</p>
<p>You can obtain the entry point for the WebDAV file store from this document, as shown below:</p>
<p><a href="http://www.codyburleson.com/wp-content/uploads/2012/04/webdavEntryPoint.png"><img src="http://www.codyburleson.com/wp-content/uploads/2012/04/webdavEntryPoint.png" alt="" title="webdavEntryPoint" width="477" height="162" class="alignnone size-full wp-image-662" /></a></p>
<p>The whole document has some pretty interesting stuff in it&#8230;</p>
<p>(Click to enlarge&#8230;)<br />
<a href="http://www.codyburleson.com/wp-content/uploads/2012/04/wpsServiceDocument.png"><img src="http://www.codyburleson.com/wp-content/uploads/2012/04/wpsServiceDocument-300x248.png" alt="" title="wpsServiceDocument" width="300" height="248" class="alignnone size-medium wp-image-658" /></a></p>
<p>From this, you can locate various URLs that produce interesting feeds. The following snippet, for example, shows how we could access a feed listing all the portal skins in the portal model.<br />
<span id="more-657"></span></p>
<p>(Click to enlarge&#8230;)<br />
<a href="http://www.codyburleson.com/wp-content/uploads/2012/04/skinlistFeed.png"><img src="http://www.codyburleson.com/wp-content/uploads/2012/04/skinlistFeed-300x69.png" alt="" title="skinlistFeed" width="300" height="69" class="alignnone size-medium wp-image-659" /></a></p>
<p>So, if we now grab that URL and paste it into the browser, we end up with a feed like so&#8230;</p>
<p><a href="http://www.codyburleson.com/wp-content/uploads/2012/04/skinFeed.png"><img src="http://www.codyburleson.com/wp-content/uploads/2012/04/skinFeed.png" alt="" title="skinFeed" width="566" height="790" class="alignnone size-full wp-image-660" /></a></p>
<p>I don&#8217;t have any specific ideas for how to use this right now, but I&#8217;m sure something will come up in the future. I took a look at the same document in WebSphere Portal 8 and found that is has a bunch of entries for the new WCM REST service&#8230;</p>
<p>(Click to enlarge&#8230;)<br />
<a href="http://www.codyburleson.com/wp-content/uploads/2012/04/wcmRestPortal8.png"><img src="http://www.codyburleson.com/wp-content/uploads/2012/04/wcmRestPortal8-300x213.png" alt="" title="wcmRestPortal8" width="300" height="213" class="alignnone size-medium wp-image-663" /></a></p>
<p>I found another document that helped me understand how to get the defined queries for WCM using the following URL:</p>
<p>http://localhost:10039/wps/mycontenthandler/!ut/p/wcmrest/DefinedQueryComponent. And from that, I was able to find a URL to get the Query Results for Content by Authoring Template&#8230;</p>
<p>http://localhost:10039/wps/mycontenthandler/!ut/p/wcmrest/definedquery/content-by-template</p>
<p>And then from that ATOM feed, I found the READ URL for a paricular content item in WCM.</p>
<p>So, the service document exposes service integration points for WebSphere Portal such as the entry point for the WebDAV file store and, in Portal 8, various URLs to the WCM REST service.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codyburleson.com/2012/04/21/accessing-the-wps-service-document/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Logging through WebSphere Portal from Java and JSPs</title>
		<link>http://www.codyburleson.com/2012/03/18/logging-through-websphere-portal-from-java-and-jsp/</link>
		<comments>http://www.codyburleson.com/2012/03/18/logging-through-websphere-portal-from-java-and-jsp/#comments</comments>
		<pubDate>Sun, 18 Mar 2012 20:31:36 +0000</pubDate>
		<dc:creator>Cody Burleson</dc:creator>
				<category><![CDATA[IBM WebSphere Portal]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[logging]]></category>

		<guid isPermaLink="false">http://www.codyburleson.com/?p=639</guid>
		<description><![CDATA[<style type="text/css">
#leftcontainerBox {
	float:left;
	position: fixed;
	top: 60%;
	left: 70px;
}
#leftcontainerBox .buttons {
	float:left;
	clear:both;
	margin:4px 4px 4px 4px;
	padding-bottom:2px;
}
#bottomcontainerBox {
	width: 50%;
	padding-top: 1px;
}
#bottomcontainerBox .buttons {
	float: left;
	margin: 4px 4px 4px 4px;
}
</style>
Recently, I wanted to tap into the WebSphere Portal logging system so that administrators can toggle tracing for my application classes at runtime by using the Enable Tracing feature in the WebSphere Portal Admin UI. I was attempting the typical &#8230; <a href="http://www.codyburleson.com/2012/03/18/logging-through-websphere-portal-from-java-and-jsp/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<style type="text/css">
#leftcontainerBox {
	float:left;
	position: fixed;
	top: 60%;
	left: 70px;
}
#leftcontainerBox .buttons {
	float:left;
	clear:both;
	margin:4px 4px 4px 4px;
	padding-bottom:2px;
}
#bottomcontainerBox {
	width: 50%;
	padding-top: 1px;
}
#bottomcontainerBox .buttons {
	float: left;
	margin: 4px 4px 4px 4px;
}
</style>
<p>Recently, I wanted to tap into the WebSphere Portal logging system so that administrators can toggle tracing for my application classes at runtime by using the Enable Tracing feature in the WebSphere Portal Admin UI.<span id="more-639"></span></p>
<p>I was attempting the typical java.util.logging business like this:</p>
<p><strong>Imports</strong></p>
<pre class="brush: java; light: true; title: ; notranslate">
import java.util.logging.Level;
import java.util.logging.Logger;
</pre>
<p><strong>Declare the Logger</strong></p>
<pre class="brush: java; light: true; title: ; notranslate">
public static final Logger LOG = Logger.getLogger(PDFUtils.class.getName());
</pre>
<p><strong>Use the Logger (well, attempt to&#8230;)</strong></p>
<pre class="brush: java; light: true; title: ; notranslate">
if(LOG.isLoggable(Level.FINEST)) {
	LOG.finest(&quot;HELLO WORLD!&quot;);
}
</pre>
<h2>Problem</h2>
<p>I would then navigate to Portal Admin &gt; Enable Tracing and add com.base22.*=finest, but none of my statements ever spit out to my console in Rational Software Architect or to WebSphere Portal&#8217;s SystemOut.log file. As it turns out, &#8220;log entries lower than WsLevel.DETAIL are never stored in the SystemOut.log file&#8221;. After much searching, I finally learned this from a post found online called <a href="http://www.webagesolutions.com/knowledgebase/waskb/waskb026/index.html" target="_blank">LOGGING AND TRACING FROM A WEBSPHERE BASED J2EE APPLICATION</a>.</p>
<h2>Solution</h2>
<p>My final solution was to include an import for the WebSphere specific levels like so&#8230;</p>
<pre class="brush: java; light: true; title: ; notranslate">
import com.ibm.websphere.logging.WsLevel;
</pre>
<p>.. and then modify my logging statements to key off of WsLevel.DETAIL, which FINE, FINER, and FINEST roll up into; like this:</p>
<pre class="brush: java; light: true; title: ; notranslate">
if (LOG.isLoggable(WsLevel.DETAIL)) {
	LOG.log(WsLevel.DETAIL,&quot;&gt;&gt; writePDFFromContentToOutputStream()&quot;);
}
</pre>
<p>Hopefully this will save you the time it took me to whittle trough it. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.codyburleson.com/2012/03/18/logging-through-websphere-portal-from-java-and-jsp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TO DO: Experiment with Backbone.js</title>
		<link>http://www.codyburleson.com/2012/03/18/to-do-experiment-with-backbone-js/</link>
		<comments>http://www.codyburleson.com/2012/03/18/to-do-experiment-with-backbone-js/#comments</comments>
		<pubDate>Sun, 18 Mar 2012 13:02:16 +0000</pubDate>
		<dc:creator>Cody Burleson</dc:creator>
				<category><![CDATA[General Web Development]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[REST]]></category>

		<guid isPermaLink="false">http://www.codyburleson.com/?p=636</guid>
		<description><![CDATA[<style type="text/css">
#leftcontainerBox {
	float:left;
	position: fixed;
	top: 60%;
	left: 70px;
}
#leftcontainerBox .buttons {
	float:left;
	clear:both;
	margin:4px 4px 4px 4px;
	padding-bottom:2px;
}
#bottomcontainerBox {
	width: 50%;
	padding-top: 1px;
}
#bottomcontainerBox .buttons {
	float: left;
	margin: 4px 4px 4px 4px;
}
</style>
I just stumbled upon this JavaScript framework on GitHub called Backbone.js that looks, at first glance, to be quite useful. I don&#8217;t really have the time to give it a good test today, so I&#8217;m just posting this reminder for now. The &#8230; <a href="http://www.codyburleson.com/2012/03/18/to-do-experiment-with-backbone-js/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<style type="text/css">
#leftcontainerBox {
	float:left;
	position: fixed;
	top: 60%;
	left: 70px;
}
#leftcontainerBox .buttons {
	float:left;
	clear:both;
	margin:4px 4px 4px 4px;
	padding-bottom:2px;
}
#bottomcontainerBox {
	width: 50%;
	padding-top: 1px;
}
#bottomcontainerBox .buttons {
	float: left;
	margin: 4px 4px 4px 4px;
}
</style>
<p><a href="http://www.codyburleson.com/wp-content/uploads/2012/03/backbone.png"><img class="alignnone size-full wp-image-637" title="backbone" src="http://www.codyburleson.com/wp-content/uploads/2012/03/backbone.png" alt="" width="451" height="80" /></a></p>
<p>I just stumbled upon this JavaScript framework on GitHub called <a href="http://documentcloud.github.com/backbone/" target="_blank">Backbone.js</a> that looks, at first glance, to be quite useful. I don&#8217;t really have the time to give it a good test today, so I&#8217;m just posting this reminder for now. The framework has an comforting list of users; following are just a small handful that I recognized:<span id="more-636"></span></p>
<ul>
<li>LinkedIn Mobile</li>
<li>Foursquare</li>
<li>Khan Academy</li>
<li>Groupon</li>
<li>Basecamp Mobile</li>
<li>Pandora</li>
</ul>
<p>Using things like jQuery, JSON, Ajax, and REST, we&#8217;re making our web application experiences much richer. But these new richer UI&#8217;s are providing new levels of complexity in our code and new opportunities to make a mess of things for ourselves and other developers. I think it&#8217;s much easier to blur the lines between the model, view, and controller now, for example. As we have more and more power in the glass and on the cloud, there are simply more opportunities for coupling things in ways they probably shouldn&#8217;t be. There are cool new ways to solve problems, but also new ways to create them.</p>
<p>As our skills improve at using these technologies to make better user experiences, we should not forget the developer experience. If, while solving problems for end-users, we&#8217;re creating problems for ourselves and other developers, we&#8217;re shooting ourselves in the foot.</p>
<p><a href="http://documentcloud.github.com/backbone/" target="_blank">Backbone.js</a> looks like it might be something that can help in this regard and when time permits, I intend to check it out.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codyburleson.com/2012/03/18/to-do-experiment-with-backbone-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mac magnet hack &#8211; run cooler when using an external monitor</title>
		<link>http://www.codyburleson.com/2012/03/02/mac-magnet-hack-run-cooler-when-using-an-external-monitor/</link>
		<comments>http://www.codyburleson.com/2012/03/02/mac-magnet-hack-run-cooler-when-using-an-external-monitor/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 14:31:50 +0000</pubDate>
		<dc:creator>Cody Burleson</dc:creator>
				<category><![CDATA[Diversions]]></category>

		<guid isPermaLink="false">http://www.codyburleson.com/?p=631</guid>
		<description><![CDATA[<style type="text/css">
#leftcontainerBox {
	float:left;
	position: fixed;
	top: 60%;
	left: 70px;
}
#leftcontainerBox .buttons {
	float:left;
	clear:both;
	margin:4px 4px 4px 4px;
	padding-bottom:2px;
}
#bottomcontainerBox {
	width: 50%;
	padding-top: 1px;
}
#bottomcontainerBox .buttons {
	float: left;
	margin: 4px 4px 4px 4px;
}
</style>
Here&#8217;s an interesting little hack one of my colleagues just turned me on to. It seems you can use a simple refrigerator magnet to signal a diversion of control to your external monitor, while allowing the lid on your laptop to remain &#8230; <a href="http://www.codyburleson.com/2012/03/02/mac-magnet-hack-run-cooler-when-using-an-external-monitor/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<style type="text/css">
#leftcontainerBox {
	float:left;
	position: fixed;
	top: 60%;
	left: 70px;
}
#leftcontainerBox .buttons {
	float:left;
	clear:both;
	margin:4px 4px 4px 4px;
	padding-bottom:2px;
}
#bottomcontainerBox {
	width: 50%;
	padding-top: 1px;
}
#bottomcontainerBox .buttons {
	float: left;
	margin: 4px 4px 4px 4px;
}
</style>
<p>Here&#8217;s an interesting little hack one of my colleagues just turned me on to. It seems you can use a simple refrigerator magnet to signal a diversion of control to your external monitor, while allowing the lid on your laptop to remain open. Of course, leaving the lid open allows more heat to escape the main unit, so your Mac can run cooler.</p>
<p><a href="http://www.codyburleson.com/wp-content/uploads/2012/03/magnetOnMac.png"><img class="alignnone size-full wp-image-632" title="magnetOnMac" src="http://www.codyburleson.com/wp-content/uploads/2012/03/magnetOnMac.png" alt="" width="500" height="375" /></a></p>
<p>If you want to take it to the next level, you could also prop the base under all four corners with those flat pink erasers, which gives about a quarter-of-an-inch of airflow to the underside.</p>
<p><a href="http://www.codyburleson.com/wp-content/uploads/2012/03/pink_eraser.jpg"><img class="alignnone size-thumbnail wp-image-633" title="pink_eraser" src="http://www.codyburleson.com/wp-content/uploads/2012/03/pink_eraser-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codyburleson.com/2012/03/02/mac-magnet-hack-run-cooler-when-using-an-external-monitor/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Weekend Diversion &#8211; My First Arduino Project</title>
		<link>http://www.codyburleson.com/2012/02/26/weekend-diversion-my-first-arduino-project/</link>
		<comments>http://www.codyburleson.com/2012/02/26/weekend-diversion-my-first-arduino-project/#comments</comments>
		<pubDate>Sun, 26 Feb 2012 19:49:44 +0000</pubDate>
		<dc:creator>Cody Burleson</dc:creator>
				<category><![CDATA[Diversions]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[electronics]]></category>

		<guid isPermaLink="false">http://www.codyburleson.com/?p=628</guid>
		<description><![CDATA[<style type="text/css">
#leftcontainerBox {
	float:left;
	position: fixed;
	top: 60%;
	left: 70px;
}
#leftcontainerBox .buttons {
	float:left;
	clear:both;
	margin:4px 4px 4px 4px;
	padding-bottom:2px;
}
#bottomcontainerBox {
	width: 50%;
	padding-top: 1px;
}
#bottomcontainerBox .buttons {
	float: left;
	margin: 4px 4px 4px 4px;
}
</style>
This weekend, I needed a diversion, so I completed a very simple Arduino project. It&#8217;s a little program that plays &#8220;Mary Had  A Little Lamb&#8221; through a Piezo Buzzer. Look out Steve Jobs (the journey of a thousand miles begins &#8230; <a href="http://www.codyburleson.com/2012/02/26/weekend-diversion-my-first-arduino-project/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<style type="text/css">
#leftcontainerBox {
	float:left;
	position: fixed;
	top: 60%;
	left: 70px;
}
#leftcontainerBox .buttons {
	float:left;
	clear:both;
	margin:4px 4px 4px 4px;
	padding-bottom:2px;
}
#bottomcontainerBox {
	width: 50%;
	padding-top: 1px;
}
#bottomcontainerBox .buttons {
	float: left;
	margin: 4px 4px 4px 4px;
}
</style>
<p>This weekend, I needed a diversion, so I completed a very simple <a href="http://www.arduino.cc/" target="_blank">Arduino</a> project. It&#8217;s a little program that plays &#8220;Mary Had  A Little Lamb&#8221; through a Piezo Buzzer. Look out Steve Jobs (<em>the journey of a thousand miles begins with one step</em>).</p>
<p><a href="http://www.codyburleson.com/wp-content/uploads/2012/02/myFirstArduinoProject.png"><img class="alignnone size-full wp-image-629" title="myFirstArduinoProject" src="http://www.codyburleson.com/wp-content/uploads/2012/02/myFirstArduinoProject.png" alt="" width="600" height="450" /></a></p>
<p>I based the prototype on the following diagram, which I found in the <a href="http://shop.oreilly.com/product/9780596802486.do" target="_blank">O&#8217;REILLY Arduino Cookbook</a> by Michael Margolis. I didn&#8217;t include the optional volume control.<span id="more-628"></span></p>
<p><a href="http://www.codyburleson.com/wp-content/uploads/2012/02/myFirstArduinoSchematic.png"><img class="alignnone size-full wp-image-630" title="myFirstArduinoSchematic" src="http://www.codyburleson.com/wp-content/uploads/2012/02/myFirstArduinoSchematic.png" alt="" width="432" height="241" /></a></p>
<p>Two interesting things I found online while doing this were:</p>
<ul>
<li><a href="http://wiki.lvl1.org/images/9/93/ResistorQV.pdf" target="_blank">Resistor Color Code Quick Guide</a> &#8211; helps you interpret the little painted bands on resistors so you can know how many ohms are resisted.</li>
<li><a href="www.youtube.com/watch?v=oiqNaSPTI7w" target="_blank">Introduction to Breadboards (Protoboards) &#8211; Part 1 of 2 &#8211; YouTube</a> &#8211; I didn&#8217;t really know anything about how to use a breadboard, so this video was helpful for learning the basics.</li>
</ul>
<p><strong>IDEA</strong></p>
<p>So, now that I&#8217;ve got my hands dirty, I&#8217;m trying to think of something more useful. Here&#8217;s one rough idea that&#8217;s come to mind.</p>
<p>Using the Arduino Ethernet Shield model &#8211; I should be able to regularly ping one or more servers or sites and set off an alarm if the appropriate response isn&#8217;t returned. Sure, we can do this with stuff already out on the web (i.e. get an email in your inbox). But with an Arduino, we could make it fun. For example, we could make a DEFCON light display and alarm box to hang on the wall in the office. The DEFCON stages can have various meanings depending on whether our site is down, a client site is down, etc. We could even make a remote web interface, where DEFCON stages or alarms could be triggered on-demand. This could be a really fun way to annoy the <a href="http://base22.com/about/team-bios/" target="_blank">Base22 team</a> in Monterrey, Mexico from home.</p>
<p>Anyway&#8230; back to work for now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codyburleson.com/2012/02/26/weekend-diversion-my-first-arduino-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WebSphere Portal hidden gems &#8211; translate portal to myportal when user is logged in</title>
		<link>http://www.codyburleson.com/2012/02/24/wps-translate-portal-to-myportal-when-user-is-logged-in/</link>
		<comments>http://www.codyburleson.com/2012/02/24/wps-translate-portal-to-myportal-when-user-is-logged-in/#comments</comments>
		<pubDate>Fri, 24 Feb 2012 16:03:24 +0000</pubDate>
		<dc:creator>Cody Burleson</dc:creator>
				<category><![CDATA[IBM WebSphere Portal]]></category>
		<category><![CDATA[administration]]></category>

		<guid isPermaLink="false">http://www.codyburleson.com/?p=626</guid>
		<description><![CDATA[<style type="text/css">
#leftcontainerBox {
	float:left;
	position: fixed;
	top: 60%;
	left: 70px;
}
#leftcontainerBox .buttons {
	float:left;
	clear:both;
	margin:4px 4px 4px 4px;
	padding-bottom:2px;
}
#bottomcontainerBox {
	width: 50%;
	padding-top: 1px;
}
#bottomcontainerBox .buttons {
	float: left;
	margin: 4px 4px 4px 4px;
}
</style>
This content has been moved to the Base22 Knowledge Wiki.]]></description>
			<content:encoded><![CDATA[<style type="text/css">
#leftcontainerBox {
	float:left;
	position: fixed;
	top: 60%;
	left: 70px;
}
#leftcontainerBox .buttons {
	float:left;
	clear:both;
	margin:4px 4px 4px 4px;
	padding-bottom:2px;
}
#bottomcontainerBox {
	width: 50%;
	padding-top: 1px;
}
#bottomcontainerBox .buttons {
	float: left;
	margin: 4px 4px 4px 4px;
}
</style>
<p>This content has been moved to the <a href="http://wiki.base22.com/display/btg/Translate+portal+to+myportal+when+user+is+logged+in" target="_blank">Base22 Knowledge Wiki</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codyburleson.com/2012/02/24/wps-translate-portal-to-myportal-when-user-is-logged-in/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generating SQL Dynamically in IBM Web Experience Factory</title>
		<link>http://www.codyburleson.com/2012/01/30/generating-sql-dynamically-in-ibm-web-experience-factory/</link>
		<comments>http://www.codyburleson.com/2012/01/30/generating-sql-dynamically-in-ibm-web-experience-factory/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 23:43:29 +0000</pubDate>
		<dc:creator>Cody Burleson</dc:creator>
				<category><![CDATA[IBM WebSphere Portal]]></category>
		<category><![CDATA[Web Experience Factory]]></category>

		<guid isPermaLink="false">http://www.codyburleson.com/?p=617</guid>
		<description><![CDATA[<style type="text/css">
#leftcontainerBox {
	float:left;
	position: fixed;
	top: 60%;
	left: 70px;
}
#leftcontainerBox .buttons {
	float:left;
	clear:both;
	margin:4px 4px 4px 4px;
	padding-bottom:2px;
}
#bottomcontainerBox {
	width: 50%;
	padding-top: 1px;
}
#bottomcontainerBox .buttons {
	float: left;
	margin: 4px 4px 4px 4px;
}
</style>
The SQL Call builder in IBM Web Experience Factory can process java method calls that are placed in the SQL Statement. Take the following, for example (note the where clause): Example SQL Call Builder &#8211; SQL Statement Other options selected &#8230; <a href="http://www.codyburleson.com/2012/01/30/generating-sql-dynamically-in-ibm-web-experience-factory/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<style type="text/css">
#leftcontainerBox {
	float:left;
	position: fixed;
	top: 60%;
	left: 70px;
}
#leftcontainerBox .buttons {
	float:left;
	clear:both;
	margin:4px 4px 4px 4px;
	padding-bottom:2px;
}
#bottomcontainerBox {
	width: 50%;
	padding-top: 1px;
}
#bottomcontainerBox .buttons {
	float: left;
	margin: 4px 4px 4px 4px;
}
</style>
<p>The SQL Call builder in IBM Web Experience Factory can process java method calls that are placed in the SQL Statement. Take the following, for example (note the where clause):</p>
<p><strong>Example SQL Call Builder &#8211; SQL Statement</strong></p>
<pre class="brush: sql; light: true; title: ; notranslate">
select
	h.po_number, h.ship_after_date, h.auto_cancel_date,
        h.po_status, h.src_code, h.fpars_company_code,
	h.vndr_name, h.vndr_number, c.vndrcntct_zipcode
from
	dbo.V_po_headers h INNER JOIN dbo.V_vndr_contacts c
ON
	h.vndr_number = c.vndr_duns_no
where
	${MethodCall/retrieveByMultiplePOsWhereClause}
and
	c.vndrcntct_type_code = 'ROUTING_ADDRESS'
</pre>
<p>Other options selected for the SQL call builder:</p>
<ul>
<li>Parameter Binding *: Manual</li>
<li>Schema Generation: From Alternate SQL Statement (with a more simplified form of roughly the same SQL, which returns the same fields so that the generated schema is adequate)</li>
</ul>
<p>The method call in the above statement refers to the name of a Method builder in the same model. You can just stub out some sample data as I have done below for a quick acid test. The Method builder is defined to return a String. </p>
<pre class="brush: java; light: true; title: ; notranslate">
{
    Logger logger = Logger.getLogger(&quot;bowstreet.system.out&quot;);
    boolean loggingIsEnabled = (logger != null) ? logger.isInfoEnabled() : false;

    //if (loggingIsEnabled) {
    // logger.info(&quot;SystemOut: MyInputParameter = &quot; + webAppAccess.getRequestInputs().getInputValue( &quot;MyInputParameter&quot; ));
    //}

    StringBuffer sb = new StringBuffer();

    sb.append(&quot;po_number in (&quot;);
    sb.append(&quot;,'0000000000'&quot;);
    sb.append(&quot;,'1111111111'&quot;);
    sb.append(&quot;,'2222222222'&quot;);
    sb.append(&quot;,'3333333333'&quot;);
    sb.append(&quot;)&quot;);

    if (loggingIsEnabled)
        logger.info(&quot;SystemOut: SQL where clause = &quot; + sb.toString());

    return sb.toString();
}
</pre>
<p>There may be another way to do this, but this seems to work fine. It does not appear to be necessary to check the box for Allow Dynamic SQL in the Advanced section of the SQL Call builder. Note that the documentation provides a good tip about indirect references in the SQL; its says, &#8220;To guard against SQL injection exploits, you should fully validate the values of the indirect references used in the SQL Statement.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codyburleson.com/2012/01/30/generating-sql-dynamically-in-ibm-web-experience-factory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tailing WebSphere Portal Log Files in Microsoft Windows</title>
		<link>http://www.codyburleson.com/2012/01/25/tailing-websphere-portal-log-files-in-microsoft-windows/</link>
		<comments>http://www.codyburleson.com/2012/01/25/tailing-websphere-portal-log-files-in-microsoft-windows/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 16:02:42 +0000</pubDate>
		<dc:creator>Cody Burleson</dc:creator>
				<category><![CDATA[IBM WebSphere Portal]]></category>
		<category><![CDATA[logging]]></category>

		<guid isPermaLink="false">http://www.codyburleson.com/?p=612</guid>
		<description><![CDATA[<style type="text/css">
#leftcontainerBox {
	float:left;
	position: fixed;
	top: 60%;
	left: 70px;
}
#leftcontainerBox .buttons {
	float:left;
	clear:both;
	margin:4px 4px 4px 4px;
	padding-bottom:2px;
}
#bottomcontainerBox {
	width: 50%;
	padding-top: 1px;
}
#bottomcontainerBox .buttons {
	float: left;
	margin: 4px 4px 4px 4px;
}
</style>
Tailing the WebSphere Portal log files allows you to watch the logs in real-time as they role. In Unix or Linux it can be done with the command tail -f System.out.log, but there is no such command for Windows. Several &#8230; <a href="http://www.codyburleson.com/2012/01/25/tailing-websphere-portal-log-files-in-microsoft-windows/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<style type="text/css">
#leftcontainerBox {
	float:left;
	position: fixed;
	top: 60%;
	left: 70px;
}
#leftcontainerBox .buttons {
	float:left;
	clear:both;
	margin:4px 4px 4px 4px;
	padding-bottom:2px;
}
#bottomcontainerBox {
	width: 50%;
	padding-top: 1px;
}
#bottomcontainerBox .buttons {
	float: left;
	margin: 4px 4px 4px 4px;
}
</style>
<p>Tailing the WebSphere Portal log files allows you to watch the logs in real-time as they role. In Unix or Linux it can be done with the command <code>tail -f System.out.log</code>, but there is no such command for Windows. Several tools are available which provide this functionality in Windows. The one I use is WinTail <a href="http://www.baremetalsoft.com/wintail/" target="_blank">(WinTail.exe) from baremetalsoft.com</a>.</p>
<p>Here&#8217;s how you can setup WinTail to watch your Portal log file.<span id="more-612"></span></p>
<p>Download WinTail.exe from the link given above. Put the executable in a permanent place where you&#8217;ll know where to find it because you may create shortcuts, which each point to a different log file. For example, you might make one point to the WebSphere Portal SystemOut.log file and you may make another which points to the debug trace file of a Web Experience Factory portlet that you&#8217;re working on. For example, I put WinTail.exe in my Program Files directory.</p>
<p>Next, create a shortcut and drag it to your desktop. Rename the shortcut to something logical like &#8220;Tail Portal Log&#8221;. Right-click on the shortcut and choose Properties from the context menu. In the target field of the Shortcut tab, place the path to your portal log file after the executable. For example:</p>
<p><code>"C:\Program Files (x86)\WinTail.exe" C:\IBM\WebSphere\wp_profile\logs\WebSphere_Portal\SystemOut.log</code></p>
<p><a href="http://www.codyburleson.com/wp-content/uploads/2012/01/WinTail.png"><img src="http://www.codyburleson.com/wp-content/uploads/2012/01/WinTail.png" alt="" title="WinTail" width="367" height="519" class="alignnone size-full wp-image-613" /></a></p>
<p>Now, when you double-click the shortcut, WinTail will open directly against your Portal log file and you can watch her as she rolls, as shown below.</p>
<p><a href="http://www.codyburleson.com/wp-content/uploads/2012/01/WinTailRolling.png"><img src="http://www.codyburleson.com/wp-content/uploads/2012/01/WinTailRolling-300x210.png" alt="" title="WinTailRolling" width="300" height="210" class="alignnone size-medium wp-image-614" /></a></p>
<p>You can also create additional shortcuts pointing to different log files. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.codyburleson.com/2012/01/25/tailing-websphere-portal-log-files-in-microsoft-windows/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Now Available &#8211; WebSphere Portal and WCM V7.0 fix pack 2</title>
		<link>http://www.codyburleson.com/2012/01/21/now-available-websphere-portal-and-wcm-v7-0-fix-pack-2/</link>
		<comments>http://www.codyburleson.com/2012/01/21/now-available-websphere-portal-and-wcm-v7-0-fix-pack-2/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 22:15:02 +0000</pubDate>
		<dc:creator>Cody Burleson</dc:creator>
				<category><![CDATA[IBM WebSphere Portal]]></category>
		<category><![CDATA[fix pack]]></category>

		<guid isPermaLink="false">http://www.codyburleson.com/?p=610</guid>
		<description><![CDATA[<style type="text/css">
#leftcontainerBox {
	float:left;
	position: fixed;
	top: 60%;
	left: 70px;
}
#leftcontainerBox .buttons {
	float:left;
	clear:both;
	margin:4px 4px 4px 4px;
	padding-bottom:2px;
}
#bottomcontainerBox {
	width: 50%;
	padding-top: 1px;
}
#bottomcontainerBox .buttons {
	float: left;
	margin: 4px 4px 4px 4px;
}
</style>
Portal and WCM fix pack 2 is now available. The fix pack includes a cumulative collection of fixes and updated support for several underlying components. It updates the IBM WebSphere Portal 7.0 (7.0.0.0) or 7.0.0.1 level to the 7.0.0.2 release &#8230; <a href="http://www.codyburleson.com/2012/01/21/now-available-websphere-portal-and-wcm-v7-0-fix-pack-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<style type="text/css">
#leftcontainerBox {
	float:left;
	position: fixed;
	top: 60%;
	left: 70px;
}
#leftcontainerBox .buttons {
	float:left;
	clear:both;
	margin:4px 4px 4px 4px;
	padding-bottom:2px;
}
#bottomcontainerBox {
	width: 50%;
	padding-top: 1px;
}
#bottomcontainerBox .buttons {
	float: left;
	margin: 4px 4px 4px 4px;
}
</style>
<p>Portal and WCM fix pack 2 is now available.</p>
<p>The fix pack includes a cumulative collection of fixes and updated support for several underlying components. It updates the IBM WebSphere Portal 7.0 (7.0.0.0) or 7.0.0.1 level to the 7.0.0.2 release level. The fix pack can be used to upgrade the IBM Web Content Manager 7.0 (7.0.0.0) or 7.0.0.1 level to the 7.0.0.2 service release level. This fix pack can also be used to upgrade IBM WebSphere Portal Express or 7.0.0.1 level to the 7.0.0.2 service release level.</p>
<p>Learn more and download the fix pack here: <a href="http://www-01.ibm.com/support/docview.wss?uid=swg24031676" target="_blank">http://www-01.ibm.com/support/docview.wss?uid=swg24031676</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.codyburleson.com/2012/01/21/now-available-websphere-portal-and-wcm-v7-0-fix-pack-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

