<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-31425501</id><updated>2011-10-25T12:49:17.973-05:00</updated><category term='annoyances'/><category term='datatypes'/><category term='Twitter'/><category term='Microsoft'/><category term='javascript'/><category term='netsuite'/><category term='personal computers'/><category term='java'/><category term='coldfusion'/><category term='peripherals'/><category term='bugs'/><category term='health and fitness'/><category term='customer service'/><category term='blogspot'/><category term='mobile technology'/><category term='AJAX'/><category term='web x.x'/><category term='photos'/><category term='web services'/><category term='commentary'/><category term='television'/><category term='consumer electronics'/><category term='SOAP'/><category term='products'/><category term='Flash'/><category term='blogger'/><category term='event handling'/><category term='Twitter widget'/><category term='html'/><category term='AXIS'/><category term='house'/><category term='blogger widget'/><category term='windows'/><category term='hdtv'/><category term='web design'/><title type='text'>aftergeek - tech and code</title><subtitle type='html'>All the geek that's fit to print and then some.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.aftergeek.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-31425501.post-2213980216535760041</id><published>2011-02-24T14:15:00.001-06:00</published><updated>2011-05-09T11:30:13.195-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coldfusion'/><category scheme='http://www.blogger.com/atom/ns#' term='netsuite'/><title type='text'>Netsuite and Coldfusion: compiling stub classes just got easier (or has been easier for quite some time, but I just found out about it)</title><content type='html'>UPDATE: I may have spoken too soon on this post... more to come.&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;&lt;br /&gt;As of ColdFusion 8 (and I also confirmed this in CF9), it appears that at least one portion of the once &lt;a href="http://www.aftergeek.com/2008/04/process-for-generating-netsuite-java.html"&gt;ridiculously convoluted process&lt;/a&gt; of getting ColdFusion to play nicely with SuiteTalk, Netsuite's web service API, is now a lot easier. In CF8, a parameter was introduced to the CreateObject() method that allows passing command line parameters for wsdl2java. &lt;br /&gt;&lt;br /&gt;The problem with CFMX7 was that it wouldn't auto-compile all of the stub classes for SuiteTalk / Netsuite, either due to quietly timing out due to the sheer size and depth of the wsdl, or more likely because it was ignoring unreferenced elements. To cover both of these scenarios, we can simply up the timeout on wsdl2java and force it to compile classes for unreferenced elements.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;cfset ws = createobject( "webservice", &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;"https://webservices.netsuite.com/wsdl/v2010_1_0/netsuite.wsdl", &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;"NetSuitePort", &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;"-a -O 2000") /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;"webservice" = type of object to create&lt;br /&gt;"https://webservices.netsuite..." = URL of Netsuite WSDL. Replace this with the latest version or whatever version you prefer to use.&lt;br /&gt;"NetSuitePort" = name of the web service port&lt;br /&gt;"-a -O 2000" = -a (compile all elements, even unreferenced) -O 2000 (set timeout to 2000 seconds)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-2213980216535760041?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/2213980216535760041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=2213980216535760041' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/2213980216535760041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/2213980216535760041'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2011/02/netsuite-and-coldfusion-compiling-stub.html' title='Netsuite and Coldfusion: compiling stub classes just got easier (or has been easier for quite some time, but I just found out about it)'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-5616503203650089615</id><published>2010-03-25T14:28:00.004-05:00</published><updated>2010-03-25T14:33:55.148-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coldfusion'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='datatypes'/><title type='text'>Preserving structure sort order in ColdFusion</title><content type='html'>ColdFusion doesn't preserve the order in which elements were assigned to the structure. If you want to quickly and consistently loop through the items in a structure in the order in which they were assigned, the answer is simply to not use a ColdFusion structure. It's easier (and less stupid) than it sounds.&lt;br /&gt;&lt;br /&gt;Instead of this:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;cfset mystruct = StructNew() /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Do this:&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;cfset mystruct = createObject("java", "java.util.LinkedHashMap").init() /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;A java &lt;a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/LinkedHashMap.html"&gt;LinkedHashMap&lt;/a&gt; object can be treated exactly the same as a structure created by StructNew(). You can assign values the same way, and you can even loop over it the same way using &amp;lt;cfloop collection="..."&amp;gt;. Need to do a StructSort? You can do that, too. The only difference is that cfloop will loop over it in the order in which the elements were assigned.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-5616503203650089615?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/5616503203650089615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=5616503203650089615' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/5616503203650089615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/5616503203650089615'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2010/03/preserving-structure-sort-order-in.html' title='Preserving structure sort order in ColdFusion'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-48934364582890777</id><published>2010-02-06T13:32:00.000-06:00</published><updated>2010-02-06T13:32:28.492-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='house'/><category scheme='http://www.blogger.com/atom/ns#' term='television'/><title type='text'>See my goofy mug on TV!</title><content type='html'>If you are curious about my non-technical side, catch me on television tomorrow on DIY Network in &lt;a href="http://www.diynetwork.com/bathtastic/from-start-to-finish/index.html"&gt;an episode of Bathtastic&lt;/a&gt; airing at 10 am central/11 am eastern tomorrow, Sunday February 7th as part of DIY's Super Bowl-themed marathon, dubbed the Toilet Bowl. How appropriate. In the episode, we gut my bathroom and turn it into a lavishly swank hot box. Whatever that means. Oh, and it looks like they are going to play up my "lack of skill" when it comes to home remodeling, but considering I remodeled the rest of my house with my own two hands, don't believe everything you see on television. *grin* &lt;br /&gt;&lt;br /&gt;Oh, and if you don't have cable or don't get DIY Network, I believe they make the episodes available on the &lt;a href="http://www.diynetwork.com/diy-bathtastic-episode/videos/index.html"&gt;DIY Network website not long after they air&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-48934364582890777?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/48934364582890777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=48934364582890777' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/48934364582890777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/48934364582890777'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2010/02/see-my-goofy-mug-on-tv.html' title='See my goofy mug on TV!'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-7496750371405109935</id><published>2009-12-23T09:49:00.001-06:00</published><updated>2009-12-23T09:53:29.521-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coldfusion'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='netsuite'/><title type='text'>Logging into Netsuite with ColdFusion or Java - Code Sample</title><content type='html'>Every now and then, I get a request about sample code for logging into Netsuite. I often forget that I started working with Netsuite in CF before I commonly used native java objects. It took me some tinkering to figure out, but when dealing with Netsuite specific datatypes and objects in ColdFusion, sometimes CF will often correctly translate an array, integer, string, etc to an equivalent compatible with the SOAP request, however often I just skip the middle man and eliminate risk by casting the variable or creating a native instance of the java stub class.&lt;br /&gt;&lt;br /&gt;Here is the full java equivalent (I haven't tried to compile this, so you may need to make some tweaks)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;//java pseudo-ish code (meaning I haven't actually tried to compile  this)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; import java.net.URL;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; import com.netsuite.webservices.platform_2009_1.NetSuitePortType;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; import com.netsuite.webservices.platform_2009_1.NetSuiteServiceLocator;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; import com.netsuite.webservices.platform.core_2009_1.Passport;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; String YourNetsuiteAccountNumber = "123456789";&lt;/span&gt;&lt;/span&gt; &lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; URL endpoint = new  URL("https://webservices.netsuite.com/services/NetSuitePort_2009_1?c=" +  YourNetsuiteAccountNumber);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; NetSuitePortType nsws =  NetSuiteServiceLocator.getNetSuitePort(endpoint);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; nsws.setMaintainSession(true); // maintain this session&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; nsws.setTimeout(1000 * 60 * 60 * 2); // set 2 hour timeout period&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; Passport passport = new Passport();&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; passport.setEmail("youremail@blahblah.com"); // email address used to  log into netsuite (must be set up as web service user)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; passport.setPassword("password1234");&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; passport.setAccount(YourNetsuiteAccountNumber);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; nsws.login(passport);&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-7496750371405109935?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/7496750371405109935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=7496750371405109935' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/7496750371405109935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/7496750371405109935'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2009/12/logging-into-netsuite-with-coldfusion.html' title='Logging into Netsuite with ColdFusion or Java - Code Sample'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-1924965479939779323</id><published>2009-03-16T11:01:00.000-05:00</published><updated>2009-03-16T11:02:05.092-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coldfusion'/><category scheme='http://www.blogger.com/atom/ns#' term='netsuite'/><category scheme='http://www.blogger.com/atom/ns#' term='web services'/><title type='text'>Netsuite web service and ColdFusion 8</title><content type='html'>I recently posted updates to &lt;a href="http://www.aftergeek.com/search/label/netsuite"&gt;previous posts&lt;/a&gt; regarding problems with web service connections between ColdFusion MX 7 and Netsuite, but thought this matter warranted a post of its own. Perhaps you have experienced issues creating a web service connection with Netsuite, whether it's through the ColdFusion Administrator or through the CFINVOKE tag or CreateObject function. The fact of the matter is that Netsuite's extraordinarily complex and deeply nested WSDL, which references XSD within XSD and beyond, appears to give ColdFusion a headache, and it silently gives up on compiling the stub objects before the job completes (there are over 600 java stub class files generated for Netsuite's 2008_1 WSDL). I have now confirmed that this an issue in CF8 in addition to CFMX7. I get around this by &lt;a href="http://www.aftergeek.com/2008/04/process-for-generating-netsuite-java.html"&gt;compiling the stub classes from the command line and dumping them into a nice, portable jar file&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;I will readily admit that it is possible I am missing something in this problem. There could very well be a timeout issue with ColdFusion compiling the stub classes, but it doesn't throw an error. And while you can easily adjust the timeout for WSDL2Java from the command line, I am not aware of a way to increase the timeout in the ColdFusion Administrator. If anyone else is aware of a way to do this, I'd love to hear from you in the comments or an email. If I get an answer, I'll be certain to post it here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-1924965479939779323?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/1924965479939779323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=1924965479939779323' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/1924965479939779323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/1924965479939779323'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2009/03/netsuite-web-service-and-coldfusion-8.html' title='Netsuite web service and ColdFusion 8'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-6209913525929142563</id><published>2009-02-15T11:42:00.000-06:00</published><updated>2009-02-15T11:43:30.089-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coldfusion'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='AXIS'/><title type='text'>Apache Axis (java.io.IOException: Non nillable element '[ElementName]' is null)</title><content type='html'>Much has been written on this frustrating error (seemingly most of it along the lines of "Hey, guys, I have this problem. Anyone know what's up? ... Hello? Guys? Anyone?" Often, the are older posts referencing a known and now-fixed issue in Apache Axis 1.2 involving elements whose "nillable" attribute is set to true. However, when no value is set for that element, the aforementioned java.io.IOException is thrown. In my case, I was using ColdFusion MX7, a jar file comprised of java stub classes ripped with WSDL2Java, and a version of Axis 1.2 customized to address an issue in accessing NetSuite's web service. The element in question was a datetime field, of type java.util.Calendar specifically. Due to the web service provider's documented business logic, setting a value in that field would actually result in the request being rejected outright, so setting a dummy value was not an option. Additionally, I tried setting the element to an unitialized Calendar object, but that resulted in the same error as not setting it at alll.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Solution&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;My first course of action was to upgrade to Axis 1.4. No dice. I still was getting the same error. My next step was to delete the jar file I'd made of the WSDL classes from the CFusionMX7/lib directory (if you've read previous posts here regarding ColdFusion and its interactions with Axis, you understand why I tend to lean toward that method instead of using the auto-compiled stub classes in the ColdFusion installation directory), added the stub class file directory I was using to the Java classpath in ColdFusion administrator, and restarted the CF service. Blam! Problem fixed.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Post Mortem&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;To be honest, I am not 100% certain what the issue was, but I strongly suspect this was an issue between the version of Java that had compiled the Axis jar file distribution, the version of Java our ColdFusion installation was running on, and/or the version of Java I had used to manually compile the stub class jar file I had been using previously. If anyone else has had this issue and has further details into the "why" of the fix, I'd love to hear them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-6209913525929142563?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/6209913525929142563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=6209913525929142563' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/6209913525929142563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/6209913525929142563'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2009/02/apache-axis-javaioioexception-non.html' title='Apache Axis (java.io.IOException: Non nillable element &apos;[ElementName]&apos; is null)'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-5622912540999481489</id><published>2008-05-29T14:55:00.002-05:00</published><updated>2008-05-29T14:58:22.336-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile technology'/><category scheme='http://www.blogger.com/atom/ns#' term='annoyances'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><category scheme='http://www.blogger.com/atom/ns#' term='commentary'/><title type='text'>Automatic page refreshes are so 1998</title><content type='html'>Dear &lt;a href="http://www.cnn.com/"&gt;CNN.com&lt;/a&gt;, &lt;a href="http://blog.mnspeak.com/aggregator/"&gt;MNspeak&lt;/a&gt;, and the internet at large, I don't know if you are aware, but automatically refreshing the web page I'm reading is extraordinarily annoying and completely unnecessary. There was once a time many years ago where automatically refreshing a news site or any number of other types of pages was useful. These days, however, I believe it actually drags down your reader's experience on your site. If I want to see the latest version of your page, I will click the Reload button in my web browser, thank you very much. I do not care to be in the middle of reading something then have the page suddenly reload itself. Now I have to hunt down what I was reading and pick up where I left off, assuming the item I was reading wasn't old enough to be archived off of the front page. And God forbid it's a longer item, and I have to go through this process multiple times before I finish.&lt;br /&gt;&lt;br /&gt;To eliminate any confusion, the type of page refresh I'm talking about includes those in &amp;lt;meta ...&amp;gt; tags and javascript setTimeout() and setInterval() calls that unceremoniously reload the entire page you are viewing. Why in this day and age of RSS, AJAX, Flash, and hell, even iframes would you still use auto-refreshes? I will concede that there might continued value for mobile versions of websites where timely delivery of information is key (think live sports scores and stock prices), as there are still a great number of mobile devices that do not support Flash (iPhone anyone?). But taking away a reader's choice in the age of Web 2.0 and ubiquitous connectivity tells me that you just don't get it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-5622912540999481489?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/5622912540999481489/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=5622912540999481489' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/5622912540999481489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/5622912540999481489'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2008/05/automatic-page-refreshes-are-so-1998.html' title='Automatic page refreshes are so 1998'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-3050615199926596567</id><published>2008-04-16T14:08:00.007-05:00</published><updated>2011-02-24T14:17:36.689-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coldfusion'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='netsuite'/><category scheme='http://www.blogger.com/atom/ns#' term='web services'/><title type='text'>Process for generating Netsuite java files, compiling stub classes, and creating jar file</title><content type='html'>&lt;b&gt;UPDATE February 24, 2011: &lt;/b&gt; I recently learned as of ColdFusion 8 that you can set wsdl2java command line parameters when calling CreateObject to create a web service object. &lt;a href="http://www.aftergeek.com/2011/02/netsuite-and-coldfusion-compiling-stub.html"&gt;Complete details are in this post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;UPDATE March 8, 2009: &lt;/b&gt; Since this was first posted, I verified that the incomplete stub file compilation issue appears to be an issue in ColdFusion 8, as well. I haven't tested it, but I have no reason to believe that the jar file trick described below wouldn't work in 8.&lt;br /&gt;&lt;br /&gt;If you've read other posts I've done about ColdFusion and Netsuite integration, you may recall that I solved an issue with MX7 refusing to compile all of the necessary stub files from the Netsuite WSDL by manually compiling them and creating a jar file. This used to be a huge hassle for me each time Netsuite released an upgrade. This time, however, it should be a ridiculously smooth process. I know the following steps will look intimidating if you are not familiar with &lt;a href="http://ant.apache.org/"&gt;Apache ANT&lt;/a&gt; or &lt;a href="http://ant.apache.org/ivy/"&gt;Apache Ivy&lt;/a&gt;, but trust me, they will make your life a lot easier.&lt;br /&gt;&lt;br /&gt;Someone recently wrote me with some questions about this process, and I thought I would post this for everyone's benefit. Or at least I hope it's for your benefit and not your additional confusion. *grin*&lt;br /&gt;&lt;br /&gt;Oh, and a couple of notes. I have not done any development in ColdFusion 8, so some of the steps and issues below may not apply. In fact, this entire process may not be necessary at all for all I know. Also I'm quite green when it comes to ANT and Ivy, so as with everything else I post here, if there is a more efficient way to any of these steps, I'd love to hear from you.&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;Assumptions for this process (modify as necessary for your environment):&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;[Netsuite WSDL version] = 2_6_0&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;[CF install path] = C:\CFusionMX7&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;You are using ColdFusion MX 7 (Notes for ColdFusion 8      will be given where necessary)&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;[java install path] = C:\j2sdk1.4.2_12&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;[major java version that your CF installation uses] =      1.4&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;[stub class target] = C:\netsuiteclasses\2_6_0&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;[Apache Axis version] = 1.2.1&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;Prerequisites: &lt;/span&gt;&lt;/p&gt;&lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;You have Apache ANT 1.7.0 or higher installed and have      all environment variables set per its installation documentation. (Download      binaries and see documentation at http://ant.apache.org/)&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;You have Apache Ivy 2.0.0 beta 2 or higher installed      and have all environment variables set per its installation documentation.      (Download binaries and see documentation at http://ant.apache.org/ivy/)&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;A version of the java jdk compatible with the java runtime      version of your ColdFusion installation.&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;b style=""&gt;&lt;i style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;NOTE: This item is only for ColdFusion MX7 and likely      does not apply to ColdFusion 8.&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt; A modified version of the Apache Axis 1.2 jar file      (axis.jar) (distributed by Netsuite to fix a login issue caused by how cookies      are passed by Axis in the HTTP header) was copied into &lt;b style=""&gt;&lt;i style=""&gt;[CF      install path]&lt;/i&gt;&lt;/b&gt;\lib, and the ColdFusion server was restarted      afterward.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;Generate and Compile Process:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;1. Generate java class source code (windows dos window).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;[java install path]\bin\java -cp &lt;b style=""&gt;&lt;i style=""&gt;[CF install path]&lt;/i&gt;&lt;/b&gt;\runtime\lib\wsdl2java.jar org.apache.axis.wsdl.WSDL2Java -v -O 120 -a -o &lt;b style=""&gt;&lt;i style=""&gt;[stub class target]&lt;/i&gt;&lt;/b&gt; https://webservices.netsuite.com/wsdl/&lt;b style=""&gt;&lt;i style=""&gt;[Netsuite WSDL version]&lt;/i&gt;&lt;/b&gt;/netsuite.wsdl&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;2. Create Apache ANT build file.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;Create a file named build.xml in &lt;b style=""&gt;&lt;i style=""&gt;[stub class target] &lt;/i&gt;&lt;/b&gt;with the following contents (pay attention to bracketed areas that you will need to modify accordingly):&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;span style=""&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;project name="netsuite_&lt;b style=""&gt;&lt;i style=""&gt;[Netsuite WSDL Version]&lt;/i&gt;&lt;/b&gt;" default="init" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant"&amp;gt;&lt;br /&gt;&lt;span style=""&gt; &lt;/span&gt;&amp;lt;description&amp;gt;&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;Build file for Netsuite &lt;b style=""&gt;&lt;i style=""&gt;[Netsuite WSDL Version]&lt;/i&gt;&lt;/b&gt; WSDL.&lt;br /&gt;&lt;span style=""&gt; &lt;/span&gt;&amp;lt;/description&amp;gt;&lt;br /&gt;&lt;span style=""&gt; &lt;/span&gt;&amp;lt;property name="classes.dir" location="classes" /&amp;gt;&lt;br /&gt;&lt;span style=""&gt; &lt;/span&gt;&amp;lt;property name="dist.dir" location="dist" /&amp;gt;&lt;br /&gt;&lt;span style=""&gt; &lt;/span&gt;&amp;lt;property name="dist.jarfile" value="netsuite_&lt;b style=""&gt;&lt;i style=""&gt;[Netsuite WSDL Version]&lt;/i&gt;&lt;/b&gt;.jar" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt; &lt;/span&gt;&amp;lt;target name="resolve" description="--&amp;gt; retrieve dependencies with ivy"&amp;gt;&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&amp;lt;ivy:retrieve pattern="${lib.dir}/[type]/[artifact]-[revision].[ext]" conf="runtime"/&amp;gt;&lt;br /&gt;&lt;span style=""&gt; &lt;/span&gt;&amp;lt;/target&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt; &lt;/span&gt;&amp;lt;target name="clean" description="Clean up output directories."&amp;gt;&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&amp;lt;delete dir="${classes.dir}" /&amp;gt;&lt;br /&gt;&lt;span style=""&gt; &lt;/span&gt;&amp;lt;/target&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt; &lt;/span&gt;&amp;lt;target name="compile" depends="-init" description="Compile all sources."&amp;gt;&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&amp;lt;mkdir dir="${classes.dir}" /&amp;gt;&lt;br /&gt;&lt;span style=""&gt;   &lt;/span&gt;&amp;lt;javac srcdir="." destdir="${classes.dir}" debug="true" deprecation="true"&amp;gt;&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;&amp;lt;compilerarg line="-source &lt;b style=""&gt;&lt;i style=""&gt;[major java version that your CF installation uses]&lt;/i&gt;&lt;/b&gt;" /&amp;gt; &amp;lt;!—NOTE: The “-source” option may not be necessary for CF8 --&amp;gt;&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;&amp;lt;compilerarg line="-classpath &lt;b style=""&gt;&lt;i style=""&gt;[CF install path]&lt;/i&gt;&lt;/b&gt;\lib\axis.jar; &lt;b style=""&gt;&lt;i style=""&gt;[CF install path]&lt;/i&gt;&lt;/b&gt;\lib\jaxrpc.jar" /&amp;gt;&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&amp;lt;/javac&amp;gt;&lt;br /&gt;&lt;span style=""&gt; &lt;/span&gt;&amp;lt;/target&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;span style=""&gt;&lt;span style=""&gt; &lt;/span&gt;&amp;lt;target name="rebuild" depends="clean,compile" description="Cleanly compiles all sources." /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;span style=""&gt;&lt;span style=""&gt; &lt;/span&gt;&amp;lt;target name="-init"&amp;gt;&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&amp;lt;!-- Create the time stamp. --&amp;gt;&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&amp;lt;tstamp&amp;gt;&lt;br /&gt;&lt;span style=""&gt;   &lt;/span&gt;&amp;lt;format property="TODAY_US" pattern="dd MMM yyyy HH.mm" locale="en_US" /&amp;gt;&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&amp;lt;/tstamp&amp;gt;&lt;br /&gt;&lt;span style=""&gt; &lt;/span&gt;&amp;lt;/target&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt; &lt;/span&gt;&amp;lt;target name="dist" depends="rebuild" description="Creates the binary distribution."&amp;gt;&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&amp;lt;mkdir dir="${dist.dir}/${TODAY_US}" /&amp;gt;&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&amp;lt;jar basedir="${classes.dir}" destfile="${dist.dir}/${TODAY_US}/${dist.jarfile}" /&amp;gt;&lt;br /&gt;&lt;span style=""&gt; &lt;/span&gt;&amp;lt;/target&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;3. Create Apache Ivy config file.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;Create a file named ivy.xml in &lt;b style=""&gt;&lt;i style=""&gt;[stub class target] &lt;/i&gt;&lt;/b&gt;with the following contents (pay attention to bracketed areas that you will need to modify accordingly):&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;span style=""&gt;&amp;lt;ivy-module version="2.0"&amp;gt;&lt;br /&gt;&lt;span style=""&gt; &lt;/span&gt;&amp;lt;info organisation="apache" module="hello-ivy"/&amp;gt;&lt;br /&gt;&lt;span style=""&gt; &lt;/span&gt;&amp;lt;dependencies&amp;gt;&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&amp;lt;dependency org="apache" name="axis" rev="&lt;b style=""&gt;&lt;i style=""&gt;[Apache Axis version]&lt;/i&gt;&lt;/b&gt;"/&amp;gt;&lt;br /&gt;&lt;span style=""&gt; &lt;/span&gt;&amp;lt;/dependencies&amp;gt;&lt;br /&gt;&amp;lt;/ivy-module&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;4. Compile files and generate jar file.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;Open a Command Prompt window and change directories to your &lt;b style=""&gt;&lt;i style=""&gt;[stub class target]&lt;/i&gt;&lt;/b&gt; directory and run the following command:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 5pt 0in;"&gt;&lt;span style=""&gt;ant dist&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;You may see multiple warning messages throughout the compile process, but as long as you see a &lt;i style=""&gt;BUILD SUCCESSFUL&lt;/i&gt; message upon completion, there shouldn’t be any problems. Copy the generated jar file (the output of the ant command should indicate the filename and location of the jar file) to &lt;b style=""&gt;&lt;i style=""&gt;[CF install path]&lt;/i&gt;&lt;/b&gt;\lib and restart your ColdFusion Application Server service.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-3050615199926596567?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/3050615199926596567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=3050615199926596567' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/3050615199926596567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/3050615199926596567'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2008/04/process-for-generating-netsuite-java.html' title='Process for generating Netsuite java files, compiling stub classes, and creating jar file'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-9044859955268119059</id><published>2008-03-12T14:23:00.001-05:00</published><updated>2008-03-12T14:24:43.515-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web x.x'/><category scheme='http://www.blogger.com/atom/ns#' term='annoyances'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='commentary'/><title type='text'>Jeremy to Microsoft Live "quality" bot: you're doing it wrong</title><content type='html'>I don't recall exactly how long ago it was, perhaps a few weeks or months ago, but I started noticing a few odd referrals in the traffic stats for one of my other blogs. At the time, this was happening at least a couple times a day. I would see one-word searches coming from search.live.com. It took me a few days to realize that this was some sort of Microsoft search bot. Since it only hit my site a couple of times a day, I didn't think much of it. But this morning I checked my stats, and out of 128 unique visitors for the day up to that point, 18 of those visits were from the live.com bots. That comes to 14% of my traffic. I did a search and learned that these are "quality control" bots of some sort. Really, Microsoft? What is so special about your search engine that you have to skew everyone's traffic statistics? I have not once had a human referred to my site by the live.com search engine, so I have no qualms over hiding my site from their bots entirely, or generating completely bogus content specifically for them. Either way, I've set up my web stat software so that range of IP addresses is filtered. Surely Microsoft can find a better method of controlling their quality. Wait, look who I'm talking about. Never mind.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-9044859955268119059?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/9044859955268119059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=9044859955268119059' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/9044859955268119059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/9044859955268119059'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2008/03/jeremy-to-microsoft-live-quality-bot.html' title='Jeremy to Microsoft Live &quot;quality&quot; bot: you&apos;re doing it wrong'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-4008859295328954743</id><published>2008-02-27T12:08:00.004-06:00</published><updated>2008-03-11T11:12:46.025-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='event handling'/><title type='text'>Save yourself the effort of defining the same code for multiple javascript events</title><content type='html'>If you ever have a situation where you basically want to run the same code for a bunch of different events on an html element like an input, it's a pain in the ass to maintain if you change the logic and need to change all of the event parameters. I discovered you can directly call another event so you don't have to define and maintain the same code in multiple places. I realize you can do something very similar by using addEventListener, but I just thought this was kind of cool.&lt;br /&gt;&lt;br /&gt;e.g.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;// define the onchange event and call the same code for onmouseover, onmouseout, and onclick&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;// Now if you make changes to onchange, you don't need to copy those changes to the other events.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;&lt;span style="color: rgb(0, 0, 153);"&gt;input&lt;/span&gt; ... &lt;span style="color: rgb(153, 0, 0);"&gt;onchange&lt;/span&gt;="&lt;span style="color: rgb(0, 102, 0);"&gt;myFunctionDoYouLikeIt(this, 'valueadded', false, 0); compareSomeValues('placeholder', false, true, 'the google webz');&lt;/span&gt;"&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;           onmouseover&lt;/span&gt; = "&lt;span style="color: rgb(0, 102, 0);"&gt;eval(this.onchange + '\;anonymous()\;');&lt;/span&gt;"&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;           onmouseout&lt;/span&gt; = "&lt;span style="color: rgb(0, 102, 0);"&gt;eval(this.onchange + '\;anonymous()\;');&lt;/span&gt;"&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;          onclick &lt;/span&gt;= "&lt;span style="color: rgb(0, 102, 0);"&gt;eval(this.onchange + '\;anonymous()\;');&lt;/span&gt;" /&amp;gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-4008859295328954743?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/4008859295328954743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=4008859295328954743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/4008859295328954743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/4008859295328954743'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2008/02/save-yourself-effort-of-defining-same.html' title='Save yourself the effort of defining the same code for multiple javascript events'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-7089267108345526059</id><published>2008-02-22T17:17:00.010-06:00</published><updated>2009-08-12T10:07:41.397-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Twitter widget'/><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='blogspot'/><category scheme='http://www.blogger.com/atom/ns#' term='Twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='blogger widget'/><title type='text'>Combine multiple Twitter feeds on Blogger</title><content type='html'>&lt;span style="background-color:lightyellow;"&gt;&lt;span style="color:red;font-weight:bold;"&gt;NOTICE August 12, 2009:&lt;/span&gt; If you are having issues with the hosted version of my twitter widget (i.e. you are not linking to a local copy of the javascript file on your own server), it looks like my bandwidth has been exceeded on my googlepages account. Frankly, I can't imagine how that tiny .js file could exceed my bandwidth, but perhaps someone with a very popular site is linking to it. In any case, I'm working to find a permanent, alternate host. For the latest updates on this issue, check back here or follow my &lt;a href="http://www.twitter.com/aftergeek"&gt;Twitter feed&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Oh, and I probably will have to find a paid host, so if you are a user of this widget and would like to help out, a donation would be appreciated (the Donate button is in the right hand column on this page).&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;UPDATE 1/25/2009: I have received a few feature and bug fix requests. That &lt;a href="http://spreadsheets.google.com/pub?key=p5uwoRqWqX_0Np4apMld8Tg"&gt;list is available here&lt;/a&gt;. I have a fairly packed schedule through the spring and mid-summer of 2009, so it may be quite some time before I am able to complete these. But you are welcome to &lt;a href="http://afterglide.googlepages.com/multitweet.js"&gt;download a copy of the code&lt;/a&gt;, add these or other features you'd like to see, and fire it back to me. This code is non-commercial, not-for-profit open source, so I will gladly give full credit to whomever contributes code if I decide to include it in the version that is distributed here. And while this is not-for-profit, if you should wish to thank me for the time I've invested in this project, I am happy to accept even the smallest PayPal donation (see the Donate button to the right on this page). ;-) And now back to the original post.&lt;br /&gt;&lt;br /&gt;This Blogger widget I created is based on the original widget provided by Twitter. This one, however, will let you combine multiple users' feeds into one and sort them by time. This is as opposed to showing your entire timeline, including everyone you follow. Perhaps someone has already written something like this, but damned if I could find it. Constructive criticism is welcome, particularly since this is my first crack at creating a blogger widget.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://afterglide.googlepages.com/addtwittermultitoblogger"&gt;Configure and add the widget here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I promise to post more documentation for this feature later, as there are other nifty things you can do to control the style of the output, including creating a "mask" to define the format of your output, and inclusion of data like the user profile, user homepage link, user profile image, etc.&lt;br /&gt;&lt;br /&gt;Caveats: The number you are defining in the form does NOT mean that only the last n posts from your pool of users will appear. It means that the last n posts from each user will be shown. For example, you've set the twitter number to 3. User1 posted a single twitter 4 days ago, but User2 posted 4 twitters today alone. You will see the last 3 posts from User1 and the last 3 posts from User2.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-7089267108345526059?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/7089267108345526059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=7089267108345526059' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/7089267108345526059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/7089267108345526059'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2008/02/combine-multiple-twitter-feeds-on.html' title='Combine multiple Twitter feeds on Blogger'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-4613348617426664879</id><published>2008-02-12T10:54:00.002-06:00</published><updated>2008-03-07T12:46:53.074-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='netsuite'/><title type='text'>A warning regarding calculating sales commissions in NetSuite</title><content type='html'>Are you seeing discrepancies in your sales commission figures? It recently came to our attention that when calculating sales commissions, NetSuite's sales commission module ignores the first line item on a transaction (invoice, sales order, etc) if it is a markup item, discount item, etc. They claim this is by design but cannot produce any existing documentation that would have clued us in on this "useful feature." Unfortunately for us, a large portion of invoices had markup items or discount items on the first line. Since NetSuite continues to insist this is not a bug, I ended up having to write a script to re-sort the item lists for all of our 2008 invoices for sales commissions to be properly calculated. We have verified that this fixes the aforementioned issue. However, I have to wonder what would happen if an invoice ONLY had markup or discount items on it. Sure, you can argue "why on earth would you not have a service or inventory item on your invoice??" Then I would slap you and remind you that it's the principle.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-4613348617426664879?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/4613348617426664879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=4613348617426664879' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/4613348617426664879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/4613348617426664879'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2008/02/warning-regarding-calculating-sales.html' title='A warning regarding calculating sales commissions in NetSuite'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-1333591754258910621</id><published>2007-11-06T10:08:00.001-06:00</published><updated>2007-11-06T10:08:58.147-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='peripherals'/><category scheme='http://www.blogger.com/atom/ns#' term='annoyances'/><title type='text'>Screensaver won't start in Windows XP</title><content type='html'>For several months -- perhaps as much as year -- I grew increasingly frustrated as my screensaver on my Windows XP desktop abso-friggin-lutely refused to start in any semblance of a consistent manner. At first, it seemed to have something to do with Outlook 2003. I'd turn off Outlook, and it seemed to kick in correctly when I left it idle. As it turned out, that perceived behavior was a red herring. Given that I have an LCD monitor, I was growing concerned that burn-in was inevitable. Unfortunately I simply didn't have the time to look into it. That and the fact that I primarily use my laptop put this annoyance near the bottom of my long to-do list.&lt;br /&gt;&lt;br /&gt;Finally last weekend, I had enough. I had googled this issue half-heartedly when it first started happening, but this time google yielded immediate results. Users in several forums having similar problems had wireless USB mice like my Logitech laser mouse. The suggested solution? Shut down the computer, unplug the mouse, attach a USB to PS/2 connector, and plug it into the PS/2 mouse port. After one false start where I wasn't paying attention and plugged my Logitech webcam into the PS/2 port instead of my mouse ("Why isn't my webcam working? Durrrrrrr..."), I plugged her in, booted up, and lo and behold, it worked. My screen saver has been consistently working for the last several days with no issues whatsoever. I suspect that using the PS/2 port instead of USB will mean I'll lose nifty features like low battery warning messages from the Logitech monitoring software, but I can live with that if it prolongs the life of my monitor.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-1333591754258910621?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/1333591754258910621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=1333591754258910621' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/1333591754258910621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/1333591754258910621'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2007/11/screensaver-wont-start-in-windows-xp.html' title='Screensaver won&apos;t start in Windows XP'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-6492896718588682927</id><published>2007-03-10T16:28:00.000-06:00</published><updated>2007-03-10T16:29:31.026-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal computers'/><title type='text'>Check if your computer is DST07 ready</title><content type='html'>&lt;a href="http://dst.umn.edu/"&gt;http://dst.umn.edu&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-6492896718588682927?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/6492896718588682927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=6492896718588682927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/6492896718588682927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/6492896718588682927'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2007/03/check-if-your-computer-is-dst07-ready.html' title='Check if your computer is DST07 ready'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-9002874180685164411</id><published>2007-02-20T23:28:00.000-06:00</published><updated>2007-02-20T23:32:32.085-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hdtv'/><category scheme='http://www.blogger.com/atom/ns#' term='photos'/><category scheme='http://www.blogger.com/atom/ns#' term='products'/><title type='text'>The new tv is here!</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_GKsvkSWeHpE/Rdufltad9wI/AAAAAAAAAL8/UDNwBqCNmaQ/s1600-h/HDTVbox.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_GKsvkSWeHpE/Rdufltad9wI/AAAAAAAAAL8/UDNwBqCNmaQ/s400/HDTVbox.jpg" alt="" id="BLOGGER_PHOTO_ID_5033792478711248642" border="0" /&gt;&lt;/a&gt;Check out that foxy box&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_GKsvkSWeHpE/Rdufg9ad9vI/AAAAAAAAAL0/YbT--mBcBng/s1600-h/HDTVfront.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_GKsvkSWeHpE/Rdufg9ad9vI/AAAAAAAAAL0/YbT--mBcBng/s400/HDTVfront.jpg" alt="" id="BLOGGER_PHOTO_ID_5033792397106870002" border="0" /&gt;&lt;/a&gt;Sex-ay!&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_GKsvkSWeHpE/RdufcNad9uI/AAAAAAAAALs/fYR7m6TOr0g/s1600-h/HDTVside.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_GKsvkSWeHpE/RdufcNad9uI/AAAAAAAAALs/fYR7m6TOr0g/s400/HDTVside.jpg" alt="" id="BLOGGER_PHOTO_ID_5033792315502491362" border="0" /&gt;&lt;/a&gt;It's thinner than Kate Moss!&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_GKsvkSWeHpE/RdufXNad9tI/AAAAAAAAALk/edB_xXh1X3s/s1600-h/HDTVpicHeroes.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_GKsvkSWeHpE/RdufXNad9tI/AAAAAAAAALk/edB_xXh1X3s/s400/HDTVpicHeroes.jpg" alt="" id="BLOGGER_PHOTO_ID_5033792229603145426" border="0" /&gt;&lt;/a&gt;Checking out a high def recording of "Heroes" before I reluctantly head back to work&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_GKsvkSWeHpE/RdufPdad9sI/AAAAAAAAALc/zHUbL32YlVM/s1600-h/HDTVpic1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_GKsvkSWeHpE/RdufPdad9sI/AAAAAAAAALc/zHUbL32YlVM/s400/HDTVpic1.jpg" alt="" id="BLOGGER_PHOTO_ID_5033792096459159234" border="0" /&gt;&lt;/a&gt;Even the news looks amazing! Check out the detail on Belinda's leather jacket. It's like you can reach out and rub it. And let me tell you, I intend to as soon as the restraining order she has against me expires.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_GKsvkSWeHpE/RdufLdad9rI/AAAAAAAAALU/SjRu1F0PluY/s1600-h/HDTVpic2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_GKsvkSWeHpE/RdufLdad9rI/AAAAAAAAALU/SjRu1F0PluY/s400/HDTVpic2.jpg" alt="" id="BLOGGER_PHOTO_ID_5033792027739682482" border="0" /&gt;&lt;/a&gt;A pregnant Belinda tries to grab my man purse. No! That's my purse! Bad!&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_GKsvkSWeHpE/RdufENad9qI/AAAAAAAAALM/UpJGuIJWYdM/s1600-h/HDTVjizzrag.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-9002874180685164411?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/9002874180685164411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=9002874180685164411' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/9002874180685164411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/9002874180685164411'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2007/02/new-tv-is-here.html' title='The new tv is here!'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_GKsvkSWeHpE/Rdufltad9wI/AAAAAAAAAL8/UDNwBqCNmaQ/s72-c/HDTVbox.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-6318608324609141583</id><published>2007-02-17T14:13:00.001-06:00</published><updated>2008-03-07T12:47:25.768-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hdtv'/><category scheme='http://www.blogger.com/atom/ns#' term='photos'/><title type='text'>Preparing a nursery for your HDTV</title><content type='html'>The other night I looked behind my mismatched tv stand and realized that now was as good a time as any to get rid of the mass of cluttered wires behind it, have of which weren't even connected to anything. I disconnected my receiver, speakers, soon-to-be-replaced Tivo Series2, cable box, and television, and set them all aside to sort through the mess. I made a pile of trash to be thrown away, a pile of cables I need to use, and a pile of good cables that I don't need now, but would be handy to have around. Two problems resulted. First, my living room is now a cluttered mess. Second, I discovered that my 9 year old tv stand has become quite wobbly in its advanced years, and I do not trust it to hold my &lt;a href="http://aftergeek.blogspot.com/2007/02/hdtv-is-on-its-way.html"&gt;new LCD tv&lt;/a&gt;, which will be delivered early next week. So now I'm scanning craigslist for used furniture.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_GKsvkSWeHpE/RddgoUTOtEI/AAAAAAAAAJs/HMkBbOZhs4E/s1600-h/PreHDMess.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_GKsvkSWeHpE/RddgoUTOtEI/AAAAAAAAAJs/HMkBbOZhs4E/s320/PreHDMess.jpg" alt="" id="BLOGGER_PHOTO_ID_5032597354370217026" border="0" /&gt;&lt;/a&gt;Regardless of my lack of entertainment-related furniture, I had to get the new Tivo Series3 configured and ready to go so the cable guy could install the &lt;a href="http://en.wikipedia.org/wiki/CableCARD"&gt;CableCards&lt;/a&gt; today. It was the first time he'd ever configured them in a Tivo. He was a little shakey on the menus, and I had to point out to him that he'd installed the first card in the wrong slot (the slot label and the menu screen both clearly said to use the bottom slot first, but he must not have noticed that). He did just fine in the end though, and everything is now up and running smoothly. I can now record my shows in HD, but will have to wait until next week to actually watch them in HD.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_GKsvkSWeHpE/Rddg1ETOtFI/AAAAAAAAAJ0/XGXrbD40h7w/s1600-h/tivomug.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_GKsvkSWeHpE/Rddg1ETOtFI/AAAAAAAAAJ0/XGXrbD40h7w/s320/tivomug.jpg" alt="" id="BLOGGER_PHOTO_ID_5032597573413549138" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_GKsvkSWeHpE/Rddg_0TOtGI/AAAAAAAAAJ8/0CcvzaDSYDE/s1600-h/jeremyhiding.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_GKsvkSWeHpE/Rddg_0TOtGI/AAAAAAAAAJ8/0CcvzaDSYDE/s320/jeremyhiding.jpg" alt="" id="BLOGGER_PHOTO_ID_5032597758097142882" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-6318608324609141583?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/6318608324609141583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=6318608324609141583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/6318608324609141583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/6318608324609141583'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2007/02/preparing-nursery-for-your-hdtv.html' title='Preparing a nursery for your HDTV'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_GKsvkSWeHpE/RddgoUTOtEI/AAAAAAAAAJs/HMkBbOZhs4E/s72-c/PreHDMess.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-4277699913667465819</id><published>2007-02-13T17:59:00.000-06:00</published><updated>2007-02-17T14:17:01.152-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hdtv'/><title type='text'>The HDTV is on its way</title><content type='html'>After a final trip to Best Buy to check out the picture on a 65" Mitsubishi DLP and a couple other models, I finally realized that I would never really be happy with the picture on a DLP. Yes, I know some of you have DLP's of your own and swear by them, but I decided once and for all on Saturday that I was going with a flat panel. The viewing angle is better, you can mount it on a wall, and if I want to get a bigger tv for my living room a few years down the road, I can easily move it down to my basement or another room.&lt;br /&gt;&lt;br /&gt;On Sunday, I did several hours of searching deals and reading and rereading reviews online and it came down to the very highly rated &lt;a href="http://www.sonystyle.com/is-bin/INTERSHOP.enfinity/eCS/Store/en/-/USD/SY_DisplayProductInformation-Start?ProductSKU=KDL46XBR2&amp;Dept=tvvideo&amp;amp;CategoryName=tv_flatpanel_46to52"&gt;Sony KDL46XBR2&lt;/a&gt; 46" 1080p LCD or the &lt;a href="http://www.samsung.com/Products/TV/LCDTV/LNS5296DXXAA.asp"&gt;Samsung LN-S5296D&lt;/a&gt; 52" 1080p LCD. Sonys run quite a bit more expensive then the Samsungs, so the 52" Sony was too far outside of my price range. Both had been extremely high on my list previously, but reading some angry posts on AVSForum about developing issues of "clouds" and uneven brightness gave me pause. However, more recent posts have had encouraging tales of people fixing the issues themselves. For those unwilling to fix it themselves, Samsung has been extremely responsive and has replaced sets with older manufacturing dates with newer ones with little pushback. Sony, on the other hand, has denied up and down the problem even existed. With all of this in mind, I decided once and for all that the Samsung was my tv.&lt;br /&gt;&lt;br /&gt;Unfortunately there was the issue of price. When I set out on this HDTV quest, I had set a relatively firm budget of $3,000 for the set itself, which left room for other expenses like an extended warranty, Tivo Series3, HDMI cables, a power conditioner, and possibly an upconverting DVD player (I'm sitting tight on an actual high def player until the HD DVD vs Blu-Ray war is settled or prices for both come down significantly). The cheapest I could find the Samsung at a reputable online store was in the $3,400-$3,500 range. But I've always said I could justify away the The Rapture. *grin* In reviewing my financial situation, I realized that in my cautious delay on making the purchase, I had socked quite a bit more money away into my tv fund. I did some figure checking, and it added up. As a bonus, I'll still be able to pay my mortgage and can continue to avoid the all Ramen diet! Oh, and continue to save for retirement and have extra funds for a rainy day, blah blah blah. *grin*&lt;br /&gt;&lt;br /&gt;So brace yourself. Here is the rundown. Is it polite to talk about specific dollar amounts? Eh...that's debatable, but I'm posting this in hopes that it will help others make a decision for themselves. I want them to know just what they're getting into financially, too.&lt;br /&gt;&lt;br /&gt;I could have paid less for the television itself, but I decided to get it from newegg.com. I have purchased a lot of computer parts and equipment from them in the last 6 years, I know they are trustworthy, and they seemed to have the least outrageous prices on the extended warranty.&lt;br /&gt;&lt;br /&gt;Samsung LN-S5296D from newegg: ~$3600&lt;br /&gt;Shipping: ~$100&lt;br /&gt;5 year extended in-home service/replacement warranty: ~$450&lt;br /&gt;Tivo Series3 from DigitalHotBuy: ~$610&lt;br /&gt;Shipping: ~$15&lt;br /&gt;Geek Squad branded voltage regulating UPS from Best Buy w/ tax: ~$100&lt;br /&gt;HDMI cables, two 4 foot cables: $12 (a guy I know who works for Best Buy used his employee discount to buy then--normally $60 each, or $120!!!!! Can't beat a 90% discount!!)&lt;br /&gt;&lt;br /&gt;Total so far: ~$4887 (gulp!)&lt;br /&gt;&lt;br /&gt;Despite having more than enough money on hand to pay this stuff off, suffice it to say that I will be taking a more miserly approach to spending until that credit card balance is zero! Just in case my hot water heater decides to crap out or my car decides to spontaneously explode in my garage.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-4277699913667465819?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/4277699913667465819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=4277699913667465819' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/4277699913667465819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/4277699913667465819'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2007/02/hdtv-is-on-its-way.html' title='The HDTV is on its way'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-139041623281131891</id><published>2007-02-01T22:45:00.000-06:00</published><updated>2007-02-01T22:48:27.594-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='consumer electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='annoyances'/><category scheme='http://www.blogger.com/atom/ns#' term='products'/><category scheme='http://www.blogger.com/atom/ns#' term='commentary'/><title type='text'>XBStore and XBStore.com</title><content type='html'>Lately when doing my semi-regular searches for HDTV models I've noticed a new "store" consistently popping up with the lowest prices on televisions, cameras, and other products. XBStore.com. Their prices are significantly and suspiciously lower than everyone else. For a while, I couldn't find a single word about them online. Well, it turns out there's a good reason why. A WHOIS lookup of xbstore.com reveals the domain was just registered just a couple of weeks ago to someone overseas (Spain?). And finally tonight I found &lt;a href="http://forums.slickdeals.net/showthread.php?sduid=0&amp;t=438424"&gt;this thread&lt;/a&gt;. The site only takes wire transfers. How. Very. Suspicious. Now I have no proof, no firsthand experience with this site, and it is within the realm of possibility that they are legit. However, my personal opinion is that all signs point to XBStore and XBStore.com being a slapdash scam site. So buyer beware. If it sounds too good to be true, it probably is.      Registrant:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;XBStore Company&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; Calle Mayor, 40&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; Zaragoza, NA 50001&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; ES&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; Domain name: XBSTORE.COM&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; Administrative Contact:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    Melendez, Rodrigo  contact@xbstore.com&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    Calle Mayor, 40&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    Zaragoza, NA 50001&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    ES&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    +34.942940116    Fax: +34.942940116&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; Technical Contact:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    Melendez, Rodrigo  contact@xbstore.com&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    Calle Mayor, 40&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    Zaragoza, NA 50001&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    ES&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    +34.942940116    Fax: +34.942940116&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; Registrar of Record: TUCOWS, INC.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; Record last updated on 20-Jan-2007.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; Record expires on 18-Jan-2008.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; Record created on 18-Jan-2007.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; Domain servers in listed order:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    NS7.IXWEBHOSTING.COM   71.18.255.99&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    NS8.IXWEBHOSTING.COM   71.18.216.3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; Domain status: clientTransferProhibited&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;                clientUpdateProhibited&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-139041623281131891?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/139041623281131891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=139041623281131891' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/139041623281131891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/139041623281131891'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2007/02/xbstore-and-xbstorecom.html' title='XBStore and XBStore.com'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-143829053163063853</id><published>2007-01-09T16:41:00.000-06:00</published><updated>2007-01-09T16:44:09.093-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='consumer electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile technology'/><title type='text'>iPhone is all things to all people...except me</title><content type='html'>I was jazzed that Apple finally &lt;a href="http://crave.cnet.com/8300-1_105-1-2.html?tag=next&amp;amp;tag=next"&gt;announced its iPhone&lt;/a&gt;, an iPod/PDA/mobile phone combo that industry wags have drooled over for years. It's more than I had hoped for. It's form factor is miniscule. It's impossibly thin. It runs OS X, has a touch screen interface (you use your finger, so no worries about losing a stylus), has a 2 MP camera, plays movies, and songs, and on and on and on. But here is why I will not be purchasing the iPhone when it comes out. For starters, it's only available from Cingular. If it were everything I wanted in an all-in-one portable device, I would consider switching carriers, but it is not. And at $600 with a 2 year Cingular contract, that is a huge ouch in the checking account. But moreover, at 8 GB of storage, it's not there yet. I've long said that I will not purchase an iPod or iPod hybrid device unless it has at least 20 GB of solid state memory. That's solid state, as in flash. Now that the iPhone is more than a pipe dream, I will add that I will not purchase an iPod until that 20 GB version is available in the iPhone. I have enough crap to carry around and keep track of day to day. This is why I don't own an iPod or other MP3 player right now. If it doesn't fit on my wrist or in my pants pocket, I'm not taking it with me. Notably, this is probably yet another reason why I don't have children. *grin*&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-143829053163063853?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/143829053163063853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=143829053163063853' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/143829053163063853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/143829053163063853'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2007/01/iphone-is-all-things-to-all.html' title='iPhone is all things to all people...except me'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-8427954149848818141</id><published>2007-01-08T15:08:00.000-06:00</published><updated>2007-01-08T15:51:48.723-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hdtv'/><title type='text'>HDTV search update</title><content type='html'>I realize price and technology will always be changing rapidly, but I'm becoming more and more conflicted about whether to buy now or wait. The signs seem to indicate that we are sitting on the edge of a crucial turning point for both technology and price in the HDTV world. TV-related product announcements are coming pretty much hourly from CES today. Samsung is moving entirely from short-lived bulbs to LEDs rated for 20,000 hours in its rear projection displays (though I was underwhelmed with the picture on their first gen LED rear projo). Budget manufacturers are coming out with 50 to 60 inch LCDs and plasmas priced around $3,000 over the coming months. And as of last week, you can get a 47 inch 1080p display from Vizio for under $2,000. This is sure to get some of the big boys to drop prices on their products, as well.&lt;br /&gt;&lt;br /&gt;My excitement over getting a new tv is growing, and my patience is wearing thinner, but my brain is telling me to wait it out just a little longer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-8427954149848818141?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/8427954149848818141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=8427954149848818141' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/8427954149848818141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/8427954149848818141'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2007/01/hdtv-search-update.html' title='HDTV search update'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-4336559415170588803</id><published>2006-12-28T00:05:00.001-06:00</published><updated>2008-03-07T12:48:00.444-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='peripherals'/><title type='text'>Want to buy a cheap scanner?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://h10025.www1.hp.com/ewfrf-JAVA/Doc/images/c00127010.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px;" src="http://h10025.www1.hp.com/ewfrf-JAVA/Doc/images/c00127010.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;UPDATE: Sold through the magic of craigslist!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I used my cache of Christmas gift Best Buy cards to buy a new printer (an &lt;a href="http://www.amazon.com/Photosmart-C5180-Printer-Scanner-Copier/dp/B000GWMJVA"&gt;HP Photosmart 5180&lt;/a&gt;) to replace my trusty Epson that died after 8 years of faithful service. This one is super fancy n' junk. It's an all-in-one, so there's a scanner built in. That means I no longer need my minimally used HP Scanjet 2200c (see the specs &lt;a href="http://reviews.cnet.com/HP_ScanJet_2200c/4505-3136_7-5962438.html"&gt;here&lt;/a&gt; and &lt;a href="http://cgi.ebay.com/HP-ScanJet-2200c-FlatBed-Scanner-LikeNew-No-Reserve_W0QQitemZ220064153874QQihZ012QQcategoryZ44978QQssPageNameZWDVWQQrdZ1QQcmdZViewItem"&gt;here&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Everything you need is here. You get the scanner, power cable, and USB cable. The software and drivers can be &lt;a href="http://h10025.www1.hp.com/ewfrf/wc/softwareCategory?lc=en&amp;cc=us&amp;amp;amp;amp;amp;amp;dlc=en&amp;product=57854&amp;amp;lang=en&amp;amp;"&gt;downloaded here&lt;/a&gt;. According to HP's site, it should work with pretty much any  USB-equipped computer running a version of Windows from the last decade. This is not a super high end scanner, but does a good job of scanning photos and a fantastic job of scanning documents for archival or copying purposes.&lt;br /&gt;&lt;br /&gt;$25 firm. Cash only. Local buyers only. You agree to meet in or near the Eagan or Lakeville area (where I live and work, respectively) to pay and pickup. Why so many stipulations? Because I'm not desperate to unload it. Just looking to reduce my clutter and keep a good scanner from collecting dust in a closet. If I can't find a buyer, I'll just give it to a friend or family member (man, I'm a demanding salesperson).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-4336559415170588803?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/4336559415170588803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=4336559415170588803' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/4336559415170588803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/4336559415170588803'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2006/12/want-to-buy-cheap-scanner.html' title='Want to buy a cheap scanner?'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-8756121140919550828</id><published>2006-12-16T14:00:00.001-06:00</published><updated>2008-03-12T09:58:16.977-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>Questions on embedding MP3's in a web page</title><content type='html'>March 12, 2008 UPDATE:&lt;br /&gt;&lt;br /&gt;I'm not sure if this option was available when I wrote the original post (see below), but now Blogger makes it extremely easy to embed RSS and iTunes friendly references to media files in posts.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Go to &lt;a href="http://www.blogger.com/home"&gt;Blogger's Dashboard&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Click the &lt;span style="font-style: italic;"&gt;Settings&lt;/span&gt; link for the blog you want to change.&lt;/li&gt;&lt;li&gt;Click the &lt;span style="font-style: italic;"&gt;Formatting&lt;/span&gt; tab.&lt;/li&gt;&lt;li&gt;Scroll down to &lt;span style="font-style: italic;"&gt;Show Link Fields&lt;/span&gt; and select Yes from the dropdown.&lt;/li&gt;&lt;li&gt;Create a new post (or edit an old one). You should now see a &lt;span style="font-style: italic;"&gt;Link&lt;/span&gt; field and &lt;span style="font-style: italic;"&gt;Add enclosure link&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Click &lt;span style="font-style: italic;"&gt;Add enclosure link&lt;/span&gt;. An &lt;span style="font-style: italic;"&gt;Enclosures&lt;/span&gt; section should appear.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Under the &lt;span style="font-style: italic;"&gt;Enclosures&lt;/span&gt; section, enter the URL to your MP3 or other media file. Blogger should automatically populate the value for the &lt;span style="font-style: italic;"&gt;MIME Type&lt;/span&gt; field when you tab to (or click on) the next field.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;&lt;br /&gt;I'm playing around with podcasting (not really in the true iTunes sense yet, just embedding the file a blog entry) and am looking for information on how to prevent &amp;lt;embed&amp;gt; tag from automatically downloading the file. The idea is that I don't want my blog home page or archive pages that have multiple audio posts on them to take forever to load because they're downloading 4 or 5 MP3's. I know you can prevent the file from playing automatically, but I also don't want it to start downloading the file until the play button is pressed.&lt;br /&gt;&lt;br /&gt;For that matter, perhaps &amp;lt;embed&amp;gt; is not the right solution. Is there a decent free flash player that anyone has experience with? I tried a few that I found via google, and wasn't too happy with them. Free is key. I'm hosting my MP3 files at &lt;a href="http://www.ourmedia.org/"&gt;OurMedia&lt;/a&gt;. Ideally the flash file itself would be a hosted situation, but I suppose I could find a free web host if it was something I had to download and host myself.&lt;br /&gt;&lt;br /&gt;Another solution I'm considering is kind of workaround. Blogspot doesn't let you include javascript in your post html, but you can include it in your layout template. So I thought about assigning a specific id or class to the direct link I include in each audio post. e.g. &amp;lt;a href="http://blahdeblah.org/my.mp3" class="blogcast" &amp;gt;. The javascript would search each page for all links of class "blogcast" and prepend that section with a play button that when pressed would call a javascript function that would replace the button with the embed tag set to automatically play the file. Whew! Seems convoluted, but my attraction to that option is that it keeps things free. I'm cheap like that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-8756121140919550828?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/8756121140919550828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=8756121140919550828' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/8756121140919550828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/8756121140919550828'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2006/12/questions-on-embedding-mp3s-in-web-page.html' title='Questions on embedding MP3&apos;s in a web page'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-842972877001416898</id><published>2006-12-16T13:51:00.000-06:00</published><updated>2006-12-16T13:59:41.405-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='customer service'/><category scheme='http://www.blogger.com/atom/ns#' term='health and fitness'/><category scheme='http://www.blogger.com/atom/ns#' term='products'/><category scheme='http://www.blogger.com/atom/ns#' term='commentary'/><title type='text'>Extended warranties--sometimes it's worth it</title><content type='html'>Usually I poo poo the whole extended warranty thing, but in the rare cases I've caved to the extended warranty pitch, I seem to have had the strangest luck with picking the right products. When I bought a brand new NordicTrack Summit 4500X treadmill from Sears a little over 4 years ago, I didn't balk at the extended warranty because unless you think you'll use it a few times then hang laundry from it, that is the exact sort of product that seems like a prime candidate for shelling out for added coverage. If it's a decent brand, they'll usually cover the motor for the life of the product, but there are so many other potential mechanical and electronic failure points on treadmills. The display and controls, the incline motor, the belt rollers, on and on. Now take about 200+ pounds of a slab of pasty beef like me slamming against it for 5+ miles a day several months out of the year, and that treadmill is getting some serious use and abuse.&lt;br /&gt;&lt;br /&gt;I figure in the time I've owned my treadmill, I have easily run close to 2,500 miles on it, if not more. So color me impressed that the thing didn't need a warranty repair until about a year ago when the belt started slipping to the point I couldn't tighten it. They came to my house and fixed it, no hassle, no fuss. A little over a month ago, the belt slippage situation happened again. This time the technician informed me he would have to replace the entire belt deck. Yikes! It took a few weeks for the parts to arrive, then a week or two more before he could show up again to make the repair. But he fixed it, and it now works like a champ.&lt;br /&gt;&lt;br /&gt;Last Thursday, the day after my last repair appointment, the technician called me to essentially say, "Oh, by the way, I forgot to tell you that I noticed your treadmill's frame is cracked. That is not a repairable defect, so I emailed the company, and they will be in touch with you about giving you a new treadmill." Nice!&lt;br /&gt;&lt;br /&gt;Tuesday I arrived home to find an UPS express letter from Icon Fitness propped against my front door. It contained the form I would need to request my replacement and a letter explaining that I needed to go to their website, pick a new treadmill from any of their brands, and call them to check the stock before mailing in the form. Ugh...seems very 20th century, but whatever. I was given a budget of 1,499.99 (and I won't be charged tax or shipping and handling), as that is evidently what I paid for the first treadmill (I don't recall paying that much, but I wasn't about to argue).&lt;br /&gt;&lt;br /&gt;Since the tread I own is a NordicTrack, and I was quite pleased with it, I decided to go with a another of their models. I went to the website, and they had suggested retail prices and "web only" prices. I wasn't sure which price was going to count against my 1,499.99, so I called the warranty company and left a message (it's nearly impossible to get through to a live operator, even waiting on hold). Last night one of them called me back, and fortunately, it sounds like I can go by the web only price. He also told me that when I picked something out, give him a call, and he'd give his honest opinion on the product. Boosting his credibility, he told me straight out, "Don't bother getting any of the models with a flat panel tv built in. We've had a lot of problems with those." A tv wasn't going to be a selling point, but that was good to know.&lt;br /&gt;&lt;br /&gt;Right now, I plan on getting NordicTrack Elite 2900. Retail is $1999, and the web only price is $1499. Perfect! I left a message yesterday for the very helpful Icon Fitness support rep, and he called me back, gave it his thumbs up, and said they have it in stock. I faxed them the form last night and will follow up with a phone call Monday (I faxed them the form via a web to fax service I've never used before, so I want to make sure they got it).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-842972877001416898?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/842972877001416898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=842972877001416898' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/842972877001416898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/842972877001416898'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2006/12/extended-warranties-sometimes-its-worth.html' title='Extended warranties--sometimes it&apos;s worth it'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-8404279167876167359</id><published>2006-12-14T22:08:00.000-06:00</published><updated>2006-12-14T23:34:59.780-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='consumer electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='hdtv'/><title type='text'>The HDTV hunt continues</title><content type='html'>I stopped by Ultimate Electronics in Burnsville on the way home from work tonight to get a gander at a few more HDTV models. I was pleased to see they had one of the new Samsung HL-S5679W units on display. It's a 56 inch LED-based DLP rear projection. LED in DLPs is quite new. I was excited after reading about it because the LEDs are supposed to last for 20,000 hours. That's 6+ years if you watch 8 hours of tv every single day. The CNET review I read of this one raved about the color reproduction, but knocked off points for poor black levels and a "hot spot" or a spot on the screen noticeably brighter than the rest. Well now I've seen one in action, and sitting next to a Toshiba and a JVC bulb-based DLP, the Samsung's picture was underwhelming to say the least. The brightness was extremely uneven. I stooped down, looked from different angles, and tried every which way, but could not get a good viewing angle on the thing. Not impressed. So draw a line through that option.&lt;br /&gt;&lt;br /&gt;NuVision, evidently a relative newcomer in the states in the tv market, also has an &lt;a href="http://www.nuvision.com/ledlp/"&gt;LED-based 52 inch DLP&lt;/a&gt;, but I have yet to see one in action for myself. I've heard good reviews on this model, but I'm hesitant to drop 4 digits on a first generation product from a company whose history of quality I'm not familiar with.&lt;br /&gt;&lt;br /&gt;One thing I got out of my window shopping tonight was that some of the other tv models that haven't rated all that great in CNET's reviews looked just fine to me (I'm reading other sites, Consumer Reports, but I just trust CNET more on consumer electronics reviews--they are picky, but not ridiculously so like some hardcore videophile reviews). I also loved the picture on the Samsung 1080p LCD flat panels and was blown away by the picture on the Sony flat panels. But those sell at a premium.&lt;br /&gt;&lt;br /&gt;Time will tell. Soon, my pretties. Soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-8404279167876167359?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/8404279167876167359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=8404279167876167359' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/8404279167876167359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/8404279167876167359'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2006/12/hdtv-hunt-continues.html' title='The HDTV hunt continues'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-2699916184896628665</id><published>2006-12-10T14:59:00.000-06:00</published><updated>2006-12-10T15:05:27.484-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='consumer electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='hdtv'/><category scheme='http://www.blogger.com/atom/ns#' term='television'/><title type='text'>In the market for an HDTV</title><content type='html'>I've decided the time is nearing to upgrade my 27-inch old school CRT television to something more 21st century. Granted, I briefly owned a 50 inch rear projection DLP HDTV about 4 years ago, but severe buyer's remorse guilted me into returning it. DLP HDTV's were relatively new at the time, giving the unit a price tag north of $4,000. The moment I got home with it, I realized that spending that much money was not a prudent decision at the time, nor was it smart to buy an HDTV without fully understanding all of the available options and technologies.&lt;br /&gt;&lt;br /&gt;This time, however, I'm prepared. I'm up to snuff on the technology (or so I think). I'm reading reviews and comparing prices online. I've stopped by stores to see display models in action. I also have a pretty firm budget. Here are my criteria and nice-to-haves:&lt;br /&gt;&lt;br /&gt;-50 inches or larger.&lt;br /&gt;-Must be 1080p and have at least 2 HDMI inputs that accept 1080p/60fps (I'm aware that 1080i vs 1080p makes little difference for movies and tv at 24fps, but I foresee using the tv for gaming from my PC)&lt;br /&gt;-Built-in QAM/ATSC highly preferable, but not required.&lt;br /&gt;-CableCARD nice, but not required.&lt;br /&gt;-$3,000 or less.&lt;br /&gt;&lt;br /&gt;I had originally decided on buying either the Sony &lt;a href="http://reviews.cnet.com/Sony_KDS_60A2000/4505-6484_7-31901232.html?tag=txt"&gt;KDS-60A2000&lt;/a&gt; ($2200+) or the &lt;a href="http://reviews.cnet.com/Sony_KDS_R60XBR2/4505-6484_7-31901228.html"&gt;KDS-R60XBR2&lt;/a&gt; ($3000+). Both are 60 inch rear projection &lt;a href="http://en.wikipedia.org/wiki/Liquid_crystal_on_silicon"&gt;LCOS&lt;/a&gt; models. The former has 2 1080p HDMI inputs, while the latter has 3. The latter also has an updated LCOS engine, a slightly brighter picture, and comes with a replacement bulb.&lt;br /&gt;&lt;br /&gt;Every review I read said the picture on both models was essentially the same as the other, save a glitch or two in earlier production models of the KDS-60A2000. While the KDS-R60XBR2 had a brighter picture, it was not significantly brighter. There was also the somewhat shady issue where Sony took the unusual step of not providing a life expectancy on the projection bulb for the newer model. Is that why they provided the extra bulb? Is it going to fade out in a year, sticking me with an annual $300 bulb replacement bill? Nuts to that! So I decided on the KDS-60A2000. It's been around a while, and is proven technology.&lt;br /&gt;&lt;br /&gt;Then I read in several forums about color uniformity and other issues that have popped up with the KDS-60A2000 after a few months of use. Some people had it, others didn't. But it was enough to give me pause. Then I thought if that was the case, perhaps the newer model was a better choice. But will people be complaining of the same thing for that one a few months down the road? Then I began thinking about the issue of bulb replacement. The thought of having to dole out a hefty $250-$300 on a bulb every 2 or 3 years dimmed the appeal of a rear projection model, despite getting massive size for the buck.&lt;br /&gt;&lt;br /&gt;It also occurred to me that in the next 2 or 3 years, I'll probably want to buy at least one more HDTV to replace the one I watch while running on my treadmill. Perhaps  going smaller and getting a plasma or LCD model is the way to go. 40 to 50 inches now, and 3 years from now, I'll probably be able to get a 70 inch or larger LCD or even OLED for the same price, if not cheaper. Ok, back to square one.&lt;br /&gt;&lt;br /&gt;After several evenings of additional reading and research, I now think I've settled on the Samsung LNS5296D. It's 52 inches, has a 6000:1 contrast ratio, an 8ms response time, 1080p over the VGA input and HDMI inputs, and all of the other goodies I need. Some over at avsforum.com have complained of its overscan, but I can't say I'm personally all that concerned about it, though I will definitely try to see one in action in a store before purchasing one.&lt;br /&gt;&lt;br /&gt;The downside? Currently the cheapest price I could find from a reputable online retailer was over $3500. But I'm not in a hurry. I'm optimistic that prices will come down in January. After Christmas and before the Superbowl is a prime time for tv purchases, and retailers will be trying to lure men into getting something to watch the big game on. For me, I'm not terribly concerned about the timing. If the prices and features aren't in line with my requirements, then I'm willing to wait a little longer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-2699916184896628665?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/2699916184896628665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=2699916184896628665' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/2699916184896628665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/2699916184896628665'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2006/12/in-market-for-hdtv.html' title='In the market for an HDTV'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-1838007125494879042</id><published>2006-12-06T17:32:00.001-06:00</published><updated>2006-12-06T17:32:48.606-06:00</updated><title type='text'>James Kim</title><content type='html'>I wanted to comment on sad news of the discovery of the body of James Kim. You may have been following &lt;a href="http://www.cnn.com/2006/US/12/06/missing.family/index.html"&gt;this story in the national news&lt;/a&gt; lately. He, his wife, and two young daughters became stranded in the Oregon wilderness while returning home from a Thanksgiving trip. Finally this past Saturday, he left them in a desperate attempt to find help. On Monday, his wife and children were rescued, but the search for him continued.&lt;br /&gt;&lt;br /&gt;Kim was a senior editor for &lt;a href="http://www.cnet.com/"&gt;CNET.com&lt;/a&gt;, a computer and consumer technology news and review website. He wrote regular reviews of digital music products and appeared regularly in vlog postings to CNET's sister site &lt;a href="http://crave.cnet.com/"&gt;Crave&lt;/a&gt;. He also appeared each week in a segment broadcast to Tivo subscribers.&lt;br /&gt;&lt;br /&gt;I had come to enjoy Kim's writings and appearances and trusted his opinions on digital entertainment products. Such an offhand and indirect connection seems trivial, but today's news hit me like a punch to the gut. I feel terribly for the wife, baby, and 4 year old daughter he left behind.&lt;br /&gt;&lt;br /&gt;It's amazing the bonds we sometimes unknowingly form with people we've never met or likely never will meet. Perhaps that's why the community of bloggers seem to huddle together. We somehow feel involved in each others lives (and in some cases actually do become involved). When one of us feels joy, we celebrate with them. And when one of us suffers tragedy, we feel as though it were happening to a friend or family member. So here's to James Kim. He will be missed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-1838007125494879042?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/1838007125494879042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=1838007125494879042' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/1838007125494879042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/1838007125494879042'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2006/12/james-kim.html' title='James Kim'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-7229882649362459264</id><published>2006-12-06T15:05:00.000-06:00</published><updated>2006-12-06T15:07:38.773-06:00</updated><title type='text'>James Kim found dead</title><content type='html'>Sadly, reports are coming in that CNET senior editor James Kim has been found dead days after he left his stranded family in search of help and the subsequent rescue of his wife and daughters.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cnn.com/2006/US/12/06/missing.family/index.html"&gt;Full story at CNN&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-7229882649362459264?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/7229882649362459264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=7229882649362459264' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/7229882649362459264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/7229882649362459264'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2006/12/james-kim-found-dead.html' title='James Kim found dead'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-1402166447517773091</id><published>2006-12-01T23:54:00.000-06:00</published><updated>2006-12-04T19:44:33.386-06:00</updated><title type='text'>UPDATED: CNET senior editor James Kim and family missing</title><content type='html'>December 4, 2006 UPDATE: Kim's wife and children have been found safe and have been transported by helicopter to a hospital. James Kim evidently set out on foot 2 days ago to seek help for the family, but has not been heard from since. Find the latest &lt;a href="http://news.com.com/CNET+editors+wife%2C+daughters+found+search+continues/2100-1028_3-6140676.html"&gt;here&lt;/a&gt; and &lt;a href="http://www.jamesandkati.com/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you keep up with a lot of the tech sites and blogs, you may already have run across this story today, but James Kim, a senior editor with CNET, has gone missing along with his wife and two daughters during a road trip in Oregon. For more information on the story and info on how to provide tips to police, see the full story at &lt;a href="http://news.com.com/Road+search+under+way+for+missing+CNET+editor/2100-1028_3-6140118.html?tag=cnetfd.ld1"&gt;CNET.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I very much enjoy Kim's appearances and postings on &lt;a href="http://www.cnet.com/"&gt;CNET&lt;/a&gt; and &lt;a href="http://crave.cnet.com/"&gt;Crave&lt;/a&gt;, as well as his review segments on the 15 minute episodes of "CNET.com's tech tips and reviews" available through Tivo's subscription service. I hope they are found safe and sound.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sfgov.org/site/police_index.asp?id=37978"&gt;San Francisco Police Department's missing persons flyer&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-1402166447517773091?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/1402166447517773091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=1402166447517773091' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/1402166447517773091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/1402166447517773091'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2006/12/cnet-senior-editor-james-kim-and-family.html' title='UPDATED: CNET senior editor James Kim and family missing'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-107710266365113510</id><published>2006-11-16T21:59:00.000-06:00</published><updated>2006-11-19T18:54:35.002-06:00</updated><title type='text'>Mystery of the missing wsdl stub class: another clue(?)</title><content type='html'>As previously &lt;a href="http://aftergeek.blogspot.com/2006/09/coldfusion-and-netsuite-cautionary.html"&gt;bemoaned here&lt;/a&gt; and &lt;a href="http://aftergeek.blogspot.com/2006/11/preventing-coldfusion-from-recompiling.html"&gt;here&lt;/a&gt;, I ran into a problem with ColdFusion failing to generate and compile all of the necessary java classes from &lt;a href="http://www.netsuite.com/"&gt;Netsuite's&lt;/a&gt; wsdl when invoking a new web service object. Meanwhile, I run wsdl2java from the command line, and get each and every one of the 500+ java source code files from the wsdl.&lt;br /&gt;&lt;br /&gt;Tell me, is &lt;a href="https://webservices.netsuite.com/wsdl/v2_5_0/netsuite.wsdl"&gt;Netsuite's wsdl&lt;/a&gt; really so complex that ColdFusion misses some of the class files? I find that very hard to believe. In any case, one of my coworkers today discovered that ColdFusion seems to come with two copies of Apache Axis, which includes the wsdl2java class. Apparently axis is not only in [cfusion install]/lib/axis.jar, but is also mixed in with other packages in [cfusion install]/runtime/lib/webservices.jar. So that makes me wonder if ColdFusion is using the version that I was not calling from the command line. I think it warrants a little test. Hopefully I'll get a chance tomorrow. I'll post my findings here.&lt;br /&gt;&lt;br /&gt;UPDATE: I actually found a THIRD place where wdsl2java exists in the CF installation. I was able to test two of them, but both generated all of the java source files. Curious indeed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-107710266365113510?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/107710266365113510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=107710266365113510' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/107710266365113510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/107710266365113510'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2006/11/mystery-of-missing-wsdl-stub-class.html' title='Mystery of the missing wsdl stub class: another clue(?)'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-8548114507297802424</id><published>2006-11-10T14:10:00.003-06:00</published><updated>2009-03-08T10:37:51.108-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coldfusion'/><category scheme='http://www.blogger.com/atom/ns#' term='SOAP'/><category scheme='http://www.blogger.com/atom/ns#' term='netsuite'/><category scheme='http://www.blogger.com/atom/ns#' term='web services'/><title type='text'>Preventing ColdFusion from recompiling web service stub classes</title><content type='html'>&lt;b&gt;UPDATE March 8, 2009: &lt;/b&gt; Since this was first posted, I verified that the incomplete stub file compilation issue appears to be an issue in ColdFusion 8, as well. I haven't tested it, but I have no reason to believe that the workaround described below wouldn't work in 8.&lt;br /&gt;&lt;br /&gt;As I have been for the past few months, I'm currently working on an interface &lt;a href="http://www.netsuite.com"&gt;Netsuite&lt;/a&gt; via their web service. As posted here previously, it's brought up a few interesting challenges using ColdFusion. One annoyance was that following a ColdFusion service restart the next call to the Netsuite web service would take for-friggin-ever. I figured out it was because ColdFusion was refreshing and recompiling the stub Java classes generated from Netsuite's very deep and complex WSDL. Their WSDL results in over 500 distinct class files. From my local machine on which I was developing the code, it would take 5 to 10 minutes. When you're testing, screwing things up, and restarting ColdFusion regularly, this gets to be more than a little tedious.&lt;br /&gt;&lt;br /&gt;I looked online to see if I could find any information about preventing ColdFusion from refreshing the stub classes, but no dice. I could only find information about how to force it to recompile. Not what I wanted. But perhaps someone out there knows of a server setting or some sort of parameter to prevent refreshing from the WSDL.&lt;br /&gt;&lt;br /&gt;Now you might ask why I wouldn't want to make sure I have the latest and greatest from Netsuite. The problem is that for some unknown reason, ColdFusion refuses to generate and compile all of the necessary stub classes, so I can't rely on that process to get me everything I need. Perhaps the WSDL is too nested and complex? But that doesn't make sense because ColdFusion (I would presume) is using wsdl2java, which comes with Apache Axis. So why when I run wsdl2java from the command line does it successfully generate each and every java source file? I'm still scratching my head over that one. In any case, to ensure I had all necessary stub classes, I manually ran wsdl2java and compiled all of the resulting java files into class files from the command line, then whisked them away into a jar file that I dumped in the \CFusionMX7\lib directory.&lt;br /&gt;&lt;br /&gt;Once I figured that the delay after the service restart was due to the stub classes being refreshed and ruled out preventing it with server settings or parameters, I realized I could simply avoid creating a ColdFusion web service object entirely by directly creating a java object from the stub classes. Unfortunately, the renders useless some of ColdFusion's handy functions like getSOAPRequest and getSOAPResponse.&lt;br /&gt;&lt;br /&gt;Example: &lt;br /&gt;&lt;pre&gt;&amp;lt;!--- Create a plain old coldfusion web service object (could also do a cfinvoke).---&amp;gt; &lt;br /&gt;&amp;lt;cfset ws = CreateObject("webservice", "https://webservices.netsuite.com/wsdl/v2_5_0/netsuite.wsdl")&amp;gt; &lt;br /&gt;&amp;lt;!--- call some function from that web service ---&amp;gt; &lt;br /&gt;&amp;lt;cfset ws.MakeSomethingHappen()&amp;gt; &lt;br /&gt;&amp;lt;!--- dump the entire soap request  ---&amp;gt; &lt;br /&gt;&amp;lt;cfdump var="#getSOAPRequest(ws)#"&amp;gt; &lt;br /&gt;&amp;lt;!------ --- ----- ------ --------- ------------- ---&amp;gt;&lt;br /&gt;&amp;lt;!--- Create an equivalent java object directly from the service locator stub class (the class name "[web service name]ServiceLocator" and method "get[web service name]Port()" will be what to look for; i.e. NetsuiteServiceLocator.getNetsuitePort(), MyWebServiceNameServiceLocator.getMyWebServiceNamePort(), etc) ---&amp;gt; &lt;br /&gt;&amp;lt;cfset ws = CreateObject("java", "com.netsuite.webservices.platform_2_5.NetSuiteServiceLocator").getNetSuitePort()&amp;gt; &lt;br /&gt;&amp;lt;!--- call the same function from that web service as the previous example ---&amp;gt; &lt;br /&gt;&amp;lt;cfset ws.MakeSomethingHappen()&amp;gt; &lt;br /&gt;&amp;lt;!--- dump the entire soap request (it's a little messy, but you can always write your own udf that returns the same thing)... ---&amp;gt; &lt;br /&gt;&amp;lt;cfdump var="#ws._getService().getCall().getMessageContext().getRequestMessage().getSOAPEnvelope().toString()#"&amp;gt; &lt;br /&gt;&amp;lt;!--- ... or dump only the request body ---&amp;gt; &lt;br /&gt;&amp;lt;cfdump var="#ws._getService().getCall().getMessageContext().getRequestMessage().getSOAPBody().toString()#"&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-8548114507297802424?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/8548114507297802424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=8548114507297802424' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/8548114507297802424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/8548114507297802424'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2006/11/preventing-coldfusion-from-recompiling.html' title='Preventing ColdFusion from recompiling web service stub classes'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-115765798884495593</id><published>2006-09-07T14:35:00.000-05:00</published><updated>2006-11-09T04:48:17.335-06:00</updated><title type='text'>ColdFusion and Netsuite, a cautionary tale</title><content type='html'>This post is about &lt;a href="http://www.netsuite.com"&gt;Netsuite's&lt;/a&gt; web service, but perhaps you've run into similar issues trying to use other web services in ColdFusion. For several weeks, I have been working on a project to integrate a ColdFusion-based system with Netsuite through Netsuite's web service. Netsuite's documentation for the web service is somewhat spotty, but I now realize it was not as entirely inaccurate as I had thought. Here is a somewhat simplified breakdown of the issue.&lt;br /&gt;&lt;br /&gt;-When first creating an instance of a given web service using &lt;span style="font-style: italic;"&gt;CreateObject("webservice", http://url.of.wsdl)&lt;/span&gt;, ColdFusion generates stub class files using Apache Axis' wsdl2java. However, I found that not all of the java class files I needed were being compiled. For example, a class file was never generated for CustomerAddressbookList or SearchMultiSelectField. I would try wiping the stubs directory, restarting the ColdFusion service, and running the code to create the web service object again with the exact same results. At first, I compensated by using javac to compile the missing class files myself, however other issues popped up such as...&lt;br /&gt;&lt;br /&gt;-Calls to several methods in certain classes like Customer and CustomerSearchBasic would complain about the datatypes of objects being passed to them. For example, according to the source code in CustomerSearchBasic.java and Netsuite's own sample code, the setInternalId method in CustomerSearchBasic expected an object of type SearchMultiSelectField. However, running &lt;a href="http://www.bennadel.com/index.cfm?dax=blog:206.view"&gt;Ben Nadel's useful function&lt;/a&gt; to return all of the exposed methods and expected datatypes for a given class showed that CustomerSearchBasic's setInternalId method was actually expecting a RecordRef object. &lt;a href="http://aftergeek.blogspot.com/2006/08/netsuite-coldfusion-java-and-lot-of.html"&gt;See a more detailed example here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;-Further adding to the confusion, if there are references to SearchMultiSelectField in CustomerSearchBasic, and a class file for SearchMultiSelectField was never compiled, how on earth is CustomerSearchBasic compiling without failing completely?&lt;br /&gt;&lt;br /&gt;Finally at the end of my rope, I write a script to compile all 397 individual source code files generated by wsdl2java. Lo and behold, that fixed it! Suddenly all of my previous problems were gone, all of the methods were accepting the documented datatypes, and life was good.&lt;br /&gt;&lt;br /&gt;But there are still some open questions. Namely, what the heck was that all about? How did some of these classes compile correctly if other classes they referenced hadn't been compiled at all? What happened that changed the datatypes expected by so many of those methods? Is this an issue with ColdFusion? With Apache Axis? If you've run into similar issues connecting to web services using ColdFusion or have any insight into what could have caused this, I'd love to get an earful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-115765798884495593?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/115765798884495593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=115765798884495593' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/115765798884495593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/115765798884495593'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2006/09/coldfusion-and-netsuite-cautionary.html' title='ColdFusion and Netsuite, a cautionary tale'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-115677420986891456</id><published>2006-08-28T09:01:00.001-05:00</published><updated>2009-03-16T10:53:42.304-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coldfusion'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='netsuite'/><title type='text'>Netsuite, ColdFusion, Java, and a lot of gray hair</title><content type='html'>Ok, so I'm more likely to lose my hair over this than have it turn gray, but I'm working with creating a ColdFusion interface with Netsuite's web service. I'm running into the source of a common complaint from other developers trying to use Netsuite's web service: the documentation is spotty, and what is available is often outright wrong, leaving us to a maddening cycle of herky jerky trial and error. Some of my issues have been solved handily by Netsuite's support staff through their user forum and a conversation with one of their engineers, but this one is particularly puzzling and troubling. &lt;br /&gt;&lt;br /&gt;Here is a paraphrased version of an issue I posted in the Netsuite support forum (note that I had moved to writing the code directly in Java since most of the sample code in the documentation is in Java, and I wanted to ensure my problems were not ColdFusion-specific). If you have any ideas, I'm all ears, but if I find or am given a solution, I will be certain to post it here.&lt;br /&gt;&lt;br /&gt;I'm trying to write what I thought would be a simple search that will return all of the subcustomers of a given customer. I'm trying to get my feet wet with the following Java sample code from page 91 of the Platform Guide. I'm using the 2.0 wsdl, and the Platform Guide document I'm reading also says it's for 2.0.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;RecordRef[] rr = new RecordRef[] {new RecordRef("1", Recordtype.customer), new RecordRef("2", RecordType.customer), new RecordRef("3", RecordType.customer)};&lt;br /&gt;CustomerSearchBasic customerSearchBasic = new CustomerSearchBasic();&lt;br /&gt;customerSearchBasic.setInternalId(new SearchMultiSelectField(rr, SearchMultiSelectFieldOperator.anyOf));&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;When I try to run this code, it complains about my trying to pass a SearchMultiSelectField object to the setInternalId method. Looking at the java source generated by Axis 1.2 wsdl2java, it does look like the setInternalId method for CustomerSearchBasic is supposed to accept a SearchMultiSelectField object as a parameter. Here is the code snippet from the generated CustomerSearchBasic.java file:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;public void setInternalId(com.netsuite.webservices.platform.core_2_0.SearchMultiSelectField internalId) {&lt;br /&gt;        this.internalId = internalId;&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;However, I became suspicious and found some code to retrieve the list of available methods and parameter types from the CustomerSearchBasic object. It appeared that the setInternalId parameter actually is expecting an array of RecordRef objects. &lt;br /&gt;&lt;br /&gt;So I compiled and ran the following. No errors!&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;RecordRef[] rr = new RecordRef[] {new RecordRef("1", Recordtype.customer), new RecordRef("2", RecordType.customer), new RecordRef("3", RecordType.customer)};&lt;br /&gt;CustomerSearchBasic customerSearchBasic = new CustomerSearchBasic();&lt;br /&gt;customerSearchBasic.setInternalId(rr);&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Am I missing something? Is it possible I'm somehow referencing an old java class from the 1.3.2 wsdl?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-115677420986891456?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/115677420986891456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=115677420986891456' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/115677420986891456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/115677420986891456'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2006/08/netsuite-coldfusion-java-and-lot-of.html' title='Netsuite, ColdFusion, Java, and a lot of gray hair'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-115445586503459156</id><published>2006-08-01T13:08:00.002-05:00</published><updated>2008-03-11T11:07:01.619-05:00</updated><title type='text'>XMLSearch, XPath, and XML namespaces in ColdFusion</title><content type='html'>Sample code used in this posting is ColdFusion-specific, but the XPath syntax will likely apply to many XPath implementations in other languages. &lt;br /&gt;I was looking a specific set of elements in a SOAP response and kept getting an empty array returned from XMLSearch. Turns out this was related to how the namespaces in the response were defined and/or assigned to certain elements. (see &lt;a href="http://www.talkingtree.com/blog/index.cfm/2005/11/18/XmlSearchNoNameNamespace"&gt;this Talking Tree posting&lt;/a&gt;) &lt;br /&gt;The information in the Talking Tree posting helped me identify my problem, but in my case, it wasn't about noname namespaces. In fact, what if you want to find all elements of a given name and don't care about the namespace or even where it lies in the hierarchy? In the example below, I want to quickly retrieve all of the Response elements. Note that one Response element is a child of Other, while the remaining are direct descendants of ResponseList. &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;ResponseList xmlns="urn:shama.lama.dingdong.net"&amp;gt;&lt;br /&gt;&amp;lt;Response&amp;gt;&lt;br /&gt;&amp;lt;ns1:success xmlns:ns1="urn:core.shama.lama.dingdong.net"&amp;gt;true&amp;lt;/ns1:success&amp;gt;&lt;br /&gt;&amp;lt;baseRef internalId="1234" xmlns:ns2="urn:core.shama.lama.dingdong.net"/&amp;gt;&lt;br /&gt;&amp;lt;/Response&amp;gt;&lt;br /&gt;&amp;lt;Response&amp;gt;&lt;br /&gt;&amp;lt;ns3:success xmlns:ns3="urn:core.shama.lama.dingdong.net"&amp;gt;false&amp;lt;/ns3:success&amp;gt; &lt;br /&gt;&amp;lt;ns3:statusDetail type="ERROR"&amp;gt;&lt;br /&gt;&amp;lt;ns3:code&amp;gt;USER_ERROR&amp;lt;/ns3:code&amp;gt;&lt;br /&gt;&amp;lt;ns3:message&amp;gt;That record does not exist.&amp;lt;/ns3:message&amp;gt;&lt;br /&gt;&amp;lt;/ns3:statusDetail&amp;gt;&lt;br /&gt;&amp;lt;/ns3:status&amp;gt;&lt;br /&gt;&amp;lt;baseRef internalId="4421" xmlns:ns4="urn:core.shama.lama.dingdong.net"/&amp;gt;&lt;br /&gt;&amp;lt;/Response&amp;gt;&lt;br /&gt;&amp;lt;Other&amp;gt;&lt;br /&gt;&amp;lt;Response&amp;gt;&lt;br /&gt;&amp;lt;ns3:success xmlns:ns3="urn:core.shama.lama.dingdong.net"&amp;gt;false&amp;lt;/ns3:success&amp;gt; &lt;br /&gt;&amp;lt;ns3:statusDetail type="ERROR"&amp;gt;&lt;br /&gt;&amp;lt;ns3:code&amp;gt;RECORDNOTFOUND_ERROR&amp;lt;/ns3:code&amp;gt;&lt;br /&gt;&amp;lt;ns3:message&amp;gt;That record does not exist.&amp;lt;/ns3:message&amp;gt;&lt;br /&gt;&amp;lt;/ns3:statusDetail&amp;gt;&lt;br /&gt;&amp;lt;/ns3:status&amp;gt;&lt;br /&gt;&amp;lt;/Response&amp;gt;&lt;br /&gt;&amp;lt;warning&amp;gt;Import timed out briefly and process was restarted. No further errors were reported.&amp;lt;/warning&amp;gt;&lt;br /&gt;&amp;lt;/Other&amp;gt;&lt;br /&gt;&amp;lt;/ResponseList&amp;gt; &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now if it weren't for the namespaces, I could simply use the following: &lt;br /&gt;&lt;pre&gt;&amp;lt;cfset MyArray = XMLSearch(MyXMLDoc, "//Response")&amp;gt; &lt;/pre&gt;&lt;br /&gt;...but in this case that would return an empty array. &lt;br /&gt;&lt;br /&gt;Ok, but what about the noname namespace syntax: &lt;br /&gt;&lt;pre&gt;&amp;lt;cfset MyArray = XMLSearch(MyXMLDoc, "//:Response")&amp;gt; &lt;/pre&gt;&lt;br /&gt;That's fine if there's an actual noname namespace assigned to that element, but in this case there isn't one assigned. &lt;br /&gt;&lt;br /&gt;After trying countless variations of XPath syntax, I still couldn't get anything other than a blank array returned. I became desperate and quickly wrote a function that strips all of the namespace definitions and labels out of the XML, then searched on the results of that. But I felt this was rather convoluted and added too much overhead. Surely there was a better way. I kept searching, and lo and behold, came across the local-name function. If you want to ignore namespaces and hierarchical context completely, you can search by the local name of the element: &lt;br /&gt;&lt;pre&gt;&amp;lt;cfset MyArray = XMLSearch(MyXMLDoc, "//*[local-name()='Response']" &lt;/pre&gt;&lt;br /&gt;And now you have your array containing the three Response elements.&lt;br /&gt;&lt;br /&gt;March 11, 2008 UPDATE: Ryan commented that he had tried the syntax below with similar success. I have not tried this myself, but give it a shot:&lt;br /&gt;&lt;pre&gt;&amp;lt;cfset MyArray = XMLSearch(MyXMLDoc, "//*:Response")&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-115445586503459156?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/115445586503459156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=115445586503459156' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/115445586503459156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/115445586503459156'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2006/08/xmlsearch-xpath-and-xml-namespaces-in.html' title='XMLSearch, XPath, and XML namespaces in ColdFusion'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31425501.post-115343305565573721</id><published>2006-07-20T20:25:00.000-05:00</published><updated>2006-11-09T04:48:16.598-06:00</updated><title type='text'>Welcome to aftergeek!</title><content type='html'>Welcome to aftergeek, the less foul-mouthed and hopefully more relevant child of my creative outlet &lt;a href="http://afterglide.blogspot.com"&gt;afterglide&lt;/a&gt;. Where afterglide is full of potty-mouthed humor and rantings that are sometimes not work safe, I occasionally used it to post gadget and consumer product reviews and other geeky subjects that seemed out of place given the usual subject matter. I intend to make such postings here in the future so as not to bore my non-geek readers at afterglide. Hopefully you can learn from my mistakes and experiences, and I hope to learn in kind from yours.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31425501-115343305565573721?l=www.aftergeek.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.aftergeek.com/feeds/115343305565573721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31425501&amp;postID=115343305565573721' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/115343305565573721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31425501/posts/default/115343305565573721'/><link rel='alternate' type='text/html' href='http://www.aftergeek.com/2006/07/welcome-to-aftergeek.html' title='Welcome to aftergeek!'/><author><name>Jeremy Gibbens</name><uri>http://www.blogger.com/profile/05975135981872593591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh6.google.com/afterglide/RoxSceig7FI/AAAAAAAABYU/3Ct_MtuFTUU/s144/AmberRichJenPartyJuly3_2007%20016.jpg'/></author><thr:total>0</thr:total></entry></feed>
