<?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-6893913231410230443</id><updated>2011-11-27T19:57:08.850-05:00</updated><category term='beard trimmer'/><category term='ethics'/><category term='Windows XP'/><category term='Internet Explorer 7'/><category term='sms'/><category term='movies'/><category term='error 500'/><category term='watch'/><category term='stickiness'/><category term='DST'/><category term='black list'/><category term='resolution'/><category term='inside joke'/><category term='spreadsheets'/><category term='Falwell'/><category term='WPA2'/><category term='cardio'/><category term='sudoku'/><category term='t-shirt'/><category term='cell phones'/><category term='re: Your Brains'/><category term='Fizzle'/><category term='memes'/><category term='external closures'/><category term='evulsion'/><category term='avocado'/><category term='video'/><category term='Mac OS X'/><category term='gift cards'/><category term='gOS'/><category term='Humor'/><category term='MSVDM'/><category term='cynicism'/><category term='Western Digital'/><category term='chinese zodiac'/><category term='apathy'/><category term='workplace'/><category term='completed'/><category term='red beer'/><category term='2008'/><category term='Spider Robinson'/><category term='rant'/><category term='difference'/><category term='odd news stories'/><category term='virtue'/><category term='mySQL'/><category term='genetics'/><category term='CSS'/><category term='conocimiento'/><category term='world record'/><category term='Christmas'/><category term='internal blog'/><category term='Smart Playlists'/><category term='violence'/><category term='FOX'/><category term='Stephen King'/><category term='ideas'/><category term='album'/><category term='rain'/><category term='Seth Godin'/><category term='iTunes'/><category term='Contribute'/><category term='marketing'/><category term='crickets'/><category term='design'/><category term='fortune cookie'/><category term='blogging'/><category term='Zorlu'/><category term='wide'/><category term='ship in a bottle'/><category term='education'/><category term='profile picture'/><category term='technology'/><category term='poem'/><category term='quote'/><category term='hacking'/><category term='sexy features'/><category term='wine'/><category term='creative commons'/><category term='creative thinking'/><category term='Wordplay'/><category term='hard drive upgrade'/><category term='mashups'/><category term='live docs'/><category term='office politics'/><category term='Psychology'/><category term='canon mp530'/><category term='creativity'/><category term='social activism'/><category term='gifts'/><category term='G4 iBook'/><category term='survey'/><category term='biology'/><category term='IE 7'/><category term='deep'/><category term='trivia'/><category term='Surtees'/><category term='Spanish'/><category term='firewall'/><category term='oblivious'/><category term='Macromedia'/><category term='comments'/><category term='universal remote'/><category term='remake'/><category term='vice'/><category term='knowledge'/><category term='fashion statement'/><category term='Maximum Overdrive'/><category term='nano-tech'/><category term='charts'/><category term='orkut'/><category term='MTV'/><category term='wallpaper'/><category term='usb'/><category term='photoshop'/><category term='Trusted Site'/><category term='DVR'/><category term='music'/><category term='Motorola'/><category term='imagination'/><category term='Getting Things Done'/><category term='Google'/><category term='tip'/><category term='Buzz Out Loud'/><category term='recipe'/><category term='phishing'/><category term='copyright'/><category term='chargers'/><category term='ipod'/><category term='twitter'/><category term='toe'/><category term='standards'/><category term='Ubuntu'/><category term='mental illness'/><category term='fitness'/><category term='gmail'/><category term='absurd'/><category term='ftp'/><category term='edutainment'/><category term='problem'/><category term='Paul McCartney'/><category term='blogspot'/><category term='Google Docs'/><category term='tattoos'/><category term='Power Toys'/><category term='Java 2 ME'/><category term='Michael Crichton'/><category term='rip off'/><category term='neologism'/><category term='homage'/><category term='microblogging'/><category term='experts'/><category term='renovation'/><category term='gas mileage'/><category term='townhouse'/><category term='RSS'/><category term='diabolical'/><category term='LinkedIn'/><category term='bluejacking'/><category term='Jesus'/><category term='review'/><category term='thumb drives'/><category term='presidential election'/><category term='changes'/><category term='dj'/><category term='backup'/><category term='futile'/><category term='future'/><category term='oil'/><category term='houdini'/><category term='TV'/><category term='ice cream'/><category term='Jonathan Coulton'/><category term='WWW'/><category term='Nokia'/><category term='security'/><category term='wiki on a stick'/><category term='stream of consciousness'/><category term='home improvement'/><category term='Flashpaper'/><category term='dream'/><category term='Rocky Horror'/><category term='web standards'/><category term='cracker'/><category term='algorithm'/><category term='Blogger'/><category term='depression'/><category term='(Hamme)red'/><category term='The War of Art'/><category term='drinking'/><category term='hacker'/><category term='style'/><category term='puppy'/><category term='LG Xenon'/><category term='airport express'/><category term='photo'/><category term='Google Analytics'/><category term='derivative work'/><category term='LaptopLock'/><category term='amplia'/><category term='software'/><category term='Symantec'/><category term='real estate downturn'/><category term='color'/><category term='HTML'/><category term='coding'/><category term='insanity'/><category term='ultraviolet'/><category term='Firefox 3'/><category term='pedometer'/><category term='virtual desktops'/><category term='stereotypes'/><category term='forget'/><category term='Google Maps'/><category term='javascript'/><category term='profundo'/><category term='workout'/><category term='ISBNSpy'/><category term='screenplay'/><category term='environment'/><category term='biore'/><category term='profile search'/><category term='switcher'/><category term='Fireworks'/><category term='obviously'/><category term='renaissance men'/><category term='panda'/><category term='wine411'/><category term='impossible bottle'/><category term='pointless'/><category term='download'/><category term='social networking'/><category term='Nokia 3100'/><category term='coupon'/><category term='solar power'/><category term='dummy phones'/><category term='dumb little man blog'/><category term='bigotry'/><category term='internet'/><category term='batteries'/><category term='valve cap replacements'/><category term='closed captioning'/><category term='secure phones'/><category term='accurate'/><category term='lojack for laptops'/><category term='human nature'/><category term='wattpad'/><category term='car'/><category term='linux'/><category term='nose strips'/><category term='bedsheets'/><category term='collar'/><category term='germs'/><category term='valid HTML'/><category term='linguistics'/><category term='vacation'/><category term='php'/><category term='ajax'/><category term='Borders'/><category term='firewire'/><category term='2.6 kernel'/><category term='YouTube'/><category term='communication'/><category term='website'/><category term='Java'/><category term='blog'/><category term='book'/><category term='BBC America'/><category term='dissection'/><category term='dead'/><category term='E70'/><category term='voteChooser'/><category term='Bed Bath and Beyond'/><category term='bluetooth'/><category term='wisdom'/><category term='(Product)RED'/><category term='imap'/><category term='Memory Almost Full'/><category term='web dev'/><category term='solved'/><category term='foolishness'/><category term='dictionary'/><category term='skins'/><category term='white list'/><category term='myMaps'/><category term='asus eeepc'/><category term='maps'/><category term='story idea'/><category term='bah humbug'/><category term='warning'/><title type='text'>Jonah Chanticleer 公鸡</title><subtitle type='html'>A liberal arts grad on the Information Superhighway, stuck in a traffic jam at the intersections of Technology, Psychology and Security.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default?start-index=101&amp;max-results=100'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>341</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-9123424012973196077</id><published>2011-03-14T09:55:00.000-05:00</published><updated>2011-03-14T09:55:17.559-05:00</updated><title type='text'>Where I've been . . . ?</title><content type='html'>So, I'm sitting here reviewing my Google Analytics reports, and notice that the personal blog has dropped off in terms of traffic.&amp;nbsp; Entirely my fault, of course-- that's what happens when you don't make any updates for three months, naturally.&lt;br /&gt;&lt;br /&gt;What have I been up to, you might be wondering?&amp;nbsp; Well, I've had my nose in many different business books, trying to get myself as knowledgeable as possible before I open the doors on my own company.&amp;nbsp; I've also signed up for multiple classes/workshops through a local Community Business Partnership group.&amp;nbsp; Then there's all items on this "Things I Need To Learn" (e.g. HTML5, CSS3, etc.) I'm trying to bang through, and the ColdFusion OOP Boot Camp. Don't get me wrong, it's exciting and exhilirating . . . but it's also a little exhausting!&lt;br /&gt;&lt;br /&gt;I'm hoping to get a chance to test drive Framework One (aka FW/1) in the next week or two.&amp;nbsp; I'll see how it compares with CFWheels and let you know my impressions of it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-9123424012973196077?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/9123424012973196077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=9123424012973196077&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/9123424012973196077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/9123424012973196077'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2011/03/where-ive-been.html' title='Where I&apos;ve been . . . ?'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-4259326168652336838</id><published>2010-12-31T11:10:00.001-05:00</published><updated>2010-12-31T11:11:29.464-05:00</updated><title type='text'>2010 Accomplishments &amp; Highlights</title><content type='html'>Listed in &lt;i&gt;very&lt;/i&gt; rough chronological order: &lt;br /&gt;&lt;br /&gt;- started my first ColdFusion hosted blog (a la Mango)&lt;br /&gt;&lt;br /&gt;- survived "Snomageddon 2010"&lt;br /&gt;&lt;br /&gt;- attended NCDevCon conference, and CFUnited conference&lt;br /&gt;&lt;br /&gt;- got the downstairs half-bath in my townhouse completely remodeled&lt;br /&gt;&lt;br /&gt;- started using Blueprint CSS for more polished looking web apps (grids, fonts, etc.)&lt;br /&gt;&lt;br /&gt;- improved my online security with Lastpass toolbar, using random, unique passwords for each site I join (p.s. - thanks, Gawker, for the final push to change my old passwords!)&lt;br /&gt;&lt;br /&gt;- finally started using Dropbox&lt;br /&gt;&lt;br /&gt;- wrote two plugins for open source projects (Active Directory plugin for CFWheels, and noprint plugin for Blueprint CSS)&lt;br /&gt;&lt;br /&gt;- dealt with demands from my Civic Associations (some reasonable, some *very* unreasonable)&lt;br /&gt;&lt;br /&gt;- became proficient in Xenu Stealth Link checker&lt;br /&gt;&lt;br /&gt;- found out why our organization's web server returns 200/OK instead of 404/Not Found for missing web pages (I wonder if anyone else will care enough to fix it?)&lt;br /&gt;&lt;br /&gt;- created my professional first Intranet app using an application framework (CFWheels)&lt;br /&gt;&lt;br /&gt;- gained better understanding of and deeper appreciation for jQuery&lt;br /&gt;&lt;br /&gt;- turned in my resignation notice to start my own consulting/training company&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-4259326168652336838?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/4259326168652336838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=4259326168652336838&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4259326168652336838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4259326168652336838'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2010/12/2010-accomplishments-highlights.html' title='2010 Accomplishments &amp; Highlights'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-8794702714034476843</id><published>2010-12-11T22:34:00.000-05:00</published><updated>2010-12-11T22:34:34.522-05:00</updated><title type='text'>Failed Bluetooth transfer turns LG Xenon Off/On?</title><content type='html'>Transferring pictures from your cell phone to your computer via Bluetooth is cool, but the &lt;b&gt;really&lt;/b&gt; cool part is file transfers can be bi-directional.&amp;nbsp; In other words, if I download podcasts (e.g. CFHour, Buzz Out Loud, etc.) to my computer in iTunes/Juice/whatever, I can send them to my phone wirelessly and then listen to them on my Bluetooth earpiece during my commute.&amp;nbsp; Podcasts are MP3 files, which are larger than pictures usually, so they take longer-- but at 120-150KB/sec, it works great.&lt;br /&gt;&lt;br /&gt;Except, of course, when it doesn't.&amp;nbsp; ;)&lt;br /&gt;&lt;br /&gt;Today, for example, I downloaded a backlog of nine podcasts, and when I tried to transfer them, something odd happened. About 12KB of the first file transferred, and then suddenly my phone "rebooted."&amp;nbsp; Naturally, the file transfer timed out, so I waited until my phone was back to its main screen and tried again. Same result.&amp;nbsp; So I tried transferring only the first file individually, and that worked-- so I knew it wasn't something corrupt in the data of the first file that was causing the issue.&lt;br /&gt;&lt;br /&gt;It turns out that if the storage card I have in my phone (which is where I have my various pictures, music files and such stored) has less free space available than what I am trying to send, my phone just "reboots" itself.&amp;nbsp; If I delete some old podcasts and make room, everything works smoothly again.&lt;br /&gt;&lt;br /&gt;I figure other folks are probably experiencing the same thing and scratching their heads, so maybe this post will help them out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-8794702714034476843?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/8794702714034476843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=8794702714034476843&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8794702714034476843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8794702714034476843'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2010/12/failed-bluetooth-transfer-turns-lg.html' title='Failed Bluetooth transfer turns LG Xenon Off/On?'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-8398140977457917897</id><published>2010-11-06T11:43:00.001-05:00</published><updated>2010-11-06T11:46:24.178-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Opening HTML files in Mac OS X TextEdit</title><content type='html'>&lt;i&gt;&lt;b&gt;Q.&lt;/b&gt; I can open a webpage in Notepad to make a trivial HTML changes on my Windows PC. When I try to do the same with TextEdit on Mac OS X, it opens . . . but I cannot see the "raw" HTML. What gives?&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_Bz-p8OGqJD0/TNWFJAsq94I/AAAAAAAAApY/ksr_9RfrZ_w/s1600/TextEditPrefs.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/_Bz-p8OGqJD0/TNWFJAsq94I/AAAAAAAAApY/ksr_9RfrZ_w/s320/TextEditPrefs.jpg" width="241" /&gt;&lt;/a&gt;&lt;b&gt;A.&lt;/b&gt; Although Notepad is a plain text editor, TextEdit supports Rich Text Format (RTF) and a few other file formats, which makes it more similar to WordPad than Notepad.&amp;nbsp; When you open HTML files in TextEdit, it tries to interpret Rich Text commands and display the page "visually" rather than the "raw" HTML text.&lt;br /&gt;&lt;br /&gt;There is a way to tell TextEdit to open HTML files as plain text documents, however.&lt;br /&gt;&lt;br /&gt;In TextEdit's Preferences dialog box, click on the "Open and Save" tab near the top,&amp;nbsp; remove the checkmark beside "Ignore rich text commands in HTML files" and close the dialog box. From now on whenever you open a webpage with TextEdit, you'll see the "raw" HTML code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-8398140977457917897?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/8398140977457917897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=8398140977457917897&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8398140977457917897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8398140977457917897'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2010/11/opening-html-files-in-mac-os-x-textedit.html' title='Opening HTML files in Mac OS X TextEdit'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Bz-p8OGqJD0/TNWFJAsq94I/AAAAAAAAApY/ksr_9RfrZ_w/s72-c/TextEditPrefs.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-3211165837172091078</id><published>2010-09-04T12:47:00.000-05:00</published><updated>2010-09-04T12:47:48.688-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='resolution'/><category scheme='http://www.blogger.com/atom/ns#' term='problem'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='photoshop'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Interesting Glitch Between Photoshop CS 3 and Network Printer Drivers</title><content type='html'>I use Dreamweaver far more than Photoshop. Beyond resizing and/or optimizing the occasional graphic for websites, the rest of my job doesn't require much image editing.&amp;nbsp; I'm a developer, not a designer-- or at least, that is how it was until recently.&amp;nbsp; This week, I found myself faced with converting a design comp into a bare bones Dreamweaver template and ran face-first into a glitch with Photoshop CS 3 for Windows.&lt;br /&gt;&lt;br /&gt;Resizing or optimizing a single graphic for a page usually means I have only one file open at a time. But the workflow for slicing up a reference graphic into regions of a webpage is different; you'll probably select and copy a piece (e.g. the header, the footer, the sidebar, etc.) and create a new, separate file for each segment.&amp;nbsp; You can imagine my surprise when I create a new/second image, and Photoshop crashes completely with this cryptic error message: &lt;i&gt;&lt;b&gt;&lt;span id="search" style="visibility: visible;"&gt;The instruction at "0x7c91b21a" referenced &lt;em&gt;memory at "0x00000010.&lt;/em&gt;" The memory &lt;em&gt;could not be "written&lt;/em&gt;."&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;&lt;span id="search" style="visibility: visible;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;&lt;span id="search" style="visibility: visible;"&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;After reading through the results of multiple Google searches, I made an interesting (&lt;i&gt;for me, at least&lt;/i&gt;) discovery.&amp;nbsp; &lt;a href="http://forums.adobe.com/thread/372518?start=50&amp;amp;tstart=0"&gt;If you use Photoshop CS3 (for Windows, version 10.0.1 with &lt;i&gt;&lt;b&gt;all&lt;/b&gt;&lt;/i&gt; available updates) and your default printer is a network printer, there is a decent chance that opening or creating a second file will cause Photoshop to crash&lt;/a&gt;. This is actually an old issue (since at least 2007), but there's a quick and easy workaround-- just set your default printer to either a local or "virtual" printer and the symptom goes away. &amp;nbsp;I changed my default printer from a networked Ricoh Aficio MP 9000 to "Adobe PDF" and confirmed that I was suddenly able to open or create multiple image files without issue. &amp;nbsp;Thanks to the patrons over at the Adobe User Forum, particularly Anders, for coming up with this workaround. &amp;nbsp;It gave me what I needed to get my job done on time.&lt;br /&gt;&lt;br /&gt;Naturally, this workaround doesn't sit well with some people. &amp;nbsp;They figure Photoshop is an expensive commercial image editing package and Adobe should create a patch to resolve this issue. I understand their disappointment and anger. &amp;nbsp;There's just one small problem-- &lt;a href="http://kb2.adobe.com/cps/402/kb402704.html"&gt;the issue is not being caused by Adobe Photoshop, but rather by some printer drivers&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;After searching Ricoh's support site, I discovered a recently revised driver (August 24, 2010!) for the Ricoh Aficio MP 9000 called the "PCL6 Driver for Universal Print." &amp;nbsp;I replaced my existing, &lt;b&gt;&lt;i&gt;unsigned&lt;/i&gt;&lt;/b&gt; Ricoh printer driver with this new, Windows-signed driver, set my default printer back to the networked Ricoh printer, and put Photoshop through the paces of creating and opening multiple files. &amp;nbsp;So far, this change in printer drivers seems to have resolved the issue-- allowing me to open or create multiple files in Photoshop while having a network printer set as my default printer. Guess that makes a decent argument for the importance of using signed drivers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-3211165837172091078?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/3211165837172091078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=3211165837172091078&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3211165837172091078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3211165837172091078'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2010/09/interesting-glitch-between-photoshop-cs.html' title='Interesting Glitch Between Photoshop CS 3 and Network Printer Drivers'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-8368963446660144472</id><published>2010-08-28T21:15:00.000-05:00</published><updated>2010-09-02T22:01:57.183-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dream'/><title type='text'>The Papergeist Dream Story</title><content type='html'>Back in March 2008, I dreamt about a mischievous spirit in an old attic  that physically manifested as a tiny tornado of blowing, whirling  papers.&amp;nbsp; One part poltergeist + one part paper = "papergeist."&amp;nbsp; I wrote  the wordplay and trivial story bit in my stagnating writing log, but  never got around to doing anything with it. &lt;br /&gt;&lt;br /&gt;Fortunately, someone else had the same wordplay idea and followed through with it.&amp;nbsp; As it turns out, there is a &lt;a href="http://www.papergeist.com/"&gt;papergeist&lt;/a&gt;  website.&amp;nbsp; They take old book covers and recycle them into unique works  of art that are functional as sketchbooks, journals, etc.&amp;nbsp; Although I  like the journals best, I think the undated appointment books are  clever.&amp;nbsp; The store portion of the website is built in Coldfusion.&lt;br /&gt;&lt;br /&gt;So basically, I can honestly say I found this website because of a dream I had.&amp;nbsp; How neat is that?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-8368963446660144472?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/8368963446660144472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=8368963446660144472&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8368963446660144472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8368963446660144472'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2010/08/papergeist-dream-story.html' title='The Papergeist Dream Story'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-4728850024307855578</id><published>2010-08-01T05:53:00.000-05:00</published><updated>2010-08-01T05:53:53.496-05:00</updated><title type='text'>Unicorn</title><content type='html'>An interesting announcement came out from the World Wide Web Consortium while I was away at CFUnited: &lt;br /&gt;&lt;blockquote&gt;"W3C is pleased to announce the release of &lt;a href="http://validator.w3.org/unicorn/"&gt;Unicorn&lt;/a&gt;, a one-stop tool to help people improve the quality of their Web pages."&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-4728850024307855578?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/4728850024307855578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=4728850024307855578&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4728850024307855578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4728850024307855578'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2010/08/unicorn.html' title='Unicorn'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-9179652408377525855</id><published>2010-07-13T21:25:00.000-05:00</published><updated>2010-07-13T21:25:44.136-05:00</updated><title type='text'>Don't Be A "Warren."</title><content type='html'>I think it's a bad idea to write blog entries about one's &lt;b&gt;current&lt;/b&gt; job.&amp;nbsp; However, that does not mean I am unwilling to pass along anecdotal wisdom gained from &lt;b&gt;previous employers&lt;/b&gt;.&amp;nbsp; This is one such anecdote.&lt;br /&gt;&lt;br /&gt;Like many of us in the tech industry, I provided technical support &amp;amp; assistance for clients by many communications avenues, including email.&amp;nbsp; One morning, I get an urgent email from "&lt;i&gt;Warren&lt;/i&gt;" asking me to perform a routine task in a short time frame for an urgent deadline.&amp;nbsp; I also noticed he's carbon copied others in his office on that same email.&amp;nbsp; I take his request out of sequence, complete the task, and "Reply All" to let him and his colleagues know the request has been completed so they can do what they need to do.&lt;br /&gt;&lt;br /&gt;About three minutes later, "&lt;i&gt;Warren&lt;/i&gt;" calls me on my direct line and chews me out. "How dare you&amp;nbsp; include my supervisor . . ." on the email reply.&amp;nbsp; When I explained I hit reply all to notify all parties included on the original message of the completed status of the task, he cut me off and told me that &lt;b&gt;he&lt;/b&gt; was the only person allowed to email his supervisor, period.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Here's the point: All these years later, I don't remember &lt;b&gt;&lt;i&gt;anyone else's&lt;/i&gt;&lt;/b&gt; name from that office. I couldn't tell you what they did, or if they &lt;i&gt;&lt;b&gt;even did their jobs competently&lt;/b&gt;&lt;/i&gt;. They could have been the foremost in their field, but all I will ever remember is "&lt;i&gt;Warren&lt;/i&gt;" and his pathetic macho bullshit attitude.&amp;nbsp; That is how powerfully cancerous to your organization's reputation one asshat like "&lt;i&gt;Warren&lt;/i&gt;" can be.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-9179652408377525855?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/9179652408377525855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=9179652408377525855&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/9179652408377525855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/9179652408377525855'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2010/07/dont-be-warren.html' title='Don&apos;t Be A &quot;Warren.&quot;'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-5880938102194860445</id><published>2010-07-06T04:37:00.000-05:00</published><updated>2010-07-06T04:37:06.343-05:00</updated><title type='text'>LG Xenon, AT&amp;T and the .jar/.jad issue</title><content type='html'>Once upon a time, I wanted to be able to read electronic books on my cell phone.&amp;nbsp; This sounds like a simple thing, especially when you consider that my LG Xenon supports Java midlets.&amp;nbsp; All I should have to do is locate an ebook reader program on a site such as getjar.com, and download and install it on to my phone, right?&lt;br /&gt;&lt;br /&gt;Sure. If it were that simple, I wouldn't have written a blog entry about it now, would I?&lt;br /&gt;&lt;br /&gt;So, I go to getjar.com, and scan through the half dozen or so offerings of book readers and test drive one or two of the most promising.&amp;nbsp; Although I'm able to install them, they do not seem to actually allow me to open any text files stored on my phone.&amp;nbsp; The only ones that do work are the ones that embed a book/text file inside the actual .jar (java archive) file itself. I do some research, locate the stats on my phone, and sure enough, it is supposed to support a file system API that allows programs to access the phone's file system.&amp;nbsp; That's JSR 75, if you want to know the Java programmer jargon for it.&lt;br /&gt;&lt;br /&gt;The long and short of it is that AT&amp;amp;T does something to the firmware of the phones they provide which prevents third party programs from accessing the filesystem.&amp;nbsp; I get it-- it's for "security purposes."&amp;nbsp; You don't want just any old program being able to access the file system or the GPS interface, otherwise nefarious people might start using it to do bad things to your customers.&amp;nbsp; The part that galls me is that if a third-party developer goes out and spends serious coin ($200/year) on a certificate from someone like Verisign or Thawte, to validate their work as legitimate and unmodified, AT&amp;amp;T still denies them access to JSR 75.&amp;nbsp; You basically have to go through AT&amp;amp;T's internal verification process, which coincidentally will cost you more serious coin, and will not do anything towards making your "write once/run anywhere" program work with other cell phone vendors either.&lt;br /&gt;&lt;br /&gt;It's sad, but my interest and enthusiasm in learning how to write Java midlets for cell phones just kinda died.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-5880938102194860445?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/5880938102194860445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=5880938102194860445&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/5880938102194860445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/5880938102194860445'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2010/07/lg-xenon-at-and-jarjad-issue.html' title='LG Xenon, AT&amp;T and the .jar/.jad issue'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-2434149442103677732</id><published>2010-07-04T16:49:00.001-05:00</published><updated>2010-07-04T16:51:31.094-05:00</updated><title type='text'>How to check a solved Sudoku puzzle</title><content type='html'>When you solve a Sudoku puzzle, you should &lt;b&gt;*always*&lt;/b&gt; verify your solution is correct.&amp;nbsp; That sounds simple, right?&amp;nbsp; You would proofread an email before hitting the send button, but . . . how exactly do you verify a Sudoku puzzle?&lt;br /&gt;&lt;br /&gt;There are many Sudoku solver websites-- so you could, in theory, enter the puzzle manually into the site, have it solve the puzzle and then compare your solution with the solution generated by the Sudoku solver site.&amp;nbsp; But honestly, it's such a simple process that using a solver website is overkill.&amp;nbsp; If you can count to nine eighteen times in a row, you can check a Sudoku puzzle.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Focusing on the first row alone, find and count the numbers from 1 to 9.&amp;nbsp; If you are missing any numbers, you have an error (either a blank or a duplicated number) in this row.&amp;nbsp; You should mark errors for future reference to be corrected.&lt;/li&gt;&lt;li&gt;Repeat the process used in step 1 for all the remaining rows.&lt;/li&gt;&lt;li&gt;Focusing on the first column alone, find and count the numbers from 1 to 9.&amp;nbsp; If you are missing any numbers, you have an error in this row.&lt;/li&gt;&lt;li&gt;Repeat step 3 for the remainder of the columns.&lt;/li&gt;&lt;li&gt;If you have checked all the columns and rows for the numbers 1 through 9, and no numbers are missing, then your solution is valid.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Note: You must check both the rows AND the columns.&amp;nbsp; It is possible for all rows to be correct, and still have a problem in one or more columns-- or vice versa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-2434149442103677732?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/2434149442103677732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=2434149442103677732&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2434149442103677732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2434149442103677732'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2010/07/how-to-check-solved-sudoku-puzzle.html' title='How to check a solved Sudoku puzzle'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-7025558412038583268</id><published>2010-06-30T22:53:00.000-05:00</published><updated>2010-06-30T22:53:41.807-05:00</updated><title type='text'>CFUnited 2010</title><content type='html'>As you've most likely seen elsewhere, this will be the final year for the CFUnited conference.&amp;nbsp; I know many people are feeling sad or nostalgic, which is understandable.&amp;nbsp; CFUnited has been a part of the Coldfusion community for several years now, and many wonderful people have given their talents and efforts to make this event a continued, recurring success. &lt;br /&gt;&lt;br /&gt;As a latecomer to the entire Coldfusion conference scene (CFUnited 2009 was my first Coldfusion conference), it's hard to express how I feel about this news without feeling hypocritical.&amp;nbsp; The nearest analogy I can come up with is that "loud and scary" uncle you see once a year at the family summer reunion picnics.&amp;nbsp; By the time you grow up enough to see that uncle isn't truly scary and has some amazing stories to share-- he's gone.&amp;nbsp; It's not a profound and personal loss, but more of a missed opportunity to learn beyond my own personal limits.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;My metaphorical point being-- this will not be the last family reunion picnic, but future picnics will almost certainly be different.&amp;nbsp; Make the most of &lt;i&gt;&lt;b&gt;this one&lt;/b&gt;&lt;/i&gt;.&amp;nbsp; Find that "loud and scary uncle" and ask him to tell you about serving as a Flying Tiger during World War II.&amp;nbsp; It's a metaphor, indulge me.&amp;nbsp; (Go out of your way to say hello and introduce yourself to people. Take a  chance on a session you might not normally take. Exchange contact information so you can keep in touch.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-7025558412038583268?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/7025558412038583268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=7025558412038583268&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7025558412038583268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7025558412038583268'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2010/06/cfunited-2010.html' title='CFUnited 2010'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-435044926625291383</id><published>2010-05-18T22:02:00.000-05:00</published><updated>2010-05-18T22:02:04.272-05:00</updated><title type='text'>My NCDevCon Picks</title><content type='html'>&lt;h1&gt;NCDevCon 2010&lt;/h1&gt;&lt;h2&gt;5/22/2010&lt;span style="color: #548dd4; font-family: &amp;quot;Georgia&amp;quot;,&amp;quot;serif&amp;quot;;"&gt; &lt;/span&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;8-9 AM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Registration &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;9-10 AM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;The Not A Keynote Session, Adam Lehman&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;10-11 AM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Component Lifecycle, Andy Powell&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;11-12 Noon&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Database Tips and Tricks for Programmers&lt;br /&gt;&lt;i&gt;I'm tempted to make a snarky remark about being a "big fish in a little pond", because I've worked with SQL Server, Access and Filemaker Pro . . . while some folks I've worked with consider Excel to be a database. But the truth is, you can never have too many database tricks up your sleeves.&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;12-1 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Lunch&lt;i&gt;&lt;br /&gt;Try to eat without completely embarrassing myself by gawking &amp;amp; gaping at all the CF celebs. (OMG! Is that Sean Corfield?!)&lt;/i&gt; &lt;i&gt;Go ahead and laugh, but you know you've done it too.&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;1-2 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Understanding Security in Adobe AIR applications, Jason Dean&lt;i&gt;&lt;br /&gt;I don't even write AIR applications (yet!), but Jason's blog entries over at 12Robots.com have been so informative and interesting, that I'd kick myself if I missed this session.&lt;/i&gt; &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;2-3 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Getting Started with Coldfusion 9 ORM&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;3-5PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Hands on coldfusion session 3, Daria Norris&lt;br /&gt;&lt;i&gt;I've learned more about and used Application.cfc and CFCs since CFUnited 2009, and even dabbled a little bit with UDFs and custom tags, but everything's been piecemeal from blogs and documentation on an as needed basis. I'm looking forward to a live, structured presentation of information to help fill the gaps in my conceptual understanding.&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;h2&gt;5/23/2010&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;8-9 AM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Registration&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;9-10 AM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Pecha Kucha &lt;br /&gt;&lt;i&gt;I actually tried my hand at a Pecha Kucha presentation three years ago, after reading Daniel Pink's "A Whole New Mind." The topic was "Writing Valid Webpages" and it had lots of pop culture references and visuals to drive the points home. I was hoping it might change the "death by Powerpoint" culture of our organization. Maybe this session means we are approaching a tipping point?&amp;nbsp;&lt;/i&gt; &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;10-12 Noon&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Building a Website in Mura CMS (in 2 hours or less), Sean Schroeder&lt;br /&gt;&lt;i&gt;I hear very good things about this particular CMS, but every time I've tried it out, it's been a case of getting it installed and then, "Now what?" I'm hoping a live demonstration will get me over that hump.&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;12-1 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Lunch&lt;i&gt;&lt;br /&gt;Feed my face and cool down my overloaded brain cells&lt;/i&gt; ;)&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;1-2 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;MVC for the Rest of Use, Dennis Clark &lt;b&gt;*OR*&lt;/b&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;CSS Frameworks: Faster Layout,  Consistent Results&lt;i&gt;&lt;br /&gt;It happens at every conference.&amp;nbsp; There are always two really good sessions happening at the same time. I can't decide between these two. Crap. I may have to see if something comparable is being offered at CFUnited to help me break this tie.&lt;/i&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;2-3 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Confessions of a Crackberry Addict, Jerry Lankford&lt;br /&gt;&lt;i&gt;This is my "leap of faith." I know nothing about Jerry Lankford, and I can only speculate what the content of his presentation may be-- but with a title like that, I have a hunch it's going to be lively and entertaining. Simon Free's my backup choice here, because I know he's presenting at CFUnited in about two months.&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-435044926625291383?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://ncdevcon.com/page.cfm/schedule' title='My NCDevCon Picks'/><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/435044926625291383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=435044926625291383&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/435044926625291383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/435044926625291383'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2010/05/my-ncdevcon-picks.html' title='My NCDevCon Picks'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-2017560209808969351</id><published>2010-04-24T06:33:00.000-05:00</published><updated>2010-04-24T06:33:19.060-05:00</updated><title type='text'>A square drawn with thick, black lines on a white page</title><content type='html'>When I was a child, I had an activity book called "The Anti-Coloring Book." It featured puzzles, games and activities designed to engage children in multiple ways beyond a simple coloring book. One of the "puzzle tricks" I remember was based on the (perhaps incorrectly named?) "persistence of vision" phenomenon. I'm not a retina specialist; I'll continue my story and leave the debate over the proper terminology to others.&lt;br /&gt;&lt;br /&gt;The way this trick worked was you were to stare at, for example, a square with thick, black lines on an otherwise empty white page for 60 seconds, and then look away to another white surface, such as a wall.  You would see an "after image" of the square when you looked away from the page. Bear in mind, I was a child with next to no understanding of vision and the human eye at the time, so this sounded nothing short of magical to me-- with something from a book jumping off onto the wall next to me!&lt;br /&gt;&lt;br /&gt;The only problem was, I could never make it work.  I'd stare at the page "forever", only to look away and see nothing.  I actually wondered at one point if my eyes might be "broken" or "different" because I couldn't "see" the trick. (I still feel that way about those infuriating Magic Eye puzzles, but that's a story for another day!) I even remember talking to my parents to see if I was somehow doing it wrong. &lt;br /&gt;&lt;br /&gt;I mention this childhood memory now, because as I have gotten older my eyes/retinas seem to have the afterimage phenomenon in excess. When I wake in the morning, if I look over at my dresser and mirror for only a few seconds, and then look away from it, I can see the "afterimage" of the mirror's thick black frame on the ceiling for a duration of several seconds.  When this happens, I can't help but recall "The Anti-Coloring Book" and how I used to worry a little bit that I wasn't able to make that afterimage trick work.&lt;br /&gt;&lt;br /&gt;Maybe I'll give those Magic Eye puzzles another go . . . after I turn 60. ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-2017560209808969351?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/2017560209808969351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=2017560209808969351&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2017560209808969351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2017560209808969351'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2010/04/square-drawn-with-thick-black-lines-on.html' title='A square drawn with thick, black lines on a white page'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-8113005705189013415</id><published>2010-02-13T06:58:00.001-05:00</published><updated>2010-02-13T06:59:56.394-05:00</updated><title type='text'>Macromedia Contribute and psapi.dll</title><content type='html'>Problem: When I use the Microsoft Terminal Services client to remotely connect to my computer and start Macromedia Contribute 3.x, I get the following error message: "The procedure entry point GetProcessImageFileNameW could not be located in the dynamic link library PSAPI.DLL."  I hit the OK button repeatedly (about six times), and the program starts to load, begins to process templates, and then crashes and disappears.&lt;br /&gt;&lt;br /&gt;Issue: The dynamic link library, PSAPI.DLL, that ships with Macromedia Contribute is an older version of that dynamic link library.  The version in Windows XP's system folder is the newer, more advanced version.&lt;br /&gt;&lt;br /&gt;Solution:&lt;br /&gt;&lt;br /&gt;1) Locate and rename Contribute's PSAPI.DLL file (usually found in c:\Program Files\Macromedia\Contribute 3) to PSAPI.DLL.old. &lt;br /&gt;&lt;br /&gt;2) Find Windows XP's version of PSAPI.DLL (usually found in c:\windows\system32), and then COPY AND PASTE it into your Contribute 3 folder.  (Do *NOT* remove PSAPI.DLL from the System32 folder, or bad things will happen.)&lt;br /&gt;&lt;br /&gt;3) Restart your Terminal Services connection, remotely connect to the computer, and test the Macromedia Contribute application to make sure it is working properly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-8113005705189013415?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/8113005705189013415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=8113005705189013415&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8113005705189013415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8113005705189013415'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2010/02/problem-when-i-use-microsoft-terminal.html' title='Macromedia Contribute and psapi.dll'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-7182078760393460119</id><published>2009-12-13T10:15:00.011-05:00</published><updated>2009-12-15T21:10:43.108-05:00</updated><title type='text'>Converting Google Picasa's embedded slideshow code to valid XHTML/HTML</title><content type='html'>&lt;h2&gt;Defining the Problem:&lt;/h2&gt;&lt;p&gt;You have created a picture album in Google Picasa and want to embed a slideshow of that album in your website or blog.  Fortunately, Google Picasa makes it easy to generate the code to do so.  All you have to do is copy and paste the generated code into the HTML of your site.&lt;/p&gt;&lt;p&gt;Here's an example of that generated code, using my Chinese Zodiac desktop wallpaper album:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;lt;embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="144" height="96" flashvars="host=picasaweb.google.com&amp;amp;hl=en_US&lt;br /&gt;&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2FJonah.Chanticleer%2Falbumid%2F5220445689687444257%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/embed&amp;gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Unfortunately, Picasa's generated code uses the &amp;lt;embed&amp;gt; tag, which is not part of the HTML/XHTML standards (see &lt;a href="http://validator.w3.org/docs/help.html#faq-flash"&gt;http://validator.w3.org/docs/help.html#faq-flash&lt;/a&gt; for more information). Furthermore, the value assigned to the flashvars attribute of the &amp;lt;embed&amp;gt; tag has multiple ampersands in it, and those ampersands are not properly URL-encoded (see &lt;a href="http://www.htmlhelp.com/tools/validator/problems.html#amp"&gt;http://www.htmlhelp.com/tools/validator/problems.html#amp&lt;/a&gt; for details). This means the code will break validation for any page into which you paste it.  Many people don't care if their pages fail to validate, but since you've made the effort to find this article and read this far, I'm assuming you are a web development professional who does care if your page throws a web-browser into "quirks mode."(&lt;a href="http://en.wikipedia.org/wiki/Quirks_mode"&gt;http://en.wikipedia.org/wiki/Quirks_mode&lt;/a&gt;)&lt;/p&gt;&lt;h2&gt;Creating a Solution:&lt;/h2&gt;&lt;p&gt;To regain proper validation, we need to address the two following issues:&lt;/p&gt;&lt;p&gt;1.    Switch from &amp;lt;embed&amp;gt; to &amp;lt;object&amp;gt;, which is part of the HTML/XHTML standards&lt;/p&gt;&lt;p&gt;2.    Properly encode the ampersands by changing them from "&amp;amp;" to "&amp;amp;amp;"&lt;/p&gt;&lt;h3&gt;Switching from embed to object:&lt;/h3&gt;&lt;p&gt;Let's take a closer look at the attributes of the &amp;lt;embed&amp;gt; tag example from above. I've separated them by linebreaks to make them easier for us to read:&lt;/p&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;embed&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;type="application/x-shockwave-flash"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;src="http://picasaweb.google.com/s/c/bin/slideshow.swf"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;width="144"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;height="96"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;flashvars="host=picasaweb.google.com&amp;amp;hl=en_US&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2FJonah.Chanticleer%2Falbumid%2F5220445689687444257%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;pluginspage="http://www.macromedia.com/go/getflashplayer"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/embed&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;The good news is that three of the six attributes (width, height and type) translate directly into attributes with the same names for the new object tag. We are off to a good start.&lt;/p&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;object type="application/x-shockwave-flash" width="144" height="96"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   &amp;lt;!-- TBD --&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/object&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;By reading the HTML reference page for the object tag (&lt;a href="http://www.w3schools.com/TAGS/tag_object.asp"&gt;http://www.w3schools.com/TAGS/tag_object.asp&lt;/a&gt;), we can figure out that the src attribute doesn't exist-- the closest equivalent to it is the data attribute.  The two remaining attributes, pluginspage and flashvars, do not have any counterparts in the attributes of the object tag.  We will need to pass them directly as run-time parameters with the param tag (&lt;a href="http://www.w3schools.com/TAGS/tag_param.asp"&gt;http://www.w3schools.com/TAGS/tag_param.asp&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;It is worth noting this one important note from the object tag reference: "The object support in browsers depend on the object type. Unfortunately, the major browsers use different codes to load the same object type."  In other words, all standards-compliant web browsers will recognize the object tag, but they may do so in different ways.  Netscape-family browsers might respond to the data attribute, while Internet Explorer will not see that same information unless it is passed along in a param value.&lt;/p&gt;&lt;p&gt;Fortunately for us, Drew McLellan's article in the Nov. 9 2002 issue of A List Apart, "Flash Satay: Embedding Flash While Supporting Standards," gives us just the perfect trick to make the object/param sandwich that works with both sets of browsers.  Check it out below:&lt;/p&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;object type="application/x-shockwave-flash" width="144" height="96" data="http://picasaweb.google.com/s/c/bin/slideshow.swf"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   &amp;lt;param name="movie" value="http://picasaweb.google.com/s/c/bin/slideshow.swf" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/object&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;(Mr. McLellan, if you should find yourself in the DC Metro area, drop me a line-- because your first beverage is on me. This bit of brilliance saved me time and a headache!)&lt;/em&gt;&lt;/p&gt;Let's stay on track-- because we haven't finished just yet!  We still need to create param tags for the pluginspage and flashvars, and nest them between the object tags.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;object type="application/x-shockwave-flash" width="144" height="96" data="http://picasaweb.google.com/s/c/bin/slideshow.swf"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   &amp;lt;param name="movie" value="http://picasaweb.google.com/s/c/bin/slideshow.swf" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   &amp;lt;param name="FlashVars" value="host=picasaweb.google.com&amp;amp;hl=en_US&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2FJonah.Chanticleer%2Falbumid%2F5220445689687444257%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   &amp;lt;param name="pluginspage" value="http://www.macromedia.com/go/getflashplayer" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/object&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;h3&gt;Encoding the ampersands:&lt;/h3&gt;Almost done. There's only one thing left to fix-- those pesky ampersands assigned to the "value" attribute of the param tag named "FlashVars."  This is literally a case of substituting "&amp;amp;amp;" for "&amp;amp;", as I've done below (bold removed for emphasis):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;param name="FlashVars" value="host=picasaweb.google.com&lt;/span&gt;&amp;amp;amp;&lt;span style="font-weight: bold;"&gt;hl=en_US&lt;/span&gt;&amp;amp;amp;&lt;span style="font-weight: bold;"&gt;feat=flashalbum&lt;/span&gt;&amp;amp;amp;&lt;span style="font-weight: bold;"&gt;RGB=0x000000&lt;/span&gt;&amp;amp;amp;&lt;span style="font-weight: bold;"&gt;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2FJonah.Chanticleer%2Falbumid%2F5220445689687444257%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;h2&gt;Final Result:&lt;/h2&gt;So, our end result should look like this when we view it as an entire page (assuming XHTML 1.0 Transitional):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;title&amp;gt;. . .&amp;lt;/title&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;!-- any content in your page that appears before the slideshow --&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;object type="application/x-shockwave-flash" width="144" height="96" data="http://picasaweb.google.com/s/c/bin/slideshow.swf"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   &amp;lt;param name="movie" value="http://picasaweb.google.com/s/c/bin/slideshow.swf" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   &amp;lt;param name="FlashVars" value="host=picasaweb.google.com&amp;amp;amp;hl=en_US&amp;amp;amp;feat=flashalbum&amp;amp;amp;RGB=0x000000&amp;amp;amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2FJonah.Chanticleer%2Falbumid%2F5220445689687444257%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   &amp;lt;param name="pluginspage" value="http://www.macromedia.com/go/getflashplayer" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/object&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;!-- any content in your page that appears after the slideshow --&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;h2&gt;Extra Credit:&lt;/h2&gt;Now that your page validates, you can congratulate yourself on a job well done-- until the next time you need to create a new slideshow code snippet in Picasa.  Or someone else tries to use the invalid slideshow code on their webpage, and asks you to help them fix it.  Or doesn't ask you to help them fix it.&lt;br /&gt;&lt;p&gt;The truth is what I've shown you here is only a band-aid, not a cure for the real problem.  There are many tools out there which generate invalid HTML code snippets; Google's Picasa is only one of them.  If you care about web standards and want to see them realized on the World Wide Web, you need to contact the developers responsible for popular tools like Picasa (&lt;a href="http://www.google.com/support/forum/p/Picasa/thread?tid=3ca39d2989c708ac&amp;amp;hl=en"&gt;http://www.google.com/support/forum/p/Picasa/thread?tid=3ca39d2989c708ac&amp;amp;hl=en&lt;/a&gt;) and persuade them to make changes that will result in the output of valid HTML code. Be patient and polite when you advocate for these changes, not pushy and critical.  You never know the circumstances behind the development of an application or product.  It may be the developer created the code before a specific standard had been fully ratified, or the developer may have been forced to use third party libraries/components that generate invalid code.  By advocating and educating in a positive manner, you can give a developer the motivation, desire and information they need to do the right thing.&lt;/p&gt;&lt;h2&gt;Acknowledgments/Further Reading:&lt;/h2&gt;&lt;p&gt;Thanks to E.G. for bringing this whole Google Picasa puzzle to my attention in the first place.&lt;/p&gt;&lt;p&gt;Drew McLellan, "Flash Satay: Embedding Flash While Supporting Standards", A List Apart, Nov. 9, 2002, &lt;a href="http://www.alistapart.com/articles/flashsatay"&gt;http://www.alistapart.com/articles/flashsatay&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Picasa Web Albums Help Forum (&lt;a href="http://www.google.com/support/forum/p/Picasa/label?lid=051816230f0ec560&amp;amp;hl=en"&gt;http://www.google.com/support/forum/p/Picasa/label?lid=051816230f0ec560&amp;amp;hl=en&lt;/a&gt;)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-7182078760393460119?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/7182078760393460119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=7182078760393460119&amp;isPopup=true' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7182078760393460119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7182078760393460119'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2009/12/converting-google-picasas-embedded.html' title='Converting Google Picasa&apos;s embedded slideshow code to valid XHTML/HTML'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-6242288792165317373</id><published>2009-10-23T23:32:00.001-05:00</published><updated>2009-10-23T23:33:59.294-05:00</updated><title type='text'>PearLyrics, Harmonic, and the lyrics hunting software genre</title><content type='html'>A few years ago, I found a nice tool for iTunes/Mac OS X called PearLyrics. It would monitor what was playing now in iTunes, connect to various Internet servers and search for the lyrics of the current song. It was efficient &amp;amp; quick.&lt;br /&gt;&lt;br /&gt;Long story: the record industry giants "didn't understand" and felt this tool  was jeopardizing their IP, legal saber rattling ensued, etc. Supposedly it's all cleared up now, but it's worth noting PearLyrics' "hit rate" has dramatically diminished.  "Sorry, no lyrics found" is the typical response; successfully finding lyrics happens about 1 time in a dozen.&lt;br /&gt;&lt;br /&gt;I took a look at other similar software, and found even Harmonic (which is linked from Apple's downloads site) seems to have extraordinary difficulty finding lyrics for the majority of songs in my library. Makes me wonder what's changed on the Internet behind the scenes. And who made those changes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-6242288792165317373?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/6242288792165317373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=6242288792165317373&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/6242288792165317373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/6242288792165317373'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2009/10/pearlyrics-harmonic-and-lyrics-hunting.html' title='PearLyrics, Harmonic, and the lyrics hunting software genre'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-8969166497376062810</id><published>2009-09-19T14:18:00.003-05:00</published><updated>2009-09-19T14:45:46.330-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bluetooth'/><category scheme='http://www.blogger.com/atom/ns#' term='LG Xenon'/><title type='text'>LG Xenon, Sending Multiple Pictures via Bluetooth Simultaneously (the video clip)</title><content type='html'>A few weeks ago, I wrote an entry about &lt;a href="http://anerroroccurred.blogspot.com/2009/08/lg-xenon-transferring-multiple-pictures.html"&gt;how to send multiple pictures simultaneously via Bluetooth from an LG Xenon&lt;/a&gt;. I figured it was esoteric and obscure, but it quickly became my number one content page-- so I guess there must be other LG Xenon owners who are scratching their heads trying to figure this puzzle out as well.&lt;br /&gt;&lt;br /&gt;Since I had a difficult time writing the entry in a way that I felt was clear and descriptive to readers, I decided to make a &lt;a href="http://www.youtube.com/watch?v=2BAQ8DZWAXQ"&gt;mini-tutorial video&lt;/a&gt; which walks you through the process.  I hope you find it helpful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-8969166497376062810?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/8969166497376062810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=8969166497376062810&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8969166497376062810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8969166497376062810'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2009/09/lg-xenon-sending-multiple-pictures-via.html' title='LG Xenon, Sending Multiple Pictures via Bluetooth Simultaneously (the video clip)'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-6785820579442950202</id><published>2009-09-09T20:14:00.005-05:00</published><updated>2009-09-09T20:33:21.719-05:00</updated><title type='text'>Filemaker IWP and the Database Homepage</title><content type='html'>(NOTE: I'm &lt;span style="font-weight: bold;"&gt;not&lt;/span&gt; writing this blog entry for my "audience"; I'm writing it to help me remember this issue a year from now.  I do that sometimes. Don't worry, you'll get used to it.)&lt;br /&gt;&lt;br /&gt;So the other day, someone shows me a specific Filemaker database being served up via Instant Web Publishing (aka IWP).  They ask me to help them make a modification on the webpage that people land on when they logout/exit the application.  No problem, I figure-- it's obviously a static page because it already contains customized content on it.  All I have to do is drill down into the IIS webroot subfolder, locate the page, open it up in Notepad and make the requested changes.&lt;br /&gt;&lt;br /&gt;Naturally, the customized database homepage could not be found in the webroot folder.  I searched for it manually, I asked Windows to search the folder and subfolders based on strings of text we could see in the page via the browser.  Nothing, nada, zip.&lt;br /&gt;&lt;br /&gt;It turns out that when you customize the default database homepage for Instant Web Publishing, you do so by creating a file called iwp_home.html. However, you don't put this file in the webroot folder of your web server.  This file resides inside a subfolder of the actual Filemaker folder itself, which is completely outside the webserver's normal document path.  It's basically the lone exception to the "all static pages can be found in the wwwroot folder" rule.&lt;br /&gt;&lt;br /&gt;Fool me once, shame on you.  Fool me twice, shame on me.  ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-6785820579442950202?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/6785820579442950202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/6785820579442950202'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2009/09/filemaker-iwp-and-database-homepage.html' title='Filemaker IWP and the Database Homepage'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-1362166148985579663</id><published>2009-08-08T20:16:00.003-05:00</published><updated>2009-08-09T14:05:40.946-05:00</updated><title type='text'>LG Xenon: Transferring multiple pictures via Bluetooth</title><content type='html'>If I had to pick one feature of my LG Xenon phone as my favorite, it would be the Bluetooth connections with other devices. Sure, there's the obvious wireless/hands-free earpieces, but when I can download MP3 podcasts via iTunes on my iBook and then batch transfer them to my phone &lt;span style="font-style: italic;"&gt;without having to keep track of another USB cable,&lt;/span&gt; that's when it becomes cool and begins to border on outright magic.&lt;br /&gt;&lt;br /&gt;So, when I found myself unable to transfer multiple photos simultaneously from my LG Xenon's "Camera Album" software, something wasn't making sense.  It was weird-- I could view the photos in thumbnail mode, and when I invoked the Send -&gt; Bluetooth option from the menu, all of the pictures had checkmark boxes (not radio buttons) beside them . . . implying it was somehow possible to select more than one.  But whenever you tried to click the second, third, etc. photos, the checkmark would be removed from the checkbox of the previously chosen photo.&lt;br /&gt;&lt;br /&gt;Very. Frustrating.&lt;br /&gt;&lt;br /&gt;I looked through my phone's manual, figuring there'd be some sentence instructing me to hold down the shift-key-equivalent on my QWERTY keyboard-- unfortunately, the section of the manual dealing with the Camera Album was very sparse.  It was basically a listing of the menu features with no explanation beyond into each feature.  Apparently, there is no way to select multiple photos within the "Camera Album" and send them via Bluetooth to another device.&lt;br /&gt;&lt;br /&gt;Fortunately, there is a separate application entirely called "Pictures" located within the tabbed organizer section of the LG Xenon screens.  (From the Home screen, click on the blue square with the four white dots-- you can't miss it.  It's at the bottom of the home screen and looks like a six-sided die with four pips showing.  You should now be looking at a rolodex-style screen, with tabs running across the top: a phone handset, one of those director's snap/cue boards, an overstuffed file folder, and a gear.  Click on the tab with the overstuffed file folder, and you'll see an icon for an application called "Pictures.")  I'll try to include a picture later, if I'm able.&lt;br /&gt;&lt;br /&gt;Once you open the Pictures application, you should see thumbnails of all the pictures stored on your phone.  This includes pictures you have taken as well as the various wallpapers and icons that came with your phone.  Hit the menu icon in the top right corner, and select "Send." From there, hit "Bluetooth."  You'll see all your thumbnails again, but only the photos you've actually taken will have those (infuriating?) checkmark boxes.  Hit the "All" button on the right hand side of the screen-- this will only select all the photos you have taken, not the wallpapers, etc.  Now, hit send, and choose your destination from the "Paired Devices" screen.&lt;br /&gt;&lt;br /&gt;Hopefully this little tip might save another LG Xenon enthusiast some time and trouble.  If so, drop me a line in the comments, so I'll know if other people found it useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-1362166148985579663?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/1362166148985579663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=1362166148985579663&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/1362166148985579663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/1362166148985579663'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2009/08/lg-xenon-transferring-multiple-pictures.html' title='LG Xenon: Transferring multiple pictures via Bluetooth'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-4160115010048439163</id><published>2009-07-04T05:52:00.003-05:00</published><updated>2009-07-04T06:13:19.951-05:00</updated><title type='text'>Primary Keys Must Be Independent</title><content type='html'>A Cautionary Tale About Primary Keys:&lt;br /&gt;&lt;br /&gt;Once upon a time . . . there was a developer named &lt;span style="font-style: italic;"&gt;"Bryan"&lt;/span&gt;, who was assigned the task of creating a relational database application that tracked the relationships between buildings and the people assigned to them.  It was an easy enough application, with only two tables-- People and Sites.  When creating the Sites table, &lt;span style="font-style: italic;"&gt;"Bryan"&lt;/span&gt; thought it would be okay to use the payroll code for each site as his primary key.  After all, each site had its own unique payroll code.  Why not just repurpose that code for the database key as well?&lt;br /&gt;&lt;br /&gt;Several months later, one of the sites decided to open a satellite office.  Since it was a different physical location, it needed its own record in the Sites table-- but since it was a satellite office, they used the same payroll code to pay their staff as the parent office.  When &lt;span style="font-style: italic;"&gt;"Bryan"&lt;/span&gt; tried to add the new office to his database table, he received an error message because his primary key wasn't unique.  But, he couldn't just modify the entry by appending a suffix either, because that would mess up queries and reports in his application.&lt;br /&gt;&lt;br /&gt;The moral of the story is:&lt;br /&gt;&lt;br /&gt;Make sure your primary key(s) are not entirely dependent on a single piece of data with which other human beings can screw.  If you absolutely must use something like payroll code in the example above, make it a compound primary key that combines the payroll code field with a unique, independent field.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-4160115010048439163?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/4160115010048439163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=4160115010048439163&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4160115010048439163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4160115010048439163'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2009/07/primary-keys-must-be-independent.html' title='Primary Keys Must Be Independent'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-2464680176800738403</id><published>2009-06-23T19:57:00.002-05:00</published><updated>2009-06-23T21:30:30.238-05:00</updated><title type='text'>Working with ISO 639-1 language codes in Coldfusion</title><content type='html'>Recently, I've been working on a project that uses the &lt;a href="http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes"&gt;ISO 639-1 language codes&lt;/a&gt; (example: en = English, es = Spanish, etc.) to filter the results of a search. Everything works fine, until someone accidentally provides an invalid language code &lt;span style="font-weight: bold;"&gt;and no results are returned.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's a subtle bitch of an error, when you think about it.  Someone believes they are performing a search for any item written in Spanish that mentions the movie title, &lt;a href="http://www.imdb.com/title/tt0137523/"&gt;Fight Club&lt;/a&gt;, but they've accidentally provided the non-existent language code of "ed."  No results are found because there isn't even an "ed" language, and our user walks away with the mistaken impression that hispanics have nothing of interest to say about Fight Club.&lt;br /&gt;&lt;br /&gt;(I know this example seems silly, but there's a convention of using movie titles as examples in Coldfusion training. Try replacing "Fight Club" with "Election" and "hispanic" with "iranians."  Doesn't seem nearly as silly now, does it?)&lt;br /&gt;&lt;br /&gt;Clearly, if someone provides an invalid language code for a search, we want to notify them there is a problem.  Then they can correct the language code and perform the search again.  This problem actually consists of two parts: determining if the provided language code is valid, and then how to best notify the user if it is not.&lt;br /&gt;&lt;br /&gt;Since the first part of the problem is more interesting to me, and far better coders have written fantastic articles and many blog entries on error handling in Coldfusion, I'm going to focus on the challenge of how to best determine if a provided language code is valid.  (For the "UI expert" who reads this and says it's a non-issue because I should just display the language codes in a select/option list-- what if I don't have exclusive control over the interface because it's a web service or component with remotely accessible methods and third party developers are creating their own clients for it?)&lt;br /&gt;&lt;br /&gt;Here's my first stab at code that compares ARGUMENTS.lang (i.e. the language code provided by the user) against the official letter codes:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: trebuchet ms;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: trebuchet ms;"&gt;&amp;lt;!--- first we need a list of the various ISO 639-1 language letter codes ---&amp;gt;  &lt;br /&gt;&amp;lt;cfset VARIABLES.ListISOCodes = "aa,ab,ae,af,ak,am,an,ar,as,av,ay,az,ba,be,bg,bh,bi,bm,bn,bo,br,bs,ca,ce,ch,co,cr,&lt;br /&gt;cs,cu,cv,cy,da,de,dv,dz,ee,el,en,eo,es,et,eu,fa,ff,fi,fj,fo,fr,fy,ga,gd,gl,gn,gu,gv,ha,&lt;br /&gt;he,hi,ho,hr,ht,hu,hy,hz,ia,id,ie,ig,ii,ik,io,is,it,iu,ja,jv,ka,kg,ki,kj,kk,kl,km,kn,ko,kr,&lt;br /&gt;ks,ku,kv,kw,ky,la,lb,lg,li,ln,lo,lt,lu,lv,mg,mh,mi,mk,ml,mn,mr,ms,mt,my,na,nb,nd,&lt;br /&gt;ne,ng,nl,nn,no,nr,nv,ny,oc,oj,om,or,os,pa,pi,pl,ps,pt,qu,rm,rn,ro,ru,rw,sa,sc,sd,se,&lt;br /&gt;sg,si,sk,sl,sm,sn,so,sq,sr,ss,st,su,sv,sw,ta,te,tg,th,ti,tk,tl,tn,to,tr,ts,tt,tw,ty,ug,uk,&lt;br /&gt;ur,uz,ve,vi,vo,wa,wo,xh,yi,yo,za,zh,zu"&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: trebuchet ms;"&gt;&amp;lt;!--- checking to see if the optional ISO language code parameter was passed ---&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: trebuchet ms;"&gt;&amp;lt;cfif isDefined("ARGUMENTS.lang")&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: trebuchet ms;"&gt;&amp;lt;!--- if so, we use ListFind to search for provided lang code in our list ---&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: trebuchet ms;"&gt;&amp;lt;!--- if ListFind returns 0 then we know it didn't find the specified code ---&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: trebuchet ms;"&gt;   &amp;lt;cfif (listFind(VARIABLES.ListISOCodes,ARGUMENTS.lang) IS 0)&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: trebuchet ms;"&gt;&amp;lt;!--- this is where we throw an error, or set our returnvariable to some warning flag/message ---&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: trebuchet ms;"&gt;               &lt;br /&gt;&lt;br /&gt;   &amp;lt;/cfif&amp;gt;&lt;br /&gt;&amp;lt;/cfif&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: trebuchet ms;"&gt;&lt;/span&gt;&lt;/span&gt;Sure, it gets the job done. But I think I can do better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-2464680176800738403?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/2464680176800738403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=2464680176800738403&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2464680176800738403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2464680176800738403'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2009/06/working-with-iso-639-1-language-codes.html' title='Working with ISO 639-1 language codes in Coldfusion'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-6565650023143435546</id><published>2009-04-14T21:25:00.009-05:00</published><updated>2009-04-23T21:30:54.509-05:00</updated><title type='text'>Five things you should [but probably will not] do after installing Tomato firmware</title><content type='html'>You've installed Tomato firmware on your Linux-based router/AP and tried out all the "sexy" features.  Maybe you've been obsessing over your bandwidth statistics? Or used the SSH daemon to surf the web with encryption at public WiFi spots?  Or perhaps found the best channel to use for your wireless network with the wireless survey tool? Chances are, you've got your Tomato configuration features customized to maximize your situation.&lt;br /&gt;&lt;br /&gt;And I'm sure you remembered to back your router configuration up too, right?&lt;br /&gt;&lt;br /&gt;Yeah, me neither. ;)  Don't worry-- I'm not writing this entry to "look down my nose" at people. It's easy to get carried away and overlook the mundane basics when a free download adds so much utility to your residential networking gear.  Now that my initial infatuation period has passed, I'm hoping to create a basic checklist of configuration tasks to help me stay more focused and disciplined during future Tomato installation/configuration opportunities.  Hopefully someone else will benefit from my oversights.&lt;br /&gt;&lt;br /&gt;1. STAY CURRENT WITH NEW FIRMWARE: Many people download and install the Tomato firmware on their router, only to forget about it after a few weeks of experimentation and customizing. It's human nature-- if something works well, we take it for granted and focus our attention elsewhere.  A few months pass, and suddenly we're missing out on great new features that would make our network situations even better. Or, in a worst case scenario, we continue using an older version of the firmware that turns out to have a security exploit in it.&lt;br /&gt;&lt;br /&gt;You don't have to check &lt;a href="http://www.polarcloud.com/"&gt;Polarcloud's website&lt;/a&gt; religiously every day to see if a new firmware version is available.  You can sign up for their &lt;a href="http://feedburner.google.com/fb/a/mailverify?uri=polarcloud-firmware"&gt;email alert service&lt;/a&gt; (for the "traditional" crowd) or their &lt;a href="http://polarcloud.com/taxonomy/term/4/0/feed"&gt;RSS feed&lt;/a&gt; (for the "cool kids" and their aggregators).&lt;br /&gt;&lt;br /&gt;2. TELL TOMATO WHERE TO KEEP YOUR BANDWIDTH MONITORING DATA: I don't personally understand the appeal, but people like Tomato's bandwidth monitoring feature.  I guess if you have an Internet Service Provider that charges for bandwidth used instead of a flat fee that it could help settle a dispute and "keep folks honest." Unfortunately, Tomato keeps your bandwidth history in temporary memory by default. This means your historical bandwidth data disappears if your router reboots for any reason (brief power outage, configuration change that required a restart, etc.)&lt;br /&gt;&lt;br /&gt;If you need to hang on to that data, you need to tell Tomato to keep it in a less volatile place (&lt;span style="font-style: italic;"&gt;Administration -&gt; Bandwidth Monitoring&lt;/span&gt;). I personally have Tomato saving my data into NVRAM on the router itself once per week, but then I don't have an serious need for that information.  If you do, you might consider using &lt;a href="http://en.wikipedia.org/wiki/CIFS"&gt;CIFS&lt;/a&gt; to copy the information to a computer on your network instead and saving more often.&lt;br /&gt;&lt;br /&gt;3. USE OPENDNS: This tip isn't Tomato specific, per se, but I think it's worth mentioning anyway. You should, at a minimum, seriously consider changing your router's DNS server settings to those provided by &lt;a href="htttp://www.opendns.com"&gt;Open DNS&lt;/a&gt;. Although many people talk about the improved speed they've seen since making this change, my reason for recommending them is more security-based. Thanks to a collaborative relationship with their sister-site, &lt;a href="http://www.phishtank.com/"&gt;Phishtank&lt;/a&gt;, people who use Open DNS are automatically protected from blacklisted phishing sites. By using Open DNS servers in your router's settings, any computer or device that accesses the Internet via your network enjoys that same protection.&lt;br /&gt;&lt;br /&gt;If you like that nifty little trick, signing up for a free account with Open DNS gives you even more features and control. You will want to set up Open DNS as one of your two Dynamic DNS options in Tomato (&lt;span style="font-style: italic;"&gt;Basic -&gt; DDNS&lt;/span&gt;) to keep the service informed of any IP address changes.&lt;br /&gt;&lt;br /&gt;4. BACKUP YOUR ROUTER CONFIGURATION: You've invested time and energy learning Linux esoterics to customize your configuration precisely how you want it. The sense of accomplishment you're feeling now won't be there when you attempt recreating that configuration from scratch because "something happened and you didn't make a backup."&lt;br /&gt;&lt;br /&gt;Save yourself the frustration by making a backup copy of your masterpiece (&lt;span style="font-style: italic;"&gt;Administration -&gt; Configuration&lt;/span&gt;) before "something happens."&lt;br /&gt;&lt;br /&gt;5. NOW IT'S YOUR TURN! I am sure there are more than just five "essential" configuration tasks to the Tomato Firmware.  Share your "sadder, but wiser" configuration story as a comment, so everyone can learn from it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-6565650023143435546?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/6565650023143435546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=6565650023143435546&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/6565650023143435546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/6565650023143435546'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2009/04/five-things-you-should-but-probably.html' title='Five things you should [but probably will not] do after installing Tomato firmware'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-5662172440669336343</id><published>2009-04-05T20:19:00.002-05:00</published><updated>2009-04-05T21:43:04.024-05:00</updated><title type='text'>Why I want to learn calculus</title><content type='html'>Some people love mathematics. They see an inner beauty to the subject that inspires them into learning even deeper mysteries.  Unfortunately, I am not one of those people.  I was "good enough" at math as a student, but it was never a burning passion. My last math class as a high school senior was Algebra II/Trigonometry. Although I had college professors who tried to persuade me to major in science, but my personality and temperament seemed better suited to the liberal arts majors.  Basically, I chose Shakespeare over Newton.&lt;br /&gt;&lt;br /&gt;Now that I am middle aged, I find myself examining recent historical events and wondering for the first time if not taking calculus may have been a mistake.&lt;br /&gt;&lt;br /&gt;Explaining my newfound interest in calculus is difficult. It's not as simple as "something bad  happened to me Wednesday, and when I woke up Thursday morning I decided I wanted to learn calculus."  It's more like memories and experiences accumulated into a sufficient mass, and then a dear friend of mine began taking calculus, and that triggered this new obsession of mine.&lt;br /&gt;&lt;br /&gt;This story may help:&lt;br /&gt;&lt;br /&gt;I remember hearing in an astronomy course about scientists who discovered a new planet (Pluto, perhaps?) that could not even be seen from Earth. The way I understood it, they compared the mathematical model of a known planet's orbit against the actual orbital data-- and found it didn't match.  That meant another factor was involved that they hadn't accounted for-- namely, the gravitational force of another planet.  By analyzing the orbital information of the planet they could see, they eventually deduced the existence of the previously undiscovered planet.  (&lt;span style="font-style: italic;"&gt;Before someone pipes up with the obvious-- I know Pluto is no longer officially considered a planet; that has no bearing on the point of the story and the impact it had on me.&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;That ability to see the unseen and be aware of them impinging upon your environment-- that's a theme straight out of literature and the occult.  That additional sense of awareness can be empowering.  It lets you make decisions that other people, who are still unaware of "external force X", fail to understand.  If you doubt that, just think doctors who learned about the "germ theory" and began washing their hands before they delivered babies.&lt;br /&gt;&lt;br /&gt;I've personally witnessed my fair share of human dishonesty.  I've learned about an admin assistant at a local university who wrote "add slips" that allowed her friends to completely bypass the admission process for honors curriculum courses.  When the circumvention of the process was discovered, instead of disciplining the admin assistant, the administration chose to cover it up and secretly slander the student who brought it out in the daylight. So much for the honor code, I guess.  I've read through too many news stories about Kenneth Lay's Enron strategies, price fixing schemes amongst the record labels, election tampering scandals, etc.  I suspect more such abuses will become known as historians decide what to make of our first decade of the 21st century.&lt;br /&gt;&lt;br /&gt;You don't need to be a mathematical genius to know people will try to cheat other people, if they believe they can get away with it.  But you might *need* to be a mathematical genius to know if a specific person or organization is cheating you now.  If calculus can tell you what the orbit of a planet should be, and you can observe a discrepancy that suggests interference by an outside, unseen force, maybe you can use the same principle to detect unseen manipulation occurring with energy prices (Enron), your download bandwidth speed (ISPs and net neutrality), or stock market scams (Bernie Madoff).&lt;br /&gt;&lt;br /&gt;So apparently my motivation to learn calculus is fueled by my inherent distrust of human nature, and my paranoia to expose fraudsters who prey on others?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-5662172440669336343?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/5662172440669336343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=5662172440669336343&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/5662172440669336343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/5662172440669336343'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2009/04/why-i-want-to-learn-calculus.html' title='Why I want to learn calculus'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-6490397357409009626</id><published>2009-03-04T19:43:00.012-05:00</published><updated>2009-03-04T20:52:18.224-05:00</updated><title type='text'>A little CF parlor trick with Query of Queries, CFOUTPUT and ValueList</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Bz-p8OGqJD0/Sa8lRLuQfhI/AAAAAAAAAgo/Gp_zFb47B-8/s1600-h/CFTable.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 148px; height: 169px;" src="http://2.bp.blogspot.com/_Bz-p8OGqJD0/Sa8lRLuQfhI/AAAAAAAAAgo/Gp_zFb47B-8/s400/CFTable.jpg" alt="" id="BLOGGER_PHOTO_ID_5309503462827916818" border="0" /&gt;&lt;/a&gt;Here's the problem. The table in our database looks like the diagram at the right. But our client/boss/customer wants to display the data on the web page like this:&lt;br /&gt;&lt;p&gt;Level 1: Example A, Example B, Example C&lt;br /&gt;&lt;br /&gt;Level 2: Example D, Example E, Example F&lt;br /&gt;&lt;br /&gt;Level 3: Example G, Example H, Example I&lt;/p&gt;&lt;p&gt;So how do we get from table to page? It's honestly not difficult in hindsight, but I had to combine a few items I don't often use in my daily routine to accomplish it.&lt;/p&gt;&lt;p&gt;The first step is to get the data out of the table so we can manipulate it. Let's start with a simple Master Query.&lt;/p&gt;&amp;lt;cfquery name="MasterQuery" datasource="ExampleDB"&amp;gt;&lt;br /&gt;    SELECT * FROM ExampleTable&lt;br /&gt;&amp;lt;/cfquery&amp;gt;&lt;br /&gt;&lt;br /&gt;Now that we've created a recordset with our results, we can use the Query of Queries feature, to create smaller record subsets, based upon the value contained in Level.&lt;br /&gt;&lt;br /&gt;&amp;lt;cfquery name="Level1" dbtype="query"&amp;gt;&lt;br /&gt;    SELECT * FROM MasterQuery WHERE Level = '1' ORDER BY Name&lt;br /&gt;&amp;lt;/cfquery&amp;gt;&lt;br /&gt;&amp;lt;cfquery name="Level2" dbtype="query"&amp;gt;&lt;br /&gt;    SELECT * FROM MasterQuery WHERE Level = '2' ORDER BY Name&lt;br /&gt;&amp;lt;/cfquery&amp;gt;&lt;br /&gt;&amp;lt;cfquery name="Level3" dbtype="query"&amp;gt;&lt;br /&gt;    SELECT * FROM MasterQuery WHERE Level = '3' ORDER BY Name&lt;br /&gt;&amp;lt;/cfquery&amp;gt;&lt;br /&gt;&lt;br /&gt;We've almost accomplished our task.  We've got the results split into smaller recordsets by level.  All we need is to display our results! But we can't just drop them into a typical CFOUTPUT tags with query attributes that matches our subqueries, like so . . .&lt;br /&gt;&lt;br /&gt;&amp;lt;h2&amp;gt;Level 1:&amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;lt;cfoutput query="Level1"&amp;gt;#Name, #&amp;lt;/cfoutput&amp;gt;&lt;br /&gt;&lt;br /&gt;. . . because, &lt;a href="http://en.wikipedia.org/wiki/Groo_the_Wanderer"&gt;as any fool can plainly see&lt;/a&gt;, we'll wind up having an extra comma trailing after the last item! However, we can nest a valuelist function (which turns one column of a recordset into a list, separated by the delimiter of our choice) inside a "plain" cfoutput tag: &lt;br /&gt;&lt;br /&gt;&amp;lt;h2&amp;gt;Level 1:&amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;lt;cfoutput&amp;gt;#valuelist(Level1.Name, ", ")#&amp;lt;/cfoutput&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;h2&amp;gt;Level 2:&amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;lt;cfoutput&amp;gt;#valuelist(Level2.Name, ", ")#&amp;lt;/cfoutput&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;h2&amp;gt;Level 3:&amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;lt;cfoutput&amp;gt;#valuelist(Level3.Name, ", ")#&amp;lt;/cfoutput&amp;gt;&lt;br /&gt;&lt;br /&gt;I'm sure plenty of ColdFusion vets would look at this and wonder why I think this is a big deal because it's the obvious solution to them. What can I say? This is the first time I've run across a legit situation requested by a client that required me to use Query of Queries, valuelist and cfoutput, so to me this is new territory.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-6490397357409009626?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/6490397357409009626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=6490397357409009626&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/6490397357409009626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/6490397357409009626'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2009/03/heres-problem-table-in-our-database.html' title='A little CF parlor trick with Query of Queries, CFOUTPUT and ValueList'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Bz-p8OGqJD0/Sa8lRLuQfhI/AAAAAAAAAgo/Gp_zFb47B-8/s72-c/CFTable.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-1454936153920681206</id><published>2009-02-25T20:16:00.002-05:00</published><updated>2009-02-25T20:35:24.620-05:00</updated><title type='text'>Troubleshooting Tip for image files that will not open</title><content type='html'>So your "not exactly tech-savvy" friend/sibling/parent sends you a JPEG file with a plea for help.  No matter what they do, they cannot get the file to open and display properly.  You scan the file to make sure its not some kind of malware in sheep's clothing, and when it scans as clean you find you are unable to open the file as well.&lt;br /&gt;&lt;br /&gt;(I've encountered this problem twice in the last month now, so I figured I'd give it a quick write up in case anyone else was getting asked to assist with similar problems.)&lt;br /&gt;&lt;br /&gt;It's a weird thing, but it's technically possible to save images with incorrect file extensions in some software.  In other words, I might be saving a Windows Bitmap file with a filename of example.jpg.  (For the record, Seashore on OS X refuses to let me do this-- as it should.)&lt;br /&gt;&lt;br /&gt;If you suspect that might be causing the problem, there's an easy way to find out. Using Notepad (or any similar text editor tool), open the file and examine the first few lines.  The majority of graphics files out there will have a "header" that contains information about the image file itself.  PNG files, for example, will tend to have "PNG" in the first few characters of the first line-- it's sort of like a species identifier, if you will.  Windows Bitmaps will start with BMP in the first line, near the very beginning of the file.&lt;br /&gt;&lt;br /&gt;Once you know what the file is actually supposed to be, you can alter the file extension to match the type of image file.  From there, the file ought to open properly in your image software.&lt;br /&gt;&lt;br /&gt;I know, this is probably old hat for the Photoshop/GIMP veterans-- but like I said, I've run into this problem at work twice in the last month, so there are obviously some folks out there who don't see anything peculiar about overriding the default/suggested extension for the image file with their own idea of what that extension ought to be.&lt;br /&gt;&lt;br /&gt;Hope that helps!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-1454936153920681206?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/1454936153920681206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=1454936153920681206&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/1454936153920681206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/1454936153920681206'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2009/02/troubleshooting-tip-for-image-files.html' title='Troubleshooting Tip for image files that will not open'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-7111874313725055068</id><published>2009-02-14T11:36:00.001-05:00</published><updated>2009-02-14T11:37:36.928-05:00</updated><title type='text'>A Math/Flickr word problem</title><content type='html'>I have 145 MBs of photos I want to upload in Flickr. I've already used 5% of my monthly bandwidth. My Flickr client software automatically resizes my photos before uploading, decreasing the overall size from 145 MBs to 22 MBs. After successfully uploading the resized photos, I get a notice that I've used 27% of my monthly bandwidth.&lt;br /&gt;&lt;br /&gt;Q1: How many MBs does Flickr allow me to upload per month?&lt;br /&gt;&lt;br /&gt;Q2: If my client hadn't automatically resized the photos before uploading, how much of my bandwidth would I have used?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-7111874313725055068?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/7111874313725055068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=7111874313725055068&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7111874313725055068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7111874313725055068'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2009/02/mathflickr-word-problem.html' title='A Math/Flickr word problem'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-7206677479429368641</id><published>2009-01-31T22:44:00.002-05:00</published><updated>2009-01-31T23:15:47.672-05:00</updated><title type='text'>Pimp my code ;)</title><content type='html'>In my previous (hastily written) entry, I tried to show how difficult it was to extract an undetermined URL from a string of text with the traditional FIND / MID functions in Coldfusion, and alluded to using Regular Expressions as a possible solution.&lt;br /&gt;&lt;br /&gt;This is going to be a pretty neat trick, particularly since I know less about RegEx than I do about unicorns.  ;)&lt;br /&gt;&lt;br /&gt;I had hoped to find a copy of Ben Forta's book on the subject during a trip to my local bookstore, but no such luck.  Oddly enough, there didn't seem to be any books available on RegEx in the store-- everything had to be ordered online.  They did happen to have the O'Reilly Pocket Reference to Regular Expressions, though-- and I found a two page list of "recipes," RegExs put together for specific purposes, such as extracting email addresses, URLs, etc.&lt;br /&gt;&lt;br /&gt;So, I copied the recipe for the URL down, convinced I'd found the solution to our problem.&lt;br /&gt;&lt;br /&gt;Yes, I know-- naive of me.  ;)&lt;br /&gt;&lt;br /&gt;The problem with the O'Reilly recipe is that it uses characters that have special meaning in ColdFusion, such as the pound sign.  Once I figured out how to escape the pound sign, it told me the parentheses were unbalanced.  Troubleshooting the recipe was getting to be a major headache, so I wound up Googling for a RegEx specific to Coldfusion for extracting URLs . . .&lt;br /&gt;&lt;br /&gt;and wound up at Ben Forta's blog.  (Yeah, I know-- like I should be surprised!?)&lt;br /&gt;&lt;br /&gt;Anyways, Mr. Forta offered a RegEx that works with both Javascript and Coldfusion to validate a URL-- which I've used in the REFindNoCase function example below.  It's far from perfect, gentlemen-- at this point my code fragment can only find/extract the first URL in a text string, and I'll need to figure out some kind of while loop to make certain every URL has been extracted.  But it's a start, right?&lt;br /&gt;&lt;br /&gt;We start with our test string, feel free to customize for your own testing purposes:&lt;br /&gt;&lt;br /&gt;&amp;lt;cfset tweet = "I like google http://www.google.com better than I like Yahoo ( http://www.yahoo.com ), but that's just me!"&amp;gt;&lt;br /&gt;&lt;br /&gt;Just displaying the string when the page runs, so everyone can see what we start with.&lt;br /&gt;&lt;br /&gt;&amp;lt;cfoutput&amp;gt;&amp;lt;p&amp;gt;#tweet#&amp;lt;/p&amp;gt;&amp;lt;/cfoutput&amp;gt;&lt;br /&gt;&lt;br /&gt;If you use the last two optional parameters of the REFindNoCase function, you can tell the function at what point in the string it should begin its search (1st character by default) as well as tell it to return a structure that contains two bits of information we need to extract the URL: the position of the first character in the match, and the total length of the matched string.&lt;br /&gt;&lt;br /&gt;&amp;lt;cfset results = REFindNoCase("https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?", tweet, 1, "True")&amp;gt;&lt;br /&gt;&lt;br /&gt;Then we just use the POS and LEN bits with our MID function to print out the match!&lt;br /&gt;&lt;br /&gt;&amp;lt;p&amp;gt;&amp;lt;cfoutput&amp;gt;#Mid(tweet,results.POS[1], results.LEN[1])#&amp;lt;/cfoutput&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;&lt;br /&gt;We could theoretically pass the extracted string to an API (to TinyURL, for instance), or ROT-13 it, or perform whatever arcane manips we want at this point, and then a simple REPLACE function will be sufficient to insert the modified URL back into the original string-- after all, once we've extracted the URL, we know exactly what it is now.&lt;br /&gt;&lt;br /&gt;But, there is one interesting wrinkle I should mention.  I've dumped the results variable that the REFindNoCase function generates so we can look inside of it (see below):&lt;br /&gt;&lt;br /&gt;&amp;lt;cfdump var="#results#"&amp;gt;&lt;br /&gt;&lt;br /&gt;See how results actually contains two entries for POS and LEN?  That means, I think, that the RegEx is actually finding two matches overlapping, namely http://www.google.com as well as www.google.com.&lt;br /&gt;&lt;br /&gt;Replacing the 1 in the indexes of the arrays above with 2 seems to confirm that hypothesis.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-7206677479429368641?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/7206677479429368641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=7206677479429368641&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7206677479429368641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7206677479429368641'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2009/01/pimp-my-code.html' title='Pimp my code ;)'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-4625964655137075500</id><published>2009-01-29T22:51:00.002-05:00</published><updated>2009-01-29T23:37:37.411-05:00</updated><title type='text'>The URL swapping Gedankenversuch</title><content type='html'>&lt;span style="font-style: italic;"&gt;Tip of the hat to Mr. Devlin Holliday, whose Twitter question (shown below) inspired this entry. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;"&lt;span class="entry-content"&gt;How could I search a string for urls, if found, do something, then replace the new url?&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;I'll be the first to admit I'm not the world's greatest Coldfusion coder, but this problem is more difficult and more subtle than you'd imagine. The "replace the new URL" part is actually fairly easy, with &lt;a href="http://livedocs.adobe.com/coldfusion/7/htmldocs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=ColdFusion_Documentation&amp;amp;file=00000462.htm"&gt;Coldfusion's replace function&lt;/a&gt;.  But first you need to successfully extract the original URL from a string of text, such as a twitter entry.&lt;br /&gt;&lt;br /&gt;&amp;lt;!---&lt;br /&gt;    NOTE: this code assumes . . .&lt;br /&gt;&lt;br /&gt;    A) all valid links must start with http://&lt;br /&gt;    B) links have no gaps (e.g. http://www.exam ple.com/)&lt;br /&gt;    C) only one link per a text string, for now, please! We can add more later.&lt;br /&gt;---&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;cfset tweet = "I should update my blog http://anerroroccurred.blogspot.com more frequently."&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;cfset startsAt = #FindNoCase("http://",tweet)#&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;cfif (#startsAt# IS 0)&amp;gt;&lt;br /&gt;    &amp;lt;!--- we can't find any URLs in this text, so do nothing ---&amp;gt;&lt;br /&gt;&amp;lt;cfelse&amp;gt;&lt;br /&gt;    &amp;lt;p&amp;gt;URL starts at: &amp;lt;cfoutput&amp;gt;#startsAt#&amp;lt;/cfoutput&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;    &amp;lt;cfset endsAt = #FindNoCase(" ", tweet, #startsAt#)#&amp;gt;&lt;br /&gt;    &amp;lt;cfif endsAt IS 0&amp;gt;&lt;br /&gt;        &amp;lt;cfset endsAt = Len(tweet)&amp;gt;&lt;br /&gt;    &amp;lt;/cfif&amp;gt;&lt;br /&gt;    &amp;lt;p&amp;gt;URL ends at: &amp;lt;cfoutput&amp;gt;#endsAt#&amp;lt;/cfoutput&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;    &amp;lt;cfset theURLis = Mid(tweet, #startsAt#, (#endsAt# - #startsAt#))&amp;gt;&lt;br /&gt;    &amp;lt;cfoutput&amp;gt;And the URL is: #theURLis#&amp;lt;/cfoutput&amp;gt;&lt;br /&gt;&amp;lt;/cfif&amp;gt;&lt;br /&gt;&lt;br /&gt;Looks promising, right?  That is, until you realize that people do all sorts of crazy things with URLs in text.&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;&lt;br /&gt;"My blog is at http://www.example.com. You should check it out!" &lt;span style="font-style: italic;"&gt;(That period after the URL means trouble for our code above!)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;"I have a blog entry (http://www.example.com/firstServed.htm) you might enjoy." &lt;span style="font-style: italic;"&gt;(Great, now we have to anticipate parentheses!?)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Clearly, the find and mid functions alone aren't gonna be robust enough to handle our challenge.  We need &lt;a href="http://livedocs.adobe.com/coldfusion/6.1/htmldocs/regexp3.htm"&gt;some serious black magic&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-4625964655137075500?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/4625964655137075500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=4625964655137075500&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4625964655137075500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4625964655137075500'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2009/01/url-swapping-gedankenversuch.html' title='The URL swapping Gedankenversuch'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-6515889686092166269</id><published>2009-01-22T22:41:00.004-05:00</published><updated>2009-01-22T23:48:18.565-05:00</updated><title type='text'>Coldfusion is dead; long live Coldfusion</title><content type='html'>They say: "Nobody uses Coldfusion any more." &lt;br /&gt;&lt;br /&gt;Well, &lt;span style="font-style: italic;"&gt;almost&lt;/span&gt; nobody, except for Adobe, and maybe . . .&lt;br /&gt;&lt;br /&gt;1) The US Federal Government: The Senate's &lt;a href="http://inaugural.senate.gov/luncheon/index.cfm"&gt;inaugural site&lt;/a&gt;,  Food &amp;amp; Drug Administration's &lt;a href="http://www.accessdata.fda.gov/scripts/peanutbutterrecall/index.cfm"&gt;Peanut Butter recall&lt;/a&gt; info site (pretty hard to get more topical than that!)&lt;br /&gt;&lt;br /&gt;2) &lt;a href="http://nycgo.com/"&gt;New York City's Tourism Organization&lt;/a&gt; web site (search engine and calendar powered by CF)&lt;br /&gt;&lt;br /&gt;3) &lt;a href="http://www.crayola.com/index.cfm"&gt;Crayola's Official site&lt;/a&gt; - yup, Coldfusion &amp;amp; coloring, who knew?&lt;br /&gt;&lt;br /&gt;4) &lt;a href="http://www.mayoclinic.com/invoke.cfm"&gt;The Mayo Clinic&lt;/a&gt; - these guys are doctors, so I think they're pretty qualified to determine if something is dead or not.&lt;br /&gt;&lt;br /&gt;5) &lt;a href="http://search.myspace.com/index.cfm?fuseaction=find"&gt;MySpace&lt;/a&gt; - Coldfusion &lt;span style="font-weight: bold;"&gt;and&lt;/span&gt; Fusebox, it turns out.&lt;br /&gt;&lt;br /&gt;6) The &lt;a href="http://www.akc.org/index.cfm"&gt;American Kennel Club&lt;/a&gt; - Who's a good puppy? Who's a go . . . erm, nothing to see here.  Move on to the next item, please.&lt;br /&gt;&lt;br /&gt;7) The &lt;a href="http://www.peacecorps.gov/index.cfm"&gt;Peace Corps&lt;/a&gt; - Travel, see the world, and help people.&lt;br /&gt;&lt;br /&gt;8) &lt;a href="http://www.research.att.com/index.cfm?portal=20"&gt;AT&amp;amp;T Labs&lt;/a&gt; Research Division - Can you query me now?  Good!  ;)&lt;br /&gt;&lt;br /&gt;9) NetLingo not only uses it - they &lt;a href="http://www.netlingo.com/lookup.cfm?term=Cold%20Fusion"&gt;define Coldfusion&lt;/a&gt; as well.&lt;br /&gt;&lt;br /&gt;10) &lt;a href="http://www.urologyhealth.org/index.cfm"&gt;Urology Health.org&lt;/a&gt; - Take my advice, don't get into a pissing contest with a wizz wiz.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-6515889686092166269?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/6515889686092166269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=6515889686092166269&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/6515889686092166269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/6515889686092166269'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2009/01/coldfusion-is-dead-long-live-coldfusion.html' title='Coldfusion is dead; long live Coldfusion'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-3168360525345125987</id><published>2009-01-19T20:51:00.004-05:00</published><updated>2009-01-19T21:20:47.504-05:00</updated><title type='text'>iPod Shuffle with green/orange blinking lights</title><content type='html'>I'm feeling a slight sense of deja vu. Lately, I seem to spend my time and energy fixing things. It's nice on some ways, because at least I can still set things right-- but at the same time, I feel like it gets in the way of me being creative, learning new things.  And yet, here I am, searching for material for a blog entry, and what comes to mind except "Maybe I should document how I got my iPod Shuffle working again after it stopped working?"&lt;br /&gt;&lt;br /&gt;And see, the deja vu would be because a million years ago, when I first started blogging (think before Google bought Blogger, k?) the predominant topic was the fixes and workarounds I came up with to make things work properly.&lt;br /&gt;&lt;br /&gt;No wonder no one reads my blog then.  ;)&lt;br /&gt;&lt;br /&gt;I have a &lt;a href="http://www.ipodhistory.com/ipod-shuffle-first-generation/"&gt;first generation iPod shuffle&lt;/a&gt; that suddenly stopped playing songs/podcasts entirely.  When you hit the controls (play, skip forward, skip back, pause, etc.) the green and orange lights blink in an alternating pattern.  According to documents I found while researching this problem, it could be anything as simple as a battery in need of recharge to as dire as "the green and orange lights of death!"&lt;br /&gt;&lt;br /&gt;No, seriously-- that's what they called it.  What, you thought I made that up?&lt;br /&gt;&lt;br /&gt;Anyways, yes, it would have been the perfect excuse to go out and buy a new iPod or other MP3 player-- but money's been a little tight lately, you know, between the bathroom renovation and Christmas.  So, I figured I'd take a crack at fixing the iPod I had first.&lt;br /&gt;&lt;br /&gt;Basically, I was able to plug it into the USB port of my iBook, and it saw the contents of the music partition as well as the contents of the data partition.  (I have my iPod shuffle "split" for Disk Mode so it can store files and documents, like a traditional USB thumbdrive.)  I was able to copy all my files off of the iPod in the Finder, and then reinitialized it from within iTunes.&lt;br /&gt;&lt;br /&gt;In addition to warning me that I'd lose all the files and media, it also (after I told it to proceed) reapplied the iPod firmware update.  I typed in the "new" name for my iPod Shuffle-- which I set to my phone number, just in case I ever lose the darn thing.  I decided not to activate Disk Mode at this time, and just let it store music.  I copied two MP3 files across from within iTunes, plugged in my earphones, hit the play button-- and everything worked just fine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-3168360525345125987?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/3168360525345125987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=3168360525345125987&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3168360525345125987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3168360525345125987'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2009/01/ipod-shuffle-with-greenorange-blinking.html' title='iPod Shuffle with green/orange blinking lights'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-2813171207878689923</id><published>2009-01-17T12:00:00.002-05:00</published><updated>2009-01-17T13:04:56.126-05:00</updated><title type='text'>Work on What Matters - Great Idea, but How?</title><content type='html'>I've been hearing extra buzz lately about &lt;a href="http://radar.oreilly.com/2009/01/work-on-stuff-that-matters-fir.html"&gt;Tim O'Reilly's "Work on What Matters"&lt;/a&gt; theme, particularly now that it coincides with a paradigm shift in the administration of the US Federal Government.&lt;br /&gt;&lt;br /&gt;Although I apparently know how to work with others, I don't know how to get others to work with me.  I could bore you with examples, but what's the point?  You either read it and understood it immediately (because you are there in the same boat with me), or you read it, didn't understand it and never will because it has never happened to you and never will.&lt;br /&gt;&lt;br /&gt;I spend a lot of my time and energy helping other people realize or get closer to the end result that is important to them, but whenever "my turn" comes up-- well, it's like people hear their mother calling them home for dinner or something!  They can't be bothered to listen to my point of view for three seconds.&lt;br /&gt;&lt;br /&gt;Case in point, remember in the "early" blogging days a tool called "Greymatter?"  I tried offering a suggestion to help improve that tool during a major revision period, and was pretty much kicked in the teeth by the "in crowd."  The simple truth behind the demise of Greymatter is that the core team decided they knew what was best and they were mistaken.  The competition (Blosxom, Movable Type, etc.) focused on things like syndication feeds, trackbacks/writebacks and features that dovetailed nicely into the entire social networking paradigm that would spark "Web 2.0."  Greymatter's core team decided to show what song you were listening to when you were writing your blog entry; small wonder everyone migrated off that platform then?&lt;br /&gt;&lt;br /&gt;So, Tim O'Reilly, Seth Godin, the conjoined ghosts of Abbie Hoffman and Timothy Leary, or some expert on human nature-- please tell me, what are hard-working, passionate, creative and technologically sophisticated people supposed to do when they are repeatedly and deliberately ostracized by communities or movements because the in crowd/clique has decided to adopt a xenophobic, gated community outlook?&lt;br /&gt;&lt;br /&gt;(sigh) It could be worse, I suppose.  At least no one is &lt;a href="http://www.textually.org/textually/archives/2009/01/022373.htm"&gt;trying to kill me because of my skin color.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-2813171207878689923?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/2813171207878689923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=2813171207878689923&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2813171207878689923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2813171207878689923'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2009/01/work-on-what-matters-great-idea-but-how.html' title='Work on What Matters - Great Idea, but How?'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-8286027591803808621</id><published>2009-01-10T21:17:00.002-05:00</published><updated>2009-01-10T22:58:43.303-05:00</updated><title type='text'>The Component Conundrum</title><content type='html'>I know, I should write Coldfusion applications with components as the building blocks.  I get it, really-- it's better for maintenance, code reuse, separates your content from your business process.  Seriously, I understand how important it is.&lt;br /&gt;&lt;br /&gt;Too bad I can never get it to work.  :(&lt;br /&gt;&lt;br /&gt;See, here's my problem.  Let's say I want to write a CFC (Coldfusion component, for the uninitiated) that accepts an employee's ID number, queries Active Directory, and returns the employee's name, phone, email, and basic contact info.  It sounds like a great idea, doesn't it?  Set it up as a component, accept three arguments, the ID number, and the user id and password of the account to use for LDAP.  Then, you can leverage and reuse it for all your application, or your team-mates can use it in their programs . . . &lt;br /&gt;&lt;br /&gt;Oh, um, wait, that's weird-- the field in Active Directory for employee ID number seems to be empty. Not sure what that means. Hang on a sec, let me call the Tech Support folks.&lt;br /&gt;&lt;br /&gt;(ten minutes later)&lt;br /&gt;&lt;br /&gt;Well, it seems that whoever set up our Active Directory felt that using the field called Employee ID to actually hold the ID numbers was too generic and needed to be more proprietary or secure or . . . something, so they actually keep that information in ExtensionAttribute22 instead. And now, we have a component that only works with your specific and unique implementation of Active Directory.&lt;br /&gt;&lt;br /&gt;I know, it's a grossly oversimplified example, but I think it makes the point.  It's hard enough for those of us who don't think natively in object-oriented fashion to figure out what should be turned into a component, then to plan out the various properties and methods. It's downright demoralizing to discover when we try to implement them that someone has made a seemingly arbitrary change to the configuration of something with which we must interact. I mean, why don't you change the name of the mail server to "Linda" or "Lassie" or "Ficus Green Pearl", while you're at it?&lt;br /&gt;&lt;br /&gt;I just want some consistency when I work.  Not like I'm asking you to get me sharks with friggin' lasers attached to their heads.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-8286027591803808621?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/8286027591803808621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=8286027591803808621&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8286027591803808621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8286027591803808621'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2009/01/component-conundrum.html' title='The Component Conundrum'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-4521988864023824060</id><published>2009-01-07T19:32:00.003-05:00</published><updated>2009-01-07T19:44:02.398-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows XP'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Linux and Windows</title><content type='html'>Sometimes one of my Windows-using friends will ask me why I use Linux. They usually don't ask because they want to learn more about Linux, but would rather start a debate about why "their favorite" operating system is better. Personally, I think a "favorite OS" is ridiculous. It's a tool to help you accomplish something. Do you have a favorite drill bit? Or a favorite subway ticket?&lt;br /&gt;&lt;br /&gt;However, in the interest of provoking those same aforementioned Windows-using friends, I pass along the following observation:&lt;br /&gt;&lt;br /&gt;My Windows XP work laptop has received Windows updates for the past three days, and gave me a "C:\ drive is low on disk space" warning this morning as a result. I wound up having to delete 2 GB of space.&lt;br /&gt;&lt;br /&gt;My Ubuntu eeePC received updates after 21 days of forgetting to check, and afterwards I actually wound up having roughly 7% more free disk space afterwards.&lt;br /&gt;&lt;br /&gt;Yes, those Ubuntu developers are amazing. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-4521988864023824060?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/4521988864023824060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=4521988864023824060&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4521988864023824060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4521988864023824060'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2009/01/linux-and-windows.html' title='Linux and Windows'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-2181172191294478483</id><published>2009-01-05T20:00:00.002-05:00</published><updated>2009-01-05T20:25:01.896-05:00</updated><title type='text'>Steve Jobs - what's private and what's public?</title><content type='html'>Apparently Steve Jobs made some disclosures today to combat the rumor-mongering about his health. I frankly don't get it-- and maybe the truth is I don't understand it because I just don't want to do so. The "stockholders have a right to know" argument just doesn't hold water with me because if you chose to invest in a company that depends upon the health and well-being of a specific, single individual to flourish-- well, much as I hate to say it, you made a bad choice.&lt;br /&gt;&lt;br /&gt;It's funny, but I find myself struggling to write about this. If anything, this seems like the perfect bizarre intersection of the three things about which I'm most passionate. You have a company that produces innovative, ground-breaking *technology*-- and it engages the consumer in distinctive, brand-building ways that change the paradigms we live within (sounds like *psychology* to me!)-- but stockholders/fanboys/analysts all appear to be worried that the stock and the performance of the company hinges completely upon the health of its (CEO? Shaman? Messiah?).&lt;br /&gt;&lt;br /&gt;It's simultaneously fascinating and revolting-- we've got plenty of financial fraudsters out there that no one gives a second glance (three letters to the SEC! Three!??), who bilk people and philanthropic organizations for millions of dollars, and yet we feel we have the right, the entitlement to compel personal health disclosures from a guy who's really busted his ass to make the world a better place.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-2181172191294478483?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/2181172191294478483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=2181172191294478483&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2181172191294478483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2181172191294478483'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2009/01/steve-jobs-whats-private-and-whats.html' title='Steve Jobs - what&apos;s private and what&apos;s public?'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-3879001100525630650</id><published>2009-01-02T20:09:00.002-05:00</published><updated>2009-01-02T20:25:53.850-05:00</updated><title type='text'>Camera and Batteries</title><content type='html'>I've been having the strangest problem with a Pentax camera recently. It's a very nice camera in terms of features and pixels, but it DEVOURS batteries.  Or, at least, I thought it did.&lt;br /&gt;&lt;br /&gt;Basically, if I recharge my NiMH batteries and put them in the camera, but don't use it right away-- when I get around to turning the camera on hours later, it will complain that the batteries are depleted.  Okay, it was just a quirk of the camera I had to remember-- for some reason, it uses up batteries even when it isn't on.  Not a big deal, just remember to carry the batteries separately in the bag and put them in right before use.&lt;br /&gt;&lt;br /&gt;Except, when I was on vacation, I forgot to take a pair of batteries out for overnight.  And the camera worked fine the next day.  So, obviously the camera isn't to blame.  At this point, the trouble-shooter in me has become intrigued.  Perhaps it's the batteries?  After all, the batteries I'm using have been through lots of cycles, charging and discharging.  Maybe they just can't hold enough energy to reliably power the camera.&lt;br /&gt;&lt;br /&gt;So, I buy brand new rechargeable batteries, charge them up over night-- and the camera eats them up in seconds.  I charge the batteries again, figuring maybe I didn't leave them in long enough.  At first, the camera is happy-- and then, less than 12 hours later when I go to actually use the camera, the batteries fail on me again.&lt;br /&gt;&lt;br /&gt;At this point, I'm starting to get a little peeved.  Brand new batteries, and the camera worked once with another set of the older batteries.  So, what's left?  The only other piece I can think of in the equation is the charger.&lt;br /&gt;&lt;br /&gt;I wound up borrowing my mother's battery charger for a bit, recharge the batteries, and so far the camera has been working just fine.&lt;br /&gt;&lt;br /&gt;So, it's got to be the charger.  Right? Not so fast, because there's a curve ball.  I successfully used the old charger when we were away on vacation. The real test is for me to use the old charger, with the old batteries, but on a different electrical outlet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-3879001100525630650?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/3879001100525630650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=3879001100525630650&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3879001100525630650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3879001100525630650'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2009/01/camera-and-batteries.html' title='Camera and Batteries'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-6506828979556376940</id><published>2008-12-13T15:45:00.002-05:00</published><updated>2008-12-13T15:58:41.493-05:00</updated><title type='text'>Finally back on the Internet</title><content type='html'>About nine days ago, my home Internet access became erratic and unstable. At first, I thought this was because I was experimenting with new firmware (Tomato) on my wireless router. Unfortunately, the problem persisted even after I eliminated that piece of equipment from the situation.&lt;br /&gt;&lt;br /&gt;After multiple support phone calls to my ISP, replacing the cable modem and the coaxial cable that connects the modem to the walljack, a technician discovered the problem was a bad filter in the locked cable box outside my house.  I guess my old cable modem still works, but since my ISP tracks/blocks modems by hardware addresses, it's not like I can go back to using it.&lt;br /&gt;&lt;br /&gt;It's been a little frustrating-- being sick &amp; not having reliable web access.&lt;br /&gt;&lt;br /&gt;The upside, at least, is with this new Motorola Surfboard modem I can access the logs, configuration, etc. and see things like my signal strength between the modem and my ISP.  My previous modem was locked down (by my ISP) so you couldn't get access to that information.&lt;br /&gt;&lt;br /&gt;I've got the wireless router (running Tomato) connected again, and it seems to be working like a champ. I'm planning to test the SSH feature out tonight.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-6506828979556376940?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/6506828979556376940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=6506828979556376940&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/6506828979556376940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/6506828979556376940'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/12/finally-back-on-internet.html' title='Finally back on the Internet'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-4379135928989714207</id><published>2008-11-29T11:39:00.003-05:00</published><updated>2008-11-29T12:41:04.939-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asus eeepc'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>ASUS eee PC + Ubuntu eee = WowEEE!</title><content type='html'>I picked up an ASUS eee PC just under a year ago, and after running the Xandros distribution (albeit with hacks) for most of that time, I decided to explore other options. It took longer than anticipated to accomplish (my eee PC kept seeing my pendrive as a hard drive, so I couldn't pick it from the boot menu as I was expecting), but I finally managed to run/install the Ubuntu eee distro.&lt;br /&gt;&lt;br /&gt;I wanted to set down my initial impressions while they were still fresh in my mind.&lt;br /&gt;&lt;br /&gt;I was able to make a bootable Live USB key easily. There's a GUI tool that makes it a simple process-- no command line kung-fu required. The desktop interface is an elegant, highly functional compromise between a full desktop and a novice switchboard. The performance of the Live USB key was slow/disconcerting, but don't let that discourage you-- it runs faster after you install it on the internal SSD.&lt;br /&gt;&lt;br /&gt;A word to the wise about the actual installation process: when I tried to install Ubuntu eee from within the session of Ubuntu, I got to step 5 and found the keyboard was unresponsive. This was a problem since step 5 required entering account information, like name, user id and password. I had to reboot from the USB key and pick the Install Ubuntu option from the default boot menu. Your mileage may vary.&lt;br /&gt;&lt;br /&gt;Almost everything worked "out of the box" with the installation. It picked up the WiFi (Atheros adaptor) and easily handled my home wireless WPA2 encryption. After wrestling with Ubuntu on a G4 PowerPC iBook (with a Broadcom adapter), I was expecting trouble. The only obvious hardware-specific snafu was the webcamera (which had been DISABLED in the BIOS).&lt;br /&gt;&lt;br /&gt;As far as software goes, I wound up receiving somewhere in the ballpark of 250 MB of updates. No glitches per se, but it had to do the updates in two stages/reboots in order to resolve some dependencies. The synaptic manager is more flexible and versatile than the software update interface found in the Xandros/eee PC distro.&lt;br /&gt;&lt;br /&gt;It was a little bit of a rocky start, but the overall experience has been positive and continues to impress me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-4379135928989714207?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/4379135928989714207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=4379135928989714207&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4379135928989714207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4379135928989714207'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/11/asus-eee-pc-ubuntu-eee-woweee.html' title='ASUS eee PC + Ubuntu eee = WowEEE!'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-7545459476162044235</id><published>2008-11-27T22:46:00.002-05:00</published><updated>2008-11-27T23:19:51.592-05:00</updated><title type='text'>What's on your "Speed Dial?"</title><content type='html'>Opera was the first browser to introduce the whole &lt;a href="http://www.opera.com/browser/tutorials/video/speeddial/"&gt;"Speed Dial"&lt;/a&gt; feature, but it seems like everyone has been adding it to their repertoire recently-- Google Chrome, Firefox (with the help of a third party extension called Fast Dial).  &lt;br /&gt;&lt;br /&gt;But, let's be honest, the nine car garage doesn't impress anyone if it's empty-- it's what kind of cars you put in it&lt;br /&gt;&lt;br /&gt;Here's what I do with my "Speed/Fast Dial" slots:&lt;br /&gt;&lt;br /&gt;1) Google Bookmarks&lt;br /&gt;2) my Linksys wireless access point (which I hope will soon be running Tomato firmware!)&lt;br /&gt;3) Twitter&lt;br /&gt;4) This blog/Blogger's Dashboard&lt;br /&gt;5) Google Reader (RSS feed aggregator)&lt;br /&gt;6) my Gmail&lt;br /&gt;7) emusic/Netflix/Youtube&lt;br /&gt;8) Unassigned&lt;br /&gt;9) Unassigned&lt;br /&gt;&lt;br /&gt;Enough about me; let's talk about you for a while. What links are on your Speed Dial page?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-7545459476162044235?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/7545459476162044235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=7545459476162044235&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7545459476162044235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7545459476162044235'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/11/whats-on-your-speed-dial.html' title='What&apos;s on your &quot;Speed Dial?&quot;'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-4400135245765190281</id><published>2008-11-25T22:43:00.002-05:00</published><updated>2008-11-25T22:51:06.747-05:00</updated><title type='text'>Technical Neologisms?</title><content type='html'>If someone buys the latest/fanciest technology purely for status is a "fashionista," then what do we call someone who buys their tech on the criteria of reliability?&lt;br /&gt;&lt;br /&gt;I'd like to suggest "functionista."  ;)&lt;br /&gt;&lt;br /&gt;I know, this post doesn't really fall into the security, technology or psychology realms-- but I couldn't resist the word play.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-4400135245765190281?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/4400135245765190281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=4400135245765190281&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4400135245765190281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4400135245765190281'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/11/technical-neologisms.html' title='Technical Neologisms?'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-3478784311361878205</id><published>2008-11-24T05:54:00.001-05:00</published><updated>2008-11-24T05:56:55.779-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Docs'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>Jonah Chanticleer 公鸡: Google Maps and Google Docs</title><content type='html'>Almost a year ago, I wrote about &lt;a href="http://anerroroccurred.blogspot.com/2007/12/google-maps-and-google-docs.html"&gt;making peace with Javascript and my success with the Google Maps/Docs&lt;/a&gt; tutorial.  My karma being what it is, Google introduced a method that &lt;a href="http://googlesystem.blogspot.com/2007/11/edit-maps-collaboratively.html"&gt;allows people to collaborate on a map&lt;/a&gt;, so my entire reason for learning how to power a Google map via a Google Docs spreadsheet became moot.&lt;br /&gt;&lt;br /&gt;I've noticed a sudden spike in traffic to the old page about Google Maps/Docs (no idea why-- please feel free to enlighten me in the comments), so I figured I'd better save folks some time and frustration by providing a link to the collaboration piece I mentioned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-3478784311361878205?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://anerroroccurred.blogspot.com/2007/12/google-maps-and-google-docs.html' title='Jonah Chanticleer 公鸡: Google Maps and Google Docs'/><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/3478784311361878205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=3478784311361878205&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3478784311361878205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3478784311361878205'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/11/jonah-chanticleer-google-maps-and.html' title='Jonah Chanticleer 公鸡: Google Maps and Google Docs'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-4932543331883752085</id><published>2008-11-20T20:16:00.002-05:00</published><updated>2008-11-20T21:05:32.958-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Psychology'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Phishing web sites</title><content type='html'>I see many &lt;a href="http://en.wikipedia.org/wiki/Phishing"&gt;phishing&lt;/a&gt; emails because of my job.&lt;br /&gt;&lt;br /&gt;The conventional wisdom seems to be to treat phishing email as if it were spam.  Just add it to the SPAM filter and forget about it.  I don't get it. Spam is a commercial nuisance, but phishing is a deliberate, blatant attempt to defraud people.  Blocking subsequent emails won't keep people from falling victim to the emails that already made it through-- nor will it keep other people outside of my workplace from being victimized.&lt;br /&gt;&lt;br /&gt;I believe phishing deserves a separate and greater response.  This is why I use &lt;a href="http://www.phishtank.com/"&gt;Phishtank&lt;/a&gt; (at home), and am so aggressive (on the job) about reporting phishing emails to the security departments of various organizations that fraudsters like to impersonate.  I want to see these phishing sites taken offline; I want to see the perpetrators pursued and brought to justice when possible.&lt;br /&gt;&lt;br /&gt;Although I feel sorry for the people who fall for these phishing scams, the people I feel even more sympathy for are the ones who are just trying to run a web site . . . and then discover that someone has violated their server security, and is using their platform on the Internet to rip off and hurt other people.&lt;br /&gt;&lt;br /&gt;It goes something like this:&lt;br /&gt;&lt;br /&gt;The would-be fraudster finds a web server that he or she can compromise.  Maybe they were able to sniff an FTP userid/password over a network connection because it was passed in the clear, or maybe the password was easy to guess or derive because it wasn't a very strong password.  The precise method of compromise isn't important, because there's more than one way it can be done.  The important point is, they have gained illicit access to the web server-- so they create a fraudulent paypal/bank/IRS website and bury it deep inside a subfolder where no one ever looks, like an images folder.  Then they send out emails to large numbers of people with links back to that fraudulent web site, and wait to see how many people take the bait and enter their account information.  The person who owns/runs the website in most cases has no idea what is taking place under their noses.&lt;br /&gt;&lt;br /&gt;I got to speak with such a person this morning.  Nice woman-- runs a small web site for her small school.  She teaches kids how to design web sites.  She had a vague, conceptual understanding of what phishing was, but I'd be highly surprised if she's received any training on server security.  Even if she had, it's unlikely her IT group has given her read access to her FTP logs or uses any encryption with their file transfer protocols.  There isn't enough time, resources or skilled people available, and the priorities are always elsewhere.&lt;br /&gt;&lt;br /&gt;But here's the thing, people.  If everyone shrugs their shoulders and says, "This isn't my problem," then the same stupid cycle is going to keep being perpetuated.  And one day, the person who gets fooled and taken for a ride will be you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-4932543331883752085?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/4932543331883752085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=4932543331883752085&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4932543331883752085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4932543331883752085'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/11/phishing-web-sites.html' title='Phishing web sites'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-7851021123211283948</id><published>2008-11-18T20:57:00.004-05:00</published><updated>2008-11-18T22:20:31.090-05:00</updated><title type='text'>Windows XP SP2 and WPA2 AES</title><content type='html'>Like many people, I &lt;a href="http://lifehacker.com/5079721/how-to-protect-your-wi+fi-network-from-the-wpa-hack"&gt;read this item at Lifehacker&lt;/a&gt; about how a PhD candidate found a way to compromise WPA2 security and switched my wireless router's settings from TKIP+AES to AES alone.  Everything seemed to work fine afterwards, so I scratched it off my To Do list and went about my business.&lt;br /&gt;&lt;br /&gt;A few days later, I discovered my work laptop (Win XP SP2) would no longer connect to my home wireless setup.  It would still connect to WiFi connections in other locations, though.&lt;br /&gt;&lt;br /&gt;It took two days to make the connection between the wireless router setting change and the delayed isolation of my work laptop-- but I confirmed my hypothesis tonight by returning my router's encryption settings back to TKIP+AES, and the Windows laptop automatically connected almost immediately.  I turn the setting back to AES only, and it loses the connection.&lt;br /&gt;&lt;br /&gt;I'm sure there's a hotfix/patch from Microsoft to address this issue, but the policy for getting Windows Updates on workplace computers is bewilderingly confusing and slow.  For example, our web browser standard is and continues to be Internet Explorer 6-- which makes for marvelous conversations with third-party vendors.  So the question is, should I manually invoke Windows Update on my work computer and get God only knows how many patches, fixes and updates, and potentially risk introducing new issues, or should I just leave my router on the less secure of the two settings?&lt;br /&gt;&lt;br /&gt;Discuss amongst yourselves.  ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-7851021123211283948?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/7851021123211283948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=7851021123211283948&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7851021123211283948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7851021123211283948'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/11/windows-xp-sp2-and-wpa2-aes.html' title='Windows XP SP2 and WPA2 AES'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-4292278912553635736</id><published>2008-11-09T12:07:00.002-05:00</published><updated>2008-11-09T12:39:28.422-05:00</updated><title type='text'>Security, from a different angle?</title><content type='html'>When people talk about security and technology today, we usually assume they mean controlling who can see information.  There are people who are entrusted with access to that information, and then there are people who are not.  The type of information varies-- it could be financial, medical, academic, but the overall point is that access to the information should be restricted.&lt;br /&gt;&lt;br /&gt;All that is true, but it leaves out a piece.&lt;br /&gt;&lt;br /&gt;Suppose you and eleven other people all have access to the same information.  Any one of you can read or change that data at any time.  One day, you log in and find a subset of the information has been reverted back to a point six months ago in time.  You don't know which of the eleven other people who had access made the change, you don't know why they made it or even if the change was intentional or (more likely) accidental.&lt;br /&gt;&lt;br /&gt;All you know is that you didn't do it, and it happened further back in time than your backup plan will allow you to restore.&lt;br /&gt;&lt;br /&gt;The sad truth is that there are some threats to data security "inside" your organization.  It might be an incompetent server admin who accidentally overwrites your files with old data during a backup/restore operation.  It might be a malicious co-worker who is pissed off because they got passed up for a promotion and they want to make someone else on the team look bad.  It might even be a scenario beyond our collective ability to imagine (i.e. the technology visionary in your office decided it was time to do some spring cleaning in their home folder on the network-- except they were in the wrong folder.)&lt;br /&gt;&lt;br /&gt;There's a myth about security-- that you can build a bullet-proof solution and nothing bad will ever happen to your information.  The question we should be asking is not "What will we do IF something happens to our data?"  It should be "What will we do WHEN something happens to our data?"&lt;br /&gt;&lt;br /&gt;Timely awareness is key to an effective response.  You wouldn't wait til tomorrow to treat a gunshot wound.  You shouldn't wait 24 hours to deal with a situation involving the corruption of your data.  You need to be made aware of changes on an almost daily basis.  In some cases, this is as easy as turning on auditing processes in your server's operating system.&lt;br /&gt;&lt;br /&gt;In some cases, like a shared FTP directory on a remote web server, it becomes harder.  But harder doesn't make it any less necessary.  I'm working on a solution, involving WebDrive and WinDiff, that will let me get a recursive list of all the files and folders on our web server on a daily basis, dump them into a text file, and then compare it with the list from the previous day so I can see the deltas.  I'm sure there are probably better tools out there for the task-- ones that lend themselves to more scripting and automation, for example, but for the time being, I need to get this up and running with the tools I have rather than waste days trying to learn new tools and figure out how to get them working.&lt;br /&gt;&lt;br /&gt;If this works the way I believe it will, I'll be able to see what files have been deleted, added or modified in the previous 24 hours.  If I start seeing a spike in activity ("hmm, that's weird, someone deleted 300+ files yesterday . . . ") I can start investigating it right away, rather than finding out about it too late.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-4292278912553635736?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/4292278912553635736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=4292278912553635736&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4292278912553635736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4292278912553635736'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/11/security-from-different-angle.html' title='Security, from a different angle?'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-2502093174556673642</id><published>2008-11-02T12:36:00.000-05:00</published><updated>2008-11-02T12:36:32.490-05:00</updated><title type='text'>Micro Center - Combination Notebook Lock</title><content type='html'>&lt;a href="http://www.microcenter.com/single_product_results.phtml?product_id=0266044"&gt;Micro Center - Combination Notebook Lock&lt;/a&gt;: "A physical and visual deterrent to theft, easy to use and extremely portable."&lt;br /&gt;&lt;br /&gt;More like horrible mess and nightmare.  One night a week, I have to leave my laptop at the office over night so it can perform an auto-scheduled backup of my web sites.  I worry someone's going to "help themselves" to it-- we've had a bit of a problem with that lately.  Personally, I blame the dreadful economy.  So I bought this product, figuring my laptop would be less prone to vanish if it was tethered to my desk.&lt;br /&gt;&lt;br /&gt;First, it says it works with any computer that has a VGA port.  Sadly, it should read "works with any computer that has a VGA port with attaching screws."  My ASUS eeePC has a VGA port, but no attaching screws, so this product wouldn't work for it.&lt;br /&gt;&lt;br /&gt;Second, it's a pain in the ass to use.  Directions are better than average, but the complete operation (setting the combination, locking the lock, unlocking the lock) is not intuitive.  Do this, press this button, do that, press this other button &lt;span style="font-weight: bold;"&gt;sideways&lt;/span&gt;-- AUUGHH! &lt;br /&gt;&lt;br /&gt;Third, when I used it, and tried to unlock/unscrew this cable from my work laptop's VGA port, it literally would not unscrew and pulled the attaching screw off from the side of my VGA port instead.&lt;br /&gt;&lt;br /&gt;Trust me, it's not worth the hassle or the money.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-2502093174556673642?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.microcenter.com/single_product_results.phtml?product_id=0266044' title='Micro Center - Combination Notebook Lock'/><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/2502093174556673642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=2502093174556673642&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2502093174556673642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2502093174556673642'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/11/micro-center-combination-notebook-lock.html' title='Micro Center - Combination Notebook Lock'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-8977789272636755545</id><published>2008-10-31T19:03:00.002-05:00</published><updated>2008-10-31T19:19:40.307-05:00</updated><title type='text'>Et Tu, O'Reilly?</title><content type='html'>I've spent the past two days agonizing over Chapter 2 of "Learning Javascript."  I read the chapter twice, took extensive notes . . . and just failed the mini-quiz at the end of the chapter.&lt;br /&gt;&lt;br /&gt;It's this sort of thing that makes me want to burn computer books.  Seriously.&lt;br /&gt;&lt;br /&gt;First of all, the answers in the Appendix (p. 317) seem to have two typographical errors in them.  Then, on top of that, the last question turns out to have been a "trick question."  Um, yeah-- because throwing a trick question at someone on the first quiz/test, while they are trying to get the initial material under their belt and figuring out if they can trust you as a useful source of information is so productive. &lt;br /&gt;&lt;br /&gt;I will admit-- there were some questions I legitimately missed (the single quote mark in question 3 prematurely ending the string and the asterisk in one of the variable names in question 1 being a Javascript operator for multiplication).  However, I picked a different verb in my function name (returnTheMonth vs. getTheMonth) than the author did in her appendix, even though I used the same verb from her own chapter.  Who writes a question based on the arbitrary selection of a verb?&lt;br /&gt;&lt;br /&gt;Personally, I'm feeling de-motivated to re-learn Javascript right now.  :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-8977789272636755545?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/8977789272636755545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=8977789272636755545&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8977789272636755545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8977789272636755545'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/10/et-tu-oreilly.html' title='Et Tu, O&apos;Reilly?'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-3977672528791550531</id><published>2008-10-26T20:02:00.002-05:00</published><updated>2008-10-26T20:54:07.216-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Psychology'/><category scheme='http://www.blogger.com/atom/ns#' term='web dev'/><title type='text'>Javascript-- Is the third time the charm?</title><content type='html'>I don't even know where to begin with this post.&lt;br /&gt;&lt;br /&gt;Part of the problem is, I tend to think in metaphors and observe similarities and interconnections that other people don't seem to be able to perceive.  When I try to demonstrate these connections to other people, they just find it confusing.  You'd think I'd learn it's a bad strategy, and yet this is how my mind operates when trying to comprehend something.&lt;br /&gt;&lt;br /&gt;Imagine there's this doctor, and he's been practicing medicine for three decades.  He's reasonably competent, works hard, but for some reason never kept up with the latest trends and changes in his field.  The days roll by, and one day he's suddenly operating in a paradigm that's completely obsolete.  And the scary part is, he is so out of touch, he doesn't even realize how out of touch he's become!&lt;br /&gt;&lt;br /&gt;With me so far?&lt;br /&gt;&lt;br /&gt;Now, imagine the same scenario, but with a web developer-- and let's be honest, a web developer most likely isn't operating with life and death stakes, so he has even less true motivation to keep up with the latest trends and changes in the field.  And we all know how quickly things in web development can move and change, right?&lt;br /&gt;&lt;br /&gt;Then, on top of all that, what if the web developer works for an organization that is large, where change is glacially slow at best?  Where the majority of IT folks are clinging to best practices that have been rendered obsolete years ago-- or even outright ignored because someone decided they just aren't going to do things that way as a matter of personal preference.&lt;br /&gt;&lt;br /&gt;I did an inventory of my situation the other day.  Basically, because of politics at my workplace, I'm a ColdFusion developer who doesn't really have access to a ColdFusion server.  This is sort of like being a magician without a rabbit.  Sure, I can get by with static HTML, CSS, a bit of Javascript here and there-- but to really harness the power of dynamic web pages, the best I can do is a Filemaker Pro server on our Intranet.&lt;br /&gt;&lt;br /&gt;It got me to thinking-- what's the point of learning Python or Ruby or PHP, when I'm never going to have access to a server that supports these languages?  (Yes, I know, I can install Python on my local computer and leverage it without having a server-- but you know what I mean.)  I need to flesh out and expand the depth of knowledge I have about tools I can realistically expect to have access to first, before I start spending time and energy learning "the fun stuff" I will never get to see.&lt;br /&gt;&lt;br /&gt;So, I'm sorting through my mental inventory and the first thing that pops into my head is Javascript.  All major, modern web browsers have support for Javascript, so if I put time and energy into learning that-- really learning it, mind you, not just learning enough to solve the current task I've been assigned-- then that ought to have the highest payoff in terms of being able to assist people at my work place.  (Microsoft Access is second on my list, by the way, even though I'd be using it strictly on a network share, not a true web server.)&lt;br /&gt;&lt;br /&gt;I made a trip to Borders this weekend and picked up a copy of Shelley Powers' "Learning Javascript" book.  It has a copyright date of 2007, so I expect the information in it will be still fresh and current.  I was even able to use a gift card I'd received at Christmas to pay for most of it.&lt;br /&gt;&lt;br /&gt;(long pause) Um, did I happen to mention I hate Javascript?&lt;br /&gt;&lt;br /&gt;See, I tried to learn Javascript a very long time ago (I think it was still in version 1.2, as I recall).  I ran into a lot of problems with cross-browser support being . . . lame.  (It's a highly technical term-- couldn't possibly explain it further.)  I'd write a javascript that worked on one version of one browser, but then bombed horribly everywhere else.  You'd have to write four different versions of your code, and then have some horribly kludgey way to "sniff" out which version of javascript you'd encountered and then play traffic cop to get the broswer to the specific version of code designed for it.  Then a new version of one browser would come out, and things would break, and you'd need to revisit the whole damn program again.&lt;br /&gt;&lt;br /&gt;Who can learn under those conditions?  Where's the success?  Where's the reward feedback loop?&lt;br /&gt;&lt;br /&gt;A few years go by, and the ECMA ratifies a version of javascript, along with an API that should bridge most of the browser differences.  I start dabbling with it again out of necessity (adding a "characters remaining" counter notice under a text box, as I recall) and still find it difficult going, although it's better than it was.  Then, suddenly everyone and their brother wants their sites to have AJAX-- including the people who'd still be creating their relational databases as one gigantic flat file if it wasn't for me.&lt;br /&gt;&lt;br /&gt;Which brings us to current day.  I read Chapter 1 in Ms. Powers' book yesterday.  It's well written, and it was an eye-opening experience.  I found out that the things I had learned back in the day as "best practices" (e.g. using HTML comments to "cloak" your Javascript from browsers that don't support Javascript) are not only currently irrelevant, but can actually cause problems if you plan to use XHTML in your web pages!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;(Damn, and to think that less than a year ago, I was taking Google to task for putting out Javascript code in their Google Analytics products that broke valid web pages-- and the solution I suggested was that Javascript cloaking trick.  I'd like to thank the patient folks at Google for not sending me flaming emails, calling me a fossilized hacker wannabe.)&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;Today, I sat down and reread Chapter 1, while taking detailed notes in one of those black and white composition books.  I'm hoping that rereading and writing down my observations will somehow ingrain the knowledge in my brain a little deeper-- maybe make it easier to break off my bad habits, as well as pick up new habits that are current best practices.  It takes longer than just reading the chapter once would, of course, but if I want to be better than just an average web developer, I need to get to the point where I'm dreaming about this stuff in my sleep.&lt;br /&gt;&lt;br /&gt;On the plus side, I'm at least savvy enough to have discovered an error in Chapter 1 on my own.  (I'm sure it was a simple oversight and has already been detailed in some errata file on O'Reilly's web site somewhere.) &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Man, wouldn't that be a dream job?  Being one of the "technical proofreaders" who goes through the texts prior to publication, and get hands on with all the exercises and lessons-- making sure they work properly.  Hmm, on second thought, you'd probably be stuck with the responsibility of fixing them somehow when they didn't work properly.  Maybe not so cool after all.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I also need to figure out where the changes in trends related to Javascript would originate from (perhaps the ECMA?) and sign up for an RSS feed or email bulletin or something that will keep me from falling back out of date again if/when I do finally internalize this latest material.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-3977672528791550531?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/3977672528791550531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=3977672528791550531&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3977672528791550531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3977672528791550531'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/10/javascript-is-third-time-charm.html' title='Javascript-- Is the third time the charm?'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-2543612303924331344</id><published>2008-10-22T16:36:00.000-05:00</published><updated>2008-10-22T16:36:47.959-05:00</updated><title type='text'>Flagfox :: Firefox Add-ons</title><content type='html'>&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/5791"&gt;Flagfox :: Firefox Add-ons&lt;/a&gt;: "Displays a country flag depicting the location of the current website's server and provides quick access to detailed location and webserver information."&lt;br /&gt;&lt;br /&gt;NOTE: I'd originally hoped to review "TwitterFox," but I've spent the past week trying and failing to get it to work properly.  To be fair, I can't tell if the issue is with the extension, with the Twitter service, or perhaps even something in my account settings-- so rather than write a bad review, I decided to pick a different extension.  If you are currently running Twitterfox, drop me a line-- I'd like to hear what your experience with it has been.&lt;br /&gt;&lt;br /&gt;Quick Review: Thumbs up; works as advertised.&lt;br /&gt;&lt;br /&gt;Details: It's called the &lt;span style="font-weight: bold;"&gt;WORLD&lt;/span&gt; wide web for a reason-- because web-serving devices &lt;a href="http://www.g4tv.com/attackoftheshow/classics/61760/AOTS--YourAssGotServedcom.html"&gt;can be located anywhere&lt;/a&gt;.  At its simplest this extension, displays a county flag up in the address bar that corresponds with the geographical location of the  web server.  You go to a page hosted by a server in the UK, you get to see the Union Jack.  You go to a page hosted by a web server in the United States, you get to see the American flag.  Sometimes, you get a surprise and discover that servers you assumed would be located in one country, are actually co-located in another.&lt;br /&gt;&lt;br /&gt;The preferences for this extension reveal more sophisticated capabilities-- by default, a left mouse button click will open a new tab with lots of interesting geographical information courtesy of geotool, while "middle clicking" will invoke a WHOIS search.  You can override the middle click function with your own custom action as well, by entering in a URL that makes use of macro variables.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-2543612303924331344?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='https://addons.mozilla.org/en-US/firefox/addon/5791' title='Flagfox :: Firefox Add-ons'/><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/2543612303924331344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=2543612303924331344&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2543612303924331344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2543612303924331344'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/10/flagfox-firefox-add-ons.html' title='Flagfox :: Firefox Add-ons'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-5359867723790055659</id><published>2008-10-14T21:47:00.000-05:00</published><updated>2008-10-14T21:47:05.668-05:00</updated><title type='text'>Fast Dial :: Firefox Add-ons</title><content type='html'>&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/5721"&gt;Fast Dial :: Firefox Add-ons&lt;/a&gt;: "Fast Dial replaces blank tabs with a panel of thumbnails of your favorite sites."&lt;br /&gt;&lt;br /&gt;NOTE: Technically this isn't a *new* extension, but it was updated on September 19th. It adds a sexy feature to Firefox that we've seen regain new popularity with Google Chrome's debut (but for the record, Opera did it first).&lt;br /&gt;&lt;br /&gt;Quick Review: Thumbs up; works as advertised.&lt;br /&gt;&lt;br /&gt;Details: If you've tried Opera or Google Chrome, you've seen their "Speed Dial" feature.  This extension, Fast Dial, adds that same capability to Firefox.  Whenever you open a new/blank tab, the Fast Dial thumbnails appear for your convenience. This extension is very customizable, letting you pick the size, colors, number of sites in the grid and so on.  It works as advertised, does not seem to have any conflicts with other features or extensions.&lt;br /&gt;&lt;br /&gt;The only "bad" thing about this extension is that there's no option to "automagically" populate the "Fast Dial" grid with the web sites you most frequently visit. I'm not convinced this is a bad thing necessarily.  Entering your "Fast Dial" sites is a manual process, but it's no more complicated than navigating to the site you want to add, and clicking the star icon in the address bar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-5359867723790055659?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='https://addons.mozilla.org/en-US/firefox/addon/5721' title='Fast Dial :: Firefox Add-ons'/><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/5359867723790055659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=5359867723790055659&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/5359867723790055659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/5359867723790055659'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/10/fast-dial-firefox-add-ons.html' title='Fast Dial :: Firefox Add-ons'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-3376847462685407163</id><published>2008-10-11T22:01:00.004-05:00</published><updated>2008-10-14T20:52:15.992-05:00</updated><title type='text'>Firefox Extension Reviews?</title><content type='html'>I have this idea for a new feature-- a weekly review of a new/random Firefox extension.  It seems like an good idea, but there's a snag. Since I'm still running Mac OS X 10.3.9 (Panther), I can't upgrade to Firefox 3.  Many of the recent extensions are designed for Firefox 3, so . . . well, you're smart, I think you can see the problem.&lt;br /&gt;&lt;br /&gt;Yes, I could buy Mac OS X 10.5 (Leopard) for about $129.  But I'm in the middle of a home renovation project. Also, I'm not shelling out that kind of money just to do browser extension reviews. Besides, to tap the full potential of Leopard's software features, I understand you want to run it on the Intel chips-- not the G4s.&lt;br /&gt;&lt;br /&gt;However, there is a PPC version of Ubuntu Linux 8.04 ("Hardy Heron") that runs nicely on the G4 hardware.  And Firefox 3 works just fine on it.&lt;br /&gt;&lt;br /&gt;What I'm saying is-- I've made a change from Mac OS X Panther to Ubuntu Linux Hardy Heron as the new default boot option on my personal laptop. &lt;br /&gt;&lt;br /&gt;I suspect this will go beyond simple reviews of Firefox extensions very soon.&lt;br /&gt;&lt;br /&gt;Which reminds me-- when are we going to see Google Chrome for Linux?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-3376847462685407163?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/3376847462685407163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=3376847462685407163&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3376847462685407163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3376847462685407163'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/10/firefox-extension-reviews.html' title='Firefox Extension Reviews?'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-3992896990009092885</id><published>2008-10-07T07:33:00.000-05:00</published><updated>2008-10-07T07:33:50.465-05:00</updated><title type='text'>textually.org: Lightbulbs Could Replace Wi-Fi Hotpsots</title><content type='html'>&lt;a href="http://www.textually.org/textually/archives/2008/10/021385.htm"&gt;textually.org: Lightbulbs Could Replace Wi-Fi Hotpsots&lt;/a&gt;: "Boston University's College of Engineering is launching a program, under a National Science Foundation grant, to develop the next generation of wireless communications technology based on visible light instead of radio waves."&lt;br /&gt;&lt;br /&gt;Maybe I just don't "get it", but why is this news? We'd used infra-red spectrum to exchange data for years with the old Palm Pilots, and you remember how much of a "line of sight" nightmare that was. Isn't this just the same concept, but in the visible spectrum? Maybe this implementation will be more robust with LEDs.&lt;br /&gt;&lt;br /&gt;Just promise me, please, no more of &lt;a href="http://findarticles.com/p/articles/mi_m0EIN/is_/ai_n27525410"&gt;those creepy, uncanny valley animatronic Teddy Ruxpin dolls&lt;/a&gt; that "interact" with your television.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-3992896990009092885?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.textually.org/textually/archives/2008/10/021385.htm' title='textually.org: Lightbulbs Could Replace Wi-Fi Hotpsots'/><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/3992896990009092885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=3992896990009092885&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3992896990009092885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3992896990009092885'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/10/textuallyorg-lightbulbs-could-replace.html' title='textually.org: Lightbulbs Could Replace Wi-Fi Hotpsots'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-1146996704576234885</id><published>2008-09-28T20:28:00.005-05:00</published><updated>2008-09-28T21:38:24.834-05:00</updated><title type='text'>Ch-Ch-Ch-Ch-Changes: New Focus, Look and Tagline</title><content type='html'>Interaction is the ultimate goal of this site.  To achieve that goal, I must draw traffic.  To draw traffic, I must promote the site.  Unfortunately, it's hard to promote a site when you can't state its focus and purpose in a confident, persuasive and concise manner.&lt;br /&gt;&lt;br /&gt;Compare:&lt;br /&gt;&lt;br /&gt;1) "I run this website-- more of a blog actually.  Sort of a personal journal, things that catch my interest.  A little bit of this, a little bit of that.  Pictures sometimes.  You know?"&lt;br /&gt;&lt;br /&gt;2) "The Jonah Chanticleer blog focuses on the constant interplay between Technology, Security and Psychology."&lt;br /&gt;&lt;br /&gt;The first description is rambling, lacks distinction and sounds about as tedious as watching your uncle's vacation video footage (i.e. &lt;span style="font-weight: bold;"&gt;before&lt;/span&gt; editing).  The second description is specific and informative; it says "We're both busy people. Here's what I'm about. Are you in or out?"&lt;br /&gt;&lt;br /&gt;I've just explained the necessity for tightening this blog's focus; I've also explained that focus will be on the themes of Technology, Psychology and Security.  I could explain how I arrived at those three themes, but it seems pointless.  Too much information. When most folks go to a seafood restaurant and order grilled salmon, they don't want the chef to come out and describe how the fish was prepared-- they just want to enjoy the meal and the atmosphere.&lt;br /&gt;&lt;br /&gt;The rest is obvious, I suppose.  If the blog has a new focusing theme/purpose, the tagline should reflect that theme/purpose.  I liked the quote from Muhammad Ali (truly a fascinating gentleman!), but using that quote for my tagline did nothing to inform people about the theme or content of my blog.  The new tagline puts it all out there, even if it is in metaphor.&lt;br /&gt;&lt;br /&gt;That brings us to the final change-- the new template.  I wanted to signify this change in focus in a highly visual way.  I wanted people who'd seen the blog before to do a double take and say, "Whoa! Something's &lt;span style="font-weight: bold; font-style: italic;"&gt;different&lt;/span&gt; here."  I dreaded giving up &lt;a href="http://www.zeldman.com/"&gt;Jeffrey Zeldman's&lt;/a&gt; fantastic green "Son of Moto" template, but the new color scheme (&lt;a href="http://stopdesign.com/"&gt;Douglas Bowman's&lt;/a&gt; "Rounders 2") has a wonderful palette for this rooster logo/icon I've been contemplating for months.  I think that visual cue will also psychologically reinforce my new focus and purpose as I write and post new entries.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-1146996704576234885?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/1146996704576234885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=1146996704576234885&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/1146996704576234885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/1146996704576234885'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/09/ch-ch-ch-ch-changes-new-focus-look-and.html' title='Ch-Ch-Ch-Ch-Changes: New Focus, Look and Tagline'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-1363614456672871725</id><published>2008-09-24T18:50:00.002-05:00</published><updated>2008-09-24T19:05:29.520-05:00</updated><title type='text'>So that's what a fortnight feels like . . .</title><content type='html'>After that short stint of blog entries about Blogger search tweaks a few weeks ago, I was hoping to take things to the next level by whipping up something in Google Mashup Editor.  The idea was simple-- use &lt;a href="http://rss.netflix.com/Top25RSS?gid=864"&gt;Netflix's Top 25 Documentaries RSS feeds&lt;/a&gt; to automatically populate a list (drop-down? blogroll-style?), and when you select one of the top 25 documentaries from that list, it shows you the Blogger profiles of people who happen to have entered that documentary in their "Favorite Movies" field.&lt;br /&gt;&lt;br /&gt;Obviously, this didn't happen.  I could sit here, whine and make excuses, but-- let's just say it isn't in the cards for me to do this and move on.&lt;br /&gt;&lt;br /&gt;There's been plenty happening on the personal front-- but the problem with personal lives is that they tend to be boring as sh*t to everyone else.  For example, I doubt you want to hear about my master bathroom renovation-- the thermostatic spa system, etc.  Hell, even I'm tired of hearing about it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-1363614456672871725?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/1363614456672871725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=1363614456672871725&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/1363614456672871725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/1363614456672871725'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/09/so-thats-what-fortnight-feels-like.html' title='So that&apos;s what a fortnight feels like . . .'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-7057492874431533332</id><published>2008-09-10T19:11:00.003-05:00</published><updated>2008-09-10T20:52:08.457-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='human nature'/><category scheme='http://www.blogger.com/atom/ns#' term='cell phones'/><title type='text'>Yes, Virginia, I DO screen my phone calls</title><content type='html'>I have an acquaintance who calls me on my cell phone and then makes little "jab" comments about the frequency with which he/she gets my voice mail instead of me answering directly.  It's rather naive-- as if they feel the act of allowing a call to go to voice mail is some scandalous thing.&lt;br /&gt;&lt;br /&gt;So, to put the matter to rest finally-- Yes, I DO screen my phone calls.&lt;br /&gt;&lt;br /&gt;If you call me when I'm driving, I don't answer.  I'm busy driving.  I'll call you back later.&lt;br /&gt;&lt;br /&gt;If you call me when I'm in the bath room, I don't answer.  I'm busy, plus it's just rude.&lt;br /&gt;&lt;br /&gt;If you call me when I'm in a meeting at work, there's probably a very good chance you'll get my voice mail as well.  My boss is sort of funny about that-- she pays me to do my work, not to take personal calls on the clock.&lt;br /&gt;&lt;br /&gt;If you call me from a different number than what I have programmed into my phone contacts, I will probably let you go to voice mail.  If I don't recognize the phone number on my display, I assume it's a telemarketer.  If it isn't, I can call you back after you leave a message.&lt;br /&gt;&lt;br /&gt;If you call me when my phone isn't getting an adequate signal, you will almost certainly get my voice mail because I won't even know you are calling.  Don't worry-- when my phone regains its signal strength, I'll get a notification that someone left me a voice mail.&lt;br /&gt;&lt;br /&gt;If I'm eating, I might or might not answer the phone.  Depends where I'm eating (McDonald's or that fancy Italian place) and with whom I am eating (casual friends with their own cell phones or Victoria Secret models who expect to be the center of attention at all times).&lt;br /&gt;&lt;br /&gt;If I'm helping a client, I probably won't answer.  They don't appreciate it when you stop helping them to take a call.&lt;br /&gt;&lt;br /&gt;If I am sleeping, I will probably answer, but don't expect me to be happy about it.  Where I come from, 1 AM telephone calls are bad news-- like someone's died in a car accident, or the ambulance is taking a loved one to the emergency room.  As a matter of fact, don't call me after 11 PM unless it's an emergency.&lt;br /&gt;&lt;br /&gt;If I'm having sex . . . phhffft!  LMAO!  Yeah, right-- like THAT ever happens!?  I might as well say "If you call me when I'm being attacked by a swarm of killer bees" or "if you call while I've burst into spontaneous combustion."  Tell you what, I'll work out a rule for this contingency if it starts becoming an issue.&lt;br /&gt;&lt;br /&gt;You get the picture, right?  Yes, I do screen my phone calls.  Lots of people do.  It's not a question of whether I do or don't like you-- if I didn't like or respect you, I wouldn't have given you my phone number in the first place.  The determining factor is the situation I happen to be in at the moment you choose to call.  It was the same way back with answering machines, too.  Just because the technology has become more portable, that doesn't mean the underlying etiquette has changed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-7057492874431533332?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/7057492874431533332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=7057492874431533332&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7057492874431533332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7057492874431533332'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/09/yes-virginia-i-do-screen-my-phone-calls.html' title='Yes, Virginia, I DO screen my phone calls'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-3906977117911046746</id><published>2008-09-02T18:06:00.005-05:00</published><updated>2008-09-02T20:57:23.559-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='movies'/><category scheme='http://www.blogger.com/atom/ns#' term='profile search'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Search Blogger Profiles for people with similar (or different) movie tastes</title><content type='html'>Last week, we threw together a little &lt;a href="http://anerroroccurred.blogspot.com/2008/08/hacking-bloggers-profile-search-part-ii.html"&gt;web-based search form that allowed us to search for Blogger profiles by country&lt;/a&gt;.  Although we could certainly take it a step or two further, I'd like to make a little detour this week to explore a different direction-- namely, movies.&lt;br /&gt;&lt;br /&gt;Your Blogger profiles allows you to list your favorite movies.  Much like the location field, any movie titles that you type in become hypertext links.  If you click on one of those "Favorite Movie" title links, the Blogger profile search program displays other Blogger users who have entered the same movie title as one of their favorites.  It's sort of cool, I guess--you can find people with similar cinematic tastes, subscribe to their blog, and then &lt;a href="http://www.funtrivia.com/askft/Question70623.html"&gt;argue endlessly about whether Shane dies&lt;/a&gt; at the end or not.&lt;br /&gt;&lt;br /&gt;But what happens if you want to find someone who liked a movie that you aren't willing to list in your favorites?  Perhaps you fear to admit "&lt;a href="http://www.imdb.com/title/tt0095107/"&gt;Ernest Saves Christmas&lt;/a&gt;" is one of your favorite comedic movies, but secretly wish to find other people who recognize the hidden genius of Shakespearean actor, Jim Varney.  Or maybe you just want to know if anyone out there would admit "&lt;a href="http://www.imdb.com/title/tt0114436/"&gt;Showgirls&lt;/a&gt;" was their favorite movie?&lt;br /&gt;&lt;br /&gt;If so, then today is your lucky day, my friend. ;)&lt;br /&gt;&lt;br /&gt;As always, let's start from something we know-- like the URL of a typical Blogger search with one of the movies from our own Blogger profiles:&lt;br /&gt;&lt;br /&gt;http://www.blogger.com/profile-find.g?t=m&amp;amp;q=The+Princess+Bride&lt;br /&gt;&lt;br /&gt;The basic URL (i.e. the &lt;span style="font-weight: bold;"&gt;http://www.blogger.com/profile-find.g?&lt;/span&gt; part) remains unchanged from our previous "search by country" example.  The value of the first parameter after the question mark changed from an "l" (for location) to an "m" (for movie).  But, the second parameter (that is, "q=") and the value for that second parameter ("The+Princess+Bride") are completely different.  The "q" stands for query, if that will help you remember it-- and the text after the equal sign is obviously the title of a movie, but with plusses instead of spaces between words.  It's a trick to keep the URL from having spaces in it, which could cause problems with links as well as passing the data to the search program.&lt;br /&gt;&lt;br /&gt;Rather than build another web-based search form from scratch, let's try just modifying the form we created last time.  Here it is:&lt;br /&gt;&lt;br /&gt;&amp;lt;form action="http://www.blogger.com/profile-find.g" method="get"&amp;gt;&lt;br /&gt;&amp;lt;input name="t" value="l" type="hidden"&amp;gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;select name="loc0" id="loc0" style="font-family: Verdana,sans-serif;"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;option value="_nil_"&amp;gt;Select a country&amp;lt;/option&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;option value="AF"&amp;gt;Afghanistan&amp;lt;/option&amp;gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;. . . not all countries are listed, obviously . . .&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;option value="ZM"&amp;gt;Zambia&amp;lt;/option&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;option value="ZW"&amp;gt;Zimbabwe&amp;lt;/option&amp;gt;&amp;lt;/select&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;lt;input value="Submit" type="submit"&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&lt;br /&gt;I've italicized the lines that are specific to the country search, which we will remove.  This leaves us with the following:&lt;br /&gt;&lt;br /&gt;&amp;lt;form action="http://www.blogger.com/profile-find.g" method="get"&amp;gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &amp;lt;input name="t" value="l" type="hidden"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;. . . we've removed the drop down list, and will replace it with a text field . . .&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&amp;lt;input value="Submit" type="submit"&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&lt;br /&gt;That second line is a hidden field we use to pass the type of query (i.e. location, movie, etc.) to the Blogger Profile Search Program.  It's currently set to a value of "l" (as in, location) which won't do us much good.  To make it search for movies instead, we just change the value to "m" instead.   That leaves us with:&lt;br /&gt;&lt;br /&gt;&amp;lt;form action="http://www.blogger.com/profile-find.g" method="get"&amp;gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &amp;lt;input name="t" value="m" type="hidden"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;. . . we've removed the drop down list, and will replace it with a text field . . .&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&amp;lt;input value="Submit" type="submit"&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&lt;br /&gt;Almost done. The last thing we need to do is put in a text field so people can type in the name of any movie title.  As always, I leave the specific text and styling decisions to your preferences:&lt;br /&gt;&lt;br /&gt;&amp;lt;form action="http://www.blogger.com/profile-find.g" method="get"&amp;gt;&lt;br /&gt;  &amp;lt;input name="t" value="m" type="hidden"&amp;gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;     &amp;lt;p&amp;gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;input name="q" id="q" style="font-family:Verdana, sans-serif;" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;     &amp;lt;/p&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;lt;input value="Submit" type="submit"&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&lt;br /&gt;Go on, give it a test drive and see for yourself.  I know, some of you might be wondering about how we're going to get the plus signs in between the words of movie titles.  Is it a trick with Javascript?  Actually, the good news is that the web browser takes care of that little detail in the background for us when the user hits the Submit button.  (&lt;span style="font-style: italic;"&gt;editorial note: I haven't tested this with every single browser out there in the wild, but it works with Firefox 2.0 on the Macintosh definitely, and I expect this trick will work with most modern browsers.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;form action="http://www.blogger.com/profile-find.g" method="get" style="margin: 5px; padding: 5px; background: rgb(204, 204, 204) none repeat scroll 0% 50%; text-align: center; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style="font-weight: bold;"&gt;Blogger Profiles Search: Movies!&lt;/span&gt;&lt;br /&gt; &lt;input name="t" value="m" type="hidden"&gt;&lt;br /&gt; &lt;p&gt;Enter any movie title: &lt;input name="q" id="q" style="font-family: Verdana,sans-serif;"&gt;&lt;/p&gt;&lt;br /&gt; &lt;input value="Submit" type="submit"&gt;&lt;br /&gt;&lt;/form&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-3906977117911046746?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/3906977117911046746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=3906977117911046746&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3906977117911046746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3906977117911046746'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/09/search-blogger-profiles-for-people-with.html' title='Search Blogger Profiles for people with similar (or different) movie tastes'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-2358033795399445968</id><published>2008-09-01T04:22:00.004-05:00</published><updated>2008-09-01T05:57:16.750-05:00</updated><title type='text'>Cellular News story - truth or bad pun?</title><content type='html'>There's a &lt;a href="http://www.cellular-news.com/story/33349.php"&gt;story&lt;/a&gt; over at Cellular News that is setting off my bullshit detector.  I want to know if anyone else has the same reaction to it.&lt;br /&gt;&lt;br /&gt;The premise of the news item itself isn't especially preposterous-- prisoners in Pakistan smuggle/hide cell phones, in some cases by using their body cavities to do so.  Prison authorities decided to do a sweep for and found smuggled phones, and in seven cases medical help was required in order to remove the phones.&lt;br /&gt;&lt;br /&gt;So far, perfectly fine.  It's the sentence where the news item cites their story source that set me off:&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;"Camp Jail Superintendent Gulzar Ahmad &lt;span style="font-weight: bold;"&gt;Butt&lt;/span&gt; said that the mobile phones had  been found during a physical search of the prisoners and when they were screened  with metal detectors." (emphasis mine)&lt;br /&gt;&lt;/blockquote&gt;The main story (i.e. prisoners who hid cell phones up their rectums needed medical attention) of the news item has one source, and his last name just happens to be "Butt?"  Is this a news story, or someone's idea of a practical joke?&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-2358033795399445968?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/2358033795399445968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=2358033795399445968&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2358033795399445968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2358033795399445968'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/09/cellular-news-story-truth-or-ad-pun.html' title='Cellular News story - truth or bad pun?'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-6710921559738363229</id><published>2008-08-27T07:00:00.008-05:00</published><updated>2008-08-27T07:00:00.676-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='profile search'/><category scheme='http://www.blogger.com/atom/ns#' term='web dev'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>"Hacking" Blogger's Profile Search, Part II</title><content type='html'>Last week I wrote about how Blogger's Profile Search feature allows users to locate Bloggers in other countries, and &lt;a href="http://anerroroccurred.blogspot.com/2008/08/hacking-bloggers-profile-search.html"&gt;how you can tweak the URL parameters&lt;/a&gt; to find people without even knowing a single blog in your country of interest as a starting point.  The process is simple and workable-- just view source on your "Edit Profile" screen to learn the two letter country code of the country you are interested in (example: VA for Vatican), and then append that code to the search URL, like so:&lt;br /&gt;&lt;br /&gt;http://www.blogger.com/profile-find.g?t=l&amp;amp;loc0=&lt;span style="font-weight: bold;"&gt;VA&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Not bad, but who wants to "View Source" every time they want to look up a new country?  Besides, some of our friends and family members (who aren't necessarily web developers) might want to also play along-- and this solution isn't user friendly for non-geeks.  They're bound to mess up the URL somehow.&lt;br /&gt;&lt;br /&gt;How about a web form that lets users select a country from a drop-down list of all the countries?  And, instead of manually modifying a URL, all they have to do is hit the "Submit" button?&lt;br /&gt;&lt;br /&gt;This turns out to be surprisingly easy-- it just requires a little HTML.&lt;br /&gt;&lt;br /&gt;&lt;div style="margin: 5px; padding: 5px; background: rgb(204, 204, 204) none repeat scroll 0% 50%; text-align: center; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;form action="http://www.blogger.com/profile-find.g" method="get"&gt;&lt;p&gt;&lt;strong&gt;Blogger Profile Search Interface&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Show me all Bloggers in: &lt;input name="t" value="l" type="hidden"&gt;&lt;br /&gt;&lt;select name="loc0" id="loc0"&gt;&lt;option value="_nil_"&gt;Select a country&lt;/option&gt; &lt;option value="AF"&gt;Afghanistan&lt;/option&gt; &lt;option value="AL"&gt;Albania&lt;/option&gt; &lt;option value="DZ"&gt;Algeria&lt;/option&gt; &lt;option value="AS"&gt;American Samoa&lt;/option&gt; &lt;option value="AD"&gt;Andorra&lt;/option&gt; &lt;option value="AO"&gt;Angola&lt;/option&gt; &lt;option value="AI"&gt;Anguilla&lt;/option&gt; &lt;option value="AQ"&gt;Antarctica&lt;/option&gt; &lt;option value="AG"&gt;Antigua and Barbuda&lt;/option&gt; &lt;option value="AR"&gt;Argentina&lt;/option&gt; &lt;option value="AM"&gt;Armenia&lt;/option&gt; &lt;option value="AW"&gt;Aruba&lt;/option&gt; &lt;option value="AU"&gt;Australia&lt;/option&gt; &lt;option value="AT"&gt;Austria&lt;/option&gt; &lt;option value="AZ"&gt;Azerbaijan&lt;/option&gt; &lt;option value="BS"&gt;Bahamas&lt;/option&gt; &lt;option value="BH"&gt;Bahrain&lt;/option&gt; &lt;option value="BD"&gt;Bangladesh&lt;/option&gt; &lt;option value="BB"&gt;Barbados&lt;/option&gt; &lt;option value="BY"&gt;Belarus&lt;/option&gt; &lt;option value="BE"&gt;Belgium&lt;/option&gt; &lt;option value="BZ"&gt;Belize&lt;/option&gt; &lt;option value="BJ"&gt;Benin&lt;/option&gt; &lt;option value="BM"&gt;Bermuda&lt;/option&gt; &lt;option value="BT"&gt;Bhutan&lt;/option&gt; &lt;option value="BO"&gt;Bolivia&lt;/option&gt; &lt;option value="BA"&gt;Bosnia and Herzegovina&lt;/option&gt; &lt;option value="BW"&gt;Botswana&lt;/option&gt; &lt;option value="BV"&gt;Bouvet Island&lt;/option&gt; &lt;option value="BR"&gt;Brazil&lt;/option&gt; &lt;option value="IO"&gt;British Indian Ocean Territory&lt;/option&gt; &lt;option value="VG"&gt;British Virgin Islands&lt;/option&gt; &lt;option value="BN"&gt;Brunei&lt;/option&gt; &lt;option value="BG"&gt;Bulgaria&lt;/option&gt; &lt;option value="BF"&gt;Burkina Faso&lt;/option&gt; &lt;option value="BI"&gt;Burundi&lt;/option&gt; &lt;option value="KH"&gt;Cambodia&lt;/option&gt; &lt;option value="CM"&gt;Cameroon&lt;/option&gt; &lt;option value="CA"&gt;Canada&lt;/option&gt; &lt;option value="CV"&gt;Cape Verde&lt;/option&gt; &lt;option value="KY"&gt;Cayman Islands&lt;/option&gt; &lt;option value="CF"&gt;Central African Republic&lt;/option&gt; &lt;option value="TD"&gt;Chad&lt;/option&gt; &lt;option value="CL"&gt;Chile&lt;/option&gt; &lt;option value="CN"&gt;China&lt;/option&gt; &lt;option value="CX"&gt;Christmas Island&lt;/option&gt; &lt;option value="CC"&gt;Cocos Islands&lt;/option&gt; &lt;option value="CO"&gt;Colombia&lt;/option&gt; &lt;option value="KM"&gt;Comoros&lt;/option&gt; &lt;option value="CG"&gt;Congo&lt;/option&gt; &lt;option value="CK"&gt;Cook Islands&lt;/option&gt; &lt;option value="CR"&gt;Costa Rica&lt;/option&gt; &lt;option value="CI"&gt;Côte d'Ivoire&lt;/option&gt; &lt;option value="HR"&gt;Croatia&lt;/option&gt; &lt;option value="CU"&gt;Cuba&lt;/option&gt; &lt;option value="CY"&gt;Cyprus&lt;/option&gt; &lt;option value="CZ"&gt;Czech Republic&lt;/option&gt; &lt;option value="DK"&gt;Denmark&lt;/option&gt; &lt;option value="DJ"&gt;Djibouti&lt;/option&gt; &lt;option value="DM"&gt;Dominica&lt;/option&gt; &lt;option value="DO"&gt;Dominican Republic&lt;/option&gt; &lt;option value="TP"&gt;East Timor&lt;/option&gt; &lt;option value="EC"&gt;Ecuador&lt;/option&gt; &lt;option value="EG"&gt;Egypt&lt;/option&gt; &lt;option value="SV"&gt;El Salvador&lt;/option&gt; &lt;option value="GQ"&gt;Equatorial Guinea&lt;/option&gt; &lt;option value="ER"&gt;Eritrea&lt;/option&gt; &lt;option value="EE"&gt;Estonia&lt;/option&gt; &lt;option value="ET"&gt;Ethiopia&lt;/option&gt; &lt;option value="FK"&gt;Falkland Islands&lt;/option&gt; &lt;option value="FO"&gt;Faroe Islands&lt;/option&gt; &lt;option value="FJ"&gt;Fiji&lt;/option&gt; &lt;option value="FI"&gt;Finland&lt;/option&gt; &lt;option value="FR"&gt;France&lt;/option&gt; &lt;option value="FX"&gt;France, Metropolitan&lt;/option&gt; &lt;option value="GF"&gt;French Guiana&lt;/option&gt; &lt;option value="PF"&gt;French Polynesia&lt;/option&gt; &lt;option value="TF"&gt;French Southern Territories&lt;/option&gt; &lt;option value="GA"&gt;Gabon&lt;/option&gt; &lt;option value="GM"&gt;Gambia&lt;/option&gt; &lt;option value="GE"&gt;Georgia&lt;/option&gt; &lt;option value="DE"&gt;Germany&lt;/option&gt; &lt;option value="GH"&gt;Ghana&lt;/option&gt; &lt;option value="GI"&gt;Gibraltar&lt;/option&gt; &lt;option value="GR"&gt;Greece&lt;/option&gt; &lt;option value="GL"&gt;Greenland&lt;/option&gt; &lt;option value="GD"&gt;Grenada&lt;/option&gt; &lt;option value="GP"&gt;Guadeloupe&lt;/option&gt; &lt;option value="GU"&gt;Guam&lt;/option&gt; &lt;option value="GT"&gt;Guatemala&lt;/option&gt; &lt;option value="GN"&gt;Guinea&lt;/option&gt; &lt;option value="GW"&gt;Guinea-Bissau&lt;/option&gt; &lt;option value="GY"&gt;Guyana&lt;/option&gt; &lt;option value="HT"&gt;Haiti&lt;/option&gt; &lt;option value="HM"&gt;Heard Island And McDonald Islands&lt;/option&gt; &lt;option value="HN"&gt;Honduras&lt;/option&gt; &lt;option value="HK"&gt;Hong Kong&lt;/option&gt; &lt;option value="HU"&gt;Hungary&lt;/option&gt; &lt;option value="IS"&gt;Iceland&lt;/option&gt; &lt;option value="IN"&gt;India&lt;/option&gt; &lt;option value="ID"&gt;Indonesia&lt;/option&gt; &lt;option value="IR"&gt;Iran&lt;/option&gt; &lt;option value="IQ"&gt;Iraq&lt;/option&gt; &lt;option value="IE"&gt;Ireland&lt;/option&gt; &lt;option value="IL"&gt;Israel&lt;/option&gt; &lt;option value="IT"&gt;Italy&lt;/option&gt; &lt;option value="JM"&gt;Jamaica&lt;/option&gt; &lt;option value="JP"&gt;Japan&lt;/option&gt; &lt;option value="JO"&gt;Jordan&lt;/option&gt; &lt;option value="KZ"&gt;Kazakhstan&lt;/option&gt; &lt;option value="KE"&gt;Kenya&lt;/option&gt; &lt;option value="KI"&gt;Kiribati&lt;/option&gt; &lt;option value="KW"&gt;Kuwait&lt;/option&gt; &lt;option value="KG"&gt;Kyrgyzstan&lt;/option&gt; &lt;option value="LA"&gt;Laos&lt;/option&gt; &lt;option value="LV"&gt;Latvia&lt;/option&gt; &lt;option value="LB"&gt;Lebanon&lt;/option&gt; &lt;option value="LS"&gt;Lesotho&lt;/option&gt; &lt;option value="LR"&gt;Liberia&lt;/option&gt; &lt;option value="LY"&gt;Libya&lt;/option&gt; &lt;option value="LI"&gt;Liechtenstein&lt;/option&gt; &lt;option value="LT"&gt;Lithuania&lt;/option&gt; &lt;option value="LU"&gt;Luxembourg&lt;/option&gt; &lt;option value="MO"&gt;Macao&lt;/option&gt; &lt;option value="MK"&gt;Macedonia&lt;/option&gt; &lt;option value="MG"&gt;Madagascar&lt;/option&gt; &lt;option value="MW"&gt;Malawi&lt;/option&gt; &lt;option value="MY"&gt;Malaysia&lt;/option&gt; &lt;option value="MV"&gt;Maldives&lt;/option&gt; &lt;option value="ML"&gt;Mali&lt;/option&gt; &lt;option value="MT"&gt;Malta&lt;/option&gt; &lt;option value="MH"&gt;Marshall Islands&lt;/option&gt; &lt;option value="MQ"&gt;Martinique&lt;/option&gt; &lt;option value="MR"&gt;Mauritania&lt;/option&gt; &lt;option value="MU"&gt;Mauritius&lt;/option&gt; &lt;option value="YT"&gt;Mayotte&lt;/option&gt; &lt;option value="MX"&gt;Mexico&lt;/option&gt; &lt;option value="FM"&gt;Micronesia&lt;/option&gt; &lt;option value="MD"&gt;Moldova&lt;/option&gt; &lt;option value="MC"&gt;Monaco&lt;/option&gt; &lt;option value="MN"&gt;Mongolia&lt;/option&gt; &lt;option value="ME"&gt;Montenegro&lt;/option&gt; &lt;option value="MS"&gt;Montserrat&lt;/option&gt; &lt;option value="MA"&gt;Morocco&lt;/option&gt; &lt;option value="MZ"&gt;Mozambique&lt;/option&gt; &lt;option value="MM"&gt;Myanmar&lt;/option&gt; &lt;option value="NA"&gt;Namibia&lt;/option&gt; &lt;option value="NR"&gt;Nauru&lt;/option&gt; &lt;option value="NP"&gt;Nepal&lt;/option&gt; &lt;option value="NL"&gt;Netherlands&lt;/option&gt; &lt;option value="AN"&gt;Netherlands Antilles&lt;/option&gt; &lt;option value="NC"&gt;New Caledonia&lt;/option&gt; &lt;option value="NZ"&gt;New Zealand&lt;/option&gt; &lt;option value="NI"&gt;Nicaragua&lt;/option&gt; &lt;option value="NE"&gt;Niger&lt;/option&gt; &lt;option value="NG"&gt;Nigeria&lt;/option&gt; &lt;option value="NU"&gt;Niue&lt;/option&gt; &lt;option value="NF"&gt;Norfolk Island&lt;/option&gt; &lt;option value="KP"&gt;North Korea&lt;/option&gt; &lt;option value="MP"&gt;Northern Mariana Islands&lt;/option&gt; &lt;option value="NO"&gt;Norway&lt;/option&gt; &lt;option value="OM"&gt;Oman&lt;/option&gt; &lt;option value="PK"&gt;Pakistan&lt;/option&gt; &lt;option value="PW"&gt;Palau&lt;/option&gt; &lt;option value="PS"&gt;Palestine&lt;/option&gt; &lt;option value="PA"&gt;Panama&lt;/option&gt; &lt;option value="PG"&gt;Papua New Guinea&lt;/option&gt; &lt;option value="PY"&gt;Paraguay&lt;/option&gt; &lt;option value="PE"&gt;Peru&lt;/option&gt; &lt;option value="PH"&gt;Philippines&lt;/option&gt; &lt;option value="PN"&gt;Pitcairn&lt;/option&gt; &lt;option value="PL"&gt;Poland&lt;/option&gt; &lt;option value="PT"&gt;Portugal&lt;/option&gt; &lt;option value="PR"&gt;Puerto Rico&lt;/option&gt; &lt;option value="QA"&gt;Qatar&lt;/option&gt; &lt;option value="RE"&gt;Reunion&lt;/option&gt; &lt;option value="RO"&gt;Romania&lt;/option&gt; &lt;option value="RU"&gt;Russia&lt;/option&gt; &lt;option value="RW"&gt;Rwanda&lt;/option&gt; &lt;option value="SH"&gt;Saint Helena&lt;/option&gt; &lt;option value="KN"&gt;Saint Kitts And Nevis&lt;/option&gt; &lt;option value="LC"&gt;Saint Lucia&lt;/option&gt; &lt;option value="PM"&gt;Saint Pierre And Miquelon&lt;/option&gt; &lt;option value="VC"&gt;Saint Vincent And The Grenadines&lt;/option&gt; &lt;option value="WS"&gt;Samoa&lt;/option&gt; &lt;option value="SM"&gt;San Marino&lt;/option&gt; &lt;option value="ST"&gt;Sao Tome And Principe&lt;/option&gt; &lt;option value="SA"&gt;Saudi Arabia&lt;/option&gt; &lt;option value="SN"&gt;Senegal&lt;/option&gt; &lt;option value="RS"&gt;Serbia&lt;/option&gt;  &lt;option value="SC"&gt;Seychelles&lt;/option&gt; &lt;option value="SL"&gt;Sierra Leone&lt;/option&gt; &lt;option value="SG"&gt;Singapore&lt;/option&gt; &lt;option value="SK"&gt;Slovakia&lt;/option&gt; &lt;option value="SI"&gt;Slovenia&lt;/option&gt; &lt;option value="SB"&gt;Solomon Islands&lt;/option&gt; &lt;option value="SO"&gt;Somalia&lt;/option&gt; &lt;option value="ZA"&gt;South Africa&lt;/option&gt; &lt;option value="GS"&gt;South Georgia And The South Sandwich Islands&lt;/option&gt; &lt;option value="KR"&gt;South Korea&lt;/option&gt; &lt;option value="ES"&gt;Spain&lt;/option&gt; &lt;option value="LK"&gt;Sri Lanka&lt;/option&gt; &lt;option value="SD"&gt;Sudan&lt;/option&gt; &lt;option value="SR"&gt;Suriname&lt;/option&gt; &lt;option value="SJ"&gt;Svalbard And Jan Mayen&lt;/option&gt; &lt;option value="SZ"&gt;Swaziland&lt;/option&gt; &lt;option value="SE"&gt;Sweden&lt;/option&gt; &lt;option value="CH"&gt;Switzerland&lt;/option&gt; &lt;option value="SY"&gt;Syria&lt;/option&gt; &lt;option value="TW"&gt;Taiwan&lt;/option&gt; &lt;option value="TJ"&gt;Tajikistan&lt;/option&gt; &lt;option value="TZ"&gt;Tanzania&lt;/option&gt; &lt;option value="TH"&gt;Thailand&lt;/option&gt; &lt;option value="CD"&gt;The Democratic Republic Of Congo&lt;/option&gt; &lt;option value="TG"&gt;Togo&lt;/option&gt; &lt;option value="TK"&gt;Tokelau&lt;/option&gt; &lt;option value="TO"&gt;Tonga&lt;/option&gt; &lt;option value="TT"&gt;Trinidad and Tobago&lt;/option&gt; &lt;option value="TN"&gt;Tunisia&lt;/option&gt; &lt;option value="TR"&gt;Turkey&lt;/option&gt; &lt;option value="TM"&gt;Turkmenistan&lt;/option&gt; &lt;option value="TC"&gt;Turks And Caicos Islands&lt;/option&gt; &lt;option value="TV"&gt;Tuvalu&lt;/option&gt; &lt;option value="VI"&gt;U.S. Virgin Islands&lt;/option&gt; &lt;option value="UG"&gt;Uganda&lt;/option&gt; &lt;option value="UA"&gt;Ukraine&lt;/option&gt; &lt;option value="AE"&gt;United Arab Emirates&lt;/option&gt; &lt;option value="GB"&gt;United Kingdom&lt;/option&gt; &lt;option value="US"&gt;United States&lt;/option&gt; &lt;option value="UM"&gt;United States Minor Outlying Islands&lt;/option&gt; &lt;option value="UY"&gt;Uruguay&lt;/option&gt; &lt;option value="UZ"&gt;Uzbekistan&lt;/option&gt; &lt;option value="VU"&gt;Vanuatu&lt;/option&gt; &lt;option value="VA"&gt;Vatican&lt;/option&gt; &lt;option value="VE"&gt;Venezuela&lt;/option&gt; &lt;option value="VN"&gt;Vietnam&lt;/option&gt; &lt;option value="WF"&gt;Wallis And Futuna&lt;/option&gt; &lt;option value="EH"&gt;Western Sahara&lt;/option&gt; &lt;option value="YE"&gt;Yemen&lt;/option&gt;  &lt;option value="ZM"&gt;Zambia&lt;/option&gt; &lt;option value="ZW"&gt;Zimbabwe&lt;/option&gt;&lt;/select&gt;&lt;/p&gt;&lt;br /&gt;&lt;input value="Submit" type="submit"&gt;&lt;br /&gt;&lt;/form&gt;&lt;/div&gt;&lt;br /&gt;Let's take it apart and see how it works. We start with a basic form tag:&lt;br /&gt;&lt;br /&gt;&amp;lt;form action="http://www.blogger.com/profile-find.g" method="get"&amp;gt;&lt;br /&gt;. . . &lt;span style="font-style: italic;"&gt;we'll flesh out this bit later on&lt;/span&gt; . . .&lt;br /&gt;&amp;lt;form&amp;gt;&lt;br /&gt;&lt;br /&gt;The action attribute above, which tells the form where it should send its information when the submit button is pressed, is pointing at the same URL we used last time for Blogger's profile search-- except there don't seem to be any parameters tacked on to the end of the URL.  Don't worry, we'll be teaching our form how to add that extra stuff to the end of the URL "behind the scenes."  We will do that by using the form's "get" method.&lt;br /&gt;&lt;br /&gt;Before we go any further with our form, let's take a second look at that example URL from before:&lt;br /&gt;&lt;br /&gt;http://www.blogger.com/profile-find.g?&lt;span style="font-weight: bold;"&gt;t=l&lt;/span&gt;&amp;amp;loc0=VA&lt;br /&gt;&lt;br /&gt;See that "t=l" bit in the middle there that I've bolded for emphasis? Blogger's Profile Search feature can actually find Bloggers in many different ways: by location, by occupation, by interest, favorite book titles, etc.  That "t=l" business lets Blogger's Profile Search program know that you are interested in carrying out a search by location.  For you mnemonic learners out there, that's t (as in type) equals l (as in location).&lt;br /&gt;&lt;br /&gt;We need to make sure our form passes that "t=l" parameter to the Blogger URL before passing the country code.  We also want to make sure it can't be changed/messed up by our non-web geek friends.  The best way to accomplish both goals is to put a hidden field in the form, like so:&lt;br /&gt;&lt;br /&gt;&amp;lt;form action="http://www.blogger.com/profile-find.g" method="get"&amp;gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;input name="t" value="l" type="hidden"&amp;gt;&lt;/span&gt;&lt;br /&gt;. . . &lt;span style="font-style: italic;"&gt;the drop down list of countries will eventually go here&lt;/span&gt; . . .&lt;br /&gt;&amp;lt;form&amp;gt;&lt;br /&gt;&lt;br /&gt;Now that we know our form will always specify the "search by location" type of query, we can focus on the "heavy lifting" part-- namely listing all the countries in a drop down list.  The important bit to remember is to name the select tag with the same parameter label (i.e. loc0) the Blogger search URL is expecting.  If I were to name it something like "countryList" it won't work.&lt;br /&gt;&lt;br /&gt;&amp;lt;form action="http://www.blogger.com/profile-find.g" method="get"&amp;gt;&lt;br /&gt; &amp;lt;input name="t" value="l" type="hidden"&amp;gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;select name="loc0" id="loc0" style="font-family:Verdana, sans-serif;"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &amp;lt;option value="_nil_"&amp;gt;Select a country&amp;lt;/option&amp;gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &amp;lt;option value="AF"&amp;gt;Afghanistan&amp;lt;/option&amp;gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; . . . I'm not going to type in the entire country list, just enough to convey the idea  . . .&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &amp;lt;option value="ZM"&amp;gt;Zambia&amp;lt;/option&amp;gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &amp;lt;option value="ZW"&amp;gt;Zimbabwe&amp;lt;/option&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &amp;lt;/select&amp;gt;&lt;/span&gt;&lt;br /&gt;   . . .&lt;br /&gt;&amp;lt;form&amp;gt;&lt;br /&gt;&lt;br /&gt;I'll leave the specific text content and styling of the form (e.g. background color, font, border, etc.) to your personal tastes. That leaves us with the actual submit button:&lt;br /&gt;&lt;br /&gt;&amp;lt;form action="http://www.blogger.com/profile-find.g" method="get"&amp;gt;&lt;br /&gt;  &amp;lt;input name="t" value="l" type="hidden"&amp;gt;&lt;br /&gt; &amp;lt;select name="loc0" id="loc0" style="font-family:Verdana, sans-serif;"&amp;gt;&lt;br /&gt; &amp;lt;option value="_nil_"&amp;gt;Select a country&amp;lt;/option&amp;gt;&lt;br /&gt; &amp;lt;option value="AF"&amp;gt;Afghanistan&amp;lt;/option&amp;gt;&lt;br /&gt; &lt;span style="font-style: italic;"&gt;. . . I'm not going to type in the entire country list, just enough to convey the idea  . . .&lt;/span&gt;&lt;br /&gt;  &amp;lt;option value="ZM"&amp;gt;Zambia&amp;lt;/option&amp;gt;&lt;br /&gt; &amp;lt;option value="ZW"&amp;gt;Zimbabwe&amp;lt;/option&amp;gt;&lt;br /&gt; &amp;lt;/select&amp;gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;input type="Submit" value="Submit" / &amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;lt;form&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-6710921559738363229?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/6710921559738363229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=6710921559738363229&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/6710921559738363229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/6710921559738363229'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/08/hacking-bloggers-profile-search-part-ii.html' title='&quot;Hacking&quot; Blogger&apos;s Profile Search, Part II'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-2551773092480070402</id><published>2008-08-25T18:39:00.002-05:00</published><updated>2008-08-25T19:29:24.209-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='human nature'/><category scheme='http://www.blogger.com/atom/ns#' term='website'/><title type='text'>Platewire.com</title><content type='html'>Driving home from work today, an aggressive driver in a light tan Sienna (VA tags JDE-2781) nearly forced me off the road and into a ditch.  I considered reporting this to the police, but past experiences have led me to believe this is a waste of time.&lt;br /&gt;&lt;br /&gt;So-- I figured, why don't I publish the jerk's license plate on the Internet, along with a description of his vehicle?  Then, as I thought about it more, I realized it would be even better if I could create some kind of web-based application that people could use to "report" dangerous and/or aggressive drivers.  Not "report" as in "turn over to the authorities," but "report" as in publicly shame a la "The Scarlet Letter."&lt;br /&gt;&lt;br /&gt;Turns out &lt;a href="http://benjacat.blogspot.com/2008/04/aggressive-driver-database-aka-mr-19-ts.html"&gt;I'm not the only person thinking along these lines&lt;/a&gt;-- and someone already beat me to the punch.  I'm talking about &lt;a href="http://www.platewire.com"&gt;platewire.com&lt;/a&gt;, the site which allows you to post notices (good or bad) about specific license plates.  It's an intriguing concept, and has a surprising number of features.  You have to create an account with a valid email address, which is a good way to reduce the potential for abuse/slander/libel.&lt;br /&gt;&lt;br /&gt;Now, if you'll excuse me, I need to create an account so I can give a BIG RED FLAG to Mr. Tan Sienna Van Man.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-2551773092480070402?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/2551773092480070402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=2551773092480070402&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2551773092480070402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2551773092480070402'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/08/platewirecom.html' title='Platewire.com'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-4429064155092005132</id><published>2008-08-20T17:37:00.004-05:00</published><updated>2008-08-20T17:37:00.290-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='profile search'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>"Hacking" Blogger's Profile Search</title><content type='html'>Suppose you want to find all Blogger users that live in Vatican.&lt;br /&gt;&lt;br /&gt;You could try a Google Search for the terms "Vatican" and "Blogger." Those results would include any webpage that contained those two terms in it (regardless of whether the author lives in Vatican or is just writing about Vatican or Vatican City), but you could poke around until you got lucky and found a Blogger who actually lived in Vatican.  From there, you could read their profile and use their location link to find all the other bloggers who identify themselves as living within Vatican.  It might take a while, but you could do it.&lt;br /&gt;&lt;br /&gt;Or, you could analyze Blogger's Profile Search URL and figure out it's being used to pass search parameters.  Once you understand the logic behind the URL, you could then quickly build your own custom URLs to find Bloggers in Vatican or &lt;span style="font-weight: bold;"&gt;any country you desire.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The first and most important lesson in "hacking" (in the old-school sense of the word, not in the "breaking into systems/stealing/vandalizing" sense that the media likes to perpetuate these days) is to be observant and figure out the underlying nature of how things work.&lt;br /&gt;&lt;br /&gt;Take the typical Profile Search URL from Blogger, for example.  When I click on my profile, and then click on the "United States" link by the "Location:" text label, I see the following URL:&lt;br /&gt;&lt;br /&gt;http://www.blogger.com/profile-find.g?t=l&amp;amp;loc0=US&lt;br /&gt;&lt;br /&gt;See that last part of the URL, the &lt;span style="font-style: italic; font-weight: bold;"&gt;&amp;amp;loc0=US&lt;/span&gt; part?  That part of the address is being used to tell Blogger which country it should use in its search.  If we could deduce the correct country code for Vatican, we can change the URL to get the desired results.&lt;br /&gt;&lt;br /&gt;Fortunately, deducing the correct country codes is pretty easy.  You just log in to your Blogger account, edit your own profile, and find the drop down list of countries under the "Location:" section.  Using View Source in your web browser, find the list of countries.  It should look something like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;select name="widget.country" id="widget.country" tabindex="0"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;option value="_nil_"&amp;gt;Not Specified&amp;lt;/option&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;option value="AF"&amp;gt;Afghanistan&amp;lt;/option&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;option value="AL"&amp;gt;Albania&amp;lt;/option&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;option value="DZ"&amp;gt;Algeria&amp;lt;/option&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;. . .  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&amp;lt;option value="VA"&amp;gt;Vatican&amp;lt;/option&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;. . . &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;/select&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obviously, I didn't list all the countries in the drop down list. I also bolded the specific entry we're interested in, so we now know that the country code for Vatican is "VA."  That means if we switch the country codes on that previous search URL, we should wind up with:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/profile-find.g?t=l&amp;amp;loc0=VA"&gt;http://www.blogger.com/profile-find.g?t=l&amp;amp;loc0=VA&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The above URL will give us a page with all the Bloggers in Vatican. Don't take my word for it, though.  I could be wrong, or something may have changed since I wrote this entry.  If you click on the above link and get a list of profiles that all have locations in Vatican, then you know it (still) works properly.  Now that you know the "trick" (i.e. find the correct country code, insert it into the URL), you can build your own "custom" links, save them as bookmarks, etc.&lt;br /&gt;&lt;br /&gt;Of course, if you really want to be slick about it, you could build your own search form web page with a drop down list of all the countries and their corresponding country codes.  (Look for that topic in an entry next week.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-4429064155092005132?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/4429064155092005132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=4429064155092005132&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4429064155092005132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4429064155092005132'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/08/hacking-bloggers-profile-search.html' title='&quot;Hacking&quot; Blogger&apos;s Profile Search'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-8348513562848356918</id><published>2008-08-19T08:52:00.002-05:00</published><updated>2008-08-19T09:37:30.784-05:00</updated><title type='text'>Ten clues you are working with a bad web "designer"</title><content type='html'>I've been silent for years while web designers have criticized web developers for "making bad design."  My silence ends today.  Of course web developers make bad design-- we're DEVELOPERS, not designers.  You don't send a &lt;a href="http://www.battlestargalactica.com/moderndocs/jl_eps_guide0019.htm"&gt;pilot to do crowd control&lt;/a&gt;, do you?&lt;br /&gt;&lt;br /&gt;So, instead of pointing out how web designers make bad developers, I'd like to provide something more constructive-- a list of clues to help you distinguish between legit, skilled web designers and the rest of &lt;span style="font-weight: bold;"&gt;the poseurs&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Here's the list:&lt;br /&gt;&lt;br /&gt;1) The entire index page, including the text copy, is one big image and an image map.  (&lt;span style="font-style: italic;"&gt;Good luck if you ever need to change that text copy-- I wonder how much they'll charge you for that?)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2) They use tables to control layout because CSS positioning is "just too hard." &lt;br /&gt;&lt;br /&gt;3) Their idea of creating thumbnail graphics is to change the width and height attribute on the img tag. (&lt;span style="font-style: italic;"&gt;Why do these thumbnails take forever to download?&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;4) Their CSS file has one line in it, and it reads: &lt;span style="font-weight: bold;"&gt;body { background: #FFF; font-family: sans-serif; }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5) Their pages have no DOCTYPE, or even worse, an incorrect one (e.g. STRICT DOCTYPE, but the page has deprecated HTML tags in it).&lt;br /&gt;&lt;br /&gt;6) They've never heard of the W3C, the online HTML Validator, or Tidy. &lt;br /&gt;&lt;br /&gt;7) They think Tim Berners-Lee is "that guy from Mötley Crüe."  (&lt;span style="font-style: italic;"&gt;Semantic Web? Sorry, I don't listen to New Wave.&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;8) They use frames.&lt;br /&gt;&lt;br /&gt;9) When you try to talk with them about any technical or maintenance issues caused by flaws in their design approach, they cut you off by saying, "That's not OUR problem!"&lt;br /&gt;&lt;br /&gt;10) When you hire a different designer for your next web project, you get email and voicemails like this: "HOW COULD YOU DO THIS TO US? I THOUGHT WE WERE FRIENDS!?"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-8348513562848356918?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/8348513562848356918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=8348513562848356918&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8348513562848356918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8348513562848356918'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/08/ten-clues-you-are-working-with-bad-web.html' title='Ten clues you are working with a bad web &quot;designer&quot;'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-1023192184342199788</id><published>2008-08-17T15:15:00.004-05:00</published><updated>2008-08-17T16:05:28.534-05:00</updated><title type='text'>Forget the jet pack; where's my Android phone?</title><content type='html'>Because I am a big Unix/Mac OS X geek, everyone assumes I have an iPhone.  They are shocked when I say I'm not interested in purchasing one.  There's nothing spectacularly wrong with the iPhone-- but it is locked down to AT&amp;amp;T's mobile network.  I've spent time and effort unlocking my current GSM phone for use when I travel in foreign countries, so upgrading to another vendor-locked phone seems like a big step back to me.&lt;br /&gt;&lt;br /&gt;But, I'm curious to see 2008 Q4 will bring with the new "Android phones."  I'm not 100% sold on buying one yet, but if there's an unlocked quad-band GSM with a qwerty keyboard and a camera in the mix somewhere, I'd seriously consider it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-1023192184342199788?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/1023192184342199788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=1023192184342199788&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/1023192184342199788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/1023192184342199788'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/08/forget-jet-pack-wheres-my-android-phone.html' title='Forget the jet pack; where&apos;s my Android phone?'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-4465992113387304403</id><published>2008-08-10T20:02:00.002-05:00</published><updated>2008-08-10T21:18:10.276-05:00</updated><title type='text'>Pecha Kucha Frustration</title><content type='html'>We finished our annual conference last week, and you know what that means: LOTS of POWERPOINT presentations.  I've seen many "bad" Powerpoint presentations in the past 10 years.  I've even delivered "bad" Powerpoint presentations myself.  The tool's dynamic encourages "bad" presentations.  It's like that "self-working magic trick" we all bought as kids-- the mechanics of the effect were so easy, we wound up showing it before we'd practiced our showmanship.&lt;br /&gt;&lt;br /&gt;Which leads me to Pecha Kucha.&lt;br /&gt;&lt;br /&gt;For those unfamiliar, Pecha Kucha is like haiku for visual presentations.  It has a specific form-- 20 slides, displayed for 20 seconds each.  Thus, if one remains true to the form, a presentation will last 6 minutes, 40 seconds.  I admit, it sounds gimmicky-- but it also sounds better than the typical Powerpoint marathons we've all endured.  I suspect Pecha Kucha's constraints force its followers to learn the craft of showmanship.&lt;br /&gt;&lt;br /&gt;I'd like to try this format myself, but I don't use Windows or Microsoft Office on any of my personal machines.  All the presentation software to which I do have access, such as Google Docs, doesn't appear to have an timed transition that automatically moves from one slide to the next.  The nearest approximation I can make is using the screen saver feature on my iBook that can be set to display image files kept in a specific order-- but the delay between transition effects seems to be hard-wired at precisely 8 seconds.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-4465992113387304403?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/4465992113387304403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=4465992113387304403&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4465992113387304403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4465992113387304403'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/08/pecha-kucha-frustration.html' title='Pecha Kucha Frustration'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-5178420882882004354</id><published>2008-08-10T09:53:00.003-05:00</published><updated>2008-08-10T09:58:42.361-05:00</updated><title type='text'>A List Apart 2008 Web Survey</title><content type='html'>I know I'm probably preaching to the wrong audience here, but--&lt;br /&gt;&lt;br /&gt;If you build web sites for a living in any capacity (designer, developer, tester, what have you), you should seriously consider taking the 2008 Web Survey over at "A List Apart." &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://alistapart.com/articles/survey2008"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_Bz-p8OGqJD0/SJ8BBnjjlRI/AAAAAAAAAWo/Z_XUeRlKCkE/s400/i-took-the-2008-survey.gif" alt="" id="BLOGGER_PHOTO_ID_5232902419337418002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(&lt;span style="font-style: italic;"&gt;Of course, chances are that if you do build web sites for a living, you already knew about "A List Apart" and their 2008 Survey and have discovered better sources of info than my Atom feed.  LOL!&lt;/span&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-5178420882882004354?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/5178420882882004354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=5178420882882004354&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/5178420882882004354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/5178420882882004354'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/08/list-apart-2008-web-survey.html' title='A List Apart 2008 Web Survey'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Bz-p8OGqJD0/SJ8BBnjjlRI/AAAAAAAAAWo/Z_XUeRlKCkE/s72-c/i-took-the-2008-survey.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-3807111608341089088</id><published>2008-08-08T06:09:00.002-05:00</published><updated>2008-08-08T06:16:48.733-05:00</updated><title type='text'>A prediction about the Ivins Investigation</title><content type='html'>Yesterday, I read an article in the DC Examiner that featured "poems" the alleged anthrax attacker sent via email to a friend. Bear in mind, I don't know anything about biological weapons-- but if I were some kind of homicidal, evil genius capable of producing anthrax at a facility that doesn't even have the right equipment for it, while leaving no traces of it in my car or house, I think I could write a poem that wasn't based on "I'm a little teapot."&lt;br /&gt;&lt;br /&gt;Prediction: The Ivins investigation isn't going to hold up under critical scrutiny and its findings will be discredited.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-3807111608341089088?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/3807111608341089088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=3807111608341089088&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3807111608341089088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3807111608341089088'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/08/prediction-about-ivins-investigation.html' title='A prediction about the Ivins Investigation'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-7170630330737031724</id><published>2008-08-02T18:38:00.002-05:00</published><updated>2008-08-02T19:03:33.709-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bluejacking'/><category scheme='http://www.blogger.com/atom/ns#' term='bluetooth'/><title type='text'>Bluejacking in the USA</title><content type='html'>I saw my first instance of &lt;a href="http://en.wikipedia.org/wiki/Bluejacking"&gt;bluejacking&lt;/a&gt; (i.e. using Bluetooth technology to send unsolicited advertising messages) today.  It's peculiar, but Bluetooth hasn't caught on state-side like it has in, for example, Europe.  You could probably rationalize reasons-- such as concerns about privacy and security, etc.-- but I think the truth is most people here buy consumer electronic devices for status, rather than actual function.  They never read the manual in its entirety to learn all the features of their products.&lt;br /&gt;&lt;br /&gt;But, I digress.&lt;br /&gt;&lt;br /&gt;So, I'm at the food court in Springfield Mall in Northern Virginia, and there's this National Guard poster in one of the kiosks telling people to turn on their Bluetooth and set their devices for autodiscovery.  My current cell phone doesn't have Bluetooth support, but I expect if I had, I would have received some URL to their recruiting site.&lt;br /&gt;&lt;br /&gt;On the one hand, I'm glad to see that someone out there is at least aware of Bluetooth and making use of it.  On the other hand, I was disappointed with the overall implementation.  I'm not even talking about the necessity of the poster to let people know the Bluetooth service was available (though it is kind of laughable, I have to admit).  The local mall management could have made outstanding use of the Bluetooth technology-- with links to promotional events, maps in case people get lost, information about the mall's hours of operations, weather conditions, movie times, the location of the lost and found, etc.&lt;br /&gt;&lt;br /&gt;So much possibility exists-- and instead, we get adverts for the National Guard.  (Nothing against the National Guard, mind you.  I think they perform a wonderful service for our country.)&lt;br /&gt;&lt;br /&gt;It's just like buying the deluxe cable TV package from your local cable company and discovering that 20 of the channels are all shameless self-promotional channels.  (Hello, we're already subscribing to the service-- why are you subjecting us to advertising on channels that could be used for educational or entertainment programming instead?)&lt;br /&gt;&lt;br /&gt;If/when I get my Personal Area Network up and running, it's going to be a hell of a lot cooler and more valuable than just advertising.  I don't know exactly what I will offer, but if all I can think of to say is: "Come join our team!" then I'm hanging it up before I even get started.&lt;br /&gt;&lt;br /&gt;They actually have programs for Bluetooth enabled devices that let users declare what their hobbies and interests are-- and when they wander into close proximity of someone else with a similarly equipped/enabled Bluetooth device, the programs compare interests and hobbies.  If they find a significant degree of matching, the programs alert the users to the other person's presence.  (I can't help but think of Dr. Who and how the TARDIS automatically translates all the various written and spoken languages from around the universe for travelling companions via telepathic interface.  Remarkably powerful and convenient, yet so subtle that you forget it's there.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-7170630330737031724?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/7170630330737031724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=7170630330737031724&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7170630330737031724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7170630330737031724'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/08/bluejacking-in-usa.html' title='Bluejacking in the USA'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-784171944260335297</id><published>2008-07-31T20:23:00.002-05:00</published><updated>2008-07-31T20:30:46.594-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Getting Things Done'/><category scheme='http://www.blogger.com/atom/ns#' term='gas mileage'/><title type='text'>GTD = MPG?</title><content type='html'>Can following David Allen's "Getting Things Done" regimen give you better gas mileage? &lt;br /&gt;&lt;br /&gt;Not exactly, but cheeky opening sentences aside, I've noticed that I now fill my tank once every nine days on average-- instead of every seven.  (&lt;span style="font-style: italic;"&gt;ed. aside: Yes, I'm one of &lt;span style="font-weight: bold;"&gt;THOSE&lt;/span&gt; people who lets his tank go nearly empty before filling up; get over it.&lt;/span&gt;)  But according to my tripometer, I still get the same miles per gallon as I did before. &lt;br /&gt;&lt;br /&gt;So, obviously something in the way I drive has changed. &lt;br /&gt;&lt;br /&gt;It's not a conscious thing.  I'm not cancelling errands while muttering about the outrageous price of gas.  I suspect what's happening is the Getting Things Done (aka GTD, for short) process of capturing what I need to do, as well as the context in where I can do particular tasks, is forcing me to do a better job of getting organized and planning my errands BEFORE I get in the car. &lt;br /&gt;&lt;br /&gt;Instead of running a dozen separate errands as they come to mind during the course of a week, I can plan ahead a day or two and combine tasks.  For example, I go to the dry cleaners for pickup and drop off, go to the post office to drop off my bills and Netflix returns, hit the restaurant in the same plaza to grab dinner, which also gives me leftovers I can take in for lunch at work the next day, etc.  You get the concept.  GTD makes you more efficient, so you get more accomplished with less driving. &lt;br /&gt;&lt;br /&gt;For me, filling up my gasoline tank less frequently appears to be an ancillary benefit of "Getting Things Done." Is anyone else out there seeing similar results?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-784171944260335297?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/784171944260335297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=784171944260335297&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/784171944260335297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/784171944260335297'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/07/gtd-mpg.html' title='GTD = MPG?'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-4454667442123256578</id><published>2008-07-28T22:01:00.002-05:00</published><updated>2008-07-29T05:37:11.811-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='remake'/><category scheme='http://www.blogger.com/atom/ns#' term='Rocky Horror'/><category scheme='http://www.blogger.com/atom/ns#' term='MTV'/><category scheme='http://www.blogger.com/atom/ns#' term='FOX'/><title type='text'>Let's [NOT] do the time warp again!  Please?!</title><content type='html'>&lt;a href="http://www.variety.com/article/VR1117989391.html?categoryid=13&amp;amp;cs=1"&gt;MTV readies 'Rocky Horror' redux - Entertainment News, Film News, Media - Variety&lt;/a&gt;: "MTV is doing the time warp on a remake of 1975 cult classic 'The Rocky Horror Picture Show.'"&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Since MTV and Fox Television seem hell bent on "&lt;a href="http://www.imdb.com/title/tt0057693/"&gt;&lt;span style="font-style: italic;"&gt;tampering with things with which man was not meant to tamper,&lt;/span&gt;&lt;/a&gt;" I throw down the following unthinkable challenge.&lt;br /&gt;&lt;br /&gt;If you had to cast &lt;a href="http://www.imdb.com/title/tt0073629/"&gt;The Rocky Horror Picture Show&lt;/a&gt; today, who would you cast for which part(s)?  Be as creative, wacky or outrageous as you want-- you're the producer.  Put your dream cast in the comments.&lt;br /&gt;&lt;br /&gt;I, for example, would take "Eddie" (originally played by Meatloaf), swap the gender (&lt;a href="http://www.wired.com/gaming/gamingreviews/news/2003/12/61436"&gt;a la Battlestar Galactica&lt;/a&gt;), and then cast &lt;a href="http://www.telegraph.co.uk/news/newstopics/celebritynews/2467224/Amy-Winehouse-in-hospital-after-reaction-to-medication.html"&gt;troubled chanteuse Amy Winehouse&lt;/a&gt; as "Edie."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-4454667442123256578?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/4454667442123256578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=4454667442123256578&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4454667442123256578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4454667442123256578'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/07/mtv-readies-rocky-horror-redux.html' title='Let&apos;s [NOT] do the time warp again!  Please?!'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-4927857568220130224</id><published>2008-07-27T21:15:00.002-05:00</published><updated>2008-07-27T21:28:35.373-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='profile picture'/><title type='text'>New Profile Pic</title><content type='html'>This evening I realized my stylized B&amp;amp;W profile pic was almost 7 &lt;span style="font-style: italic;"&gt;[mirabile dictu!]&lt;/span&gt; years old.  It seems impossible, because the circumstances behind it are still so vivid in my mind-- but it was taken November 2001, at the start of my trip to and adventure in Montreal.&lt;br /&gt;&lt;br /&gt;I've decided to update the profile image with a newer, more inviting one.  I'm tempted to make reference to the change seen in old and new Peter Gabriel album covers, but I doubt anyone'd catch the reference.  Like it?  Hate it?  Speak your mind in the comments, folks-- that is what they're there for!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-4927857568220130224?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/4927857568220130224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=4927857568220130224&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4927857568220130224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4927857568220130224'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/07/new-profile-pic.html' title='New Profile Pic'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-1516270056940241832</id><published>2008-07-22T21:04:00.002-05:00</published><updated>2008-07-22T21:47:05.033-05:00</updated><title type='text'>Unobtrusive Javascript and . . . a paper towel dispenser???</title><content type='html'>I've got two ideas for a blog entry, and can't decide which one to write first: the paper towel dispenser story, or the unobtrusive Javascript example.  Oddly, the more I think about them, the more interconnected they seem.  So, let me take a preliminary stab at this.&lt;br /&gt;&lt;br /&gt;Think about a paper towel dispenser in a public restroom for a moment.  We wash our hands, pull out a paper towel, dry our hands and throw away the paper towel without much thought.  The only time we even think about the people who fill the paper towel dispenser is when they fail to get refilled, right?&lt;br /&gt;&lt;br /&gt;I want you to imagine this guy-- his name is Dan.  Dan works at an establishment with a public restroom, and part of his job duties is to make sure that the paper towel dispenser never runs out of paper towels.  Dan has other job duties though; he can't just sit in the bathroom and watch the paper towel dispenser.  So, first thing every morning, he stuffs the dispenser with as many tightly stacked paper towels as he can.  His reasoning, of course, being that it will take more time for people to work their way through a bigger/more numerous pile of paper towels than a small/less numerous pile-- which also means he won't have to check it and refill it as often. &lt;br /&gt;&lt;br /&gt;Less work for Dan means it's better, right?&lt;br /&gt;&lt;br /&gt;That is, until you discover the paper towels are so tightly stuffed into the dispenser that patrons are finding it difficult to get them out.  They grab the first one, but it doesn't pull free, gets wet and then tears apart in their hands.  So, customers wind up pulling out a second paper towel to dry their hands with a whole piece instead of the torn fragments.  Now every customer is using two paper towels instead of one.&lt;br /&gt;&lt;br /&gt;You don't want to stuff the paper towel dispenser with as many paper towels as human possible.  You want to make sure it never runs out, but you also want to make sure it allows people to easily remove a paper towel when their fingers are wet. &lt;br /&gt;&lt;br /&gt;So, where does the unobtrusive Javascript come in, you're wondering?  (That makes two of us.)&lt;br /&gt;&lt;br /&gt;Web developers need to put Javascript into their web sites in much the same way that the paper towels need to inserted into the towel dispenser.  Keep it "loose" and make it superfluous.  When people can't get around your site and make use of its core functionality with their Javascript turned off, you've tried to cram too much Javascript code in there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-1516270056940241832?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/1516270056940241832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=1516270056940241832&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/1516270056940241832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/1516270056940241832'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/07/unobtrusive-javascript-and-paper-towel.html' title='Unobtrusive Javascript and . . . a paper towel dispenser???'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-7514811581650471627</id><published>2008-07-21T06:21:00.003-05:00</published><updated>2008-07-22T20:58:59.862-05:00</updated><title type='text'>Training, Testing and Production</title><content type='html'>The prevailing school of thought (at least where I've worked) has been to keep your trained and untrained users as separated as possible.  Don't get me wrong-- if you have deep pockets, and can get separate servers for production, training and testing environments, then by all means go for it.&lt;br /&gt;&lt;br /&gt;But the truth is that once people have shelled out money for the database and web servers on the production side of the fence, they start looking for ways to cut expenses.  This usually happens by the time they get round to setting up the training server.  "Well, can't we just use one server for both the training server AND the testing server?"&lt;br /&gt;&lt;br /&gt;This is a really bad idea, for many reasons.  A training server needs to be able to handle a set number of users simultaneously (30, 60, etc.), while a testing/development server can get by with handling a much smaller number of simultaneous users.  This translates into a horrible training experience for your newest end users/customers-- horrendously long login times, slow updates between pages, etc.  The first impression your new users get of your killer web app is in the training, and you're showing them a slow moving piece of turd, ok?&lt;br /&gt;&lt;br /&gt;Then, as if that weren't bad enough, developers are always working on the test/development server-- trying to add the new functionality that they've received back from program analysts/customer feedback.  If you're lucky, all the new code works great the first time and there are no bugs-- but we all know how unrealistic that is.  New code means new bugs, until you take measured steps to locate and remove them.  So now, in addition to showing your newest end users a slow application, you're also showing them new, untested code that might or might not have bugs in it.&lt;br /&gt;&lt;br /&gt;What exactly do you have against your new, untrained users anyway?  ;)&lt;br /&gt;&lt;br /&gt;Last, even if there aren't any bugs in the code (lucky you!), the addition of new features typically means that there are new buttons and gadgets in the interface-- so what your end users are being exposed to in their training session isn't identical is look and feel, or even in operation, to what they will actually have to work with in the production environment.&lt;br /&gt;&lt;br /&gt;And you wonder why none of your end users likes the whole web development process?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-7514811581650471627?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/7514811581650471627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=7514811581650471627&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7514811581650471627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7514811581650471627'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/07/training-testing-and-production.html' title='Training, Testing and Production'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-4085899918596129433</id><published>2008-07-11T22:58:00.002-05:00</published><updated>2008-07-11T23:49:11.736-05:00</updated><title type='text'>My thoughts on dating</title><content type='html'>(warning: cynical rant coming up!)&lt;br /&gt;&lt;br /&gt;This is simple-- I don't date.  Period.  I don't need to explain or justify it to anyone.  Consider it a lifestyle choice on my part and &lt;span style="font-weight: bold; font-style: italic;"&gt;move on&lt;/span&gt;.  I don't ask you to defend your (being gay or lesbian/being hetero/being married and monogamous/being an unfaitful two-timer/being whatever you happen to be "into"), so please return me the same courtesy.  Live and let live, a'ight?&lt;br /&gt;&lt;br /&gt;So, to recap:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;No, I don't want to date &lt;span style="font-weight: bold;"&gt;you&lt;/span&gt;.  &lt;/li&gt;&lt;li&gt;No, I don't want to date your &lt;span style="font-weight: bold;"&gt;sister&lt;/span&gt;.  &lt;/li&gt;&lt;li&gt;No, I really have no interest in your &lt;span style="font-weight: bold;"&gt;gay friend and/or brother&lt;/span&gt;, either.&lt;/li&gt;&lt;li&gt;I'm not interested in &lt;span style="font-weight: bold;"&gt;one night flings&lt;/span&gt;, either.  Been there, done that, waste of time.&lt;br /&gt; &lt;/li&gt;&lt;/ol&gt;I don't need anyone to "fix me up" because, surprise surprise surprise Gomer Pyle, I'm not "broken."&lt;br /&gt;&lt;br /&gt;But, wait-- because here's the ironic part: a decade ago, when I &lt;span style="font-weight: bold; font-style: italic;"&gt;wanted&lt;/span&gt; to settle down for long term committed relationship, nobody I was involved with was interested.  A decade later and three failed relationships wiser, and suddenly I'm Richard F*ING Gere?  Let's examine what's changed about me in the past ten years: I've gained weight, my bald spot has grown, more grey hair, lost muscle mass, etc.  Nope, no obvious physical gains in attractiveness.  Oh, wait, I almost forgot-- I have a house, a car that's paid off and a steady job.  &lt;br /&gt;&lt;br /&gt;I've done the math on the whole "long term relationship" deal from my past experiences, and found the pluses were less than the minuses.  So, &lt;span style="font-style: italic;"&gt;do not waste my time&lt;/span&gt; unless you bring something ABSOLUTELY AMAZING to the equation.  &lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-4085899918596129433?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/4085899918596129433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=4085899918596129433&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4085899918596129433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4085899918596129433'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/07/my-thoughts-on-dating.html' title='My thoughts on dating'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-7901187064668651826</id><published>2008-07-07T20:38:00.003-05:00</published><updated>2008-07-07T21:40:59.646-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='chinese zodiac'/><category scheme='http://www.blogger.com/atom/ns#' term='wallpaper'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Chinese Zodiac Desktop Wallpapers</title><content type='html'>&lt;p&gt;I've been fascinated by the Chinese zodiac for months, so I decided to make a series of desktop wall papers on that theme.  They are 1024 x 768, with the characters rendered in the Kai font style, and lots of open space.  There's no watermark, branding or URL on them because I think that would have ruined their simplicity.  (I use these as the screen saver on my iBook, and they look great with the slow zoom/fade transitions.)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;I'm making them available as "&lt;a href="http://creativecommons.org/licenses/by-nc-sa/3.0/us/"&gt;Creative Commons: Attribution/Non-commercial/Share-alike 3.0 United States&lt;/a&gt;."&lt;br /&gt;&lt;/p&gt;&lt;table style="width: 194px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="background: transparent url(http://picasaweb.google.com/f/img/transparent_album_background.gif) no-repeat scroll left center; height: 194px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="center"&gt;&lt;a href="http://picasaweb.google.com/Jonah.Chanticleer/ChineseZodiacDesktopWallpapers"&gt;&lt;img src="http://lh6.ggpht.com/Jonah.Chanticleer/SHK_shcKCyE/AAAAAAAAAU0/mtgrncaKAWs/s160-c/ChineseZodiacDesktopWallpapers.jpg" style="margin: 1px 0pt 0pt 4px;" height="160" width="160" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center; font-family: arial,sans-serif; font-size: 11px;"&gt;&lt;a href="http://picasaweb.google.com/Jonah.Chanticleer/ChineseZodiacDesktopWallpapers" style="color: rgb(77, 77, 77); font-weight: bold; text-decoration: none;"&gt;Chinese Zodiac Desktop Wallpapers&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-7901187064668651826?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/7901187064668651826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=7901187064668651826&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7901187064668651826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7901187064668651826'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/07/chinese-zodiac-desktop-wallpapers.html' title='Chinese Zodiac Desktop Wallpapers'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/Jonah.Chanticleer/SHK_shcKCyE/AAAAAAAAAU0/mtgrncaKAWs/s72-c/ChineseZodiacDesktopWallpapers.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-2108884768250637369</id><published>2008-07-04T08:45:00.002-05:00</published><updated>2008-07-04T09:14:07.095-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='changes'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><title type='text'>Whither Twitter?</title><content type='html'>I've removed my Twitters from my blog, but left the link for my Twitter page available.&lt;br /&gt;&lt;br /&gt;Part of the reason was technical-- Twitter's popularity sometimes exceeds its ability to display information in a timely manner, and if it causes my page to load too slowly, I have to jettison it.&lt;br /&gt;&lt;br /&gt;Another reason might be construed as more of a "marketing strategy." In Twitter, the number of people "following" your twitter feed says something about how popular/significant your twitter feed is-- it's a "social networking" thing.  By displaying all my twitters on my blog where anyone could see it, there was never any reason for anyone to sign up for Twitter to "follow" me.  (cf. &lt;a href="http://www.google.com/url?sa=t&amp;amp;ct=res&amp;amp;cd=2&amp;amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dmy4lhkxLRjg&amp;amp;ei=ZSxuSOrjN4i28ASBob3gAw&amp;amp;usg=AFQjCNEVTDGI6IKl6FTPB-AaxAqrRUjQtA&amp;amp;sig2=EDbn7er2Ijavk6Lonpg7iQ"&gt;Free Milk and a Cow&lt;/a&gt;)  So, if someone really wants to see what I'm twittering about, they can do so through the "Twitter feed" link, sign up for a Twitter account and "follow" me.&lt;br /&gt;&lt;br /&gt;The final reason is personal-- I like having some idea of who is following me and the *possibility* of controlling who reads my twitters.  At the moment, it's wide open because I generally prefer to be that way.  Unfortunately, in the past I've had to deal with a stalking ex-girlfriend and griefers-- if that should happen again, I'd like to be able to click a button and make sure that only people I choose can see what I express in my 140 character outbursts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-2108884768250637369?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/2108884768250637369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=2108884768250637369&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2108884768250637369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2108884768250637369'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/07/whither-twitter.html' title='Whither Twitter?'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-5029352003872931282</id><published>2008-07-01T21:05:00.002-05:00</published><updated>2008-07-01T21:27:17.867-05:00</updated><title type='text'>Web Development: How it REALLY happens</title><content type='html'>I have a love/hate relationship with web development books.  Don't get me wrong-- some of them are well-written, filled with amazing advice and insights on how web development *should* be done.  And yet, few of them, if any, bother to talk about how web development is actually done presently in the chaotic work place.&lt;br /&gt;&lt;br /&gt;Here's how it works: the "web guy" in the office gets a visit from a middle-manager (who is not usually his supervisor, I might add) who wants to ask a few questions about a new web app they are considering.  It's kind of a rush-job, so "we don't have time for any of that &lt;span style="font-style: italic;"&gt;formalized process&lt;/span&gt; nonsense, like &lt;span style="font-weight: bold;"&gt;gathering requirements&lt;/span&gt;, so how about if I just tell you what the app needs to do and you just build it for me?"&lt;br /&gt;&lt;br /&gt;You could try to explain the value of the requirements and planning phases, except you know from previous experience that managers don't know about technology, they don't know about software development processes.  They also don't want to know-- it's not on their radar, and they don't see it as having any value in securing what they do want, so they aren't willing to invest time in learning it.&lt;br /&gt;&lt;br /&gt;So, you pull out a notepad and interview the middle manager on "what the app needs to do", and as you take notes, you are also frantically drawing screen mockups/illustrations to try to elicit better quality feedback from the middle manager.  It's a fairly small application, with automatic email capabilities, doesn't require log-in authentication, needs to log transactions in a database.  You estimate that you can do it with six pages in ColdFusion.&lt;br /&gt;&lt;br /&gt;In these kinds of situations, where I'm dealing with the "middle manager/bypassing the formalized process" scenario I have a rule of thumb to estimate how long it will take me to complete the application.  I call it the "page a day" rule of thumb.  If the application has six pages in it, it will take me six days.  If it has four pages, it will take four days.&lt;br /&gt;&lt;br /&gt;That's when the middle manager wants to argue/debate the time estimate with you.  "Well, you can combine three of the pages into one, so it should only take you four days tops!"  Before you think this middle manager (who hasn't done any web development coding since before Firefox was first released) is completely insane, let me tell you the part he hasn't shared with you yet.  Prior to meeting with you, this middle manager was in a meeting with his supervisor, and he's just been saddled with an additional requirement out of the blue because someone above him failed to plan appropriately.  To make matters worse, he's got no resources to spare and even less time, so he's hoping that you can somehow magically automate most or all of this new responsibility-- because that's ultimately what all technology is about, right, automation?  And if you could make that happen before next week's meeting, that would be really super because then he can tell his supervisor that it's all been handled and it will make him look good.&lt;br /&gt;&lt;br /&gt;Here are the take aways:&lt;br /&gt;&lt;br /&gt;1) For ColdFusion at least, I find the page a day estimate works pretty well.&lt;br /&gt;&lt;br /&gt;2) Avoid working for companies where managers think they have the authority to delegate to people who don't even report to them.&lt;br /&gt;&lt;br /&gt;3) Managers of web developers should have at least some first hand, recent experience in web development themselves.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-5029352003872931282?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/5029352003872931282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=5029352003872931282&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/5029352003872931282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/5029352003872931282'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/07/web-development-how-it-really-happens.html' title='Web Development: How it REALLY happens'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-4937210976494045056</id><published>2008-06-27T23:15:00.002-05:00</published><updated>2008-06-27T23:28:24.077-05:00</updated><title type='text'>RIP Blosxom</title><content type='html'>First, the good news: Blosxom, a small and powerful Perl script with amazing blog capabilities, got a brief mention in Andrew Skinner's "Choose the best free CMS" article (Practical Web Design, July 2008, issue 177).  I actually wrote a plugin or three for Blosxom back in the day, including a web visitor logger that someone in Japan used as the basis for their own plugin.&lt;br /&gt;&lt;br /&gt;The bad news?  Skinner incorrectly spelled it as "Bloxom."  :(  You know your branding/marketing campaign is pretty much dead when they can't even spell the name of your product correctly.  It didn't even merit being listed in the feature comparison table with Wordpress or Movable Type.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-4937210976494045056?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/4937210976494045056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=4937210976494045056&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4937210976494045056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4937210976494045056'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/06/rip-blosxom.html' title='RIP Blosxom'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-5789080650074596318</id><published>2008-06-27T05:46:00.003-05:00</published><updated>2008-06-27T05:57:08.075-05:00</updated><title type='text'>Slow and Fast Charges</title><content type='html'>I'm sure anyone with a basic electronics background is probably going to laugh at my naivete, but I think I just learned something I didn't know about recharging batteries.  I guess I always figured recharging a battery was the same, regardless of whether you used a wall unit charger or one of those cigarette adapter plugins in your car.&lt;br /&gt;&lt;br /&gt;Obviously one takes less time to get the battery to "full," but I figured it was just like filling a large bucket-- if you use the sink with the small faucet or the big old garden hose, the end result is going to be a big bucket of wet by the time you're done.&lt;br /&gt;&lt;br /&gt;Except I've noticed that the battery charge dissipates faster when I use the cigarette adapter to charge my phone than if I use the wall adapter.  It's sort of like the amount of time/use the battery will have before it dies is directly related to the amount of time spent charging the device.&lt;br /&gt;&lt;br /&gt;In other words, if I hook the phone up to my car charger until the meter says it is full, I might get about 24 to 30 hours before I need another recharge.  But, if I hook the phone up to the wall socket overnight, I seem to get something like 2 or 3 full days of use before I need to recharge-- and the last two bars of power seem to go much further in particular.&lt;br /&gt;&lt;br /&gt;I don't know if this is a phenomenon with the battery, or with the technology the phone uses to estimate how much power is remaining in the battery, or both-- but it's an effect I've observed more than once in the past month.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-5789080650074596318?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/5789080650074596318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=5789080650074596318&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/5789080650074596318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/5789080650074596318'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/06/slow-and-fast-charges.html' title='Slow and Fast Charges'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-2487853410684713630</id><published>2008-06-26T19:28:00.003-05:00</published><updated>2008-06-26T19:31:44.500-05:00</updated><title type='text'>All Caught Up</title><content type='html'>It's taken me three days, but I've finally managed to catch up on all my unread Google Mail.  I feel great, or at least I did until I made the mistake of checking my RSS feeds and found out I had 487 unread items.  D'oh!&lt;br /&gt;&lt;br /&gt;Maybe it would be a good time to unsubscribe from some things . . . .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-2487853410684713630?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/2487853410684713630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=2487853410684713630&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2487853410684713630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2487853410684713630'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/06/all-caught-up.html' title='All Caught Up'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-3962809396751808969</id><published>2008-06-23T18:17:00.002-05:00</published><updated>2008-06-23T18:54:16.342-05:00</updated><title type='text'>Why all the hating for ColdFusion?</title><content type='html'>It's weird-- but I browse different web programming forums, and there's always a faction of "ColdFusion Haters."  ColdFusion isn't "real" programming; no one codes in ColdFusion any more; Perl/Ruby/Java is superior to ColdFusion.  I honestly can't figure it out.&lt;br /&gt;&lt;br /&gt;Every version of ColdFusion gets better, making complex tasks easier and faster for the web developer who just wants to get things done.  Need to authenticate with Microsoft's Active Directory?  Try the CFNTAUTHENTICATE tag, introduced in ColdFusion MX 7.  Need to add rich, interactive experience with Ajax?  ColdFusion 8 makes Ajax programming possible for people who didn't have the time/interest/skill set to figure out Prototype or Dojo.&lt;br /&gt;&lt;br /&gt;That might be part of the problem.&lt;br /&gt;&lt;br /&gt;See, ColdFusion (that is, the various services that run on a WebServer and make the interactive nature of the product possible) is actually written in Java.  So, the Java programmers do all the slick/complicated stuff behind the scenes as it were, and shield the ColdFusion developers from the dirty, nitty-gritty.  Some Java programmers-- and not even necessarily any who are directly involved in the ColdFusion development effort-- look down on ColdFusion as being "lesser" somehow, because all the real action is being done in Java, and the ColdFusion folks have no real understanding of what's taking place.&lt;br /&gt;&lt;br /&gt;(I personally find this hilarious, because the Java Virtual Machine running on the server has to be written in a higher level language, such as C or ++, out of necessity-- so for the Java guys to be putting on airs is kinda nutty!)&lt;br /&gt;&lt;br /&gt;Although I can see how it might be a little upsetting.  You spend all this time and money learning how to do Ajax, and then someone who doesn't even understand what "asychronous" means can do everything you've learned how to do in less time without even resorting to writing any Javascript.  It's a pisser, obviously.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-3962809396751808969?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/3962809396751808969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=3962809396751808969&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3962809396751808969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3962809396751808969'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/06/why-all-hating-for-coldfusion.html' title='Why all the hating for ColdFusion?'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-4242218252521288302</id><published>2008-06-19T22:16:00.000-05:00</published><updated>2008-06-19T22:16:05.953-05:00</updated><title type='text'>After thoughts on Jonah Chanticleer 公鸡: Ethics and the Economic Stimulus Package?</title><content type='html'>In a previous entry entitled, "&lt;a href="http://anerroroccurred.blogspot.com/2008/05/ethics-and-economic-stimulus-package.html"&gt;Ethics and the Economic Stimulus Package?&lt;/a&gt;", I asked if there were any ethical considerations one should have when considering what to do with their economic stimulus package.  In reality, the question is moot-- the rising price of gasoline and unpaid debt have consumed most folks economic stimulus check before they could even cash it.&lt;br /&gt;&lt;br /&gt;I wasn't necessarily asking the question with the intent of being serious.  I'd hoped it might strike a chord with people, start up conversation or garner a link or two.  I think it may have succeeded in the first, but failed in the second.  Although it is my most frequently visited individual entry, there have been no comments or links to it.&lt;br /&gt;&lt;br /&gt;On a lighter note, I'm kicking around an idea for a-- I don't want to call it a contest, but more of an amusement.  I think I'll call it "Economic Stimulus Blackjack."  The idea is that you start off with an imaginary amount of money-- like $384, for example.  You then need to compile a wish list of items in something like Google Products, or Thinkgeek and come as close to $384 as you can without going over that amount.  The person who gets the closest to that amount without going over is the "winner."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-4242218252521288302?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://anerroroccurred.blogspot.com/2008/05/ethics-and-economic-stimulus-package.html' title='After thoughts on Jonah Chanticleer 公鸡: Ethics and the Economic Stimulus Package?'/><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/4242218252521288302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=4242218252521288302&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4242218252521288302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4242218252521288302'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/06/after-thoughts-on-jonah-chanticleer.html' title='After thoughts on Jonah Chanticleer 公鸡: Ethics and the Economic Stimulus Package?'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-5153737303377643472</id><published>2008-06-18T21:35:00.000-05:00</published><updated>2008-06-18T21:35:39.655-05:00</updated><title type='text'>Spread Firefox | The Home of Firefox Community Marketing</title><content type='html'>&lt;a href="http://www.spreadfirefox.com/"&gt;Spread Firefox | The Home of Firefox Community Marketing&lt;/a&gt;: "Over 8,000,000 downloads in 24 hours!"&lt;br /&gt;&lt;br /&gt;That comes out to 92.5 downloads per second.  Impressive!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-5153737303377643472?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.spreadfirefox.com/' title='Spread Firefox | The Home of Firefox Community Marketing'/><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/5153737303377643472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=5153737303377643472&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/5153737303377643472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/5153737303377643472'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/06/spread-firefox-home-of-firefox.html' title='Spread Firefox | The Home of Firefox Community Marketing'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-4240238657652714629</id><published>2008-06-18T04:19:00.003-05:00</published><updated>2008-06-18T04:31:18.150-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='world record'/><category scheme='http://www.blogger.com/atom/ns#' term='download'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox 3'/><title type='text'>Now I know how Columbus felt</title><content type='html'>When we last saw our intrepid hero, Jonah, he was attempting to download Firefox 3 and participate in the historical event of setting a Guiness World Record.  Unfortunately, so was everyone else!&lt;br /&gt;&lt;br /&gt;All kidding aside, the web server(s) were so overloaded that the request to download the page containing the download links would time out.   I finally managed to get a partial display of that page, but without any of the style sheet information, and none of the links worked.  I wound up using "View Source" to find the URL for the various versions of Firefox (i.e. Windows, Linux and Mac), and copied and pasted the URL into my address bar.&lt;br /&gt;&lt;br /&gt;Next thing I knew, I had a 7.1 MB file called "Firefox Setup 3.0.exe" (presumably a Windows installer) on my desktop.  Too bad I was on my G4 iBook at the time.  So, technically, I downloaded Firefox 3 before midnight on June 17th.&lt;br /&gt;&lt;br /&gt;(FWIW, I was able to download the Mac OS X version a few minutes ago, and it looks like I'm still within the technical timeframe thanks to timezones and all that. )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Bz-p8OGqJD0/SFjTOuJmiMI/AAAAAAAAALg/imbuJKeUNIY/s1600-h/Download+Day+2008.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_Bz-p8OGqJD0/SFjTOuJmiMI/AAAAAAAAALg/imbuJKeUNIY/s200/Download+Day+2008.jpg" alt="" id="BLOGGER_PHOTO_ID_5213148818541283522" 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/6893913231410230443-4240238657652714629?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/4240238657652714629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=4240238657652714629&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4240238657652714629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4240238657652714629'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/06/now-i-know-how-columbus-felt.html' title='Now I know how Columbus felt'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Bz-p8OGqJD0/SFjTOuJmiMI/AAAAAAAAALg/imbuJKeUNIY/s72-c/Download+Day+2008.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-6600506657961000058</id><published>2008-06-17T20:52:00.002-05:00</published><updated>2008-06-17T20:57:04.639-05:00</updated><title type='text'>Firefox 3 Download Day</title><content type='html'>Despite multiple attempts throughout the day, I've been unsuccessful at downloading Firefox 3.&lt;br /&gt;&lt;br /&gt;In some ways, this is a good thing-- it means so many people are downloading Firefox 3 that the web servers are too busy to handle all of the requests.  So obviously, the marketing has been wildly successful.  On the other hand, it kinds of sucks because I was hoping to be a part of this historical moment-- even if it is in a small and inconsequential way.&lt;br /&gt;&lt;br /&gt;Maybe I'll give it one final try early tomorrow morning.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-6600506657961000058?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/6600506657961000058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=6600506657961000058&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/6600506657961000058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/6600506657961000058'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/06/firefox-3-download-day.html' title='Firefox 3 Download Day'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-5894015279013613723</id><published>2008-06-17T05:36:00.000-05:00</published><updated>2008-06-17T05:36:38.562-05:00</updated><title type='text'>Google Mobile: GOOG-411</title><content type='html'>&lt;a href="http://www.google.com/mobile/"&gt;Google Mobile&lt;/a&gt;: "Get Search, Maps, Gmail and more, designed especially for your mobile."&lt;br /&gt;&lt;br /&gt;I always forget about Google's free 411 service. I've got this habit of using my phone's Internet capability to find business phone numbers.  It slow, uses up my data quota, but it's a habit.&lt;br /&gt;&lt;br /&gt;This morning, I redid the same hunt for a business phone number that I performed yesterday-- it took a fraction of the time.  Google 411 is now in my phone contacts, obviously.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-5894015279013613723?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.google.com/mobile/' title='Google Mobile: GOOG-411'/><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/5894015279013613723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=5894015279013613723&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/5894015279013613723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/5894015279013613723'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/06/google-mobile-goog-411.html' title='Google Mobile: GOOG-411'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-2593935366446043760</id><published>2008-06-16T20:40:00.004-05:00</published><updated>2008-06-16T21:04:46.988-05:00</updated><title type='text'>Tempus</title><content type='html'>Stop.  Whatever you are doing, just stop for one moment, and take a serious, thoughful look at what is going on around you. I'm not talking about the whirr of the computer fan, or the blinking light of your fancy car's turn signal.  That's all surface crap and clutter, hiding the part you really want-- really need to see.&lt;br /&gt;&lt;br /&gt;Look at the PEOPLE around you.  Look at what they are doing, what they have done, what they used to do but no longer can (or think they can) do.  Look at how they interact and engage with one another.  Look at them today, as they were yesterday and, if you can, see them as they might be tomorrow.  See how no one remains still/frozen/unchanged as time passes?&lt;br /&gt;&lt;br /&gt;You may want to feel sad or anxious. Don't. This is the true nature of time.  Accept it. We want to find something permanent.  An anchor point, a sturdy ground to get our footing.  We plant TREES because trees seem permanent, by relative comparison.  This is a human folly.  We seem like clouds to the TREES-- always moving, pushed along by breezes they cannot feel, always changing, dissipating far too soon.  &lt;br /&gt;&lt;br /&gt;Look around you once more-- that change you perceive and fear, that ebb and flow, that give and take, is the tide of the universe.  It is called LIFE.  You can try to block it out and ignore it, pretend it doesn't exist, until one day it crashes over you-- or you can learn to accept it and comes to terms with it, and float on your back in it.&lt;br /&gt;&lt;br /&gt;You must decide.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-2593935366446043760?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/2593935366446043760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=2593935366446043760&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2593935366446043760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/2593935366446043760'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/06/tempus.html' title='Tempus'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-847410601839419956</id><published>2008-06-15T21:35:00.002-05:00</published><updated>2008-06-15T21:42:38.744-05:00</updated><title type='text'>Ideas I should blog about someday soon</title><content type='html'>1. How former bullies make the same kind of lame-ass excuses that former rapists tried to make three decades ago.&lt;br /&gt;&lt;br /&gt;2. Sears and Macy - how the simple act of buying a belt can tell you why one of these companies will go bankrupt, and the other will still be around.&lt;br /&gt;&lt;br /&gt;3. Hardy Heron, Broadcom and a G4 iBook - I can't decide if this is worth blogging about or not.  It's already covered on another blog, so maybe I'll just link to it instead and not write a full blown entry.&lt;br /&gt;&lt;br /&gt;4. Psychic "vampires."  I used to roll my eyes when people talked about this.  I may have been too hasty.&lt;br /&gt;&lt;br /&gt;5. Firefox 3 Download Day -- Remember, June 17th (this Tuesday) is your chance to download Firefox 3 and be a part of a Guiness Book of World Records.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-847410601839419956?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/847410601839419956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=847410601839419956&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/847410601839419956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/847410601839419956'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/06/ideas-i-should-blog-about-someday-soon.html' title='Ideas I should blog about someday soon'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-8948807257725076204</id><published>2008-06-15T08:10:00.002-05:00</published><updated>2008-06-15T08:17:33.328-05:00</updated><title type='text'>Perhaps I'm reading too much in between the lines</title><content type='html'>You know how some people keep a list of heroes or role-models?  I know this person who has a list of famous people they would like to meet.  It sounds innocent enough.  Then you start reading the names on the list-- a veritable who's who of SF and nerdom-- and you begin to realize that every single person on the list is deceased.&lt;br /&gt;&lt;br /&gt;It could be a really old list and people have passed away since it was written.&lt;br /&gt;&lt;br /&gt;Making any other inference would be-- presumptuous.  Right?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-8948807257725076204?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/8948807257725076204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=8948807257725076204&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8948807257725076204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8948807257725076204'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/06/perhaps-im-reading-too-much-in-between.html' title='Perhaps I&apos;m reading too much in between the lines'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-7340975728175469330</id><published>2008-06-13T18:42:00.004-05:00</published><updated>2008-06-13T20:27:01.746-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='human nature'/><category scheme='http://www.blogger.com/atom/ns#' term='batteries'/><category scheme='http://www.blogger.com/atom/ns#' term='cell phones'/><title type='text'>Cell Phone Replacement Batteries - How do they DO that?</title><content type='html'>It's time to replace my cell phone battery.&lt;br /&gt;&lt;br /&gt;The original battery (BL-5C) is a Lithium-Ion with a capacity of 850 &lt;a href="http://www.google.com/search?hl=en&amp;client=firefox-a&amp;rls=org.mozilla:en-US:official&amp;hs=ZWz&amp;defl=en&amp;q=define:mAh&amp;sa=X&amp;oi=glossary_definition&amp;ct=title"&gt;mAh&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The new battery I am considering purchasing as a replacement is &lt;a href="http://www.lenmar.com/Web/ProductSummary.aspx?DealerID=BatteryCentral&amp;TemplateID=13&amp;DeviceTypeID=3&amp;OEM=Nokia&amp;DeviceName=Cell%20Phone&amp;DeviceTypeDeviceID=9&amp;DeviceTypeBatteryID=1&amp;CatID=9&amp;Model=3100&amp;tool=batteryfinder&amp;smethod=deviceid"&gt;Lenmar's CLKBL5C&lt;/a&gt;.  Notice that it has a capacity of 1,000 mAh and suggested retail price of $41.95.&lt;br /&gt;&lt;br /&gt;I do a product search on Google for Nokia 3100 battery Lenmar CLKBL5C, and find &lt;a href="http://www.trustyelectronics.com/catalog/product_info.php?products_id=15514"&gt;sites like this one&lt;/a&gt; that offer the same exact Lenmar battery-- for just under $6.  Not too shabby.&lt;br /&gt;&lt;br /&gt;But wait, they say it's 10,000 mAh!  It's the same battery; you can see the part number right there on the page.  This is so cool-- not only are they giving us a huge price break on the battery, but they have subjected the battery to some arcane, occult process that increases its total capacity tenfold!  Brilliant!&lt;br /&gt;&lt;br /&gt;(Yes, that was sarcasm. The sad part is, there are plenty of web sites out there with this misleading error. Do your research, consumers, and you won't be led astray by such inaccuracies.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-7340975728175469330?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/7340975728175469330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=7340975728175469330&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7340975728175469330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7340975728175469330'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/06/cell-phone-replacement-batteries-how-do.html' title='Cell Phone Replacement Batteries - How do they DO that?'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-4118095981172368812</id><published>2008-06-09T17:33:00.002-05:00</published><updated>2008-06-09T17:49:31.415-05:00</updated><title type='text'>Firefox 3, Release Candidate</title><content type='html'>When I "rebuilt" my ASUS eee PC (OS &amp; software, not hardware), one of the "upgrades" I chose was to go with the latest Firefox 3 candidate.  It's supposed to fix all sorts of bugs and errors, use less memory, run faster-- maybe even cure the common cold?  Okay, so I exaggerate a little bit, but you have to admit the hype surrounding the latest version of Firefox has been intense.&lt;br /&gt;&lt;br /&gt;Based on what I've seen, it's still got some issues to get resolved.&lt;br /&gt;&lt;br /&gt;Perhaps it's unique to the ASUS eee PC, but I find that the scrollbar side of the mouse trackpad suddenly gets disabled/ignored once I'm in Firefox 3.  That feature works fine in all other programs, including the previous version of Firefox, so I know it's not a problem with the hardware of the operating system.&lt;br /&gt;&lt;br /&gt;It also keeps asking me to install the Flash plugin.  I install it, restart Firefox, and then it's like it's never been installed.  To be fair, it may be that I need to be running Firefox as a superuser in order for it to be able to install the plugin properly.&lt;br /&gt;&lt;br /&gt;For the time being, I think I'll go back to Firefox 2.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-4118095981172368812?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/4118095981172368812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=4118095981172368812&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4118095981172368812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4118095981172368812'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/06/firefox-3-release-candidate.html' title='Firefox 3, Release Candidate'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-8874268278097265364</id><published>2008-06-08T19:36:00.002-05:00</published><updated>2008-06-08T19:50:35.107-05:00</updated><title type='text'>Easy and Hard Rationalizing</title><content type='html'>Human nature, even the most obvious parts, still fascinates me.&lt;br /&gt;&lt;br /&gt;For example, we can easily rationalize (to ourselves) a way out of doing things we have an obligation to do.  "I can't do my cardio today-- I'm too busy catching up on old episodes of Battlestar Galatica."  If we were really serious about these obligations, we'd find a way to make them happen.&lt;br /&gt;&lt;br /&gt;Conversely, we can easily rationalize away reasons for not doing something that we really want to do-- even if they aren't good for us.  "I shouldn't have that Big Mac because of my beef allergy--but you know, there's probably not that much real beef in there, so I'm sure I'll be okay."&lt;br /&gt;&lt;br /&gt;I know I'm not stating anything earth shatteringly new here-- it's a phenomenon we're all quite familiar with, from self-observation or observing the behaviours of those around us.  But what if we could figure out the underlying mechanism behind that phenomenon and "hack" it somehow, so that our psychological system reversed the perception of those two scenarios?&lt;br /&gt;&lt;br /&gt;It's not that far out of a concept actually.  Ever hear of sublimation-- the redirection of energies normally used to pursue biological reproduction into other endeavors, such as the arts (painting, writing, etc.)?  Granted, it's not exactly the same as what I'm proposing, but it's pretty close-- harness the impulse for gratification and turn it into the fuel to carry out an arduous task or tedious duty.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-8874268278097265364?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/8874268278097265364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=8874268278097265364&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8874268278097265364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8874268278097265364'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/06/easy-and-hard-rationalizing.html' title='Easy and Hard Rationalizing'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-6712021215164802715</id><published>2008-06-07T05:09:00.002-05:00</published><updated>2008-06-07T05:44:36.428-05:00</updated><title type='text'>Personal Area Networks</title><content type='html'>In the past two weeks, I've become obsessed with Personal Area Networks.  I've known about the concept of PANs much earlier than that, but beyond using a Bluetooth headset with my Blackberry (which I no longer own), I never had much reason to dabble with them.&lt;br /&gt;&lt;br /&gt;Then, I read this article about a fellow who was traveling in a foreign country (Tibet? Nepal? Can't remember to be honest) and he was explaining how the people he met would use their Bluetooth phones to browse through and/or download the pictures on his cell phone.  It struck me as a technological equivalent of clairvoyance-- what's the quote from Arthur C. Clarke?  "Any sufficiently advanced technology becomes indistinguishable from magic" or something similar.  Basically, this fellow comes within 30 feet of you, and if you want to, you can initiate a process that allows you to see snippets of what they have seen in the recent past.&lt;br /&gt;&lt;br /&gt;Now, see, that's the thing-- you start talking about using Bluetooth to get rid of wires and have my cell phone "pair" with my headset, and I really don't get excited about it.  It's convenient, but not exciting.&lt;br /&gt;&lt;br /&gt;However, when you have an invisible presence that offers services to people around you automatically just by the mere fact of being in their vicinity-- now that's getting exciting.  Sharing pictures is a good start, but what else could you do with it?  Business card exchanges, of course, at the risk of being obvious.  If you included a URL (blog/website/myspace page, whatever) in your business card, that could give people access to a more permanent version of your so-called invisible presence that didn't rely on your physical proximity.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-6712021215164802715?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/6712021215164802715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=6712021215164802715&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/6712021215164802715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/6712021215164802715'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/06/personal-area-networks.html' title='Personal Area Networks'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-1593547325077642100</id><published>2008-05-31T06:23:00.002-05:00</published><updated>2008-05-31T06:40:54.965-05:00</updated><title type='text'>Ethics and the Economic Stimulus Package?</title><content type='html'>A question to provoke conversation among the philosophical types out there-- are there ethical considerations to what a person does with the so-called "Economic Stimulus Package?"&lt;br /&gt;&lt;br /&gt;Consider: if your parents give you $600 as a gift, unconditionally, whatever you chose to do with it is your own business.  Spend it, save it, lose it in a poker game, whatever.  However, if your parents give you $600 and tell you it's specifically intended for something (new suit for that job interview, repair your broke down car, etc.), by accepting that money you have some ethical considerations to keep in mind when spending that money.&lt;br /&gt;&lt;br /&gt;(Yes, I know-- there are some people who would take the second $600 and blow it on an HDTV, but the consequences of that action catch up with them in that no one ever gives them a helping hand again.  Game theory is a bitch sometimes, isn't it?)&lt;br /&gt;&lt;br /&gt;So, if our government decides to give the majority of its population an "Economic Stimulus Package"-- with the goal being that everyone go out and spend it, to generate some economic momentum and theoretically jump start the economy, is it unethical to put it in savings instead of spending it?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-1593547325077642100?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/1593547325077642100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=1593547325077642100&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/1593547325077642100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/1593547325077642100'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/05/ethics-and-economic-stimulus-package.html' title='Ethics and the Economic Stimulus Package?'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-7928888527123212308</id><published>2008-05-28T21:18:00.001-05:00</published><updated>2008-05-28T21:20:16.994-05:00</updated><title type='text'>Addendum to "Web Site Changes"</title><content type='html'>I forgot to mention it in &lt;a href="http://anerroroccurred.blogspot.com/2008/05/website-changes.html"&gt;my previous entry&lt;/a&gt;, but even though this site no longer validates properly, &lt;span style="font-weight: bold;"&gt;it is still possible&lt;/span&gt; to follow the entries here on your cell phone and/or mobile device.  Look on the side menu bar, and you should see a section labeled "Website Feeds/Services."  There's a link there which basically pipes this site's RSS feed through Google Reader in such a way that it produces friendly output for cell phones.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-7928888527123212308?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/7928888527123212308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=7928888527123212308&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7928888527123212308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/7928888527123212308'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/05/jonah-chanticleer-website-changes.html' title='Addendum to &quot;Web Site Changes&quot;'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-1785649535334999434</id><published>2008-05-27T20:08:00.003-05:00</published><updated>2008-05-27T20:14:40.164-05:00</updated><title type='text'>Processes &amp; Paranoia</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Bz-p8OGqJD0/SDywr1itlAI/AAAAAAAAAIk/GIU0k6CKHMU/s1600-h/processP.PNG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_Bz-p8OGqJD0/SDywr1itlAI/AAAAAAAAAIk/GIU0k6CKHMU/s200/processP.PNG" alt="" id="BLOGGER_PHOTO_ID_5205229536486986754" border="0" /&gt;&lt;/a&gt;I'm looking around in msconfig because I'm trying to cut down on the number of background processes that are chewing up my computer's RAM and slowing it down-- and I find an active entry with no name or command showing for it.  When I try to turn it off, my laptop tells me I need to have administrator access to do so.&lt;br /&gt;&lt;br /&gt;Did I happen to mention that I have administrator access on my machine?&lt;br /&gt;&lt;br /&gt;There's an old saying-- just because you're paranoid, that doesn't mean nobody's out to get you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-1785649535334999434?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/1785649535334999434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=1785649535334999434&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/1785649535334999434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/1785649535334999434'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/05/processes-paranoia.html' title='Processes &amp; Paranoia'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Bz-p8OGqJD0/SDywr1itlAI/AAAAAAAAAIk/GIU0k6CKHMU/s72-c/processP.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-9068355726718190872</id><published>2008-05-25T12:18:00.002-05:00</published><updated>2008-05-25T13:01:36.767-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='valid HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='Blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='website'/><title type='text'>Website changes</title><content type='html'>Oh, forgot to mention-- I made some changes to the website.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Gee, thanks, Captain Obvious!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yes, I know-- switched templates, color schemes, added new features, and then got sidetracked before I had time to sit down and write all about it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;This site no longer validates with the W3C validator tool.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No, it doesn't.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;So what's up with that?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Basically, I could use a classic, simple template where I had complete control over all the HTML that appeared on the page-- but never use any fancy bells/whistles, or I could stop being such a hard-nose about my blog adhering to valid HTML and integrate features that might actually make adding interesting content and drawing traffic easier.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;So you sold out . . . ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yeah, pretty much.  :)  But you've got to admit, adding the Twitter feed and Google Reader feeds to the page was pretty slick.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Maybe, but it's so . . . green.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What's wrong with green?  I like green.  It's my favorite color.  Well, next to black, but black isn't really a color, is it?  It's actually the absence of all color and/or light.  So, technically speaking, green's my favorite color.  As a matter of fact, a black suit with a green tie-- now there's an idea for a fashion statement.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Um, yeah-- it says, "Hi, I'm an Irish Ninja wannabe."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Don't be a hater.  The template (Son of Moto, if I'm not mistaken) I'm using was actually designed by Zeldman (yes, &lt;span style="font-weight: bold;"&gt;that&lt;/span&gt; Zeldman), so even if my code won't currently pass validation, I'm still showing my solidarity by choosing the author of my template.  If I find ways to tweak code and options so that they generate valid HTML, I will certainly do so-- just &lt;a href="http://anerroroccurred.blogspot.com/2007/12/new-google-analytics-code-breaks-valid.html"&gt;like I did for Google Analytics.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Okay, so it's got Google Reader and Twitter.  What else did you do?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The name of the web site has changed from "An Error Occurred . . ." to simply "Jonah Chanticleer."  The focus of the web site has changed since I first chose that site name back in 2003, and it didn't feel right to stick with it anymore-- sort of like false advertising, I guess.  Don't worry-- only the name has changed; the site address and RSS feed locations and all that are staying the same, so no one has to change any settings.&lt;br /&gt;&lt;br /&gt;I also added an archive widget on the right hand side of the page, so people can look back at past entries by month and year.  I'm toying with the idea of adding additional widgets that integrate with photos and/or video clips-- but that's pending getting some special content on sites such as Picasa or YouTube.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Like what?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If I told you, it'd ruin the surprise.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-9068355726718190872?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/9068355726718190872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=9068355726718190872&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/9068355726718190872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/9068355726718190872'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/05/website-changes.html' title='Website changes'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-6720290064311733496</id><published>2008-05-25T05:57:00.002-05:00</published><updated>2008-05-25T06:10:01.975-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web dev'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>Google Maps and Gasoline</title><content type='html'>Can Google Maps help you conserve gasoline?&lt;br /&gt;&lt;br /&gt;Let's say you are planning to drive on an extended trip-- perhaps from Washington, DC to Montreal, Canada, for example.  You might go to Google Maps to get your travel directions. &lt;br /&gt;In addition to the various roads and turns to make, Google Maps provides you with the approximate distance (610 miles) and estimated duration (10 hours) of the trip.&lt;br /&gt;&lt;br /&gt;Although Google doesn't show you multiple routes to your destination, per se-- you can "grab" the path and adjust it to avoid certain roads.  If you kept an eye on the time (first and foremost) and the distance (secondary, I should think), that'd give you enough raw data to determine which route should use less gas.&lt;br /&gt;&lt;br /&gt;If someone wanted to get really sharp about it, they'd create some Google Maps mashup with one of those Gas Buddy type web sites-- and then integrate the method above so as to take you through destinations with the cheapest gasoline prices.&lt;br /&gt;&lt;br /&gt;And, if I thought of it-- odds are someone else thought of it before I did.  Someone smarter and with bigger web programming chops.  This might already exist out there somewhere-- it's just a matter of finding it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-6720290064311733496?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/6720290064311733496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=6720290064311733496&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/6720290064311733496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/6720290064311733496'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/05/google-maps-and-gasoline.html' title='Google Maps and Gasoline'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-4783818028285416296</id><published>2008-05-22T22:16:00.002-05:00</published><updated>2008-05-22T22:37:28.753-05:00</updated><title type='text'>An OS Transplant For My eee PC?</title><content type='html'>I'm still pretty happy with the eee PC, but there are some limitations-- with only 4 GB of permanent storage space, it doesn't take much in terms of software updates or installing additional packages, to burn through the remaining empty space pretty quickly.  My recent reading research also indicated that some tweaks ASUS made to the Xandros distribution would prevent it from using more than 1 GM of RAM.  Granted, I've never thought about boosting the RAM higher, but it would be nice to have that option as a possibility if the need should arise.  Then there are all the warnings about not being able to use generic Debian packages with the ASUS eee PC, due to customizations of the linux distro it uses.&lt;br /&gt;&lt;br /&gt;With all these quirks, I think it's time to consider installing something else besides Xandros.&lt;br /&gt;&lt;br /&gt;It's got to be small, use the 2.6 kernel-- what else, I wonder?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-4783818028285416296?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/4783818028285416296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=4783818028285416296&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4783818028285416296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4783818028285416296'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/05/os-transplant-for-my-eee-pc.html' title='An OS Transplant For My eee PC?'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-1449838156570544457</id><published>2008-05-22T10:32:00.001-05:00</published><updated>2008-05-22T10:34:44.489-05:00</updated><title type='text'>Happy Birthday, Father</title><content type='html'>You would be 75 years old today, if you were still with us.  We miss you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-1449838156570544457?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/1449838156570544457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=1449838156570544457&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/1449838156570544457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/1449838156570544457'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/05/happy-birthday-father.html' title='Happy Birthday, Father'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-4812887836014472978</id><published>2008-05-20T21:51:00.002-05:00</published><updated>2008-05-20T22:25:16.579-05:00</updated><title type='text'>The Seven Word Meme?</title><content type='html'>Ever since author &lt;a href="http://lifehacker.com/389192/michael-pollan-speaks-in-defense-of-food"&gt;Michael Pollan&lt;/a&gt; summarized his philosophy on food in a tidy, seven word statement, I've noticed other people trying to do the same with their field of expertise.  Financial advice, sports analysis, relationship wisdom-- it's become annoying and creates pressure because there's this false belief that if something can't be encapsulated in micro-prose, it's somehow less valid.&lt;br /&gt;&lt;br /&gt;So now, not only do I need to be a subject matter expert, but I also need to be able to write a haiku?!  Are you shitting me?  Seriously?!&lt;br /&gt;&lt;br /&gt;Sometimes you need more than seven words.  Ever tried summing up bomb disposal techniques in 7 words? "Cut the red wire.  No, wait--! Blue!"&lt;br /&gt;&lt;br /&gt;The end results are not pretty.  Just ask George Carlin.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-4812887836014472978?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/4812887836014472978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=4812887836014472978&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4812887836014472978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/4812887836014472978'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/05/seven-word-meme.html' title='The Seven Word Meme?'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-3273473124932046560</id><published>2008-05-20T21:30:00.002-05:00</published><updated>2008-05-20T21:37:59.465-05:00</updated><title type='text'>There's No "I" In Team, but there is a "me" in Time</title><content type='html'>I don't understand it.  Every time I sit down to write something in my blog, someone feels the need to interrupt me with a long, drawn out conversation.  It happened again tonight-- and it's pissed me off so much that I can't even begin to write the entry I was originally intending to write.  If you're going to interrupt me when I'm trying to get stuff done, you should at least make damn sure what you've got to say isn't ignorant and offensive.&lt;br /&gt;&lt;br /&gt;Maybe I should just get a large, ugly hat and embroider "I'm writing; PISS OFF!" on it? &lt;br /&gt;&lt;br /&gt;No wonder t-shirts with rude slogans on them are making such a dramatic come back.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-3273473124932046560?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/3273473124932046560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=3273473124932046560&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3273473124932046560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/3273473124932046560'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/05/theres-no-i-in-team-but-there-is-me-in.html' title='There&apos;s No &quot;I&quot; In Team, but there is a &quot;me&quot; in Time'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-8671381680046242244</id><published>2008-05-16T06:12:00.002-05:00</published><updated>2008-05-16T06:21:15.262-05:00</updated><title type='text'>Analyze Automate This</title><content type='html'>I leave my laptop at work overnight one night every week, so it can make up backup copies of my work websites as well as my entire hard drive on an external drive.  I guess I'd be stretching it a little bit if I claimed it was truly automation, but this practice has saved my proverbial bacon more than once.  It's nice-- all I have to do is remember to leave the laptop on and connected to the external hard drive, and Windows Scheduled Tasks and NT Backup software takes care of the rest.&lt;br /&gt;&lt;br /&gt;I'd like to find some way to apply more of that dynamic to other parts of my life.  I'm not sure exactly how or what, mind you, but for instance:&lt;br /&gt;&lt;br /&gt;if my iBook fired up at 6:00 AM every morning, launched iTunes and grabbed the latest podcast episodes and transferred them to my iPod.  Of course, I can't even get iTunes to automatically load podcasts when I manually connect my iPod, so I'd need to troubleshoot that mess before I have any hope of automating the whole process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-8671381680046242244?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/8671381680046242244/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=8671381680046242244&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8671381680046242244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/8671381680046242244'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/05/analyze-automate-this.html' title='&lt;strike&gt;Analyze&lt;/strike&gt; Automate This'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6893913231410230443.post-1640622278226567615</id><published>2008-05-13T21:36:00.003-05:00</published><updated>2008-05-13T21:57:42.251-05:00</updated><title type='text'>House MD Rocks!</title><content type='html'>Last night, I saw a fantastic episode of House MD.  How good was it?  Best of this season, hands down.  I can't say any more, or else I'm going to want to get into the details and will wind up spoiling it for others-- and that would be terrible.  Go watch it, seriously.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6893913231410230443-1640622278226567615?l=anerroroccurred.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anerroroccurred.blogspot.com/feeds/1640622278226567615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6893913231410230443&amp;postID=1640622278226567615&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/1640622278226567615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6893913231410230443/posts/default/1640622278226567615'/><link rel='alternate' type='text/html' href='http://anerroroccurred.blogspot.com/2008/05/house-md-rocks.html' title='House MD Rocks!'/><author><name>Jonah Chanticleer</name><uri>http://www.blogger.com/profile/01020133643994953100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_Bz-p8OGqJD0/TCqqb20V4iI/AAAAAAAAAoc/TISfAT2QqCw/s1600-R/2010-01-20-232840.jpg'/></author><thr:total>0</thr:total></entry></feed>
