tag:blogger.com,1999:blog-314255012008-05-30T11:53:20.768-05:00aftergeekJeremy Q. Afterglidenoreply@blogger.comBlogger28125tag:blogger.com,1999:blog-31425501.post-56229125409994814892008-05-29T14:55:00.002-05:002008-05-29T14:58:22.336-05:00Automatic page refreshes are so 1998Dear <a href="http://www.cnn.com/">CNN.com</a>, <a href="http://blog.mnspeak.com/aggregator/">MNspeak</a>, 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.<br /><br />To eliminate any confusion, the type of page refresh I'm talking about includes those in <meta ...> 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.Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-30506151999265965672008-04-16T14:08:00.005-05:002008-04-30T11:34:04.300-05:00Process for generating Netsuite java files, compiling stub classes, and creating jar fileIf 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 <a href="http://ant.apache.org/">Apache ANT</a> or <a href="http://ant.apache.org/ivy/">Apache Ivy</a>, but trust me, they will make your life a lot easier.<br /><br />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*<br /><br />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.<br /><br /> <p class="MsoNormal" style=""><span style=";font-family:Arial;font-size:10;" >Assumptions for this process (modify as necessary for your environment):<o:p></o:p></span></p> <ul type="disc"><li class="MsoNormal" style=""><span style=";font-family:Arial;font-size:10;" >[Netsuite WSDL version] = 2_6_0</span></li><li class="MsoNormal" style=""><span style=";font-family:Arial;font-size:10;" >[CF install path] = C:\CFusionMX7</span></li><li class="MsoNormal" style=""><span style=";font-family:Arial;font-size:10;" >You are using ColdFusion MX 7 (Notes for ColdFusion 8 will be given where necessary)</span></li><li class="MsoNormal" style=""><span style=";font-family:Arial;font-size:10;" >[java install path] = C:\j2sdk1.4.2_12</span></li><li class="MsoNormal" style=""><span style=";font-family:Arial;font-size:10;" >[major java version that your CF installation uses] = 1.4</span></li><li class="MsoNormal" style=""><span style=";font-family:Arial;font-size:10;" >[stub class target] = C:\netsuiteclasses\2_6_0</span></li><li class="MsoNormal" style=""><span style=";font-family:Arial;font-size:10;" >[Apache Axis version] = 1.2.1</span></li></ul> <p class="MsoNormal" style=""><span style=";font-family:Arial;font-size:10;" >Prerequisites: </span></p> <ul type="disc"><li class="MsoNormal" style=""><span style=";font-family:Arial;font-size:10;" >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/)</span></li><li class="MsoNormal" style=""><span style=";font-family:Arial;font-size:10;" >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/)</span></li><li class="MsoNormal" style=""><span style=";font-family:Arial;font-size:10;" >A version of the java jdk compatible with the java runtime version of your ColdFusion installation.</span></li><li class="MsoNormal" style=""><b style=""><i style=""><span style=";font-family:Arial;font-size:10;" >NOTE: This item is only for ColdFusion MX7 and likely does not apply to ColdFusion 8.</span></i></b><span style=";font-family:Arial;font-size:10;" > 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 <b style=""><i style="">[CF install path]</i></b>\lib, and the ColdFusion server was restarted afterward.</span></li></ul> <p class="MsoNormal" style=""><span style=";font-family:Arial;font-size:10;" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:Arial;font-size:10;" >Generate and Compile Process:<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:Arial;font-size:10;" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:Arial;font-size:10;" >1. Generate java class source code (windows dos window).<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 5pt 0in;"><span style=";font-family:Arial;font-size:10;" >[java install path]\bin\java -cp <b style=""><i style="">[CF install path]</i></b>\runtime\lib\wsdl2java.jar org.apache.axis.wsdl.WSDL2Java -v -O 120 -a -o <b style=""><i style="">[stub class target]</i></b> https://webservices.netsuite.com/wsdl/<b style=""><i style="">[Netsuite WSDL version]</i></b>/netsuite.wsdl<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 5pt 0in;"><span style=";font-family:Arial;font-size:10;" >2. Create Apache ANT build file.<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 5pt 0in;"><span style=";font-family:Arial;font-size:10;" >Create a file named build.xml in <b style=""><i style="">[stub class target] </i></b>with the following contents (pay attention to bracketed areas that you will need to modify accordingly):<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 5pt 0in;"><span style=""><?xml version="1.0" encoding="UTF-8"?><br /><project name="netsuite_<b style=""><i style="">[Netsuite WSDL Version]</i></b>" default="init" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant"><br /><span style=""> </span><description><br /><span style=""> </span>Build file for Netsuite <b style=""><i style="">[Netsuite WSDL Version]</i></b> WSDL.<br /><span style=""> </span></description><br /><span style=""> </span><property name="classes.dir" location="classes" /><br /><span style=""> </span><property name="dist.dir" location="dist" /><br /><span style=""> </span><property name="dist.jarfile" value="netsuite_<b style=""><i style="">[Netsuite WSDL Version]</i></b>.jar" /><br /><br /><span style=""> </span><target name="resolve" description="--> retrieve dependencies with ivy"><br /><span style=""> </span><ivy:retrieve pattern="${lib.dir}/[type]/[artifact]-[revision].[ext]" conf="runtime"/><br /><span style=""> </span></target><br /><br /><span style=""> </span><target name="clean" description="Clean up output directories."><br /><span style=""> </span><delete dir="${classes.dir}" /><br /><span style=""> </span></target><br /><br /><span style=""> </span><target name="compile" depends="-init" description="Compile all sources."><br /><span style=""> </span><mkdir dir="${classes.dir}" /><br /><span style=""> </span><javac srcdir="." destdir="${classes.dir}" debug="true" deprecation="true"><br /><span style=""> </span><compilerarg line="-source <b style=""><i style="">[major java version that your CF installation uses]</i></b>" /> <!—NOTE: The “-source” option may not be necessary for CF8 --><br /><span style=""> </span><compilerarg line="-classpath <b style=""><i style="">[CF install path]</i></b>\lib\axis.jar; <b style=""><i style="">[CF install path]</i></b>\lib\jaxrpc.jar" /><br /><span style=""> </span></javac><br /><span style=""> </span></target><o:p></o:p></span></p> <p class="MsoNormal" style="margin: 5pt 0in;"><span style=""><span style=""> </span><target name="rebuild" depends="clean,compile" description="Cleanly compiles all sources." /><o:p></o:p></span></p> <p class="MsoNormal" style="margin: 5pt 0in;"><span style=""><span style=""> </span><target name="-init"><br /><span style=""> </span><!-- Create the time stamp. --><br /><span style=""> </span><tstamp><br /><span style=""> </span><format property="TODAY_US" pattern="dd MMM yyyy HH.mm" locale="en_US" /><br /><span style=""> </span></tstamp><br /><span style=""> </span></target><br /><br /><span style=""> </span><target name="dist" depends="rebuild" description="Creates the binary distribution."><br /><span style=""> </span><mkdir dir="${dist.dir}/${TODAY_US}" /><br /><span style=""> </span><jar basedir="${classes.dir}" destfile="${dist.dir}/${TODAY_US}/${dist.jarfile}" /><br /><span style=""> </span></target><br /><br /></project><o:p></o:p></span></p> <p class="MsoNormal" style="margin: 5pt 0in;"><span style=";font-family:Arial;font-size:10;" >3. Create Apache Ivy config file.<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 5pt 0in;"><span style=";font-family:Arial;font-size:10;" >Create a file named ivy.xml in <b style=""><i style="">[stub class target] </i></b>with the following contents (pay attention to bracketed areas that you will need to modify accordingly):<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 5pt 0in;"><span style=""><ivy-module version="2.0"><br /><span style=""> </span><info organisation="apache" module="hello-ivy"/><br /><span style=""> </span><dependencies><br /><span style=""> </span><dependency org="apache" name="axis" rev="<b style=""><i style="">[Apache Axis version]</i></b>"/><br /><span style=""> </span></dependencies><br /></ivy-module><o:p></o:p></span></p> <p class="MsoNormal" style="margin: 5pt 0in;"><span style=";font-family:Arial;font-size:10;" >4. Compile files and generate jar file.<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 5pt 0in;"><span style=";font-family:Arial;font-size:10;" >Open a Command Prompt window and change directories to your <b style=""><i style="">[stub class target]</i></b> directory and run the following command:<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 5pt 0in;"><span style="">ant dist<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:Arial;font-size:10;" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:Arial;font-size:10;" >You may see multiple warning messages throughout the compile process, but as long as you see a <i style="">BUILD SUCCESSFUL</i> 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 <b style=""><i style="">[CF install path]</i></b>\lib and restart your ColdFusion Application Server service.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:Arial;font-size:10;" ><o:p> </o:p></span></p>Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-90448599552681190592008-03-12T14:23:00.001-05:002008-03-12T14:24:43.515-05:00Jeremy to Microsoft Live "quality" bot: you're doing it wrongI 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.Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-40088592953289547432008-02-27T12:08:00.004-06:002008-03-11T11:12:46.025-05:00Save yourself the effort of defining the same code for multiple javascript eventsIf 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.<br /><br />e.g.<br /><span style="font-style: italic;">// define the onchange event and call the same code for onmouseover, onmouseout, and onclick<br /></span><br /><span style="font-style: italic;">// Now if you make changes to onchange, you don't need to copy those changes to the other events.<br /></span><br /><br /><span style="font-style: italic;"><<span style="color: rgb(0, 0, 153);">input</span> ... <span style="color: rgb(153, 0, 0);">onchange</span>="<span style="color: rgb(0, 102, 0);">myFunctionDoYouLikeIt(this, 'valueadded', false, 0); compareSomeValues('placeholder', false, true, 'the google webz');</span>"<br /></span><br /><span style="font-style: italic;"><span style="color: rgb(153, 0, 0);"> onmouseover</span> = "<span style="color: rgb(0, 102, 0);">eval(this.onchange + '\;anonymous()\;');</span>"<br /></span><br /><span style="font-style: italic;"><span style="color: rgb(153, 0, 0);"> onmouseout</span> = "<span style="color: rgb(0, 102, 0);">eval(this.onchange + '\;anonymous()\;');</span>"<br /></span><br /><span style="font-style: italic;"><span style="color: rgb(153, 0, 0);"> onclick </span>= "<span style="color: rgb(0, 102, 0);">eval(this.onchange + '\;anonymous()\;');</span>" /></span>Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-70892671083455260592008-02-22T17:17:00.005-06:002008-02-22T18:32:50.422-06:00Combine multiple Twitter feeds on BloggerThis 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.<br /><br /><a href="http://afterglide.googlepages.com/addtwittermultitoblogger">Configure and add the widget here</a>.<br /><br />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.<br /><br />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.Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-46133486174266648792008-02-12T10:54:00.002-06:002008-03-07T12:46:53.074-06:00A warning regarding calculating sales commissions in NetSuiteAre 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.Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-13335917542589106212007-11-06T10:08:00.001-06:002007-11-06T10:08:58.147-06:00Screensaver won't start in Windows XPFor 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.<br /><br />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.Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-64928967185886829272007-03-10T16:28:00.000-06:002007-03-10T16:29:31.026-06:00Check if your computer is DST07 ready<a href="http://dst.umn.edu/">http://dst.umn.edu</a>Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-90028741806851644112007-02-20T23:28:00.000-06:002007-02-20T23:32:32.085-06:00The new tv is here!<div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_GKsvkSWeHpE/Rdufltad9wI/AAAAAAAAAL8/UDNwBqCNmaQ/s1600-h/HDTVbox.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_GKsvkSWeHpE/Rdufltad9wI/AAAAAAAAAL8/UDNwBqCNmaQ/s400/HDTVbox.jpg" alt="" id="BLOGGER_PHOTO_ID_5033792478711248642" border="0" /></a>Check out that foxy box<br /><br /></div><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_GKsvkSWeHpE/Rdufg9ad9vI/AAAAAAAAAL0/YbT--mBcBng/s1600-h/HDTVfront.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_GKsvkSWeHpE/Rdufg9ad9vI/AAAAAAAAAL0/YbT--mBcBng/s400/HDTVfront.jpg" alt="" id="BLOGGER_PHOTO_ID_5033792397106870002" border="0" /></a>Sex-ay!<br /><br /></div><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_GKsvkSWeHpE/RdufcNad9uI/AAAAAAAAALs/fYR7m6TOr0g/s1600-h/HDTVside.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_GKsvkSWeHpE/RdufcNad9uI/AAAAAAAAALs/fYR7m6TOr0g/s400/HDTVside.jpg" alt="" id="BLOGGER_PHOTO_ID_5033792315502491362" border="0" /></a>It's thinner than Kate Moss!<br /><br /></div><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_GKsvkSWeHpE/RdufXNad9tI/AAAAAAAAALk/edB_xXh1X3s/s1600-h/HDTVpicHeroes.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_GKsvkSWeHpE/RdufXNad9tI/AAAAAAAAALk/edB_xXh1X3s/s400/HDTVpicHeroes.jpg" alt="" id="BLOGGER_PHOTO_ID_5033792229603145426" border="0" /></a>Checking out a high def recording of "Heroes" before I reluctantly head back to work<br /><br /></div><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_GKsvkSWeHpE/RdufPdad9sI/AAAAAAAAALc/zHUbL32YlVM/s1600-h/HDTVpic1.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_GKsvkSWeHpE/RdufPdad9sI/AAAAAAAAALc/zHUbL32YlVM/s400/HDTVpic1.jpg" alt="" id="BLOGGER_PHOTO_ID_5033792096459159234" border="0" /></a>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.<br /><br /></div><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_GKsvkSWeHpE/RdufLdad9rI/AAAAAAAAALU/SjRu1F0PluY/s1600-h/HDTVpic2.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_GKsvkSWeHpE/RdufLdad9rI/AAAAAAAAALU/SjRu1F0PluY/s400/HDTVpic2.jpg" alt="" id="BLOGGER_PHOTO_ID_5033792027739682482" border="0" /></a>A pregnant Belinda tries to grab my man purse. No! That's my purse! Bad!</div><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_GKsvkSWeHpE/RdufENad9qI/AAAAAAAAALM/UpJGuIJWYdM/s1600-h/HDTVjizzrag.jpg"><br /></a></div>Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-63186083246091415832007-02-17T14:13:00.001-06:002008-03-07T12:47:25.768-06:00Preparing a nursery for your HDTVThe 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 <a href="http://aftergeek.blogspot.com/2007/02/hdtv-is-on-its-way.html">new LCD tv</a>, which will be delivered early next week. So now I'm scanning craigslist for used furniture.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_GKsvkSWeHpE/RddgoUTOtEI/AAAAAAAAAJs/HMkBbOZhs4E/s1600-h/PreHDMess.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_GKsvkSWeHpE/RddgoUTOtEI/AAAAAAAAAJs/HMkBbOZhs4E/s320/PreHDMess.jpg" alt="" id="BLOGGER_PHOTO_ID_5032597354370217026" border="0" /></a>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 <a href="http://en.wikipedia.org/wiki/CableCARD">CableCards</a> 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.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_GKsvkSWeHpE/Rddg1ETOtFI/AAAAAAAAAJ0/XGXrbD40h7w/s1600-h/tivomug.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_GKsvkSWeHpE/Rddg1ETOtFI/AAAAAAAAAJ0/XGXrbD40h7w/s320/tivomug.jpg" alt="" id="BLOGGER_PHOTO_ID_5032597573413549138" border="0" /></a><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_GKsvkSWeHpE/Rddg_0TOtGI/AAAAAAAAAJ8/0CcvzaDSYDE/s1600-h/jeremyhiding.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_GKsvkSWeHpE/Rddg_0TOtGI/AAAAAAAAAJ8/0CcvzaDSYDE/s320/jeremyhiding.jpg" alt="" id="BLOGGER_PHOTO_ID_5032597758097142882" border="0" /></a>Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-42776999136674658192007-02-13T17:59:00.000-06:002007-02-17T14:17:01.152-06:00The HDTV is on its wayAfter 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.<br /><br />On Sunday, I did several hours of searching deals and reading and rereading reviews online and it came down to the very highly rated <a href="http://www.sonystyle.com/is-bin/INTERSHOP.enfinity/eCS/Store/en/-/USD/SY_DisplayProductInformation-Start?ProductSKU=KDL46XBR2&Dept=tvvideo&CategoryName=tv_flatpanel_46to52">Sony KDL46XBR2</a> 46" 1080p LCD or the <a href="http://www.samsung.com/Products/TV/LCDTV/LNS5296DXXAA.asp">Samsung LN-S5296D</a> 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.<br /><br />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*<br /><br />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.<br /><br />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.<br /><br />Samsung LN-S5296D from newegg: ~$3600<br />Shipping: ~$100<br />5 year extended in-home service/replacement warranty: ~$450<br />Tivo Series3 from DigitalHotBuy: ~$610<br />Shipping: ~$15<br />Geek Squad branded voltage regulating UPS from Best Buy w/ tax: ~$100<br />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!!)<br /><br />Total so far: ~$4887 (gulp!)<br /><br />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.Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-1390416232811318912007-02-01T22:45:00.000-06:002007-02-01T22:48:27.594-06:00XBStore and XBStore.comLately 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 <a href="http://forums.slickdeals.net/showthread.php?sduid=0&t=438424">this thread</a>. 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:<br /><br /><span style="font-size:85%;"><span style="font-family: courier new;">XBStore Company</span><br /><span style="font-family: courier new;"> Calle Mayor, 40</span><br /><span style="font-family: courier new;"> Zaragoza, NA 50001</span><br /><span style="font-family: courier new;"> ES</span><br /><br /><span style="font-family: courier new;"> Domain name: XBSTORE.COM</span><br /><br /><span style="font-family: courier new;"> Administrative Contact:</span><br /><span style="font-family: courier new;"> Melendez, Rodrigo contact@xbstore.com</span><br /><span style="font-family: courier new;"> Calle Mayor, 40</span><br /><span style="font-family: courier new;"> Zaragoza, NA 50001</span><br /><span style="font-family: courier new;"> ES</span><br /><span style="font-family: courier new;"> +34.942940116 Fax: +34.942940116</span><br /><br /><span style="font-family: courier new;"> Technical Contact:</span><br /><span style="font-family: courier new;"> Melendez, Rodrigo contact@xbstore.com</span><br /><span style="font-family: courier new;"> Calle Mayor, 40</span><br /><span style="font-family: courier new;"> Zaragoza, NA 50001</span><br /><span style="font-family: courier new;"> ES</span><br /><span style="font-family: courier new;"> +34.942940116 Fax: +34.942940116</span><br /><br /><br /><br /><span style="font-family: courier new;"> Registrar of Record: TUCOWS, INC.</span><br /><span style="font-family: courier new;"> Record last updated on 20-Jan-2007.</span><br /><span style="font-family: courier new;"> Record expires on 18-Jan-2008.</span><br /><span style="font-family: courier new;"> Record created on 18-Jan-2007.</span><br /><br /><span style="font-family: courier new;"> Domain servers in listed order:</span><br /><span style="font-family: courier new;"> NS7.IXWEBHOSTING.COM 71.18.255.99</span><br /><span style="font-family: courier new;"> NS8.IXWEBHOSTING.COM 71.18.216.3</span><br /><br /><br /><span style="font-family: courier new;"> Domain status: clientTransferProhibited</span><br /><span style="font-family: courier new;"> clientUpdateProhibited</span><br /><br /><br /><br /></span>Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-1438290531630638532007-01-09T16:41:00.000-06:002007-01-09T16:44:09.093-06:00iPhone is all things to all people...except meI was jazzed that Apple finally <a href="http://crave.cnet.com/8300-1_105-1-2.html?tag=next&tag=next">announced its iPhone</a>, 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*Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-84279541498488181412007-01-08T15:08:00.000-06:002007-01-08T15:51:48.723-06:00HDTV search updateI 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.<br /><br />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.Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-43365594151705888032006-12-28T00:05:00.001-06:002008-03-07T12:48:00.444-06:00Want to buy a cheap scanner?<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://h10025.www1.hp.com/ewfrf-JAVA/Doc/images/c00127010.jpg"><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" /></a><span style="font-weight: bold; font-style: italic;">UPDATE: Sold through the magic of craigslist!</span><br /><br />I used my cache of Christmas gift Best Buy cards to buy a new printer (an <a href="http://www.amazon.com/Photosmart-C5180-Printer-Scanner-Copier/dp/B000GWMJVA">HP Photosmart 5180</a>) 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 <a href="http://reviews.cnet.com/HP_ScanJet_2200c/4505-3136_7-5962438.html">here</a> and <a href="http://cgi.ebay.com/HP-ScanJet-2200c-FlatBed-Scanner-LikeNew-No-Reserve_W0QQitemZ220064153874QQihZ012QQcategoryZ44978QQssPageNameZWDVWQQrdZ1QQcmdZViewItem">here</a>)<br /><br />Everything you need is here. You get the scanner, power cable, and USB cable. The software and drivers can be <a href="http://h10025.www1.hp.com/ewfrf/wc/softwareCategory?lc=en&cc=us&amp;amp;amp;amp;dlc=en&product=57854&lang=en&">downloaded here</a>. 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.<br /><br />$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).Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-87561211409195508282006-12-16T14:00:00.001-06:002008-03-12T09:58:16.977-05:00Questions on embedding MP3's in a web pageMarch 12, 2008 UPDATE:<br /><br />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.<br /><ol><li>Go to <a href="http://www.blogger.com/home">Blogger's Dashboard</a>.</li><li>Click the <span style="font-style: italic;">Settings</span> link for the blog you want to change.</li><li>Click the <span style="font-style: italic;">Formatting</span> tab.</li><li>Scroll down to <span style="font-style: italic;">Show Link Fields</span> and select Yes from the dropdown.</li><li>Create a new post (or edit an old one). You should now see a <span style="font-style: italic;">Link</span> field and <span style="font-style: italic;">Add enclosure link</span>.</li><li>Click <span style="font-style: italic;">Add enclosure link</span>. An <span style="font-style: italic;">Enclosures</span> section should appear.<br /></li><li>Under the <span style="font-style: italic;">Enclosures</span> section, enter the URL to your MP3 or other media file. Blogger should automatically populate the value for the <span style="font-style: italic;">MIME Type</span> field when you tab to (or click on) the next field.</li></ol><br /><br />--<br /><br />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 <embed> 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.<br /><br />For that matter, perhaps <embed> 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 <a href="http://www.ourmedia.org/">OurMedia</a>. 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.<br /><br />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. <a href="http://blahdeblah.org/my.mp3" class="blogcast" >. 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.Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-8429728770014168982006-12-16T13:51:00.000-06:002006-12-16T13:59:41.405-06:00Extended warranties--sometimes it's worth itUsually 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.<br /><br />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.<br /><br />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!<br /><br />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).<br /><br />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.<br /><br />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).Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-84042791678761673592006-12-14T22:08:00.000-06:002006-12-14T23:34:59.780-06:00The HDTV hunt continuesI 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.<br /><br />NuVision, evidently a relative newcomer in the states in the tv market, also has an <a href="http://www.nuvision.com/ledlp/">LED-based 52 inch DLP</a>, 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.<br /><br />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.<br /><br />Time will tell. Soon, my pretties. Soon.Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-26999161848966286652006-12-10T14:59:00.000-06:002006-12-10T15:05:27.484-06:00In the market for an HDTVI'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.<br /><br />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:<br /><br />-50 inches or larger.<br />-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)<br />-Built-in QAM/ATSC highly preferable, but not required.<br />-CableCARD nice, but not required.<br />-$3,000 or less.<br /><br />I had originally decided on buying either the Sony <a href="http://reviews.cnet.com/Sony_KDS_60A2000/4505-6484_7-31901232.html?tag=txt">KDS-60A2000</a> ($2200+) or the <a href="http://reviews.cnet.com/Sony_KDS_R60XBR2/4505-6484_7-31901228.html">KDS-R60XBR2</a> ($3000+). Both are 60 inch rear projection <a href="http://en.wikipedia.org/wiki/Liquid_crystal_on_silicon">LCOS</a> 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.<br /><br />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.<br /><br />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.<br /><br />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.<br /><br />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.<br /><br />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.Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-18380071254948790422006-12-06T17:32:00.001-06:002006-12-06T17:32:48.606-06:00James KimI wanted to comment on sad news of the discovery of the body of James Kim. You may have been following <a href="http://www.cnn.com/2006/US/12/06/missing.family/index.html">this story in the national news</a> 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.<br /><br />Kim was a senior editor for <a href="http://www.cnet.com/">CNET.com</a>, 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 <a href="http://crave.cnet.com/">Crave</a>. He also appeared each week in a segment broadcast to Tivo subscribers.<br /><br />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.<br /><br />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.Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-72298826493624592642006-12-06T15:05:00.000-06:002006-12-06T15:07:38.773-06:00James Kim found deadSadly, 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.<br /><br /><a href="http://www.cnn.com/2006/US/12/06/missing.family/index.html">Full story at CNN</a>Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-14021664475177730912006-12-01T23:54:00.000-06:002006-12-04T19:44:33.386-06:00UPDATED: CNET senior editor James Kim and family missingDecember 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 <a href="http://news.com.com/CNET+editors+wife%2C+daughters+found+search+continues/2100-1028_3-6140676.html">here</a> and <a href="http://www.jamesandkati.com/">here</a>.<br /><br />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 <a href="http://news.com.com/Road+search+under+way+for+missing+CNET+editor/2100-1028_3-6140118.html?tag=cnetfd.ld1">CNET.com</a>.<br /><br />I very much enjoy Kim's appearances and postings on <a href="http://www.cnet.com/">CNET</a> and <a href="http://crave.cnet.com/">Crave</a>, 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.<br /><br /><a href="http://www.sfgov.org/site/police_index.asp?id=37978">San Francisco Police Department's missing persons flyer</a>Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-1077102663651135102006-11-16T21:59:00.000-06:002006-11-19T18:54:35.002-06:00Mystery of the missing wsdl stub class: another clue(?)As previously <a href="http://aftergeek.blogspot.com/2006/09/coldfusion-and-netsuite-cautionary.html">bemoaned here</a> and <a href="http://aftergeek.blogspot.com/2006/11/preventing-coldfusion-from-recompiling.html">here</a>, I ran into a problem with ColdFusion failing to generate and compile all of the necessary java classes from <a href="http://www.netsuite.com/">Netsuite's</a> 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.<br /><br />Tell me, is <a href="https://webservices.netsuite.com/wsdl/v2_5_0/netsuite.wsdl">Netsuite's wsdl</a> 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.<br /><br />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.Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-85481145072978024242006-11-10T14:10:00.002-06:002008-03-07T12:48:45.862-06:00Preventing ColdFusion from recompiling web service stub classesAs I have been for the past few months, I'm currently working on an interface <a href="http://www.netsuite.com">Netsuite</a> 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.<br /><br />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.<br /><br />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.<br /><br />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.<br /><br />Example: <br /><pre><!--- Create a plain old coldfusion web service object (could also do a cfinvoke).---> <br /><cfset ws = CreateObject("webservice", "https://webservices.netsuite.com/wsdl/v2_5_0/netsuite.wsdl")> <br /><!--- call some function from that web service ---> <br /><cfset ws.MakeSomethingHappen()> <br /><!--- dump the entire soap request ---> <br /><cfdump var="#getSOAPRequest(ws)#"> <br /><!------ --- ----- ------ --------- ------------- ---><br /><!--- 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) ---> <br /><cfset ws = CreateObject("java", "com.netsuite.webservices.platform_2_5.NetSuiteServiceLocator").getNetSuitePort()> <br /><!--- call the same function from that web service as the previous example ---> <br /><cfset ws.MakeSomethingHappen()> <br /><!--- dump the entire soap request (it's a little messy, but you can always write your own udf that returns the same thing)... ---> <br /><cfdump var="#ws._getService().getCall().getMessageContext().getRequestMessage().getSOAPEnvelope().toString()#"> <br /><!--- ... or dump only the request body ---> <br /><cfdump var="#ws._getService().getCall().getMessageContext().getRequestMessage().getSOAPBody().toString()#"></pre>Jeremy Q. Afterglidenoreply@blogger.comtag:blogger.com,1999:blog-31425501.post-1157657988844955932006-09-07T14:35:00.000-05:002006-11-09T04:48:17.335-06:00ColdFusion and Netsuite, a cautionary taleThis post is about <a href="http://www.netsuite.com">Netsuite's</a> 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.<br /><br />-When first creating an instance of a given web service using <span style="font-style: italic;">CreateObject("webservice", http://url.of.wsdl)</span>, 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...<br /><br />-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 <a href="http://www.bennadel.com/index.cfm?dax=blog:206.view">Ben Nadel's useful function</a> 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. <a href="http://aftergeek.blogspot.com/2006/08/netsuite-coldfusion-java-and-lot-of.html">See a more detailed example here</a>.<br /><br />-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?<br /><br />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.<br /><br />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.Jeremy Q. Afterglidenoreply@blogger.com