<?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-3201639</id><updated>2012-01-21T05:55:44.451-05:00</updated><category term='ethics'/><category term='espn'/><category term='nyt'/><category term='control'/><category term='tools'/><category term='news'/><category term='4/1'/><category term='shareware'/><category term='fonts'/><category term='privacy'/><category term='regexp'/><category term='api'/><category term='digitization'/><category term='moore'/><category term='chrome'/><category term='eff'/><category term='picasa'/><category term='applescript'/><category term='mouse'/><category term='git'/><category term='extension'/><category term='email'/><category term='mini'/><category term='evil'/><category term='FUN'/><category term='ExtJS'/><category term='facebook'/><category term='paint'/><category term='russia'/><category term='java'/><category term='example'/><category term='government'/><category term='Word'/><category term='best buy'/><category term='creative'/><category term='aura'/><category term='iTunes'/><category term='acad'/><category term='palm'/><category term='asp.net'/><category term='coll_INT'/><category term='json'/><category term='.NET'/><category term='kia'/><category term='ebay'/><category term='os x'/><category term='OSS'/><category term='dhtml'/><category term='interface'/><category term='zealousness'/><category term='excel'/><category term='ios'/><category term='dumb'/><category term='rms'/><category term='licensing'/><category term='macbook'/><category term='voice'/><category term='code'/><category term='guns'/><category term='pseudo-academic'/><category term='seamonkey'/><category term='comments'/><category term='HDTV'/><category term='radio'/><category term='ebooks'/><category term='idiot'/><category term='wal marts'/><category term='aol'/><category term='Jobs'/><category term='os9'/><category term='pork'/><category term='music'/><category term='Other Stuff'/><category term='gruber'/><category term='Google'/><category term='ball'/><category term='jquery'/><category term='jqGrid'/><category term='wikipedia'/><category term='copyright'/><category term='energy'/><category term='Randmo'/><category term='wireless'/><category term='ipod'/><category term='left-handedness'/><category term='id'/><category term='obsolescence'/><category term='steam'/><category term='gmail'/><category term='Silverlight'/><category term='alienware'/><category term='pictures'/><category term='hats of money'/><category term='crippleware'/><category term='SQL'/><category term='swing'/><category term='ads'/><category term='rdbms'/><category term='iMovie'/><category term='rumor'/><category term='c#'/><category term='firefox'/><category term='encryption'/><category term='iphone'/><category term='hint'/><category term='css'/><category term='noteToSelf'/><category term='iPhoto'/><category term='Nikon'/><category term='schools'/><category term='sports'/><category term='DRM'/><category term='govt fail'/><category term='vim'/><category term='safari'/><category term='xml'/><category term='business'/><category term='TV'/><category term='mysql'/><category term='gametap'/><category term='problem solved'/><category term='Genius'/><category term='khtml'/><category term='Sesame Street'/><category term='blu-ray'/><category term='crd704'/><category term='cloud'/><category term='web 2.0 shiite'/><category term='sopa'/><category term='Drupal'/><category term='android'/><category term='xcode'/><category term='online distribution'/><category term='o&apos;reilly'/><category term='F/free'/><category term='html'/><category term='market'/><category term='SSTP'/><category term='lgpl'/><category term='editing'/><category term='NFL'/><category term='otherstuff'/><category term='pimpige'/><category term='zotero'/><category term='vista'/><category term='yahoo'/><category term='whitespace'/><category term='jdbc'/><category term='javascript'/><category term='DTV'/><category term='apple'/><category term='SQL Server'/><category term='graphicConverter'/><category term='XUL'/><category term='environment'/><category term='youtube'/><category term='Irrational Apple-Buying Mind'/><category term='photos'/><category term='browsers'/><category term='gpl'/><category term='cheating'/><category term='amazon'/><category term='Al'/><category term='virtual console'/><category term='gng'/><category term='class'/><category term='open'/><category term='windows'/><category term='peek'/><category term='HDCP'/><category term='textedit'/><category term='thunderbird'/><category term='dancing moons'/><category term='anon'/><category term='prediction'/><category term='car'/><category term='linux'/><category term='powerpoint'/><category term='vba'/><category term='phpMyAdmin'/><category term='office'/><category term='php'/><category term='public domain'/><category term='politics'/><category term='FSF'/><category term='random'/><category term='IMAP'/><category term='gmail fail'/><category term='pystar'/><category term='algos'/><category term='ascii'/><category term='kindle'/><category term='vb6'/><category term='ibooks'/><category term='food'/><category term='realbasic'/><category term='search'/><category term='features'/><category term='microsoft'/><category term='begging'/><category term='digital'/><category term='mozilla'/><category term='iPad'/><category term='mono'/><title type='text'>Put the knife down and take a green herb, dude.</title><subtitle type='html'>One &lt;a href="http://www.blogger.com/profile/386043"&gt;feller's&lt;/a&gt; views on the state of everyday computer science &amp; its application (and now, OTHER STUFF) who isn't rich enough to shell out for www.myfreakinfirst-andlast-name.com</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default?start-index=101&amp;max-results=100'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1818</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3201639.post-6990074210455204123</id><published>2012-01-21T05:45:00.001-05:00</published><updated>2012-01-21T05:55:44.458-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gruber'/><category scheme='http://www.blogger.com/atom/ns#' term='ibooks'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Why not conform to standards?</title><content type='html'>I tend to be a standards guy myself, but Grubes does an excellent job &lt;a href="http://daringfireball.net/2012/01/ibooks_author_file_format"&gt;arguing against using open standards for Apple's iBooks&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;It’s the difference between “What’s the best we can do within the constraints of the current ePub spec?” versus “What’s the best we can do given the constraints of our engineering talent?” — the difference between going as fast as the W3C standards body permits versus going as fast as Apple is capable.&lt;/blockquote&gt;&lt;br /&gt;I don't know that I think Apple's got another iTunes Music Store for textbooks by any stretch, and I am sure that this argue doesn't mean Apple couldn't have opened their own format for use by anyone on any platform (see C# and Mono for Microsoft surprisingly Doing It Right), but it is a good argument against Glazman's claims (quoted in the same link) that Apple should have embraced standards.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;The iBooks format isn’t different just for the sake of being different, it’s different for the sake of being better — not better in the future, after a W3C review period and approval, but better today, in the textbooks you can download and read in iBooks right now.&lt;/blockquote&gt;&lt;br /&gt;Again, that doesn't argue for the iBook as a legally-enforced closed ecosystem, but it does argue very well for not using w3c sanctioned standards.&lt;br /&gt;&lt;br /&gt;But here's where we have trouble... Grubes sets out three scenarios.  1.) Publishers only use iBooks for ebook distribs.  2.) Publishes integrate iBooks into their current workflow. 3.) Publishers don't use iBooks.&lt;br /&gt;&lt;br /&gt;On two, he says...&lt;br /&gt;&lt;blockquote&gt;If they choose to work iBooks Author into their cross-platform production workflow, and it proves to be a pain in the ass, that’s not Apple’s problem.&lt;/blockquote&gt;&lt;br /&gt;That's not true.  If Apple gains the sort of dominance in ebooks that it has in emusic, then fine, &lt;i&gt;Apple isn't significantly hurt&lt;/i&gt; by others going elsewhere.  But if, to go all Gladwellian on Grubes' arse, the difficulty of integrating iBooks is the barrier to entry that keeps iBooks from hitting a market tipping point, well, then that certainly is Apple's problem, ain't it?&lt;br /&gt;&lt;br /&gt;(Grubes essentially admits this... "(What would be Apple’s problem is if iBooks’s new layout and design features do not prove to be a competitive advantage in the e-book market. But even then, Apple would merely be right back where they were prior to yesterday’s announcements.1)" ... but I think he misses 1.) the opportunity cost of releasing iBooks and 2.) the degree to which the utility of being able to work a new format into your workflow drives competitive advantage.  Apple's really not back to where they started before the announcement.  Not that Apple can't afford to miss a few more times.)&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-6990074210455204123?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/6990074210455204123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=6990074210455204123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/6990074210455204123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/6990074210455204123'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2012/01/why-not-conform-to-standards.html' title='Why not conform to standards?'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-5595612295439154143</id><published>2012-01-20T15:40:00.002-05:00</published><updated>2012-01-20T15:42:58.642-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='noteToSelf'/><title type='text'>Another note to self: Recursive chmoding folders or files only</title><content type='html'>It's recursive call day!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://movabletripe.com/archive/recursively-chmod-directories-only/"&gt;/dev/movabletripe � Recursively chmod directories only&lt;/a&gt;: &lt;blockquote&gt;Recursively chmod directories only&lt;br /&gt;June 19th, 2006&lt;br /&gt;&lt;tt&gt;find . -type d -exec chmod 755 {} \;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;This will recursively search your directory tree (starting at dir ‘dot’) and chmod 755 all directories only.&lt;br /&gt;&lt;br /&gt;Similarly, the following will chmod all files only (and ignore the directories):&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;find . -type f -exec chmod 644 {} \;&lt;/tt&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Had some issues with git similar to these...&lt;br /&gt;&lt;a href="http://superuser.com/questions/204757/git-chmod-problem-checkout-screws-exec-bit"&gt;Git chmod problem: Checkout screws exec bit &lt;/a&gt;.  644 for files, 755 for dirs, apparently because without executable rights, you can only list the dir's contents, not enter them.  Whaddyano?&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-5595612295439154143?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/5595612295439154143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=5595612295439154143' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5595612295439154143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5595612295439154143'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2012/01/another-note-to-self-recursive-chmoding.html' title='Another note to self: Recursive chmoding folders or files only'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-8642515742850453677</id><published>2012-01-20T15:01:00.000-05:00</published><updated>2012-01-20T15:01:48.994-05:00</updated><title type='text'>Note to self: Recursively delete .svn directories</title><content type='html'>&lt;a href="http://www.anyexample.com/linux_bsd/bash/recursively_delete__svn_directories.xml"&gt;Recursively delete .svn directories&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;So, this will remove every .svn folder beginning from current directory.&lt;br /&gt;source code: bash script&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;tt&gt;#!/bin/sh&lt;br /&gt;echo "recursively removing .svn folders from"&lt;br /&gt;pwd&lt;br /&gt;rm -rf `find . -type d -name .svn`&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;You may save this script to /usr/bin/csvn (or other binary folder included in path) and use later to get 'clean' project source without typing lengthy commands.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-8642515742850453677?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/8642515742850453677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=8642515742850453677' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/8642515742850453677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/8642515742850453677'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2012/01/note-to-self-recursively-delete-svn.html' title='Note to self: Recursively delete .svn directories'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-982240387183543037</id><published>2012-01-20T11:37:00.002-05:00</published><updated>2012-01-20T11:38:07.599-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='whitespace'/><title type='text'>Ignoring whitespace in git</title><content type='html'>gitk, the built-in (?) graphical git diff client, had an option to ignore "changed" lines that differed only in whitespace, which is something I'd like to keep on all the time when I work with js, cs, and html/aspx files.  I'm awfully particular when it comes to good, consistent whitespace, but I don't need to review that to see if I've borked something with a change.&lt;br /&gt;&lt;br /&gt;Hopefully this does it, from &lt;a href="http://help.github.com/git-cheat-sheets/"&gt;Help.GitHub - Git cheat sheets&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;To ignore whitespace (Ruby is whitespace insensitive)&lt;br /&gt;&lt;br /&gt;git config --global apply.whitespace nowarn&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-982240387183543037?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/982240387183543037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=982240387183543037' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/982240387183543037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/982240387183543037'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2012/01/ignoring-whitespace-in-git.html' title='Ignoring whitespace in git'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-2698041051372691889</id><published>2012-01-19T13:30:00.002-05:00</published><updated>2012-01-19T14:40:51.387-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Can Math.random() give you 1?</title><content type='html'>&lt;a href="http://www.codingforums.com/showthread.php?t=9101"&gt;Can the Math.random() command actually return a 0 or 1? - CodingForums.com&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Can the Math.random() command actually return a 0 or 1?&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Fun thread.  TL;DR: 0 yes, but more likely you win the lottery.  1 never, except for Safari and Opera in 2002, both of which screwed up their implementation of Math.random().  So if you get a one, it's not exactly your fault.&lt;br /&gt;&lt;br /&gt;(Strangely, those two browsers gave 1 something reportedly like 1 in 35,000 runs, which is unbelievably often.)&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-2698041051372691889?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/2698041051372691889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=2698041051372691889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/2698041051372691889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/2698041051372691889'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2012/01/can-mathrandom-give-you-1.html' title='Can Math.random() give you 1?'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-4981356661442221046</id><published>2012-01-18T09:59:00.000-05:00</published><updated>2012-01-18T09:59:02.822-05:00</updated><title type='text'>Microsoft.Http.dll : The Official Microsoft ASP.NET Forums</title><content type='html'>&lt;a href="http://forums.asp.net/t/1580690.aspx/1"&gt;Microsoft.Http.dll : The Official Microsoft ASP.NET Forums&lt;/a&gt;: &lt;blockquote&gt;Re: Microsoft.Http.dll&lt;br /&gt;&lt;br /&gt;Jul 20, 2010 12:23 PM | LINK&lt;br /&gt;&lt;br /&gt;Those are part of the standard .NET Framework install.  Can you not find them?&lt;br /&gt;&lt;br /&gt;By default in VS2010, the target framework is the ".NET Framework 4 Client Profile" which does not include those DLLs.  Change the target framework to the dropdown choice ".NET Framework 4".&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Argh.  Maybe the third time this happens I'll remember it.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-4981356661442221046?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/4981356661442221046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=4981356661442221046' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/4981356661442221046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/4981356661442221046'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2012/01/microsofthttpdll-official-microsoft.html' title='Microsoft.Http.dll : The Official Microsoft ASP.NET Forums'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-7897230798019291107</id><published>2012-01-18T08:58:00.005-05:00</published><updated>2012-01-18T09:07:31.130-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='ExtJS'/><title type='text'>Changing TreeNode icons in ExtJS</title><content type='html'>Latest project uses ExtJS for nearly all of its UI.  Still a pretty exhaustive toolkit and still seems fairly robust, but I've got to admit that I'm a little wary of abstraction layers.  I often create docs in html rather than .doc(x) or what-have-you because I know I can, heck or high water, make html look like I want it to &lt;i&gt;eventually&lt;/i&gt;.  jQuery initially had me scared, but the ability to reach in with Javascript easily if something borked (and the ease with which you could go javascript parallel to jQuery) won me over, even on a .NET project.&lt;br /&gt;&lt;br /&gt;With ExtJS, not so sure.  I'm getting the feeling that stuff I do in javascript to get things done might get overwritten by ExtJS with more abandon.&lt;br /&gt;&lt;br /&gt;Anyhow, changing a tree node's icon, though not easy or well-documented, was eventually pretty easy once I Firebugged it (another thing I didn't really need with jQuery, though I was a Chrome tools window junkie for a while).&lt;br /&gt;&lt;br /&gt;Some decent help &lt;a href="http://stackoverflow.com/questions/5368903/how-to-set-styles-using-extjs"&gt;here&lt;/a&gt; and &lt;a href="http://stackoverflow.com/questions/2147192/how-to-use-jquery-something-to-select-a-class-in-extjs"&gt;here&lt;/a&gt; (from StackOverflow on both counts).&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="syntax0"&gt;&lt;span class="gutter"&gt;   1 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;(works,&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;so&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;touching&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;the&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;right&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;OM)&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   2 &lt;/span&gt;Ext&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;select&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;.x-tree-icon&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;each&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;function&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;el&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   3 &lt;/span&gt;    console&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;log&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;el&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;getWidth&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   4 &lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt; &lt;br /&gt;&lt;span class="gutterH"&gt;   5 &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   6 &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   7 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;Changles&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;icon.&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;QED&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   8 &lt;/span&gt;Ext&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;select&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;.x-tree-icon-leaf&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;each&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;function&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;el&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   9 &lt;/span&gt;  el&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;setStyle&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;background-image&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;url(&amp;quot;http://en.wikipedia.org/favicon.ico&amp;quot;)&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  10 &lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt; &lt;br /&gt;&lt;span class="gutter"&gt;  11 &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  12 &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  13 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;shorthand&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;also&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;works,&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;but&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;seems&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;be&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;undocumented:&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  14 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;http://docs.sencha.com/ext-js/3-4/#!/api/Ext.CompositeElement&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  15 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;I&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;don't&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;see&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;it&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;inheriting&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;from&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;something&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;that'd&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;add&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;that.&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  16 &lt;/span&gt;Ext&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;select&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;.x-tree-icon-leaf&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  17 &lt;/span&gt;        &lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;setStyle&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;background-image&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;url(&amp;quot;http://www.apple.com/favicon.ico&amp;quot;)&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-7897230798019291107?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/7897230798019291107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=7897230798019291107' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7897230798019291107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7897230798019291107'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2012/01/changing-treenode-icons-in-extjs.html' title='Changing TreeNode icons in ExtJS'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-7381647419840316513</id><published>2012-01-18T08:37:00.002-05:00</published><updated>2012-01-18T08:41:33.049-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wikipedia'/><category scheme='http://www.blogger.com/atom/ns#' term='sopa'/><title type='text'>Wikipedia: Not that locked out after all</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-yn86D-05aKU/TxbMCIi393I/AAAAAAAABrw/xR3-O9iOKIA/s1600/Screen%2BShot%2B2012-01-18%2Bat%2B8.40.07%2BAM.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 369px;" src="http://4.bp.blogspot.com/-yn86D-05aKU/TxbMCIi393I/AAAAAAAABrw/xR3-O9iOKIA/s400/Screen%2BShot%2B2012-01-18%2Bat%2B8.40.07%2BAM.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5698966715509503858" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Wikipedia lock-out is getting some decent play in the media today, but to view it as usual, you only have to turn off javascript.&lt;br /&gt;&lt;br /&gt;Still, perhaps the most free press (pun unintended) per line of code ever written.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-7381647419840316513?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/7381647419840316513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=7381647419840316513' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7381647419840316513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7381647419840316513'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2012/01/wikipedia-not-that-locked-out-after-all.html' title='Wikipedia: Not that locked out after all'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-yn86D-05aKU/TxbMCIi393I/AAAAAAAABrw/xR3-O9iOKIA/s72-c/Screen%2BShot%2B2012-01-18%2Bat%2B8.40.07%2BAM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-2364274227663510861</id><published>2012-01-13T08:34:00.001-05:00</published><updated>2012-01-13T08:34:40.204-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='noteToSelf'/><category scheme='http://www.blogger.com/atom/ns#' term='ios'/><title type='text'>Note to self: Making a webpage into an iOS ready "app"</title><content type='html'>&lt;a href="http://www.luscarpa.com/development/make-your-website-an-iphone-web-application/"&gt;Make your website an iPhone web application | Luscarpa Blog&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Hide Safari Components&lt;br /&gt;&lt;br /&gt;Add this line if you want that your web app/website don’t show the safari user interface components:&lt;br /&gt;&lt;br /&gt;&amp;lt;meta name="apple-mobile-web-app-capable" content="yes" /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-2364274227663510861?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/2364274227663510861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=2364274227663510861' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/2364274227663510861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/2364274227663510861'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2012/01/note-to-self-making-webpage-into-ios.html' title='Note to self: Making a webpage into an iOS ready &quot;app&quot;'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-7240632967075607233</id><published>2012-01-12T21:29:00.001-05:00</published><updated>2012-01-12T21:29:22.037-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='noteToSelf'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>64 bit Windows, C# Express, and Targeting "WoW"</title><content type='html'>&lt;a href="http://opensebj.blogspot.com/2007/12/64-bit-windows-with-c-express-net-and.html"&gt;OpenSebJ by DSebJ: 64 Bit Windows with C# Express .Net and 32 Bit DLL&amp;#39;s&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Any way there seems to be a saving grace, you can do development on a 64 Bit OS and set C# Express to specifically target your application to x86, it&amp;#39;s just not obvious. Targeting x86 will mean that your application will still run on a 64 Bit OS but will use WoW (Windows on Windows, which is a compatibility layer to backwards support 32 Bit applications) so you won&amp;#39;t get the native use of those 64 Bit Int&amp;#39;s but you will be able to use your 32 Bit DLL&amp;#39;s.&lt;br /&gt;&lt;br /&gt;To setup your application to do this you need to&lt;br /&gt;1 G[o] in to the menu option Tools&amp;gt;Options and the in the dialog box tick the box in the bottom right corner to &amp;quot;Show all settings&amp;quot;&lt;br /&gt;2 Once the settings expand go to &amp;quot;Projects and Settings&amp;quot; expand it and click on &amp;quot;General&amp;quot;&lt;br /&gt;3 Check the option which is called &amp;quot;Show advanced build configurations&amp;quot;, then close the dialog box&lt;br /&gt;4 Now if you right click on the solution explorer, chose properties&lt;br /&gt;5 Goto "Configuration Properties", now you should be able to see the platform drop down. This will probably have only "Any CPU" selected; if so click on "Configuration Manager"&lt;br /&gt;6 Chose the option "New" under the "Active Solution Platform" drop down box&lt;br /&gt;7 Chose the new platform of x86 and copy your settings from "Any CPU"&lt;br /&gt;8 Then just make sure that your projects in your solution refer to x86 as the platform rather that "Any CPU"&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-7240632967075607233?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/7240632967075607233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=7240632967075607233' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7240632967075607233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7240632967075607233'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2012/01/64-bit-windows-c-express-and-targeting.html' title='64 bit Windows, C# Express, and Targeting &quot;WoW&quot;'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-2892896172120106521</id><published>2012-01-12T17:32:00.001-05:00</published><updated>2012-01-12T17:33:05.719-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='noteToSelf'/><title type='text'>Turning on Intellisense for js libs</title><content type='html'>&lt;a href="http://geekswithblogs.net/lszk/archive/2009/08/25/integration-extjs-and-asp.net-mvc.aspx"&gt;Integration Ext JS and ASP.NET MVC&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;In Visual Studio 2008 there is included support for javascript intellisense. When you put a *.js file in your page and click the Ctrl Shift J shortcut, you will update the intellisense and from this moment you can use it in your code:&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-2892896172120106521?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/2892896172120106521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=2892896172120106521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/2892896172120106521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/2892896172120106521'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2012/01/turning-on-intellisense-for-js-libs.html' title='Turning on Intellisense for js libs'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-2101851501729434334</id><published>2012-01-12T12:34:00.004-05:00</published><updated>2012-01-12T12:45:39.243-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='regexp'/><category scheme='http://www.blogger.com/atom/ns#' term='problem solved'/><title type='text'>Regular Expression (RegEx) lookbehind</title><content type='html'>Now this is pretty cool, other than Javascript not supporting it...  The RegEx &lt;a href="http://www.regular-expressions.info/lookaround.html#lookbehind"&gt;Lookbehind&lt;/a&gt;.  You can find a pattern and return hits only when it's not preceded by another pattern.&lt;br /&gt;&lt;br /&gt;So I wanted to find where something was declared in a web/javascript app, not where it was instantiated by pulling it back by id.  In this case, we're using the &lt;a href="http://sencha.com/extjs"&gt;ExtJS&lt;/a&gt; framework (probably not my first choice, but a good, robust lib), so document.getElementById() or a jQuery $() is replaced by &lt;a href="http://docs.sencha.com/ext-js/4-0/#!/api/Ext-method-getCmp"&gt;Ext.getCmp()&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So I want to find any example of &lt;tt&gt;theObject&lt;/tt&gt; that's not in the format...&lt;br /&gt;&lt;tt&gt;Ext.getCmp("theObject")&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;Which is to say, I want to find any &lt;tt&gt;theObject&lt;/tt&gt; not preceded by Ext.getCmp("&lt;br /&gt;&lt;br /&gt;Here's the lookbehind-ige...&lt;br /&gt;&lt;tt&gt;(?&amp;lt;!Ext\.getCmp\(")theObject&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;SHAZAM.  That's neat.&lt;br /&gt;&lt;br /&gt;And though it'll chew, JEdit will recursively Hypersearch that into a directory tree, no problems.&lt;br /&gt;&lt;br /&gt;And then it'll clue me in that I need to say either " or ' in the regexp.  Ooops.&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;(?&amp;lt;!Ext\.getCmp\(["|'])theObject&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;Cool.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-2101851501729434334?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/2101851501729434334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=2101851501729434334' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/2101851501729434334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/2101851501729434334'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2012/01/regular-expression-regex-lookbehind.html' title='Regular Expression (RegEx) lookbehind'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-5235236945476508304</id><published>2012-01-12T12:02:00.001-05:00</published><updated>2012-01-12T12:03:43.218-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gmail fail'/><category scheme='http://www.blogger.com/atom/ns#' term='problem solved'/><title type='text'>Gmail... how about some greylisting?</title><content type='html'>Honestly, this sounds like it'd solve the majority of the Gmail Fail stuff I've been seeing, and with Google's ability to collect store the "triplets", they should be able to make this all pretty transparently from its users' perspectives.  &lt;br /&gt;&lt;br /&gt;&lt;a href="http://projects.puremagic.com/greylisting/whitepaper.html"&gt;Greylisting: Whitepaper&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;The Greylisting method is very simple. It only looks at three pieces of information (which we will refer to as a "triplet" from now on) about any particular mail delivery attempt:&lt;br /&gt;&lt;br /&gt;   1. The IP address of the host attempting the delivery&lt;br /&gt;   2. The envelope sender address&lt;br /&gt;   3. The envelope recipient address &lt;br /&gt;&lt;br /&gt;From this, we now have a unique triplet for identifying a mail "relationship". With this data, we simply follow a basic rule, which is:&lt;br /&gt;&lt;br /&gt;    If we have never seen this triplet before, then refuse this delivery and any others that may come within a certain period of time with a temporary failure. &lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-5235236945476508304?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/5235236945476508304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=5235236945476508304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5235236945476508304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5235236945476508304'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2012/01/gmail-how-about-some-greylisting.html' title='Gmail... how about some greylisting?'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-1092295693053144385</id><published>2012-01-12T11:08:00.001-05:00</published><updated>2012-01-12T11:09:06.752-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>this.initialize.apply(this, arguments) means this...</title><content type='html'>Well, this.initialize.apply means what follows; "this" obviously is a reserved word.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dailyjs.com/2010/03/11/framework-part-3-oo/"&gt;DailyJS: Let&amp;#39;s Make a Framework: OO Part 2&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Last week I was parading around initialize as if you were intimately familiar with prototype.js or Ruby. I apologise for that. In case I confused you, all you need to know is initialize is our way of saying call this method when you set up my class.&lt;br /&gt;&lt;br /&gt;Turing’s Class.create method sets up classes. During the setup it defines a function that will be called when the class is instantiated. So when you say new, it will run initialize. The code behind this is very simple:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;&lt;pre&gt;  create: function() {&lt;br /&gt;    var methods = null,&lt;br /&gt;        parent  = undefined,&lt;br /&gt;        klass   = function() {&lt;br /&gt;          this.initialize.apply(this, arguments);&lt;br /&gt;        };&lt;/tt&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-1092295693053144385?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/1092295693053144385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=1092295693053144385' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/1092295693053144385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/1092295693053144385'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2012/01/thisinitializeapplythis-arguments-means.html' title='this.initialize.apply(this, arguments) means this...'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-888797920097537051</id><published>2012-01-11T12:17:00.003-05:00</published><updated>2012-01-11T12:19:59.240-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Javascript closures explained</title><content type='html'>http://stackoverflow.com/questions/111102/how-do-javascript-closures-work&lt;br /&gt;&lt;br /&gt;Also a decent link from one of those answers, though the explanation is bit long.&lt;br /&gt;&lt;br /&gt;http://jibbering.com/faq/notes/closures/&lt;br /&gt;&lt;br /&gt;I think the one I like best, though, comes from &lt;a href="http://stackoverflow.com/a/111119/1028230"&gt;here&lt;/a&gt;, even if the guy's a little snotty replying to one of the comments to his post:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;I find the best way to explain them (and the way that I learned what they do) is to imagine the situation without them:&lt;br /&gt;&lt;br /&gt;var bind = function(x) {&lt;br /&gt;    return function(y) { return x + y; };&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;var plus5 = bind(5);&lt;br /&gt;alert(plus5(3));&lt;br /&gt;&lt;br /&gt;What would happen here if JavaScript didn't know closures? Just replace the call in the last line by its method body (which is basically what function calls do) and you get:&lt;br /&gt;&lt;br /&gt;alert(x + 3);&lt;br /&gt;&lt;br /&gt;Now, where's the definition of x? We didn't define it in the current scope. The only solution is to let plus5 carry its scope (or rather, its parent's scope) around. This way, x is well-defined and it is bound to the value 5.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-888797920097537051?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/888797920097537051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=888797920097537051' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/888797920097537051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/888797920097537051'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2012/01/javascript-closures-explained.html' title='Javascript closures explained'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-7285795623016136040</id><published>2012-01-11T11:29:00.002-05:00</published><updated>2012-01-11T11:30:42.143-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Wth is Array.prototype.slice.apply?</title><content type='html'>Found Array.prototype.slice.apply in some inherited code.  Why would you use the Array type's prototype method?  Apparently to slice Array-like objects that aren't really arrays.  Why Array's slice works with the non-but-almost-arrays, I don't know.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.sebarmeli.com/2010/11/12/understanding-array-prototype-slice-applyarguments/"&gt;Understanding Array.prototype.slice.apply(arguments) in JavaScript � Sebastiano Armeli&amp;#39;s Tech Blog&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;There you go Array.prototype.slice.apply(arguments) converts arguments into an ARRAY.&lt;br /&gt;&lt;br /&gt;Here we use one of the methods to call a function in JavaScript, the APPLY method, you can learn more about how to call a function in JS here.&lt;br /&gt;So we apply the slice function to the first argument of the apply function(in this case “arguments”) and we know that the slice() method returns always an Array. We got our Array!&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Similarly...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/5145032/whats-the-use-of-array-prototype-slice-callarray-0"&gt;javascript - What&amp;#39;s the use of Array.prototype.slice.call(array, 0)? - Stack Overflow&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;The DOM usually returns a NodeList for most operations like getElementsByTagName.&lt;br /&gt;&lt;br /&gt;Although a NodeList almost feels like an array, it is not. It has a length property like an array does, and a method item(index) to access an object at the given index (also accessible with the [index] notation), but that's where the similarity ends.&lt;br /&gt;&lt;br /&gt;So to be able to use the wonderful array methods without rewriting them all for a NodeList, the above line is useful.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-7285795623016136040?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/7285795623016136040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=7285795623016136040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7285795623016136040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7285795623016136040'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2012/01/wth-is-arrayprototypesliceapply.html' title='Wth is Array.prototype.slice.apply?'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-6322666902179631661</id><published>2012-01-10T17:13:00.000-05:00</published><updated>2012-01-10T17:13:25.900-05:00</updated><title type='text'>Looking to find Versions for Git</title><content type='html'>I like Versions for svn, though I've mostly only used it for keeping track of my own code.  Now that it looks like I'm going to be using git, I figured it was time to find a visual client.  (Not sure why I like visual so much.  Perhaps a VSS carryover from years back.)&lt;br /&gt;&lt;br /&gt;So we Google up &lt;a href="http://stackoverflow.com/questions/455698/best-visual-client-for-git-on-mac-os-x"&gt;osx - Best visual client for Git on Mac OS X? - Stack Overflow&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;I'm looking for a nice, Mac OS X-like, client for Git. As an example, I use Versions for Subversion and it's exactly what I'd like to purchase for Git access. Suggestions?&lt;br /&gt;...&lt;br /&gt;Another notable client is GitHub for Mac. I love our wild and wooly friends at GitHub as much as the next guy, but I think their client is pretty much doodoo. It has the same insane-in-the-membrane limitation as Tower... It has this Twitter-inspired iOS-wannabe interface that seems to prioritize lickability over usability. &lt;b&gt;I think this product should probably have been called Hasbro™ My Little Pony® Baby's First Git Client instead.&lt;/b&gt; (emph mine)&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Interesting.  Wonder what he'd say uncensored by online decorum.  Guess I'll give his positive recommendation a try instead.  "Update 2011-10-07: SourceTree is good enough that it gradually displaced all other git clients."&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-6322666902179631661?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/6322666902179631661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=6322666902179631661' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/6322666902179631661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/6322666902179631661'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2012/01/looking-to-find-versions-for-git.html' title='Looking to find Versions for Git'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-336082196483945482</id><published>2012-01-06T15:12:00.002-05:00</published><updated>2012-01-06T15:15:19.548-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gmail'/><category scheme='http://www.blogger.com/atom/ns#' term='dumb'/><title type='text'>Finding big Gmails -- an exercise in insane trust</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-c24A7dDd14w/TwdWSgXw1nI/AAAAAAAABrM/YSb0dYcd_0Y/s1600/Screen%2BShot%2B2012-01-06%2Bat%2B3.14.30%2BPM.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 241px;" src="http://4.bp.blogspot.com/-c24A7dDd14w/TwdWSgXw1nI/AAAAAAAABrM/YSb0dYcd_0Y/s400/Screen%2BShot%2B2012-01-06%2Bat%2B3.14.30%2BPM.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5694615129760519794" /&gt;&lt;/a&gt;&lt;br /&gt;From &lt;a href="findbigmail.com"&gt;findbigmail.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Security is important to us. We only see the size of your emails, not their contents, and we never see your password.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Gosh, I hope so.  Dumbest thing I think I've done in a while.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-336082196483945482?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/336082196483945482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=336082196483945482' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/336082196483945482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/336082196483945482'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2012/01/finding-big-gmails-exercise-in-insane.html' title='Finding big Gmails -- an exercise in insane trust'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-c24A7dDd14w/TwdWSgXw1nI/AAAAAAAABrM/YSb0dYcd_0Y/s72-c/Screen%2BShot%2B2012-01-06%2Bat%2B3.14.30%2BPM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-5001192238007728851</id><published>2012-01-05T13:57:00.000-05:00</published><updated>2012-01-05T13:57:20.602-05:00</updated><title type='text'>Note to self: Important notes on tracing in asp.net</title><content type='html'>&lt;a href="http://weblogs.asp.net/plip/pages/111130.aspx"&gt;Tracing in ASP.NET - Plip&amp;#39;s Weblog&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Remember way back to the top of the article, where I showed you an excerpt from the .NET SDK Documentation, it said “Trace statements are processed and displayed only when tracing is enabled.”?&lt;br /&gt;&lt;br /&gt;It Lies. ;)&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Couple of keys for tracing -- one, Tracing writes get executed even if tracing is off, apparently (well, in most cases duh -- you can't very well avoid "lets say you’ve put a large loop in to your page and it’s outputting data to the Trace log so you can debug it – why do we need to call this when Trace is turned off?" just by having .NET actually follow through on its claim that "Trace statements are processed and displayed only when tracing is enabled."  The write is avoided, but the logic's all there) and two, Trace.IsEnabled is the way around that.  I'd think a good compiler would compile out the whole Trace slew.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-5001192238007728851?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/5001192238007728851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=5001192238007728851' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5001192238007728851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5001192238007728851'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2012/01/note-to-self-important-notes-on-tracing.html' title='Note to self: Important notes on tracing in asp.net'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-7893526821681508147</id><published>2012-01-02T09:39:00.004-05:00</published><updated>2012-01-02T09:43:21.710-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gmail fail'/><title type='text'>Gmail Fail: Phishing license in the New Year</title><content type='html'>&lt;blockquote&gt;&lt;tt&gt;&lt;pre&gt;Delivered-To: MyEmailAddress@gmail.com&lt;br /&gt;Received: by 10.180.93.5 with SMTP id cq5cs493894wib;&lt;br /&gt;        Mon, 2 Jan 2012 01:00:47 -0800 (PST)&lt;br /&gt;Received: by 10.68.190.135 with SMTP id gq7mr56015631pbc.100.1325494844882;&lt;br /&gt;        Mon, 02 Jan 2012 01:00:44 -0800 (PST)&lt;br /&gt;Return-Path: &amp;lt;warning@google-info.us&gt;&lt;br /&gt;Received: from p3plwbeout18-03.prod.phx3.secureserver.net &lt;br /&gt;        (p3plsmtp18-03-2.prod.phx3.secureserver.net. [173.201.193.186])&lt;br /&gt;        by mx.google.com with SMTP id l1si53388033pbo.151.2012.01.02.01.00.44;&lt;br /&gt;        Mon, 02 Jan 2012 01:00:44 -0800 (PST)&lt;br /&gt;Received-SPF: neutral (google.com: 173.201.193.186 is neither permitted nor &lt;br /&gt;        denied by best guess record for domain of warning@google-info.us) &lt;br /&gt;        client-ip=173.201.193.186;&lt;br /&gt;Authentication-Results: mx.google.com; spf=neutral (google.com: 173.201.193.186 &lt;br /&gt;        is neither permitted nor denied by best guess record for domain of &lt;br /&gt;        warning@google-info.us) smtp.mail=warning@google-info.us&lt;br /&gt;Received: (qmail 4458 invoked from network); 2 Jan 2012 09:00:44 -0000&lt;br /&gt;Received: from unknown (HELO localhost) (173.201.193.244)&lt;br /&gt;  by p3plwbeout18-03.prod.phx3.secureserver.net with SMTP; 2 Jan 2012 09:00:43 -0000&lt;br /&gt;Received: (qmail 28039 invoked by uid 99); 2 Jan 2012 09:00:43 -0000&lt;br /&gt;Content-Transfer-Encoding: quoted-printable&lt;br /&gt;Content-Type: text/html; charset="utf-8"&lt;br /&gt;X-Originating-IP: 41.151.153.77&lt;br /&gt;User-Agent: Web-Based Email 5.6.09&lt;br /&gt;Message-Id: &amp;lt;20120102020041.385dec6122f6f6d5d049074abbcc73b1.7955149003.wbe&lt;br /&gt;        @email18.secureserver.net&gt;&lt;br /&gt;From: "Gmail" &amp;lt;warning@inbox.com&gt;&lt;br /&gt;X-Sender: warning@google-info.us&lt;br /&gt;To: info.support@gmail.com&lt;br /&gt;Subject: Gmail Warning&lt;br /&gt;Date: Mon, 02 Jan 2012 02:00:41 -0700&lt;br /&gt;Mime-Version: 1.0&lt;br /&gt;&lt;br /&gt;&amp;lt;html&gt;&amp;lt;body&gt;&amp;lt;span style=3D"font-family:Verdana; color:#000000; font-size:10=&lt;br /&gt;pt;"&gt;&amp;lt;div&gt;&amp;lt;div style=3D""&gt;&amp;lt;span style=3D""&gt;&amp;lt;div style=3D""&gt;&amp;lt;div style=3D""&gt;=&lt;br /&gt;&amp;lt;div style=3D""&gt;&amp;lt;div style=3D""&gt;We=0A are receiving an "Error Code 433" on =&lt;br /&gt;your account which means your mail=0A account security is inactive on the n=&lt;br /&gt;ew database and you may be =0Adisconnected soon, to keep your account secur=&lt;br /&gt;ity active:&amp;lt;/div&gt;&amp;lt;div style=3D""&gt;Click Here:&amp;nbsp;&amp;lt;a href=3D"http://fatrat.=&lt;br /&gt;dmkproject.net/joomla/1/ok/secureity.html" title=3D"www.gmail.com" target=&lt;br /&gt;=3D"_blank" style=3D""&gt;www.gmail.com&amp;lt;/a&gt;&amp;lt;/div&gt;&amp;lt;div style=3D""&gt;&amp;nbsp;&amp;lt;/div&gt;&amp;lt;=&lt;br /&gt;div style=3D""&gt;We apologize for any inconvenience and appreciate your coope=&lt;br /&gt;ration and understanding..&amp;lt;/div&gt;&amp;lt;div style=3D""&gt;&amp;nbsp;&amp;lt;/div&gt;&amp;lt;div style=3D""=&lt;br /&gt;&gt;Sincerely,&amp;lt;/div&gt;&amp;lt;div style=3D""&gt;&amp;nbsp;&amp;lt;/div&gt;&amp;lt;div style=3D""&gt;Email Disclaim=&lt;br /&gt;er&amp;lt;/div&gt;&amp;lt;/div&gt;&amp;lt;/div&gt;&amp;lt;/div&gt;&amp;lt;/span&gt;&amp;lt;/div&gt;&amp;lt;/div&gt;&amp;lt;/span&gt;&amp;lt;/body&gt;&amp;lt;/html&gt;&lt;/pre&gt;&lt;/tt&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Sheesh.  Honestly, unforgiveable.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-7893526821681508147?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/7893526821681508147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=7893526821681508147' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7893526821681508147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7893526821681508147'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2012/01/gmail-fail-phishing-license-in-new-year.html' title='Gmail Fail: Phishing license in the New Year'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-6692848666627159967</id><published>2011-12-29T19:18:00.003-05:00</published><updated>2011-12-29T19:20:18.967-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='govt fail'/><title type='text'>Who didn't normalize the Do Not Call database?</title><content type='html'>&lt;blockquote&gt;We're sorry. You have exceeded the maximum number of requests to Register telephone numbers from the National Do Not Call Registry. As a result, we are unable to fulfill your request. &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Thanks guys.  I especially like the way it doesn't tell me on the page, but only on the email reply.  Or give me an option like removing a number.  Well done, Uncle Sam.&lt;br /&gt;&lt;br /&gt;Email #2 coming right up...&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-6692848666627159967?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/6692848666627159967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=6692848666627159967' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/6692848666627159967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/6692848666627159967'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/12/who-didnt-normalize-do-not-call.html' title='Who didn&apos;t normalize the Do Not Call database?'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-3108376152779481965</id><published>2011-12-29T09:43:00.007-05:00</published><updated>2011-12-29T10:02:05.549-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gmail fail'/><title type='text'>Gmail Fail again</title><content type='html'>Seriously, the Gmail spam/phishing filter is horribly broken.&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;&lt;pre&gt;Delivered-To: MyEmailAddress@gmail.com&lt;br /&gt;Return-Path: &amp;lt;client1@dockershippingagent.com&gt;&lt;br /&gt;Received-SPF: neutral (google.com: 173.201.193.62 is neither permitted nor &lt;br /&gt;    denied by best guess record for domain of client1@dockershippingagent.com) &lt;br /&gt;    client-ip=173.201.193.62;&lt;br /&gt;Authentication-Results: mx.google.com; spf=neutral (google.com: 173.201.193.62 &lt;br /&gt;    is neither permitted nor denied by best guess record for domain of &lt;br /&gt;    client1@dockershippingagent.com) smtp.mail=client1@dockershippingagent.com&lt;br /&gt;Received: (qmail 18466 invoked from network); 29 Dec 2011 13:12:48 -0000&lt;br /&gt;Received: from unknown (HELO localhost) (173.201.193.116)&lt;br /&gt;  by p3plwbeout16-05.prod.phx3.secureserver.net with SMTP; 29 Dec 2011 13:12:48 -0000&lt;br /&gt;Received: (qmail 13713 invoked by uid 99); 29 Dec 2011 13:12:48 -0000&lt;br /&gt;Content-Transfer-Encoding: quoted-printable&lt;br /&gt;Content-Type: text/html; charset="utf-8"&lt;br /&gt;X-Originating-IP: 41.234.71.35&lt;br /&gt;User-Agent: Web-Based Email 5.6.09&lt;br /&gt;Message-Id: &amp;lt;20111229061247.78014317b47e9d0ab986e08a521d7d2b.9387052348.wbe&lt;br /&gt;    @email16.secureserver.net&gt;&lt;br /&gt;From: "=?UTF-8?Q?Google=E2=84=A2=20Error-Code=20Alert=20?=" &lt;br /&gt;    &amp;lt;gmailupgradeteam@inbox.lv&gt;&lt;br /&gt;X-Sender: client1@dockershippingagent.com&lt;br /&gt;To: g.team.upgrade.alert@gmail.com&lt;br /&gt;Subject: Google error code alert ..&lt;br /&gt;Date: Thu, 29 Dec 2011 06:12:47 -0700&lt;br /&gt;Mime-Version: 1.0&lt;br /&gt;&lt;br /&gt;&amp;lt;html&gt;&amp;lt;body&gt;&amp;lt;span style=3D"font-family:Verdana; color:#000000; font-size:10=&lt;br /&gt;pt;"&gt;&amp;lt;div&gt;&amp;lt;br&gt;&amp;lt;/div&gt;&amp;lt;div&gt;&amp;lt;br&gt;&amp;lt;/div&gt;&amp;lt;div&gt;Dear Account User's&amp;lt;/div&gt;&lt;br /&gt;&amp;lt;div&gt;&amp;lt;br&gt;&amp;lt;=&lt;br /&gt;/div&gt;&amp;lt;div&gt;Over the next few days as we make Google Analytics for the end of=&lt;br /&gt; the year default for all users, we are simultaneously rolling out the repo=&lt;br /&gt;rt of error code &amp;amp; anonymous emails, confirm if you still want to conti=&lt;br /&gt;nue with Google mail  .&amp;lt;br&gt;&amp;lt;br&gt;Reply Saying " ACTIVETE "&amp;lt;br&gt;&amp;lt;br&gt;Happy Analy=&lt;br /&gt;zing,&amp;lt;br&gt;&amp;lt;br&gt;The Google Analytics Team &amp;lt;/div&gt;&amp;lt;/span&gt;&amp;lt;/body&gt;&amp;lt;/html&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;I did some line wrapping, but that's about it.  Perhaps Google should partner with IBM for a twenty year-old version of &lt;a href="http://en.wikipedia.org/wiki/Watson_%28computer%29"&gt;Watson&lt;/a&gt; (or attach Gmail to an iPhone and rewire Siri) to figure out that emails claiming to be from Gmail that they didn't send should probably be reviewed before they're released to the inboxes.  Seriously, would holding suspicious emails for a few hours hurt anyone unduly?&lt;br /&gt;&lt;br /&gt;I mean seriously -- Account User confirm "Google mail" -- with a sig that includes "Google" and "Team" should be enough for someone to figure out something phishy is going on.  How about ANY From line with "gmail" in the pre-ampersand portion?  This isn't even close to rocket science.&lt;br /&gt;&lt;br /&gt;This is &lt;span style="font-style:italic;"&gt;embarrass&lt;/span&gt; the Gmail team.  It's &lt;a href="http://myfreakinname.blogspot.com/search/label/gmail%20fail"&gt;hardly the first time phishing-as-Gmail has snuck through&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;EDIT: I thought there was another recently.  Two days ago.&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;&lt;pre&gt;&lt;br /&gt;Delivered-To: MyEmailAddress@gmail.com&lt;br /&gt;Received: by 10.180.93.5 with SMTP id cq5cs335243wib;&lt;br /&gt;        Tue, 27 Dec 2011 06:44:25 -0800 (PST)&lt;br /&gt;Received: by 10.68.74.167 with SMTP id u7mr64941924pbv.103.1324997063562;&lt;br /&gt;        Tue, 27 Dec 2011 06:44:23 -0800 (PST)&lt;br /&gt;Return-Path: &amp;lt;users@anseude.com&gt;&lt;br /&gt;Received: from p3plwbeout15-06.prod.phx3.secureserver.net &lt;br /&gt;    (p3plsmtp15-06-2.prod.phx3.secureserver.net. [173.201.193.44])&lt;br /&gt;        by mx.google.com with SMTP id z4si32228704pbp.218.2011.12.27.06.44.22;&lt;br /&gt;        Tue, 27 Dec 2011 06:44:23 -0800 (PST)&lt;br /&gt;Received-SPF: neutral (google.com: 173.201.193.44 is neither permitted nor &lt;br /&gt;    denied by best guess record for domain of users@anseude.com) &lt;br /&gt;    client-ip=173.201.193.44;&lt;br /&gt;Authentication-Results: mx.google.com; spf=neutral (google.com: 173.201.193.44 &lt;br /&gt;    is neither permitted nor denied by best guess record for domain of &lt;br /&gt;    users@anseude.com) smtp.mail=users@anseude.com&lt;br /&gt;Received: (qmail 1725 invoked from network); 27 Dec 2011 14:44:22 -0000&lt;br /&gt;Received: from unknown (HELO localhost) (173.201.193.115)&lt;br /&gt;  by p3plwbeout15-06.prod.phx3.secureserver.net with SMTP; 27 Dec 2011 &lt;br /&gt;  14:44:12 -0000&lt;br /&gt;Received: (qmail 9449 invoked by uid 99); 27 Dec 2011 14:44:12 -0000&lt;br /&gt;Content-Transfer-Encoding: quoted-printable&lt;br /&gt;Content-Type: text/html; charset="utf-8"&lt;br /&gt;X-Originating-IP: 41.151.168.164&lt;br /&gt;User-Agent: Web-Based Email 5.6.09&lt;br /&gt;Message-Id: &amp;lt;20111227074410.1a431ae06f0531ae35f54fefd79e03f2.bb414b03c5.wbe&lt;br /&gt;    @email15.secureserver.net&gt;&lt;br /&gt;From: "Gmail Team" &amp;lt;member.verification@gawab.com&gt;&lt;br /&gt;X-Sender: users@anseude.com&lt;br /&gt;To: accounts-inc@gmail.com&lt;br /&gt;Subject: Gmail Security Warning&lt;br /&gt;Date: Tue, 27 Dec 2011 07:44:10 -0700&lt;br /&gt;Mime-Version: 1.0&lt;br /&gt;&lt;br /&gt;&amp;lt;html&gt;&amp;lt;body&gt;&amp;lt;span style=3D"font-family:Verdana; color:#000000; font-size:10=&lt;br /&gt;pt;"&gt;&amp;lt;div&gt;&amp;lt;div style=3D""&gt;&amp;lt;div style=3D""&gt;&amp;lt;/div&gt;&amp;lt;div class=3D"im" style=3D"=&lt;br /&gt;"&gt;&amp;lt;div style=3D""&gt;&amp;lt;div style=3D""&gt;&amp;lt;div style=3D""&gt;&amp;lt;div style=3D""&gt;&amp;lt;div styl=&lt;br /&gt;e=3D""&gt;&amp;lt;div style=3D""&gt;Dear Valued Member,&amp;lt;/div&gt;&amp;lt;div style=3D""&gt;&amp;lt;br style=&lt;br /&gt;=3D""&gt;&amp;lt;/div&gt;&amp;lt;div style=3D""&gt;&amp;lt;font size=3D"2" face=3D"verdana, geneva" style=&lt;br /&gt;=3D""&gt;We are currently upgrading our database security and We've noticed th=&lt;br /&gt;at your account security is inactive.&amp;lt;/font&gt;&amp;lt;/div&gt;&amp;lt;div style=3D""&gt;&amp;lt;font siz=&lt;br /&gt;e=3D"2" face=3D"verdana, geneva" style=3D""&gt;&amp;lt;br style=3D""&gt;&amp;lt;/font&gt;&amp;lt;/div&gt;&amp;lt;di=&lt;br /&gt;v style=3D""&gt;&amp;lt;font size=3D"2" face=3D"verdana, geneva" style=3D""&gt;To enable=&lt;br /&gt; your account security:&amp;nbsp;&amp;lt;a href=3D"http://gtrmn.com/GM/Gmailme/Gmail.h=&lt;br /&gt;tm" target=3D"_blank" style=3D""&gt;Click here&amp;lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/font&gt;&amp;lt;/div&gt;&amp;lt;di=&lt;br /&gt;v style=3D""&gt;&amp;lt;font size=3D"2" face=3D"verdana, geneva" style=3D""&gt;&amp;lt;br style=&lt;br /&gt;=3D""&gt;&amp;lt;/font&gt;&amp;lt;/div&gt;&amp;lt;div style=3D""&gt;&amp;lt;font size=3D"2" face=3D"verdana, geneva=&lt;br /&gt;" style=3D""&gt;&amp;lt;font size=3D"2" style=3D""&gt;We are sorry for the&amp;nbsp;&amp;lt;/font&gt;i=&lt;br /&gt;nconvenience.&amp;lt;/font&gt;&amp;lt;/div&gt;&amp;lt;div style=3D""&gt;&amp;lt;font size=3D"2" face=3D"verdana,=&lt;br /&gt; geneva" style=3D""&gt;&amp;lt;font size=3D"2" style=3D""&gt;&amp;lt;br style=3D""&gt;&amp;lt;/font&gt;&amp;lt;/fon=&lt;br /&gt;t&gt;&amp;lt;/div&gt;&amp;lt;div style=3D""&gt;&amp;lt;font size=3D"2" face=3D"verdana, geneva" style=3D"=&lt;br /&gt;"&gt;&amp;lt;font size=3D"2" style=3D""&gt;Sincerely,&amp;nbsp;&amp;lt;/font&gt;&amp;lt;/font&gt;&amp;lt;/div&gt;&amp;lt;div styl=&lt;br /&gt;e=3D""&gt;Google Mail =C2=AE&amp;nbsp;&amp;lt;/div&gt;&amp;lt;/div&gt;&amp;lt;/div&gt;&amp;lt;/div&gt;&amp;lt;/div&gt;&amp;lt;/div&gt;&amp;lt;/div&gt;&amp;lt;d=&lt;br /&gt;iv style=3D""&gt;&amp;lt;/div&gt;&amp;lt;/div&gt;&amp;lt;/div&gt;&amp;lt;/span&gt;&amp;lt;/body&gt;&amp;lt;/html&gt;&lt;br /&gt;&lt;/tt&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;RLY?  Have I started reporting not only as spam but as phishing scams?  Yes.  But if you're expecting human users to do the work of catching this stuff, you don't really understand 01s.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://images.cheezburger.com/completestore/2009/7/25/128930549610788748.jpg"&gt;&lt;br /&gt;&lt;br /&gt;Fail.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-3108376152779481965?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/3108376152779481965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=3108376152779481965' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/3108376152779481965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/3108376152779481965'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/12/gmail-fail-again.html' title='Gmail Fail again'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-7427842115570662630</id><published>2011-12-24T18:47:00.005-05:00</published><updated>2011-12-24T19:19:24.882-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='copyright'/><category scheme='http://www.blogger.com/atom/ns#' term='licensing'/><category scheme='http://www.blogger.com/atom/ns#' term='gpl'/><category scheme='http://www.blogger.com/atom/ns#' term='OSS'/><category scheme='http://www.blogger.com/atom/ns#' term='lgpl'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Music Manager's License Links -- Not Good Enough (but it does do FLAC!)</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/-F9gWVN9EheM/TvZmrBE1IqI/AAAAAAAABq0/dy_M9bANWyk/s1600/googleMusicOSSLicenseLinks.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 276px;" src="http://2.bp.blogspot.com/-F9gWVN9EheM/TvZmrBE1IqI/AAAAAAAABq0/dy_M9bANWyk/s400/googleMusicOSSLicenseLinks.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5689848068438303394" /&gt;&lt;/a&gt;&lt;br /&gt;I'm playing around with Google's Music Manager a little, uploading a few hundred tracks just for fun and downloading a few I grabbed from a recent promotion.  I'm not sure how I feel about cloud music, but it seems like a decent idea.  Surprised Apple &amp; Google don't care about the bandwidth.  How much can a dollar a track really buy you?&lt;br /&gt;&lt;br /&gt;But the link to the OSS used in the Music Manager isn't quite enough.  Many OSS apps that include or are themselves Free software display the GPL or LGPL in their entirety when you install, making you "accept" the GPL before using the software.  I always thought that was the wrong terminology -- you're not really "accepting" it so much as the developers who made your software did.  In retrospect, however, this in-your-face license makes a lot of sense.  Many applications only have the required OSS licenses in their About boxes, and that just barely seems to meet the letter of the law for some OSS license requirements, imo, even though I'm guilty of doing the same thing.  I think you're required to give the license to your user and a link to code, and hiding just the license in an obscure menu item isn't the way to do that.&lt;br /&gt;&lt;br /&gt;Google does even worse in the Music Manager.  In the About, there's a link to a page (admittedly a page copied locally by the install, though it is an html page that requires a browser to view) that has &lt;span style="font-style:italic;"&gt;more links&lt;/span&gt; to licensing realted to the software they've used in Music Manager.  In some cases, like libmpg123, the link is directly to the LGPL.  In others, like id3lib, the link is to that software's home page, not the license.  That seems bogus.&lt;br /&gt;&lt;br /&gt;I will credit that page with an appropriate link to the tarball (&lt;a href="http://dl.google.com/dl/androidjumper/src/current/music-manager-source.tar.bz2"&gt;http://dl.google.com/dl/androidjumper/src/current/music-manager-source.tar.bz2&lt;/a&gt;), which is nicely done.&lt;br /&gt;&lt;br /&gt;But the tab for About with a link to YA page of links, on which you may have to hunt to find the license, is closer to Kevin Bacon than the letter of the LGPL.&lt;br /&gt;&lt;br /&gt;EDIT: But it's hard to stay mad when Google Music handles FLAC with its Cloud player.  Awesome.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-7427842115570662630?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/7427842115570662630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=7427842115570662630' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7427842115570662630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7427842115570662630'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/12/google-music-managers-license-links-not.html' title='Google Music Manager&apos;s License Links -- Not Good Enough (but it does do FLAC!)'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-F9gWVN9EheM/TvZmrBE1IqI/AAAAAAAABq0/dy_M9bANWyk/s72-c/googleMusicOSSLicenseLinks.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-7736386673380374398</id><published>2011-12-20T22:52:00.002-05:00</published><updated>2011-12-20T22:54:07.118-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gmail fail'/><title type='text'>Gmail Fail: No, seriously, Gmail, how do you let these emails through?, take 3</title><content type='html'>Really, how does this stuff get through?&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;&lt;pre&gt;&lt;br /&gt;Google™ Team gmailteamuptade@inbox.lv&lt;br /&gt;10:50 PM (1 minute ago)&lt;br /&gt;&lt;br /&gt;to galertdepartme. &lt;br /&gt;************************************************************&lt;br /&gt;This footnote confirms that this email message has been scanned by&lt;br /&gt;New Google Mail-SeCure for the presence of malicious code, vandals &amp; computer viruses.&lt;br /&gt;************************************************************&lt;br /&gt;Dear User,&lt;br /&gt;&lt;br /&gt;We know it can be painful to switch email accounts, and we hope this makes the &lt;br /&gt;transition to Gmail a bit easier,your account profile needs to be updated as part of &lt;br /&gt;our measures to ensure your safety while using our online service.&lt;br /&gt;&lt;br /&gt;To continue reply With " Activate " ..&lt;br /&gt;&lt;br /&gt;You have to do this as soon as possible to prevent future email service denial.&lt;br /&gt;&lt;br /&gt;UPDATE Your Gmail Account Access.&lt;br /&gt;&lt;br /&gt;- The Gmail Team&lt;/pre&gt;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;Even worse, this suggests that some people might have experienced vandals coming their way via email.  Quelle horror!&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-7736386673380374398?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/7736386673380374398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=7736386673380374398' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7736386673380374398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7736386673380374398'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/12/gmail-fail-no-seriously-gmail-how-do.html' title='Gmail Fail: No, seriously, Gmail, how do you let these emails through?, take 3'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-5371489598457578487</id><published>2011-12-19T17:11:00.002-05:00</published><updated>2011-12-19T17:12:00.157-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='noteToSelf'/><title type='text'>To view raw JSON in your javascript?  Stringify</title><content type='html'>Classy name.&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;alert(JSON.stringify(data));&lt;/tt&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-5371489598457578487?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/5371489598457578487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=5371489598457578487' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5371489598457578487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5371489598457578487'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/12/to-view-raw-json-in-your-javascript.html' title='To view raw JSON in your javascript?  Stringify'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-4580375005323654011</id><published>2011-12-13T16:23:00.000-05:00</published><updated>2011-12-13T16:23:01.971-05:00</updated><title type='text'>Chrome, Google searches, RLZ... RLY?</title><content type='html'>RLZ to RLY?  Yes, I went there.  It was too low hanging a fruit.&lt;br /&gt;&lt;br /&gt;So I was about to include a search URL in some comments in some code I was writing and noted this RLZ value on the querystring.  Interesting.  It was clearly compressed data, and not human readable.  Wth?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/support/forum/p/Chrome/thread?tid=0169b5d789130615&amp;amp;hl=en"&gt;?rlz and privacy - Google Chrome Help&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;You may notice a RLZ parameter in the URL when you do a Google search from the Google Chrome address bar. The RLZ parameter contains some encoded information (like when you downloaded Google Chrome and where you got it from). The RLZ parameter does not uniquely identify you nor is it used to target advertising. Google uses this information in aggregate to find out whether groups of people are using Google Chrome actively.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Yeah, but what if I start mailing out the URL?  Doesn't that give someone an idea that it's mine?  And if I use the search results to get to someone's page, isn't that RLZ on the referring page info?  Maybe not.  I can't recall.  But if it is, that's bad.&lt;br /&gt;&lt;br /&gt;Don't personally tag my URLs, plz.  Maybe &lt;span style="font-style:italic;"&gt;you&lt;/span&gt; don't record my id with them, but someone else can.  It's just A Bad Idea in general.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-4580375005323654011?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/4580375005323654011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=4580375005323654011' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/4580375005323654011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/4580375005323654011'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/12/chrome-google-searches-rlz-rly.html' title='Chrome, Google searches, RLZ... RLY?'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-3902754727016474138</id><published>2011-12-06T09:27:00.005-05:00</published><updated>2011-12-06T10:26:41.924-05:00</updated><title type='text'>Well done, Packers. Firefox users can't buy your stock</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-GWlNL23qnqM/Tt4zxkFLwoI/AAAAAAAABp0/XTlnpRmDWe4/s1600/packers.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 257px;" src="http://2.bp.blogspot.com/-GWlNL23qnqM/Tt4zxkFLwoI/AAAAAAAABp0/XTlnpRmDWe4/s400/packers.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5683036706380169858" /&gt;&lt;/a&gt;&lt;br /&gt;I can fill out my order.  I can put the stock in my "cart".  I can click "Checkout".  But nothing happens.  (Preview doesn't work either.)&lt;br /&gt;&lt;br /&gt;Going to see if this is an IE-only app.  Honestly, there's no way to screw this up.  It's the simplest system.  If it's not an overloaded server issue, the coders are cruddy.&lt;br /&gt;&lt;br /&gt;Update: Yep, appears to be an IE thing.  That worked, no problem, other than your standard timeouts.  Not even the certificate warning that I got on Firefox.&lt;br /&gt;&lt;br /&gt;Seriously, though, how a company that banks tens of millions of dollars in profit each year can let some yokel make an WinIE only sales cart for their fund raising makes me really wonder.  How many thousands might be on the table if they don't sell out of stock?  (Apparently they didn't sell it all last time, iirc.)&lt;br /&gt;&lt;br /&gt;Oh well, guess it doesn't matter when there are idiots like me who'll buy.  That's the single most stupid purchase I've made since, well, let's not get into it.  ;^D&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-3902754727016474138?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/3902754727016474138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=3902754727016474138' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/3902754727016474138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/3902754727016474138'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/12/well-done-packers-i-cant-buy-your-stock.html' title='Well done, Packers. Firefox users can&apos;t buy your stock'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-GWlNL23qnqM/Tt4zxkFLwoI/AAAAAAAABp0/XTlnpRmDWe4/s72-c/packers.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-6062319792936824673</id><published>2011-12-02T10:40:00.005-05:00</published><updated>2011-12-02T10:45:08.964-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pimpige'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Wait, I want MY picture popping up in search results!</title><content type='html'>Google has finally figured out how to leverage their search dominance into a more successful social media ecosystem: Give Google+ Profile holders an unfair advantage with Google search results by putting images next to their hits!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-8VWKtn3g4ks/Ttjx-T4CYAI/AAAAAAAABpo/4nKY7YMtP4Y/s1600/googlecheats.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 309px;" src="http://2.bp.blogspot.com/-8VWKtn3g4ks/Ttjx-T4CYAI/AAAAAAAABpo/4nKY7YMtP4Y/s400/googlecheats.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5681556982717374466" /&gt;&lt;/a&gt;&lt;br /&gt;How do you set things up?  Start &lt;a href="http://www.google.com/webmasters/tools/richsnippets?url=myfreakinname.blogspot.com&amp;amp;view="&gt;here&lt;/a&gt;.  Enjoy.  There's some fiddling with your Google Profile and the text of your blog page, but it's pretty easy.  If you'll add G+ icons to your posts, you can do it on a by-post basis as well.&lt;br /&gt;&lt;br /&gt;With Gravitar and Google+, etc, it appears to be the Age of the Self-branding Headshot.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-6062319792936824673?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/6062319792936824673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=6062319792936824673' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/6062319792936824673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/6062319792936824673'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/12/wait-i-want-my-picture-popping-up-in.html' title='Wait, I want MY picture popping up in search results!'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-8VWKtn3g4ks/Ttjx-T4CYAI/AAAAAAAABpo/4nKY7YMtP4Y/s72-c/googlecheats.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-7671553043395900098</id><published>2011-12-02T08:55:00.004-05:00</published><updated>2011-12-02T09:04:55.386-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='safari'/><category scheme='http://www.blogger.com/atom/ns#' term='problem solved'/><title type='text'>Why is Safari telling me "To view this page you must log in to the http proxy server"?</title><content type='html'>On Windows at least, Safari will apparently check some system-wide setting and see if there's a proxy it should be using.  This would be taken from some wacky .pac file or some such.&lt;br /&gt;&lt;br /&gt;So when Safari pops open a window saying... "To view this page you must log in to the http proxy server", you're probably (?) supposed to be blocked from viewing that site by your [office?] proxy.  I've noticed that I can type in real mature stuff like "doo doo" for the user name and password and still through, however, so I'm not sure what's going on there.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-8gV-liXG4No/Ttja_YHxzZI/AAAAAAAABpc/6XSWxjRJ2jk/s1600/safariProx.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 394px; height: 345px;" src="http://1.bp.blogspot.com/-8gV-liXG4No/Ttja_YHxzZI/AAAAAAAABpc/6XSWxjRJ2jk/s400/safariProx.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5681531712269569426" /&gt;&lt;/a&gt;&lt;br /&gt;To fix this (at least for me), you can go to settings in Safari, click Advanced, click the Change Settings button next to Proxies, click the LAN settings button on the new dialog, then if "Use automatic configuration script" is checked, uncheck it.&lt;br /&gt;&lt;br /&gt;Profit.&lt;br /&gt;&lt;br /&gt;That was a pain.  I wanted to use Safari as my "no Javascript" test browser, and it was initially just hanging, and then it did this proxy jive after reinstall.  Fun times.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-7671553043395900098?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/7671553043395900098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=7671553043395900098' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7671553043395900098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7671553043395900098'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/12/why-is-safari-telling-me-to-view-this.html' title='Why is Safari telling me &quot;To view this page you must log in to the http proxy server&quot;?'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-8gV-liXG4No/Ttja_YHxzZI/AAAAAAAABpc/6XSWxjRJ2jk/s72-c/safariProx.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-194305198900452859</id><published>2011-12-01T21:06:00.000-05:00</published><updated>2011-12-01T21:06:17.659-05:00</updated><title type='text'>J Grubes on the HTC keylogging scandal, whatever that is</title><content type='html'>&lt;a href="http://daringfireball.net/2011/12/rootkit_eh"&gt;Daring Fireball: Rootkit, Eh?&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;I can’t find a single word where I place blame anywhere other than in the hands of the carriers. (Which, as the story continues to unfold, looks to be exactly where the blame should be placed.) I didn’t even crack an “Android is open” joke.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Funny.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-194305198900452859?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/194305198900452859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=194305198900452859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/194305198900452859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/194305198900452859'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/12/j-grubes-on-htc-keylogging-scandal.html' title='J Grubes on the HTC keylogging scandal, whatever that is'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-2012819577803947268</id><published>2011-12-01T16:17:00.004-05:00</published><updated>2011-12-01T16:26:10.306-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='problem solved'/><title type='text'>Why isn't ASP.NET writing out my OnClientClick function in javascript in my html page?</title><content type='html'>I've got a page with a save button that's to be enabled only after edits have been made (otherwise what are you saving, right?).  So right now it's an asp:button, so I disable it with Enabled="false".&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;&lt;pre&gt;&amp;lt;asp:Button runat="server" ID="cmdSavePrimaryClientEdits" Text="Save" &lt;br /&gt;  onclick="cmdSavePrimaryClientEdits_Click"&lt;br /&gt;  OnClientClick="checkCboMasks();"&lt;br /&gt;  Enabled="false" /&gt;&lt;/pre&gt;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;Bad news.  I couldn't for the life of me figure out why my OnClientClick function call wasn't in the html.  Finally, a StackOverflow comment gave me the answer...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/1439806/onclientclick-not-working"&gt;asp.net - OnClientClick not working - Stack Overflow&lt;/a&gt;: &lt;blockquote&gt; &lt;br /&gt; &lt;br /&gt;Another possibility: if the button is disabeld when the page is rendered, then the OnClientClick event is NOT written to HTML. Is your button disabled when the page is rendered? – AASoft Sep 17 '09 at 22:35&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Hey, &lt;a href="http://www.youtube.com/watch?v=8To-6VIJZRE"&gt;Ballmer&lt;/a&gt;, WHAT THE HECK GOOD IS IT TO REMOVE THE FREAKIN' ONCLIENTCLICK IF THE BUTTON'S DISABLED?  IT'S NOT LIKE IT'LL ACCIDENTALLY GET CALLED, OKAY?!!!&lt;br /&gt;&lt;br /&gt;ARGH.  What a pain.  I can now either use jQuery to attach my click event to the button after it's rendered OR I can remove the Enabled attribute and use jQuery to disable it once the page is done loading.  What a freakin' kludge o' freakin' rama.&lt;br /&gt;&lt;br /&gt;So here's the jQuery fix:&lt;br /&gt;&lt;tt&gt;$('#&amp;lt;%=cmdSavePrimaryClientEdits.ClientID %&gt;').attr('disabled', 'disabled');&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;/sigh&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-2012819577803947268?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/2012819577803947268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=2012819577803947268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/2012819577803947268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/2012819577803947268'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/12/why-isnt-aspnet-writing-out-my.html' title='Why isn&apos;t ASP.NET writing out my OnClientClick function in javascript in my html page?'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-9084434937156268832</id><published>2011-12-01T08:39:00.005-05:00</published><updated>2011-12-01T09:21:56.926-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='youtube'/><title type='text'>Goodbye System.Beep?</title><content type='html'>I've always liked using System.Beep in VB6 as a sort of audible debug.  It's so much easier than msgbox or writing to some stupid debug textbox if you just want a very quick confirmation that you got &lt;span style="font-style:italic;"&gt;here&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Well, it looks like &lt;a href="http://blogs.msdn.com/b/larryosterman/archive/2010/01/04/what-s-up-with-the-beep-driver-in-windows-7.aspx"&gt;it's gone&lt;/a&gt;.  But why was it there in the first place?  From that same link:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;There’s something else that happened in the past 25 years.  PCs became commodity systems.  And that started exerting a huge amount of pressure on PC manufacturers to cut costs.  They looked at the 8254 and asked “why can’t we remove this?”&lt;br /&gt;&lt;br /&gt;It turns out that they couldn’t.  And the answer to why they couldn’t came from a totally unexpected place.  The American’s with Disabilities Act.&lt;br /&gt;&lt;br /&gt;The ADA?  What on earth could the ADA have to do with a PC making a beep?   Well it turns out that at some point in the intervening 25 years, the Win32 Beep() was used for assistive technologies – in particular the sounds made when you enable the assistive technologies like StickyKeys were generated using the Beep() API.   There are about 6 different assistive technology (AT) sounds built into windows, their implementation is plumbed fairly deep inside the win32k.sys driver.&lt;br /&gt;...&lt;br /&gt;For Windows 7, we resolved the issue completely – we moved all the functionality that used to be contained in Beep.Sys into the user mode system sounds agent – now when you call the Beep() API instead of manipulating the 8254 chip the call is re-routed into a user mode agent which actually plays the sounds.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Bottom line for the change?  Money.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Simon: You're right that there are other solutions.  But we weren't trying to solve the console beep problem - we were solving a manufacturing cost problem. &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Strangely, even if your hardware &lt;span style="font-style:italic;"&gt;has&lt;/span&gt; the internal hardware to Beep, in Win7 64 bit, you're out of luck.  I don't see a slick way to grab the speaker, though, since It's All Just 0s and 1s (c) 1970, there's got to be a way, right?&lt;br /&gt;&lt;br /&gt;I also don't see exactly how this solves the ADA problem.  If I buy a computer, there's no guarantee it has external speakers.  With an internal speaker, &lt;span style="font-style:italic;"&gt;the sound will be there&lt;/span&gt; [as long as the speaker works properly, etc].  And it'll be distinctive to boot.  How does moving to the standard sound jive help?  Save System.Beep!&lt;br /&gt;&lt;br /&gt;Anyhow, I'm awfully sad to see Beep go.  It's fun.  And a cool Easter Egg.&lt;br /&gt;&lt;br /&gt;EDIT: I couldn't help but play a little.  In 32 bit Windows 7, I tried it out as explained &lt;a href="http://stackoverflow.com/questions/8066634/system-beep-on-windows-7"&gt;here&lt;/a&gt; with &lt;tt&gt;Console.Beep(1000,1000);&lt;/tt&gt;  Interestingly, it most certainly did go through the headphones if they were plugged in, but more interestingly, this HP Compaq 6005 Pro MT PC made the sound through an excellent internal speaker (which &lt;a href="http://h18000.www1.hp.com/products/quickspecs/13412_ca/13412_ca.HTML"&gt;it apparently does always have&lt;/a&gt;: "Integrated High Definition audio with internal speaker") when I unplugged the headphones -- though no other sounds have come out of this thing since I've used it.  &lt;br /&gt;&lt;br /&gt;(Hrm, now I can't turn the danged thing back off.  Maybe I just had it on low all this time?)&lt;br /&gt;&lt;br /&gt;I know Macs have had excellent internal speakers since forever (? -- my LC had one and everything through now has too), but perhaps I missed that standard hardware usually has one too?  So perhaps this is a win-win, and using the "user mode system sounds agent" still routes to the internal speaker even when, for normal sounds, it's off. Perhaps the ADA simply mandates that you have an internal speaker of some sort, but Windows 7 allows that sound to move through the headphones if they're in? Still seems like the ADA would prefer these sounds not be mutable. /EDIT&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-rT4a6O8ht48/TteEDfqlkNI/AAAAAAAABpE/qCEhTVgkp7I/s1600/Clipboard02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 87px;" src="http://4.bp.blogspot.com/-rT4a6O8ht48/TteEDfqlkNI/AAAAAAAABpE/qCEhTVgkp7I/s400/Clipboard02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5681154650525765842" /&gt;&lt;/a&gt;&lt;br /&gt;Btw, has anyone noticed that logging in to blogger routes you through YouTube now?  Wonder if YouTube is getting bundled with Blogger for a quick sale...&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-9084434937156268832?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/9084434937156268832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=9084434937156268832' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/9084434937156268832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/9084434937156268832'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/12/goodbye-systembeep.html' title='Goodbye System.Beep?'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-rT4a6O8ht48/TteEDfqlkNI/AAAAAAAABpE/qCEhTVgkp7I/s72-c/Clipboard02.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-5589335953562880776</id><published>2011-11-30T21:17:00.001-05:00</published><updated>2011-11-30T21:18:47.025-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Randmo'/><title type='text'>Does anyone tape the TV Guide channel</title><content type='html'>&lt;div&gt;&lt;p&gt;As I'm sitting here rewatching Insomnia, I find myself wondering if anyone records the TV Channel. Interesting artifacts on that one.&lt;/p&gt;&lt;p&gt;Honestly, the TV Channel deciding to show "real" shows (and only two channels' worth of schedule at a time, which takes forever) is brilliant. I wanted to catch Insomnia, but also got stuck on Dharma and Greg&amp;#160; [sic] earlier this afternoon when I was just checking what's on...&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-5589335953562880776?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/5589335953562880776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=5589335953562880776' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5589335953562880776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5589335953562880776'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/11/does-anyone-tape-tv-guide-channel.html' title='Does anyone tape the TV Guide channel'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-5864398449935002645</id><published>2011-11-30T10:31:00.002-05:00</published><updated>2011-11-30T10:33:15.940-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>A great resource for figuring out keystrokes in Javascript</title><content type='html'>But be prepared.  Javascript keystrokes are insane.  If anyone tells you that you can provide thick functionality in a browser, they're right, but there match a desktop app's ease when guiding user input?  Impossible.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.quirksmode.org/js/keys.html"&gt;JavaScript - Detecting keystrokes&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Punctuation keys&lt;br /&gt;&lt;br /&gt;I decided not to test the punctuation keys. I suspect that these keys are dependant not only on browser and operating system, but also on keyboard configuration and the official system language. I work on a Dutch Windows, but with a US 101 keyboard configuration, and I wouldn&amp;#39;t be surprised if that matters a lot in punctuation keys experiments.&lt;br /&gt;&lt;br /&gt;For instance, shift +, causes a &amp;lt; character to appear in my applications, but the ASCII value returned by my test script belongs to the ?. &lt;span style="font-weight:bold;"&gt;When I discovered that I decided not to risk my sanity by performing further punctuation character experiments.&lt;/span&gt; [emph mine -mfn]&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Another favorite, this time for the number lock.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Chaos on Mac. Mozilla and Safari give 12, Opera 27.&lt;br /&gt;&lt;br /&gt;Safari gives 63289 onkeypress.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-5864398449935002645?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/5864398449935002645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=5864398449935002645' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5864398449935002645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5864398449935002645'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/11/great-resource-for-figuring-out.html' title='A great resource for figuring out keystrokes in Javascript'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-1347498380305729493</id><published>2011-11-25T16:29:00.002-05:00</published><updated>2011-11-25T16:37:18.448-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open'/><category scheme='http://www.blogger.com/atom/ns#' term='Word'/><title type='text'>How to add a footnote in Microsoft Word Starter</title><content type='html'>I've been using Word Starter a lot recently.  For some reason, it's all I've got at work, and it's also on the new HP subcompact (d1m) I finally received last week.  It's not bad, and it even is nice enough to support the menu-based keyboard shortcuts I'm used to using.  But when I tried to add a footnote -- I think that's Alt-I-N -- nothing happened.  It sat around waiting for me to hit something after I.  Perhaps I'm using Word 2000 shortcuts, or perhaps I just didn't remember correctly.  But perhaps I can't add a footnote?&lt;br /&gt;&lt;br /&gt;If you check the help to see how to add a footnote, Word Starter'll tell you that, sure enough, you can't add a footnote to a document.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Microsoft Word Starter 2010 is a simplified version of Word that comes pre-loaded on your computer. Word Starter includes features that are basic to creating and working with documents, but it does not include the rich set of features found in the full version of Word. This article lists the differences in features between Word Starter and the full version of Word.&lt;br /&gt; &lt;br /&gt;If you find that you need a richer set of features than what Word Starter provides, you can easily upgrade from Word Starter to Word. On the Home tab, click Purchase to visit an online retailer, where you can purchase and download Office right away.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;That's cute.  Here's the footnote specific jive:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight:bold;"&gt;Footnotes and endnotes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Not available to create&lt;br /&gt;&lt;br /&gt;If you open a document that contains footnotes or endnotes, you can click the footnote or endnote link to jump to the footnote or endnote. You can also cut, copy, or paste the footnote or endnote, and you can format the text.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Hrm.  That seems weird.  What if I want to move text that has a footnote by cutting and pasting?  What if I want to &lt;span style="font-style:italic;"&gt;duplicate&lt;/span&gt; text by copy and pasting?  Does the footnote go away?&lt;br /&gt;&lt;br /&gt;No, and that's how you add 'em.  Highlight the footnote, copy, and paste in somewhere else.  Now edit from the old footnote text to the new.&lt;br /&gt;&lt;br /&gt;Of course, this requires that you have a doc to cut and paste from that already has a "donor" footnote.  That's pretty easy to Google up, but if I ever think about it when I have more time, I'll throw one up.&lt;br /&gt;&lt;br /&gt;It's an interesting move by Microsoft -- you're essentially giving Word away for free, except for those who don't like feeling constricted when they edit, in spite of the fact that pretty much everything is still there.  Wonder how much we can thank OpenOffice for this?&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-1347498380305729493?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/1347498380305729493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=1347498380305729493' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/1347498380305729493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/1347498380305729493'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/11/how-to-add-footnote-in-microsoft-word.html' title='How to add a footnote in Microsoft Word Starter'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-3141572445573722689</id><published>2011-11-23T14:28:00.003-05:00</published><updated>2011-11-23T14:38:26.343-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><title type='text'>Where does Page_ClientValidate() come from?</title><content type='html'>I've got a web app that has a few buttons that I think are better handled purely within the browser, with no asp.net codebehind blind.  So one is a "Save" button that includes... &lt;tt&gt;onclick="if (Page_ClientValidate()) document.forms[0].submit();"&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;Now I wrote that, but wondered what the heck Page_ClientValidate was as I looked back.  There was no other Page_ClientValidate in the project or even the entire solution.  Argh.  It was pretty obviously running some Microsoft validation code, and I'm currently using plain jane ASP.NET validators on this page.  So I figured MS had hidden the function on me somewhere&lt;br /&gt;&lt;br /&gt;Sure enough.  Here's what I suspect is the javascript file include with the function.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="syntax0"&gt;&lt;span class="gutter"&gt;   1 &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;lt;script&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt; &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;src=&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;/&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;WebResource&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;.&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;axd&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;?&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;d&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;=&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;RqZmHVG6Bo97ETCETCETC&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;amp;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;amp&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;t&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;=&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;634245046914809245&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   2 &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;        &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;type&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;=&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;text&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;/&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;javascript&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;gt;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   3 &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;lt;script&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt; &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;type&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;=&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;text&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;/&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;javascript&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   4 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;&amp;lt;![CDATA[&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;   5 &lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;function&lt;/span&gt; &lt;span class="syntax-FUNCTION"&gt;WebForm_OnSubmit&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   6 &lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;typeof&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;ValidatorOnSubmit&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;function&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt; &lt;br /&gt;&lt;span class="gutter"&gt;   7 &lt;/span&gt;        &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; &lt;span class="syntax-FUNCTION"&gt;ValidatorOnSubmit&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-LITERAL2"&gt;false&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;return&lt;/span&gt; &lt;span class="syntax-LITERAL2"&gt;false&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   8 &lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;return&lt;/span&gt; &lt;span class="syntax-LITERAL2"&gt;true&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   9 &lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  10 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;]]&amp;gt;&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  11 &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And sure enough, in that page we find the function in question.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="syntax0"&gt;&lt;span class="gutter"&gt;   1 &lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;function&lt;/span&gt; &lt;span class="syntax-FUNCTION"&gt;Page_ClientValidate&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;validationGroup&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   2 &lt;/span&gt;    Page_InvalidControlToBeFocused &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-LITERAL2"&gt;null&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   3 &lt;/span&gt;    &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;typeof&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;Page_Validators&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;undefined&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   4 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;return&lt;/span&gt; &lt;span class="syntax-LITERAL2"&gt;true&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;   5 &lt;/span&gt;    &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   6 &lt;/span&gt;    &lt;span class="syntax-KEYWORD1"&gt;var&lt;/span&gt; i&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   7 &lt;/span&gt;    &lt;span class="syntax-KEYWORD1"&gt;for&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;i &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;0&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt; i &lt;span class="syntax-OPERATOR"&gt;&amp;lt;&lt;/span&gt; Page_Validators&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;length&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt; i&lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   8 &lt;/span&gt;        &lt;span class="syntax-FUNCTION"&gt;ValidatorValidate&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;Page_Validators&lt;span class="syntax-OPERATOR"&gt;[&lt;/span&gt;i&lt;span class="syntax-OPERATOR"&gt;]&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; validationGroup&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; &lt;span class="syntax-LITERAL2"&gt;null&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   9 &lt;/span&gt;    &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  10 &lt;/span&gt;    &lt;span class="syntax-FUNCTION"&gt;ValidatorUpdateIsValid&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  11 &lt;/span&gt;    &lt;span class="syntax-FUNCTION"&gt;ValidationSummaryOnSubmit&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;validationGroup&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  12 &lt;/span&gt;    Page_BlockSubmit &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;!&lt;/span&gt;Page_IsValid&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  13 &lt;/span&gt;    &lt;span class="syntax-KEYWORD1"&gt;return&lt;/span&gt; Page_IsValid&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  14 &lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I don't know why I don't like the setup.  I mean, ASP.NET either has to throw this stuff into your page, and there's already plenty of wacky javascript in there, or slap it into an include.  They chose the second, and I'm often a little upset when they do the former.  Go figure.  I mean, heck, they even use human-readable var names to make it easy for you to figure out what they're doing.  Just like any other lib (I'm looking at you, jQuery), there's going to be stuff you didn't write, you know?&lt;br /&gt;&lt;br /&gt;I guess I just don't like all the overhead and the way their whitespace and code includes completely break with the way I do it.  When I use jQuery, there are some includes and a few lines of code in a specialized format.  I can still manage the way the code &lt;span style="font-style:italic;"&gt;feels&lt;/span&gt; when you run through the logic and whitespace.  With this auto-generated stuff, I can't as easily.  I don't know.&lt;br /&gt;&lt;br /&gt;Anyhow, that's where Page_ClientValidate is.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-3141572445573722689?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/3141572445573722689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=3141572445573722689' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/3141572445573722689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/3141572445573722689'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/11/where-does-pageclientvalidate-come-from.html' title='Where does Page_ClientValidate() come from?'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-3017593073555602572</id><published>2011-11-23T14:00:00.000-05:00</published><updated>2011-11-23T14:00:44.540-05:00</updated><title type='text'>Javascript compression: YUI Compressor</title><content type='html'>I love to comment code.  Sometimes I think it's past the point of usefulness, where my code looks like it might be approaching half comments.  That &lt;span style="font-style:italic;"&gt;could&lt;/span&gt; be bad, but each time I come into code cold, after a break, I'm awfully glad the commenting is there.  I hope it's at least half as helpful to others that use my jive.&lt;br /&gt;&lt;br /&gt;But there is at least one place that lots of comments probably isn't helpful, for two reasons, and that's in code that's sent via network to your user.  If it's a javascript include, comments are less useful.  Unlike, well, most anything else, that compiles your code to some not exactly interpreted state, javascript sends EVERYTHING to your user.&lt;br /&gt;&lt;br /&gt;I'll admit, I'm often a bad programmer, and leave everything in there, helping only those two want to prank my code or, more likely, myself when I want to remember what I did in a past project and don't have my codebase handy.  &lt;br /&gt;&lt;br /&gt;But ultimately comments are bad news in Javascript because 1.) you &lt;span style="font-style:italic;"&gt;want&lt;/span&gt; to obfuscate how your code works in the wild and 2.) more bytes means more network traffic for your server to pump out means, ultimately, slower performance, even in the 2010s.&lt;br /&gt;&lt;br /&gt;So the easy way out is to minimize your Javascript.  It looks like The Right Way to do that is with Yahoo's &lt;a href="http://developer.yahoo.com/yui/compressor/"&gt;YUI Compressor&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;In terms of code minification, the most widely used tools to minify JavaScript code are Douglas Crockford's JSMIN, the Dojo compressor and Dean Edwards' Packer. Each of these tools, however, has drawbacks. JSMIN, for example, does not yield optimal savings (due to its simple algorithm, it must leave many line feed characters in the code in order not to introduce any new bugs).&lt;br /&gt;...&lt;br /&gt;The YUI Compressor is JavaScript minifier designed to be 100% safe and yield a higher compression ratio than most other tools. Tests on the YUI Library have shown savings of over 20% compared to JSMin (becoming 10% after HTTP compression).&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Goodbye comments!  And hello greater than average savings.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-3017593073555602572?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/3017593073555602572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=3017593073555602572' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/3017593073555602572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/3017593073555602572'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/11/javascript-compression-yui-compressor.html' title='Javascript compression: YUI Compressor'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-2463142128002520209</id><published>2011-11-22T08:35:00.000-05:00</published><updated>2011-11-22T08:35:51.726-05:00</updated><title type='text'>Press Enter on a text box - JavaScript / Ajax / DHTML</title><content type='html'>Interesting.  I'm &lt;a href="http://bytes.com/topic/javascript/answers/94250-press-enter-text-box"&gt;seeing this too&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;I believe I noticed that the "Enter key" functionality depends on the&lt;br /&gt;presence of an  in the form. I had a form where I&lt;br /&gt;replaced it with a  (to allow underlined letters) and the Enter key&lt;br /&gt;stopped working there and then.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I was actually Googling up how to &lt;span style="font-style:italic;"&gt;stop&lt;/span&gt; folks from being able to submit a form by pressing return in a textbox, but it looks like if you remove the Submit button (and/or turn it into a normal type="button" INPUT element), that already happens.&lt;br /&gt;&lt;br /&gt;Interesting.  Hope that's a crossbrowser solution.  Hello, testing time.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-2463142128002520209?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/2463142128002520209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=2463142128002520209' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/2463142128002520209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/2463142128002520209'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/11/press-enter-on-text-box-javascript-ajax.html' title='Press Enter on a text box - JavaScript / Ajax / DHTML'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-5911995793086911564</id><published>2011-11-22T06:37:00.004-05:00</published><updated>2011-11-22T06:43:46.971-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gmail fail'/><title type='text'>Gmail Fail: No, seriously, Gmail, how do you let these emails through?</title><content type='html'>If your spam filter can't catch these, you're doing it wrong, okay?  I've posted about this before, and it's about the fifth or sixth time I've had one get through.  How does this happen?  Add a hard-coded rule, for heaven's sake.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;...&lt;br /&gt;Return-Path: &lt;drnormsas@adedejisanniclothingline.com&gt;&lt;br /&gt;Received: from p3plwbeout15-02.prod.phx3.secureserver.net (p3plsmtp15-02-2.prod.phx3.secureserver.net. [173.201.193.36])&lt;br /&gt;        by mx.google.com with SMTP id p1si11234722pbk.157.2011.11.21.19.30.25;&lt;br /&gt;        Mon, 21 Nov 2011 19:30:26 -0800 (PST)&lt;br /&gt;Received-SPF: neutral (google.com: 173.201.193.36 is neither permitted nor denied by best guess record for domain of drnormsas@adedejisanniclothingline.com) client-ip=173.201.193.36;&lt;br /&gt;...&lt;br /&gt;From: "Gmail Team" &lt;gmail.member.verification@gawab.com&gt;&lt;br /&gt;X-Sender: drnormsas@adedejisanniclothingline.com&lt;br /&gt;To: membershipupgrade@gmail.com&lt;br /&gt;Subject: ALERT : Gmail Member Warning&lt;br /&gt;Date: Mon, 21 Nov 2011 20:30:24 -0700&lt;br /&gt;Mime-Version: 1.0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dear Account Users,&lt;br /&gt;&lt;br /&gt;We regret to inform you that starting from 20th November 2011, Your Account will no longer allow you to send or welcome messages, files and pages due to malicious and spy wares activities detected on our old database system. To avoid this adverse effect on your Account, we want you to keep your Account content active and your data up to date on our new database system by providing us with your account information above correctly for proper confirmation.&lt;br /&gt;&lt;br /&gt;Email Address:&lt;br /&gt;Password:&lt;br /&gt;Re-Type Password:&lt;br /&gt;Full Names:&lt;br /&gt;Date of Birth:&lt;br /&gt;Occupation/Profession:&lt;br /&gt;Country:&lt;br /&gt;&lt;br /&gt;MEMBER-: Account owner that refuses to update his or her account within seven days of receiving this warning will lose his or her account permanently. your account need to be well checked and 100% verified so it will be ACTIVE and it will be UPGRADED automatically. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Member Verification &amp; Upgrade Team. ©2011&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://images.cheezburger.com/completestore/2009/7/25/128930549610788748.jpg"&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-5911995793086911564?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/5911995793086911564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=5911995793086911564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5911995793086911564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5911995793086911564'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/11/gmail-fail-no-seriously-gmail-how-do.html' title='Gmail Fail: No, seriously, Gmail, how do you let these emails through?'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-725050783087783351</id><published>2011-11-21T15:38:00.000-05:00</published><updated>2011-11-21T15:38:40.479-05:00</updated><title type='text'>Make form vars in jQuery Dialog play nice with ASP.NET</title><content type='html'>&lt;a href="http://stackoverflow.com/questions/757232/jquery-ui-dialog-with-asp-net-button-postback"&gt;c# - JQuery UI Dialog with Asp .NET button postback - Stack Overflow&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;$('#divname').parent().appendTo($("form:first"));&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;That was a pulling hair out situation.&lt;br /&gt;&lt;br /&gt;Got more help (and fuller description of what &lt;span style="font-style:italic;"&gt;was&lt;/span&gt; going on) &lt;a href="http://blog.roonga.com.au/2009/07/using-jquery-ui-dialog-with-aspnet-and.html"&gt;here&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;One of the first things you will notice when you try and use JQuery UI Dialog in ASP.Net page is it does not perform post backs from within the dialog window. This is because in a ASP.Net page there is only one form element and Jquery appends the dialog "div" outside of the form element.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-725050783087783351?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/725050783087783351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=725050783087783351' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/725050783087783351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/725050783087783351'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/11/make-form-vars-in-jquery-dialog-play.html' title='Make form vars in jQuery Dialog play nice with ASP.NET'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-962693828856900437</id><published>2011-11-16T15:26:00.005-05:00</published><updated>2011-11-16T16:06:59.491-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='noteToSelf'/><category scheme='http://www.blogger.com/atom/ns#' term='jqGrid'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><title type='text'>Note to self: Lots of jqGrid options with buttons to add a row or execute random code</title><content type='html'>&lt;pre&gt;&lt;span class="syntax0"&gt;&lt;span class="gutter"&gt;   1 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;=======================================================================&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   2 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;__&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;__&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;__&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;__&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;__&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;___&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;__&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;___&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;__&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   3 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;|&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;/&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;\&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;/&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;_`&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;|__)&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;|&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;|&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;\&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;/&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;\&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;\&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;/&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;|__&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;|__)&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;|__|&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;|__&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;/\&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;|&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;\&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   4 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;\__/&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;\__X&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;\__&amp;gt;&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;|&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;\&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;|&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;|__/&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;\__/&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;\/&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;|___&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;|&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;\&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;|&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;|&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;|___&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;/~~\&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;|__/&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;   5 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;=======================================================================&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   6 &lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;var&lt;/span&gt; lastSel &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;-&lt;/span&gt;&lt;span class="syntax-DIGIT"&gt;10&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   7 &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   8 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;http://www.trirand.com/jqgridwiki/doku.php?id=wiki:events&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;for&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;events.&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   9 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;http://www.ok-soft-gmbh.com/jqGrid/ActionButtons.htm&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;for&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;buttons&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;inline&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  10 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;http://stackoverflow.com/questions/5196387/jqgrid-editactioniconscolumn-events/5204793#5204793&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  11 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;      &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;for&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;description&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;of&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;above/formatter:actions&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  12 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;http://www.trirand.com/jqgridwiki/doku.php?id=wiki:form_editing&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;on&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;editing&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;and&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;using&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;add&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;buttons,&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;etc.&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  13 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;http://www.trirand.com/jqgridwiki/doku.php?id=wiki:custom_buttons&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;straight&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;custom&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;buttons&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  14 &lt;/span&gt;$&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;function&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  15 &lt;/span&gt;        $&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;#list&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;jqGrid&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  16 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;url&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;lt;%=&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;ResolveUrl(&amp;quot;~/secretLoc.aspx&amp;quot;)&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;%&amp;gt;?oper=DEMO_NAMES&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  17 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;editurl&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;lt;%=&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;ResolveUrl(&amp;quot;~/secretLoc.aspx&amp;quot;)&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;%&amp;gt;?oper=DEMO_NAME_EDIT&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  18 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;datatype&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;json&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  19 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;mtype&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;GET&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  20 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;colNames&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;[&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;Edit&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;+&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;Name&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;Type&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;Prefix&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;First&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;Middle&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;Last&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;Suffix&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;]&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  21 &lt;/span&gt;&lt;span class="syntax-LABEL"&gt;colModel&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;[&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  22 &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  23 &lt;/span&gt;        &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;name&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;act&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;index&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;act&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;width&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-DIGIT"&gt;40&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;align&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;center&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;sortable&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL2"&gt;false&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;formatter&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;actions&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  24 &lt;/span&gt;                 &lt;span class="syntax-LABEL"&gt;formatoptions&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  25 &lt;/span&gt;                         &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;we&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;want&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;use&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;[Enter]&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;key&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;save&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;the&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;row&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;and&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;[Esc]&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;cancel&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;editing.&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  26 &lt;/span&gt;                         &lt;span class="syntax-LABEL"&gt;keys&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL2"&gt;true&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;            &lt;br /&gt;&lt;span class="gutter"&gt;  27 &lt;/span&gt;                         &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;user&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;cannot&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;delete&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;aliases/names&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  28 &lt;/span&gt;                         delbutton &lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL2"&gt;false&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;                      &lt;br /&gt;&lt;span class="gutter"&gt;  29 &lt;/span&gt;                         &lt;span class="syntax-LABEL"&gt;onEdit&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;function&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;rowid&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  30 &lt;/span&gt;                                 &lt;span class="syntax-FUNCTION"&gt;alert&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;in&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;onEdit:&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;rowid=&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt;rowid&lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;\nWe&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;don't&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;need&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;return&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;anything&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  31 &lt;/span&gt;                         &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  32 &lt;/span&gt;                         &lt;span class="syntax-LABEL"&gt;onSuccess&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;function&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;jqXHR&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  33 &lt;/span&gt;                         &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;the&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;function&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;will&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;be&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;used&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;as&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;&amp;quot;succesfunc&amp;quot;&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;parameter&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;of&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;editRow&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;function&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  34 &lt;/span&gt;                         &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;(see&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;http://www.trirand.com/jqgridwiki/doku.php?id=wiki:inline_editing#editrow)&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  35 &lt;/span&gt;                                 &lt;span class="syntax-FUNCTION"&gt;alert&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;in&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;onSuccess&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;used&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;only&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;for&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;remote&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;editing:&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  36 &lt;/span&gt;                                   &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;\nresponseText=&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt;jqXHR&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;responseText&lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  37 &lt;/span&gt;                                   &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;\n\nWe&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;can&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;verify&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;the&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;server&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;response&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;and&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;return&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;false&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;in&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;case&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;of&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  38 &lt;/span&gt;                                   &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;error&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;response.&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;return&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;true&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;confirm&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;that&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;the&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;response&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;is&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;successful&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  39 &lt;/span&gt;                         &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;we&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;can&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;verify&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;the&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;server&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;response&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;and&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;interpret&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;it&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;do&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;as&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;an&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;error&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  40 &lt;/span&gt;                         &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;in&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;the&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;case&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;we&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;should&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;return&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;false.&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;In&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;the&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;case&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;onError&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;will&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;be&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;called&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  41 &lt;/span&gt;                                 &lt;span class="syntax-KEYWORD1"&gt;return&lt;/span&gt; &lt;span class="syntax-LITERAL2"&gt;true&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  42 &lt;/span&gt;                         &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  43 &lt;/span&gt;                         &lt;span class="syntax-LABEL"&gt;onError&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;function&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;rowid&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; jqXHR&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; textStatus&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  44 &lt;/span&gt;                         &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;the&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;function&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;will&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;be&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;used&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;as&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;&amp;quot;errorfunc&amp;quot;&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;parameter&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;of&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;editRow&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;function&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  45 &lt;/span&gt;                         &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;(see&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;http://www.trirand.com/jqgridwiki/doku.php?id=wiki:inline_editing#editrow)&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  46 &lt;/span&gt;                         &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;and&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;saveRow&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;function&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  47 &lt;/span&gt;                         &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;(see&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;http://www.trirand.com/jqgridwiki/doku.php?id=wiki:inline_editing#saverow)&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  48 &lt;/span&gt;                                 &lt;span class="syntax-FUNCTION"&gt;alert&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;in&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;onError&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;used&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;only&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;for&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;remote&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;editing:&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  49 &lt;/span&gt;                                           &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;\nresponseText=&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt;jqXHR&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;responseText&lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  50 &lt;/span&gt;                                           &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;\nstatus=&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt;jqXHR&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;status&lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  51 &lt;/span&gt;                                           &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;\nstatusText&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt;jqXHR&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;statusText&lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  52 &lt;/span&gt;                                           &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;\n\nWe&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;don't&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;need&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;return&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;anything&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  53 &lt;/span&gt;                         &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  54 &lt;/span&gt;                         &lt;span class="syntax-LABEL"&gt;afterSave&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;function&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;rowid&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  55 &lt;/span&gt;                           &lt;span class="syntax-FUNCTION"&gt;alert&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;in&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;afterSave&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;(Submit):&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;rowid=&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt;rowid&lt;br /&gt;&lt;span class="gutter"&gt;  56 &lt;/span&gt;                                   &lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;\nWe&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;don't&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;need&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;return&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;anything&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  57 &lt;/span&gt;                         &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  58 &lt;/span&gt;                         &lt;span class="syntax-LABEL"&gt;afterRestore&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;function&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;rowid&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  59 &lt;/span&gt;                           &lt;span class="syntax-FUNCTION"&gt;alert&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;in&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;afterRestore&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;(Cancel):&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;rowid=&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt;rowid&lt;br /&gt;&lt;span class="gutterH"&gt;  60 &lt;/span&gt;                                   &lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;\nWe&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;don't&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;need&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;return&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;anything&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  61 &lt;/span&gt;                         &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;      &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  62 &lt;/span&gt;                         &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;delOptions:&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;myDelOptions&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  63 &lt;/span&gt;                 &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  64 &lt;/span&gt;        &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;                             &lt;br /&gt;&lt;span class="gutterH"&gt;  65 &lt;/span&gt;        &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt; name&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;EDITME&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; key&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL2"&gt;true&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; index&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;EDITME&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; width&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;12&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  66 &lt;/span&gt;        &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt; name&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;NAMETYPE&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; index&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;NAMETYPE&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; width&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;65&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  67 &lt;/span&gt;        &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt; name&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;PREFIX&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; editable&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL2"&gt;true&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; index&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;PREFIX&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; edittype&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;select&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; &lt;br /&gt;&lt;span class="gutter"&gt;  68 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;editoptions&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;value&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;lt;%=&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;helperClasses.utils.dataTable2JqGridEditoptions(dtNamePrefixes)&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; &lt;br /&gt;&lt;span class="gutter"&gt;  69 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;width&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;80&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  70 &lt;/span&gt;        &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt; name&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;FNAME&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; editable&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL2"&gt;true&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; index&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;FNAME&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; width&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;200&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  71 &lt;/span&gt;        &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt; name&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;MNAME&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; editable&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL2"&gt;true&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; index&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;MNAME&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; width&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;300&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  72 &lt;/span&gt;        &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt; name&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;LNAME&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; editable&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL2"&gt;true&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; index&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;LNAME&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; width&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;200&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  73 &lt;/span&gt;        &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt; name&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;SUFFIX&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; editable&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL2"&gt;true&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; index&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;SUFFIX&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; edittype&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;select&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; &lt;br /&gt;&lt;span class="gutter"&gt;  74 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;editoptions&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;value&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;lt;%=&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;helperClasses.utils.dataTable2JqGridEditoptions(dtNameSuffixes)&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; &lt;br /&gt;&lt;span class="gutterH"&gt;  75 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;width&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;80&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  76 &lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;]&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  77 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;pager&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;#pager&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  78 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;rowNum&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;10&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  79 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;rowList&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;[&lt;/span&gt;&lt;span class="syntax-DIGIT"&gt;10&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;20&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;30&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;]&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  80 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;sortname&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;p_name_prefix&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  81 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;sortorder&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;desc&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  82 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;viewrecords&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL2"&gt;true&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  83 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;height&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;230&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  84 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;width&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;890&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  85 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;jsonReader&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt; repeatitems&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL2"&gt;false&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; id&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;0&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  86 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;caption&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;All&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;Names&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  87 &lt;/span&gt;                &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;afterShowForm:afterShowAdd,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  88 &lt;/span&gt;                        &lt;br /&gt;&lt;span class="gutter"&gt;  89 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;onSelectRow&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;function&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;id&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt; &lt;br /&gt;&lt;span class="gutterH"&gt;  90 &lt;/span&gt;                &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;id &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; id&lt;span class="syntax-OPERATOR"&gt;!&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt;lastSel &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; lastSel &lt;span class="syntax-OPERATOR"&gt;!&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;-&lt;/span&gt;&lt;span class="syntax-DIGIT"&gt;10&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt; &lt;br /&gt;&lt;span class="gutter"&gt;  91 &lt;/span&gt;                        &lt;span class="syntax-FUNCTION"&gt;jQuery&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL2"&gt;this&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;restoreRow&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;lastSel&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt; &lt;br /&gt;&lt;span class="gutter"&gt;  92 &lt;/span&gt;                        lastSel&lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt;id&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt; &lt;br /&gt;&lt;span class="gutter"&gt;  93 &lt;/span&gt;                &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt; &lt;br /&gt;&lt;span class="gutter"&gt;  94 &lt;/span&gt;                        &lt;span class="syntax-FUNCTION"&gt;jQuery&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL2"&gt;this&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;editRow&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;id&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; &lt;span class="syntax-LITERAL2"&gt;true&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt; &lt;br /&gt;&lt;span class="gutterH"&gt;  95 &lt;/span&gt;                &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  96 &lt;/span&gt;                                                        &lt;br /&gt;&lt;span class="gutter"&gt;  97 &lt;/span&gt;        &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;navGrid&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;#pager&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;edit&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL2"&gt;false&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;add&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL2"&gt;true&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;addtext&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;Add&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;New&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;Name&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  98 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;refresh&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL2"&gt;false&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;del&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL2"&gt;false&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;search&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL2"&gt;false&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  99 &lt;/span&gt;        &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;navButtonAdd&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;#pager&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt; 100 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;caption&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;Add&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;new&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;name&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; onClickButton&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;function&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt; &lt;span class="syntax-FUNCTION"&gt;helloWorld&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;1001&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; &lt;br /&gt;&lt;span class="gutter"&gt; 101 &lt;/span&gt;                &lt;span class="syntax-LABEL"&gt;position&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;first&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt; 102 &lt;/span&gt;        &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt; 103 &lt;/span&gt;                                        &lt;br /&gt;&lt;span class="gutter"&gt; 104 &lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-962693828856900437?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/962693828856900437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=962693828856900437' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/962693828856900437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/962693828856900437'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/11/note-to-self-lots-of-jqgrid-options.html' title='Note to self: Lots of jqGrid options with buttons to add a row or execute random code'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-8083025349632362357</id><published>2011-11-15T07:55:00.000-05:00</published><updated>2011-11-15T07:55:56.959-05:00</updated><title type='text'>Partially corroborating someone else's review of MonoDevelop</title><content type='html'>&lt;a href="http://mikemacd.wordpress.com/2011/11/07/linux-gui-development-monodevelop-2-6-review-and-screenshots/#comments"&gt;Linux GUI Development: Monodevelop 2.6 review and screenshots � The Mac Daddy&lt;/a&gt;: &lt;blockquote&gt;This blog is part of a series looking at programming tools on linux and covers MonoDevelop 2.6&lt;br /&gt;&lt;br /&gt;MonoDevelop 2.6 is awesome  I first tried MonoDevelop about a year ago and gave up quickly. It just wasn’t usable, but these days it’s a totally different story. &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I've got to say that I've had a similar experience.  Last time I tried Mono/MonoDevelop, it stunk.  And I was largely using SharpDevelop for my C# play (from which MonoDevelop forked), so it wasn't simply disliking the IDE's setup.  Now, it seems ready to do some work, and I'm going to try this morning.&lt;br /&gt;&lt;br /&gt;It does seem to eat up the battery on OS X, but we'll see if I can't get a couple of hours.  I've had to remove the &lt;a href="http://www.asp.net/ajaxlibrary/AjaxControlToolkitSampleSite/"&gt;Ajax Control Toolkit&lt;/a&gt; reference, which I was using for its pretty danged impressive &lt;a href="http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/ComboBox/ComboBox.aspx"&gt;ComboBox implementation&lt;/a&gt;, but that was my only change to get things running.  Oh, that, and using ClearSelection on DropDownLists, as having a default selected and then filling the GUI with values later apparently clashes in Mono-land.&lt;br /&gt;&lt;br /&gt;But it's otherwise pixel perfect so far.  I'm using data serialized to XML already for testing, so there's no chance for a connection issue.  We'll see.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-8083025349632362357?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/8083025349632362357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=8083025349632362357' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/8083025349632362357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/8083025349632362357'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/11/partially-corroborating-someone-elses.html' title='Partially corroborating someone else&apos;s review of MonoDevelop'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-9011303675622791638</id><published>2011-11-14T11:33:00.004-05:00</published><updated>2011-11-14T11:44:29.297-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='mono'/><title type='text'>Windows.Forms with MonoDevelop</title><content type='html'>&lt;a href="http://ubuntuforums.org/showthread.php?t=1267919"&gt;MonoDevelop   WinForms? - Ubuntu Forums&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Re: MonoDevelop   WinForms?&lt;br /&gt;WinForms is the System.Windows.Forms namespace. MonoDevelop has no integrated support for designing GUIs with WinForms - instead, it has an integrated editor for GTK# GUIs. You can hand-write WinForms GUIs if you want to, though&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Welp, that kinda stinks.  I actually ordered a horrendously inexpensive, likely wholly underpowered laptop so that I could program ASP.NET on the go (well, and to have an inexpensive copy of Windows 7 handy), and I think MonoDevelop on OS X might make me think I was an idiot for doing that for ASP.NET, but now not so much for when I want to run Windows applications.  &lt;br /&gt;&lt;br /&gt;(A laptop just for Windows?  RLY?  I seriously considered the MacBook Air and $130 for Windows 7, but I couldn't justify the extra price.  And there are times I've got to get out of the home office and run to Starbucks to keep programming, so mobility is relatively important.  And, finally, I had Boot Camp on my MacBook, which doubles as my primary OS X box, before, but it wasn't particularly wieldy.  I often like to boot into OS X, and being a hard reboot away was simply too far.  Another laptop "needed".  There's just nothing good under $400.  We'll see if that &lt;a href="http://www.anandtech.com/show/4660/amd-updates-brazos-with-e450-e300-and-c60-apus"&gt;AMD E-450&lt;/a&gt; is any good, though &lt;a href="http://www.cpubenchmark.net/cpu.php?cpu=AMD+E-450+APU+with+Radeon+HD+Graphics"&gt;CPU Benchmarks tells me probably not&lt;/a&gt; (compare to my &lt;a href="http://www.cpubenchmark.net/cpu.php?cpu=Intel+Core2+Duo+P7550+%40+2.26GHz"&gt;Core 2 Duo&lt;/a&gt; and &lt;a href="http://www.cpubenchmark.net/cpu.php?cpu=AMD+Athlon+II+X4+640"&gt;Athlon X4&lt;/a&gt;.  Ouch.))&lt;br /&gt;&lt;br /&gt;That said, the Windows.Forms project does run with MonoDevelop/Mono without any tinkering, which is quite impressive.  Obviously GTK look and feel, but it runs!  Much more robust/mature than the last time I fooled around with this, iirc.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-9011303675622791638?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/9011303675622791638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=9011303675622791638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/9011303675622791638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/9011303675622791638'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/11/windowsforms-with-monodevelop.html' title='Windows.Forms with MonoDevelop'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-4705097125711567919</id><published>2011-11-13T18:01:00.003-05:00</published><updated>2011-11-13T18:07:05.382-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Al'/><category scheme='http://www.blogger.com/atom/ns#' term='ipod'/><title type='text'>iOS device full?  It could be Al Gore</title><content type='html'>My iPod touch (8 gigs) was pretty much full, and one of the worst culprits was the Apps section.  It was well over two gigs.  But when I added up all the sizes reported in iTunes, it wasn't close.  I didn't have more than a gig of apps on there.&lt;br /&gt;&lt;br /&gt;Long story short, after removing lots of apps I thought might have been hiding how much space they were taking (Kindle, my Gmail account in Mail, etc), I finally figured out it was Al Gore's &lt;span style="font-style:italic;"&gt;Our Choice&lt;/span&gt; app.  It was taking up about a gig all by itself, though it only reported about 60 megs [sic!].&lt;br /&gt;&lt;br /&gt;It must be downloading tons of stuff in the background though I can never remember it not showing something when I was outside of WiFi range.  Perhaps it was uncompressing files to show them and never recompressing, perhaps even doing it again with each view.&lt;br /&gt;&lt;br /&gt;Strange.  But that explained the lack o' space.  And when you're shooting more pictures and movies because of how awsomez!11! iCloud's photo stream is, well, choo needs cho space.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-4705097125711567919?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/4705097125711567919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=4705097125711567919' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/4705097125711567919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/4705097125711567919'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/11/ios-device-full-it-could-be-al-gore.html' title='iOS device full?  It could be Al Gore'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-2930415742603928196</id><published>2011-11-10T08:31:00.001-05:00</published><updated>2011-11-10T08:45:22.799-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='json'/><title type='text'>A decent JSON intro from MS, but with a good attitude towards OS</title><content type='html'>&lt;a href="http://msdn.microsoft.com/en-us/library/bb299886.aspx"&gt;An Introduction to JavaScript Object Notation (JSON) in JavaScript and .NET&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;* Jayrock is open-source, making it possible to extend or customize as needed.&lt;br /&gt;...&lt;br /&gt;* ... While ASP.NET AJAX includes some support for creating and parsing JSON text, its primary purpose is to offer a rich platform for building end-to-end Ajax-style web applications in ASP.NET. The extra bells and whistles can be distracting when your main focus is JSON.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;That's the kind of attitude I like to see.  So much stuff is overkill, like XML for AJAX.&lt;br /&gt;&lt;br /&gt;EDIT: Also good -- The comments in json2.js, a reference impl for JSON &lt;a href="https://raw.github.com/douglascrockford/JSON-js/master/json2.js"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;// Due to a specification blunder in ECMAScript, typeof null is 'object',&lt;br /&gt;// so watch out for that case.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-2930415742603928196?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/2930415742603928196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=2930415742603928196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/2930415742603928196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/2930415742603928196'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/11/decent-json-intro-from-ms-but-with-good.html' title='A decent JSON intro from MS, but with a good attitude towards OS'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-7357071711822325451</id><published>2011-11-09T09:40:00.000-05:00</published><updated>2011-11-09T09:41:05.737-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='noteToSelf'/><title type='text'>Note to Self: Set Breakpoints in C# Programmatically</title><content type='html'>&lt;tt&gt;System.Diagnostics.Debugger.Break();&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;Enjoy.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-7357071711822325451?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/7357071711822325451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=7357071711822325451' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7357071711822325451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7357071711822325451'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/11/note-to-self-set-breakpoints-in-c.html' title='Note to Self: Set Breakpoints in C# Programmatically'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-514387608485753067</id><published>2011-11-06T09:29:00.000-05:00</published><updated>2011-11-06T09:29:58.843-05:00</updated><title type='text'>The Mac Tax for iCloud's Photo Stream</title><content type='html'>I've been impressed to find that my iPod touch has been synchronizing over WiFi when I start iTunes now, which is admittedly pretty neat.  The more transparent the content loading process, the better -- and here, that's "Better as in magical" better.&lt;br /&gt;&lt;br /&gt;Was looking to see where the magic was with my pictures, though, and things took a dive.  I'd just gotten an extended battery for my Android phone that required a replacement phone back to cover the battery on steroids, and the back I received had  much of its matte finish sluff off in the packaging.  I took a picture to email the merchant with my iPod touch, and went to my Mac, ready to email it.&lt;br /&gt;&lt;br /&gt;It's nowhere.  I have Lion, but never upgraded iPhoto to match, so no Photo Stream there.  Nor is Photo Stream automatically synchronizing with my Pictures folder.  &lt;br /&gt;&lt;br /&gt;But guess what?  It is syncing with Windows Vista for free.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gottabemobile.com/2011/10/12/icloud-photo-stream-on-windows-pc/"&gt;How To Get iCloud&amp;#39;s Photo Stream Working On A PC&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;I find it interesting that Windows users can get this utility for free. Whereas on the Mac, in order to get iCloud syncing you have to upgrade to OS X Lion, which costs $30. One of the few times PCs get the advantage over Macs with iDevices.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Yep, not just Lion, but also iPhoto for $15 more.  So that's $45 to use Photo Stream on my Mac, $0 on Windows.&lt;br /&gt;&lt;br /&gt;I recently defended Apple to someone who asked why they had to upgrade everything to the latest version to have it all work like this...&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;I think this way of doing business (having a very small set of supported devices and software) fairly obviously allows Apple to offer better integration and fancier features.  And the market seems to respond to it.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;But it still makes you wonder when Windows users come out ahead at times.  (I believe the last time I posted about it was when a version of iTunes worked with a much older Windows computer than Mac.)&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-514387608485753067?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/514387608485753067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=514387608485753067' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/514387608485753067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/514387608485753067'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/11/mac-tax-for-iclouds-photo-stream.html' title='The Mac Tax for iCloud&apos;s Photo Stream'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-5191595478095888479</id><published>2011-11-04T11:10:00.001-04:00</published><updated>2011-11-04T11:12:55.282-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Coding Horror's "A Visual Explanation of SQL Joins"</title><content type='html'>Every so often I talk myself out of believing I know which JOIN I want to use in SQL-land.  "LEFT OUTER doesn't mean "OUTER" from the point of view of the LEFT table does it?  There's no way.  It's the entire LEFT table's OUTERness.  Right?  Yes.  Right?  Well, try it.  But it's a compound statement.  I don't &lt;i&gt;really&lt;/i&gt; want to write a stupid trial statement, do I?  I know this.  It's all of the LEFT."&lt;br /&gt;&lt;br /&gt;"Right?"&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html"&gt;This visual review&lt;/a&gt; is great.  LEFT OUTER JOIN is exactly what I thought it was.  (Thanks &lt;a href="http://www.google.com/url?sa=t&amp;rct=j&amp;q=dennis%20green%20are%20who%20we%20thought&amp;source=web&amp;cd=4&amp;ved=0CDYQtwIwAw&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dm_N1OjGhIFc&amp;ei=XgC0Ts6oJcHqtgfFpM33Aw&amp;usg=AFQjCNHzSIXaLaui3j0oejmwp3payXzoMA"&gt;Denny Green&lt;/a&gt;): &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Left outer join produces a complete set of records from Table A, with the matching records (where available) in Table B. If there is no match, the right side will contain null.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://codinghorror.typepad.com/.a/6a0120a85dcdae970b01287770273e970c-pi"&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;And continue...  That'll last me another year or so.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-5191595478095888479?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/5191595478095888479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=5191595478095888479' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5191595478095888479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5191595478095888479'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/11/coding-horrors-visual-explanation-of.html' title='Coding Horror&apos;s &quot;A Visual Explanation of SQL Joins&quot;'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-3502924924943778178</id><published>2011-11-03T08:27:00.004-04:00</published><updated>2011-11-03T08:33:12.066-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='problem solved'/><title type='text'>Link textbox (html form input text) with dropdown (html select)</title><content type='html'>Codige follows.  This is the first "seems to work" version.  The Microsoft AJAX Control Toolkit ComboBox does a good job of providing almost identical functionality, but doesn't always show the "select"/dropdown portion of the pair.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size:9px"&gt;&lt;span class="syntax0"&gt;&lt;span class="gutter"&gt;   1 &lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;var&lt;/span&gt; gintStart &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;0&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   2 &lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;var&lt;/span&gt; gintEnd &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;0&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   3 &lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;var&lt;/span&gt; gstrLastVal &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   4 &lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;   5 &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   6 &lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;function&lt;/span&gt; &lt;span class="syntax-FUNCTION"&gt;findMatch&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   7 &lt;/span&gt;        frm1 &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; document&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;forms&lt;span class="syntax-OPERATOR"&gt;[&lt;/span&gt;&lt;span class="syntax-DIGIT"&gt;0&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;]&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   8 &lt;/span&gt;        intMatch &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;-&lt;/span&gt;&lt;span class="syntax-DIGIT"&gt;1&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   9 &lt;/span&gt;        txtLoc &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; frm1&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;elements&lt;span class="syntax-OPERATOR"&gt;[&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;txtLoc&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;]&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  10 &lt;/span&gt;        lstLoc &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; frm1&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;elements&lt;span class="syntax-OPERATOR"&gt;[&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;lt;%=lstLocs.ClientID%&amp;gt;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;]&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  11 &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  12 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;var&lt;/span&gt; strCurText &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; txtLoc&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;value&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  13 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;strCurText&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;length &lt;span class="syntax-OPERATOR"&gt;&amp;lt;=&lt;/span&gt; gstrLastVal&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;length&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  14 &lt;/span&gt;                &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;ignore&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;all&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;this;&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;allow&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;deletes&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;gracefully&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  15 &lt;/span&gt;        &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;else&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  16 &lt;/span&gt;                &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;if&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;(&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;gstrLastVal.length&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;&amp;gt;=&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;2&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  17 &lt;/span&gt;                &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;(0&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;!=&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;txtLoc.value.indexOf(gstrLastVal))&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;)&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;{&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;       &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  18 &lt;/span&gt;                &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;gets&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;rid&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;of&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;any&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;hanging&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;on&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;autofilled&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;text&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  19 &lt;/span&gt;                &lt;br /&gt;&lt;span class="gutterH"&gt;  20 &lt;/span&gt;                &lt;br /&gt;&lt;span class="gutter"&gt;  21 &lt;/span&gt;                &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-DIGIT"&gt;0&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;!&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; txtLoc&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;value&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;toUpperCase&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;indexOf&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;gstrLastVal&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;toUpperCase&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  22 &lt;/span&gt;                        &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;txtLoc.value.slice(0,&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;gstrLastVal.length&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;-&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;1);&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  23 &lt;/span&gt;                        &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;then&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;again&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;let&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;them&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;do&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;what&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;they&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;want.&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;Don't&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;try&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;overcomplete&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  24 &lt;/span&gt;                        &lt;br /&gt;&lt;span class="gutterH"&gt;  25 &lt;/span&gt;                &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;else&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  26 &lt;/span&gt;                        &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;txtLoc&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;value&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;length &lt;span class="syntax-OPERATOR"&gt;&amp;gt;&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;0&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  27 &lt;/span&gt;                                &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;go&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;backwards&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;grab&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;the&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;first&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;match&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  28 &lt;/span&gt;                                &lt;span class="syntax-KEYWORD1"&gt;for&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;var&lt;/span&gt; i &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; lstLoc&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;options&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;length &lt;span class="syntax-OPERATOR"&gt;-&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;1&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt; i &lt;span class="syntax-OPERATOR"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;0&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt; i&lt;span class="syntax-OPERATOR"&gt;-&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;-&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  29 &lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  30 &lt;/span&gt;                                        &lt;span class="syntax-KEYWORD1"&gt;var&lt;/span&gt; strOptTxt &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; lstLoc&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;options&lt;span class="syntax-OPERATOR"&gt;[&lt;/span&gt;i&lt;span class="syntax-OPERATOR"&gt;]&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;text&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;toUpperCase&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  31 &lt;/span&gt;                                &lt;br /&gt;&lt;span class="gutter"&gt;  32 &lt;/span&gt;                                        &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-DIGIT"&gt;0&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; strOptTxt&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;indexOf&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;txtLoc&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;value&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;toUpperCase&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  33 &lt;/span&gt;                                                intMatch &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; i&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  34 &lt;/span&gt;                                        &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  35 &lt;/span&gt;                                &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  36 &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  37 &lt;/span&gt;                                &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;-&lt;/span&gt;&lt;span class="syntax-DIGIT"&gt;1&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;!&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; intMatch&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  38 &lt;/span&gt;                                        lstLoc&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;options&lt;span class="syntax-OPERATOR"&gt;[&lt;/span&gt;intMatch&lt;span class="syntax-OPERATOR"&gt;]&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;selected &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-LITERAL2"&gt;true&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  39 &lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  40 &lt;/span&gt;                                        txtLoc&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;value &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; lstLoc&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;options&lt;span class="syntax-OPERATOR"&gt;[&lt;/span&gt;intMatch&lt;span class="syntax-OPERATOR"&gt;]&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;text&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  41 &lt;/span&gt;                                        gintStart &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; strCurText&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;length&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  42 &lt;/span&gt;                                        gintEnd &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; txtLoc&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;value&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;length&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  43 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;(kinda&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;ruining&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;the&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;whitespace&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;reduce&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;width&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;for&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;blog)&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  44 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;createSelection(txtLoc,strCurText.length,txtLoc.value.length);&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  45 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;it&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;looks&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;like&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;this&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;tries&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;set&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;the&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;selection&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;while&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;focus&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;is&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  46 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;still&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;going&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;another&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;control,&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;blowing&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;up&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;the&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;selection.&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  47 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;thus&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;the&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;delay&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;tactics.&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  48 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;unsuccessful&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;delay&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;tactics&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;commented,&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;below.&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  49 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;backdoorSelection();&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  50 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;setTimeout(&amp;quot;createSelection(txtLoc,strCurText.length,txtLoc.value.length)&amp;quot;,100);&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  51 &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;setTimeout(&amp;quot;createSelection(txtLoc,4,9)&amp;quot;,100);&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  52 &lt;/span&gt;                                        &lt;span class="syntax-FUNCTION"&gt;setTimeout&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;backdoorSelection()&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;30&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  53 &lt;/span&gt;                                &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;else&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  54 &lt;/span&gt;                                        &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;no&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;match.&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;Deselect&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;anything&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;selected&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  55 &lt;/span&gt;                                        lstLoc&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;selectedIndex &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;-&lt;/span&gt;&lt;span class="syntax-DIGIT"&gt;1&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  56 &lt;/span&gt;                                &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  57 &lt;/span&gt;                        &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  58 &lt;/span&gt;                &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  59 &lt;/span&gt;        &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  60 &lt;/span&gt;        gstrLastVal &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; strCurText&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  61 &lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  62 &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  63 &lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;function&lt;/span&gt; &lt;span class="syntax-FUNCTION"&gt;backdoorSelection&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  64 &lt;/span&gt;        &lt;span class="syntax-FUNCTION"&gt;createSelection&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;document&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;forms&lt;span class="syntax-OPERATOR"&gt;[&lt;/span&gt;&lt;span class="syntax-DIGIT"&gt;0&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;]&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;elements&lt;span class="syntax-OPERATOR"&gt;[&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;txtLoc&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;]&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; gintStart&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; gintEnd&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  65 &lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  66 &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  67 &lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;function&lt;/span&gt; &lt;span class="syntax-FUNCTION"&gt;createSelection&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;field&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; start&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; end&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  68 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;field&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;createTextRange&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  69 &lt;/span&gt;                &lt;span class="syntax-KEYWORD1"&gt;var&lt;/span&gt; selRange &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; field&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;createTextRange&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  70 &lt;/span&gt;                selRange&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;collapse&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL2"&gt;true&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  71 &lt;/span&gt;                selRange&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;moveStart&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;character&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; start&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  72 &lt;/span&gt;                selRange&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;moveEnd&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;character&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; end&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  73 &lt;/span&gt;                selRange&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;select&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  74 &lt;/span&gt;        &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;else&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;field&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;setSelectionRange&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  75 &lt;/span&gt;                field&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;setSelectionRange&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;start&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; end&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  76 &lt;/span&gt;        &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;else&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;field&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;selectionStart&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  77 &lt;/span&gt;                field&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;selectionStart &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; start&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  78 &lt;/span&gt;                field&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;selectionEnd &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; end&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  79 &lt;/span&gt;        &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  80 &lt;/span&gt;        field&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;focus&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  81 &lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-3502924924943778178?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/3502924924943778178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=3502924924943778178' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/3502924924943778178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/3502924924943778178'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/11/link-textbox-html-form-input-text-with.html' title='Link textbox (html form input text) with dropdown (html select)'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-54582548369181184</id><published>2011-11-03T08:18:00.000-04:00</published><updated>2011-11-03T08:18:33.964-04:00</updated><title type='text'>Note to Self: Pin Any Item to the Windows 7 Taskbar</title><content type='html'>&lt;a href="http://lifehacker.com/5382578/pin-any-item-to-the-windows-7-taskbar"&gt;Pin Any Item to the Windows 7 Taskbar&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;[T]here is only one simple rule that you have to follow in order to make almost any item "pinnable" to the taskbar: create a shortcut, save it somewhere safe so you don't delete it by mistake, create a shortcut to that shortcut and add the explorer word before its path. Then you have a shortcut which you can pin to the taskbar.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Squirrel-SQL uses a bat file, and apparently that wasn't taskbar worthy.  Now I have two acorns on my taskbar when SQuirreL is running (the "explorer" app and the actual Java app), but that's better than none when it isn't.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-54582548369181184?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/54582548369181184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=54582548369181184' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/54582548369181184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/54582548369181184'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/11/note-to-self-pin-any-item-to-windows-7.html' title='Note to Self: Pin Any Item to the Windows 7 Taskbar'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-1743147869606762978</id><published>2011-10-31T10:58:00.000-04:00</published><updated>2011-10-31T10:58:15.289-04:00</updated><title type='text'>F1 to VIm in Visual Studio</title><content type='html'>Visual Studio supports sending your code to an external tool, and one of those can be VIm.  So hello, F1 to VIm.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://vim.wikia.com/wiki/Integrate_gvim_with_Visual_Studio"&gt;Integrate gvim with Visual Studio - Vim Tips Wiki&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Vim as an External ToolEdit&lt;br /&gt;If you like Vim and use MS Visual Studio .NET for debugging and want a lightweight way to open the file you're currently debugging in VS in Vim, you can add Vim as an external tool. This will let you use a single keystroke to open the current VS file in vim with the cursor at the same line and even at the same column.&lt;br /&gt;&lt;br /&gt;The Tool: In Visual Studio, Tools &gt; External Tools &gt; Add:&lt;br /&gt;&lt;br /&gt;Title: &amp;Vim&lt;br /&gt;Command: C:\Vim\vim73\gvim.exe&lt;br /&gt;Arguments: --servername VimualStudio --remote-silent +"call cursor($(CurLine),$(CurCol))" $(ItemFileName)$(ItemExt)&lt;br /&gt;Initial directory: $(ItemDir)&lt;br /&gt;If you have other settings you'd like to apply (like normal zz to centre the cursor or updating path for :find, then you can put them in ~/.vim/visualstudioinvoke.vim and add +"runtime visualstudioinvoke.vim" before $(ItemFileName).&lt;br /&gt;The Shortcut: In Visual Studio, Tools -&gt; Options -&gt; Keyboard:&lt;br /&gt;&lt;br /&gt;Command: ExternalCommand1 (it's easiest if you move your Vim external tool to be the first, otherwise use the correct index).&lt;br /&gt;Shortcut key: &lt;F1&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-1743147869606762978?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/1743147869606762978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=1743147869606762978' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/1743147869606762978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/1743147869606762978'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/10/f1-to-vim-in-visual-studio.html' title='F1 to VIm in Visual Studio'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-3526992740776035018</id><published>2011-10-26T09:53:00.003-04:00</published><updated>2011-11-03T08:31:03.803-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='example'/><category scheme='http://www.blogger.com/atom/ns#' term='noteToSelf'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><title type='text'>Note to self: How postabacks and runat server works</title><content type='html'>Quick refresh.  From php/mySQL to ASP.NET again takes a quick head rethread.&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;&lt;pre style="font-size:10px"&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Linq;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Web.UI;&lt;br /&gt;using System.Web.UI.WebControls;&lt;br /&gt;&lt;br /&gt;namespace WebApplication2&lt;br /&gt;{&lt;br /&gt; public partial class _Default : System.Web.UI.Page&lt;br /&gt; {&lt;br /&gt;  protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;  {&lt;br /&gt;&lt;br /&gt;   string strReturn = "";&lt;br /&gt;&lt;br /&gt;   if (!IsPostBack)&lt;br /&gt;   {&lt;br /&gt;    strReturn += "Not a post back&amp;lt;br&gt;\n";&lt;br /&gt;   }&lt;br /&gt;   else&lt;br /&gt;   {&lt;br /&gt;    strReturn += "Post back&amp;lt;br&gt;\n";&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   strReturn += Request.QueryString.Count + " :: " + Request.Form.Count + "&amp;lt;br&gt;";&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   if (null == Request.Form["spam"]) {&lt;br /&gt;    strReturn += "nullige&amp;lt;br&gt;\n";&lt;br /&gt;   }&lt;br /&gt;   else&lt;br /&gt;   {&lt;br /&gt;    strReturn += "&amp;lt;h2&gt;" + Request.Form["spam"] + "&amp;lt;/h2&gt;\n";&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   foreach (string strKey in Request.Form.Keys)&lt;br /&gt;   {&lt;br /&gt;    strReturn += strKey + " :: " + Request.Form[strKey] + "&amp;lt;br&gt;\n";&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   foreach (string strKey in Request.QueryString.Keys)&lt;br /&gt;   {&lt;br /&gt;    strReturn += strKey + " || " + Request.QueryString[strKey] + "&amp;lt;br&gt;\n";&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Response.Write(strReturn);&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"&lt;br /&gt; Inherits="WebApplication2._Default" %&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"&lt;br /&gt; "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &gt;&lt;br /&gt;&amp;lt;head runat="server"&gt;&lt;br /&gt;    &amp;lt;title&gt;&amp;lt;/title&gt;&lt;br /&gt;&amp;lt;/head&gt;&lt;br /&gt;&amp;lt;body&gt;&lt;br /&gt;    &amp;lt;form id="form1" runat="server"&gt;&lt;br /&gt;    &amp;lt;div&gt;&lt;br /&gt;  &amp;lt;input runat="server" type="text" name="nameIsWorthlessOnServer" id="spam" value="pow" /&gt;&amp;lt;br /&gt;&lt;br /&gt;  &amp;lt;input type="submit" runat="server" /&gt;&lt;br /&gt;    &amp;lt;/div&gt;&lt;br /&gt;    &amp;lt;/form&gt;&lt;br /&gt;&amp;lt;/body&gt;&lt;br /&gt;&amp;lt;/html&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/tt&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-3526992740776035018?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/3526992740776035018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=3526992740776035018' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/3526992740776035018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/3526992740776035018'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/10/note-to-self-how-postabacks-and-runat.html' title='Note to self: How postabacks and runat server works'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-4863465642714517434</id><published>2011-10-22T16:07:00.006-04:00</published><updated>2011-10-22T16:17:17.858-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fonts'/><title type='text'>The smallest monospace programmer fonts EVAH</title><content type='html'>I keep looking for good, clear programmer fonts to make my screen "bigger" on my laptop.  Recently took an on-site contract where the monitors are 1280x1024 (iirc, and [sic] while we're at it).  That stinks.  I'm bringing in an old CRT for now, as apparently items not bolted down sometimes walk over the weekend, but I again wanted a tiny font.&lt;br /&gt;&lt;br /&gt;I usually use &lt;a href="http://www.tobias-jung.de/seekingprofont/"&gt;ProFontWindows&lt;/a&gt; or, about as good and even smaller, &lt;a href="http://www.proggyfonts.com/index.php?menu=download"&gt;Proggy Tiny&lt;/a&gt;, but these are still at least 7px wide.  You'd think 180 chars would be enough, but with VS' solution explorer taking up so more, etc etc...&lt;br /&gt;&lt;br /&gt;So are there any good 5 and 6 pixel wide monospace programming fonts?  Not really.  There's really only one source, and that's &lt;a href="http://www.ank.com.ar/fonts/"&gt;here&lt;/a&gt;.  From the site...&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;These are fixed-width fonts converted to TTF and FON format from the original X11 sources. You will recognize them as the default xterm fonts; they are widely used. They are especially useful for console apps. We programmers can't live without them!&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I've tried them out.  The 5px wide version is tough on the eyes.  I could feel the strain.  The 6px is &lt;i&gt;almost&lt;/i&gt; good enough, but eventually I went back to Proggy.  Not sure if I could stand to keep using 6px wide or not.  There are a number of heights to choose from.&lt;br /&gt;&lt;br /&gt;But do &lt;a href="http://www.ank.com.ar/fonts/5x7-iso8859-1.gif"&gt;check out the "g" on 5x7&lt;/a&gt;, just for kicks.  Poor little tail.  I'm not sure there's another, better way to make it work, though.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.ank.com.ar/fonts/5x7-iso8859-1.gif" alt="5x7"&gt;&lt;br /&gt;&lt;br /&gt;I mean, it's legible, but I don't want to stare at it, you know?&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-4863465642714517434?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/4863465642714517434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=4863465642714517434' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/4863465642714517434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/4863465642714517434'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/10/smallest-monospace-programmer-fonts.html' title='The smallest monospace programmer fonts EVAH'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-4688201647246499042</id><published>2011-10-13T16:34:00.001-04:00</published><updated>2011-10-13T16:34:27.017-04:00</updated><title type='text'>RIP dmr</title><content type='html'>Not a good month.&lt;br /&gt;&lt;br /&gt;I'll try not to say, "Goodbye, World," as if I was the first person to think of it.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-4688201647246499042?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/4688201647246499042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=4688201647246499042' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/4688201647246499042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/4688201647246499042'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/10/rip-dmr.html' title='RIP dmr'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-8955230665604223993</id><published>2011-10-12T23:37:00.000-04:00</published><updated>2011-10-12T23:37:01.733-04:00</updated><title type='text'>"Re-enabling Key Repeat in OSX Lion"</title><content type='html'>&lt;a href="http://www.belchak.com/2011/07/23/re-enabling-key-repeat-in-osx-lion/"&gt;Re-enabling Key Repeat in OSX Lion | Belchak.com&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;I have recently upgraded to OSX Lion, and I have to say that I love everything about it. Except for one thing. In many apps, the key repeat has been disabled in favor of the new press-and-hold popup for getting alternative characters.&lt;br /&gt;&lt;br /&gt;Run the following in your Terminal.app:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;defaults write -g ApplePressAndHoldEnabled -bool false&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Seems like there's got to be a better way in the System Prefs, but thank heavens.  I can use VIm again, specifically IdeaVIM in PhpStorm.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-8955230665604223993?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/8955230665604223993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=8955230665604223993' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/8955230665604223993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/8955230665604223993'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/10/re-enabling-key-repeat-in-osx-lion.html' title='&quot;Re-enabling Key Repeat in OSX Lion&quot;'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-8924235113859228770</id><published>2011-09-28T20:18:00.000-04:00</published><updated>2011-09-28T20:18:35.409-04:00</updated><title type='text'>Amazon's done their homework: Fire's future is, um, bright.</title><content type='html'>&lt;a href="http://news.cnet.com/8301-30686_3-20112800-266/amazon-unveils-kindle-touch-and-kindle-fire-tablet/?tag=TOCcarouselMain.0"&gt;Amazon unveils Kindle Touch and Kindle Fire tablet | Signal Strength - CNET News&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Gartner analyst Michael Gartenberg tweeted that he thinks the Kindle Fire is more of an Apple iPod Touch replacement than an iPad-killer. Indeed, Amazon seems to be going after its core audience of e-reader customers who are interested in a tablet but not willing to spend a lot of money. In other words, this device is geared toward customers who may be considering buying the Barnes &amp;amp; Noble Nook Color rather than those with their heart set on an Apple iPad.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Has this idiot used an iPod touch?  In no way does a small, phone-sized tablet (note the oxymoron) with WiFi and two cameras compete with a 7" tablet without cameras &lt;b&gt;made primarily to expose eBook users to the Amazon controlled niche of the Android ecosystem&lt;/b&gt;.  One you have if you like iTunes and iOS and iPods but don't have an iPhone (whether that means you have a phone-only cellphone or simply dislike Android but carry one anyhow).  The touch is a like a smartphone without the monthly fee.  It's for cheapskates, kids, and WiFi addicts (though those &lt;a href="http://www.virginmobileusa.com/mobile-broadband/peel-3200.html"&gt;Peels&lt;/a&gt; that give your 3rd gen touch shareable 3G look really cool).  The other you get if you like to read books or want an inexpensive &lt;i&gt;tablet&lt;/i&gt;.  Who reads books on their iPod when they don't have to?  I've got one.  Not me.&lt;br /&gt;&lt;br /&gt;The real beauty of the Fire is exactly what I've written above.  There are those that trust Amazon and Kindle for their eBook content.  Honestly, the Kindle is great.  Having a book on my phone, computer, and my e-ink device, all at the same time, allow me to read most anywhere -- planned times, outdoors, in the line at the DMV.  And having an Android device, even a woefully inadequate one like my &lt;a href="http://reviews.cnet.com/smartphones/lg-optimus-v-virgin/4505-6452_7-34482446.html"&gt;Optimus V&lt;/a&gt;, is wonderful.  It's too bad the Fire doesn't have 3G, as that's where the magic really happens.  &lt;br /&gt;&lt;br /&gt;This certainly explains the Amazon app store.  I've liked that store a bit better than the stock Android one.  It's a nice app, though perhaps not quite as well stocked with apps as I'd like.  But there's infrastructural requirement number one taken care of.&lt;br /&gt;&lt;br /&gt;It also explains the big deal about the big deal with Fox streaming content from Amazon as posted on Amazon.com's front page last night.  It really doesn't matter if Amazon doesn't have as much to stream as Netflix.  What matters is that their installed Kindle user base partially translates to their Android tablet, and from the tablet to the Amazon controlled content.  We should also note that those are two completely different niches -- one watching video on a tablet, the other largely their TV.  Amazon, doing well, I assume, with tablets that &lt;i&gt;just do eBooks&lt;/i&gt;, is happy with a solid cut of the former.&lt;br /&gt;&lt;br /&gt;We really should have seen this coming.  Amazon is the only real competitor to Apple &lt;i&gt;for content&lt;/i&gt; out there.  Check out &lt;a href="http://banshee.fm/"&gt;banshee&lt;/a&gt;, an iTunes equivalent mainly for Linux.  Their plug-in for the iTunes Music Store?  Amazon's store, and they make a solid percentage from each sale via Amazon's store.  Amazon is iTunes, but open.  That's always been Amazon's strength and competitive edge against Apple.  Apple initially gave you DRM-laden music files with protected AAC.  Amazon gave you wide-open mp3s.  Apple followed suit.  Amazon laid down an app store that could be used on any Android device made by anyone.  You get used to using their market (and its free app a day), and poof, another barrier to entry down for the Fire.  They make deals for streaming content.  You get used to using Amazon's movie player on your PC.  Another barrier down.  They have cloud-based music.  You get used to storing your music in the cloud and *poof*, you're used to using it on the Fire too.  Amazon's &lt;i&gt;beaten&lt;/i&gt; Apple to cloud-based music.&lt;br /&gt;&lt;br /&gt;I've got to think a 3G Fire is in the cards for next year.&lt;br /&gt;&lt;br /&gt;In any event, this is pretty impressive.  I'm an AMZN stockholder now.  And if I'd been smart enough, I'd've bought yesterday, like I meant to.  But even after they lose some of these gains tomorrow (and I buy another share or two), they'll have a lot of room to shoot up.  At $199 for the Fire, either Apple starts running two iPads at once, like they are with the iPhone 3 &amp; 4 now, or they cede low-cost tablets to Amazon completely -- and the content those tablets' owners purchase.&lt;br /&gt;&lt;br /&gt;Very smart.  Very well done.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-8924235113859228770?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/8924235113859228770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=8924235113859228770' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/8924235113859228770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/8924235113859228770'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/09/amazons-done-their-homework-fires.html' title='Amazon&apos;s done their homework: Fire&apos;s future is, um, bright.'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-5386931828192824504</id><published>2011-09-26T12:32:00.000-04:00</published><updated>2011-09-26T12:32:09.762-04:00</updated><title type='text'>Facebook unfriending 'bug' gets quick fix | The Digital Home - CNET News</title><content type='html'>&lt;a href="http://news.cnet.com/8301-13506_3-20111628-17/facebook-unfriending-bug-gets-quick-fix/?tag=inside"&gt;Facebook unfriending &amp;#39;bug&amp;#39; gets quick fix | The Digital Home - CNET News&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Facebook users who were spying on their Timeline to see who had unfriended them in the past will no longer be able to do so.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;How the heck is that "spying"?  It's info you'd know if you paid attention to your "friends", which, if nobody's already doing it, tells you something about how "friendly" friends on Facebook really are.&lt;br /&gt;&lt;br /&gt;What a dumb system.  Hats of cash, but dumb.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-5386931828192824504?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/5386931828192824504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=5386931828192824504' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5386931828192824504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5386931828192824504'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/09/facebook-unfriending-bug-gets-quick-fix.html' title='Facebook unfriending &apos;bug&apos; gets quick fix | The Digital Home - CNET News'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-3283991959993700266</id><published>2011-09-17T00:19:00.005-04:00</published><updated>2011-09-17T00:25:21.648-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other Stuff'/><title type='text'>Randmo: We're Punk'd -- Sheen still on Two and a Half Men</title><content type='html'>I mean, who really cares, right?  But Charlie Sheen and Kutcher are so prevalent on the talk shows (even though this one on Dave is a rerun), I wonder if we're not all being played.  Sheen's very complimentary of his old show.  Kutcher jokes about his character wanting to end it all.  We're still not sure Sheen's guy even croaks.  Sheen says he'd like (expects?) to return.  The WaPo tells us Sheen's "Anger Management" show, "still doesn’t have a network, or really, it turns out, any details."  Does it exist?  And would that studio audience who just acted like they'd seen a ghost in a &lt;span style="font-style:italic;"&gt;Two and a Half Men&lt;/span&gt; promo have maybe really seen someone they think is a ghost?&lt;br /&gt;&lt;br /&gt;If we're all Punk'd, we deserve it.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-3283991959993700266?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/3283991959993700266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=3283991959993700266' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/3283991959993700266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/3283991959993700266'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/09/randmo-were-punkd-sheen-still-on-two.html' title='Randmo: We&apos;re Punk&apos;d -- Sheen still on Two and a Half Men'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-1349751601329093910</id><published>2011-09-15T07:42:00.000-04:00</published><updated>2011-09-15T07:50:41.196-04:00</updated><title type='text'></title><content type='html'>How does Gmail's spam filter miss this one?&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;span style="font-family:Verdana; color:#000000; font-size:10 pt;"&gt;&lt;div&gt;We make every effort to ensure that we provide the Ultimate Security required for maximum protection of all our Email Account from unwanted Users and spy wares. We do not want you to loose access to your Account since your login information are no longer valid on our database system. We need to confirm your profile details below for verification purpose and to confirm that you own this account to avoid Denial of Service.&lt;br&gt;&lt;br&gt;*User ID :&lt;br&gt;*Password :&lt;br&gt;*Birthdate :&lt;br&gt;*Alternative Email:&lt;br&gt;*Country :&lt;br&gt;&lt;br&gt;Warning: Your Account will be deleted and shut down permanently if you failed to provide the details above. Gmail will not be heard responsible for your negligence.&lt;br&gt;&amp;nbsp;&lt;br&gt;Thanks for your support.&lt;br mce_bogus="1"&gt;&lt;/div&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br&gt;Oh, nothing suspicious there.  Or in the headers.&lt;br&gt;&lt;br&gt;&lt;tt&gt;&lt;pre&gt;Return-Path: &amp;lt;hunt@mmmfxfxx.com&gt;&lt;br /&gt;X-Originating-IP: 41.113.79.78&lt;br /&gt;User-Agent: Web-Based Email 5.5.19&lt;br /&gt;Message-Id: &amp;lt;20110915013752.74fbbf88909f7c11ec99a610b94b68c0.fc3a759291.wbe@email18.secureserver.net&gt;&lt;br /&gt;From: "Gmail" &amp;lt;help@google-updates.com&gt;&lt;br /&gt;X-Sender: hunt@mmmfxfxx.com&lt;br /&gt;Reply-To: "Gmail" &amp;lt;hostserver.ssh@gmail.com&gt;&lt;br /&gt;To: info.support@gmail.com&lt;br /&gt;Subject: Gmail Verification&lt;br /&gt;Date: Thu, 15 Sep 2011 01:37:52 -0700&lt;br /&gt;Mime-Version: 1.0&lt;/pre&gt;&lt;/tt&gt;As Gob would say, "COME ON!" &lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;iframe width="420" height="315" src="http://www.youtube.com/embed/81Nl7VYFEaI" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-1349751601329093910?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/1349751601329093910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=1349751601329093910' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/1349751601329093910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/1349751601329093910'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/09/how-does-gmails-spam-filter-miss-this.html' title=''/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/81Nl7VYFEaI/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-7694489769877086971</id><published>2011-09-07T18:58:00.001-04:00</published><updated>2011-09-07T18:59:28.413-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google - open without being open?</title><content type='html'>&lt;div&gt;&lt;p&gt;&lt;i&gt;Open after the fact&lt;/i&gt;&lt;br&gt;&lt;i&gt;The presentation slide is titled, "If we gave&lt;/i&gt;&lt;br&gt;&lt;i&gt;it away, how can we ensure we get to&lt;/i&gt;&lt;br&gt;&lt;i&gt;benefit from it?" and recommends a set of&lt;/i&gt;&lt;br&gt;&lt;i&gt;policies that include "Do not develop in the&lt;/i&gt;&lt;br&gt;&lt;i&gt;open. Instead, make source code available&lt;/i&gt;&lt;br&gt;&lt;i&gt;after innovation is complete."&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Not that Apple doesn't do the same thing... Still, it's important to understand that open doesn't necessarily mean OPEN.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-7694489769877086971?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/7694489769877086971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=7694489769877086971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7694489769877086971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7694489769877086971'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/09/google-open-without-being-open.html' title='Google - open without being open?'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-3798397006083916685</id><published>2011-09-01T10:10:00.006-04:00</published><updated>2011-09-01T10:13:14.013-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='phpMyAdmin'/><category scheme='http://www.blogger.com/atom/ns#' term='problem solved'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>"Using phpMyAdmin to Create Stored Procedures"</title><content type='html'>Surprising that I couldn't cut and paste from SQuirreL-SQL to phpMyAdmin when using sprocs.  But then if you think about it for a second, it makes a lot of sense -- the parser in phpMyAdmin stops at a semi-colon and, Emeril-style, BAM!  It runs it.&lt;br /&gt;&lt;br /&gt;You've got to change your delimiter.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.nth-design.com/2009/02/25/creating-sp-in-phpmyadmin/"&gt;Nth Design » Using phpMyAdmin to Create Stored Procedures&lt;/a&gt;: &lt;br /&gt;&lt;blockquote&gt;1 Open phpMyadmin.&lt;br /&gt;2 Select a database to work with.&lt;br /&gt;3 Open the SQL tab.&lt;br /&gt;4 Select all of the SQL statements between the DELIMITER statements in your stored procedure script. Do not include the DELIMITER statements! &lt;br /&gt;&lt;br /&gt;Here’s what my example script should look like:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;&lt;pre&gt;DROP PROCEDURE IF EXISTS spFoo $$&lt;br /&gt;CREATE PROCEDURE spFoo ()&lt;br /&gt;BEGIN&lt;br /&gt;	SELECT 'Foo' FROM DUAL;&lt;br /&gt;END $$&lt;/pre&gt;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;5 In the delimiter field, just below the SQL editor’s text area, enter $$ as your delimiter.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;So that delimiter spot is here:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-Iy5s_dFND90/Tl-ScHsakcI/AAAAAAAABm4/NluicO3sOYA/s1600/delimiter.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/-Iy5s_dFND90/Tl-ScHsakcI/AAAAAAAABm4/NluicO3sOYA/s400/delimiter.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5647393469545222594" /&gt;&lt;/a&gt;&lt;br /&gt;Below "sig" from the Chrome BlogThis extension.  I don't think Pyra's link ever did this.  I'll leave it this time, Google, but I'm not using that extension again unless I'm really bored and have Chrome's bookmark toolbar off again.&lt;br /&gt;&lt;br /&gt;&lt;a style="font-size:13px" href="https://chrome.google.com/webstore/detail/pengoopmcjnbflcjbmoeodbmoflcgjlk"&gt;'via Blog this'&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-3798397006083916685?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/3798397006083916685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=3798397006083916685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/3798397006083916685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/3798397006083916685'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/09/using-phpmyadmin-to-create-stored.html' title='&quot;Using phpMyAdmin to Create Stored Procedures&quot;'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-Iy5s_dFND90/Tl-ScHsakcI/AAAAAAAABm4/NluicO3sOYA/s72-c/delimiter.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-463464317945535201</id><published>2011-08-18T13:18:00.008-04:00</published><updated>2011-08-18T13:25:07.974-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='realbasic'/><category scheme='http://www.blogger.com/atom/ns#' term='problem solved'/><title type='text'>Using stunnel for SSL'd POP3 (etc) in Real Basic</title><content type='html'>I've been considering using Real Basic to write The Great American Mail Handler (a cousin of the Great American Novel), but the inexpensive Personal Edition doesn't come with SSL.  What a pain.  Is there any serious email provider that doesn't use secure sockets at this point?  So if I'm going to test against a real server, I'd really kind of need SSL support, and I'm not paying $200 up front for a hobbyist project.&lt;br /&gt;&lt;br /&gt;Enter stunnel, a "NIX package (also compiled into a service for Windows) that securely wraps a tunnel from your box to another.  Instant https, POP3 with SSL, SMTP, you name it.&lt;br /&gt;&lt;br /&gt;How difficult is it to set up?  I spent an evening hacking, and after a few dumb mistakes, found out.  Here's my post to the Real Basic user group mailing list.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;tt style="font-size:11px"&gt;&gt; Yep, I think the stunnel package I'd mentioned a while back&lt;br /&gt;&gt; is going to be the way to go while developing.&lt;br /&gt;&lt;br /&gt;Yeah, wow, that was easy.  Forgive me for the bytes, but I figured I'd log&lt;br /&gt;directions here in case someone Googles this thread up.  I should add that&lt;br /&gt;I'm using a Mac.&lt;br /&gt;&lt;br /&gt;Download stunnel with GUI overlay from here:&lt;br /&gt;&lt;a href="http://www-act.ucsd.edu/downloads/SSLEnabler.dmg"&gt;http://www-act.ucsd.edu/downloads/SSLEnabler.dmg&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Drag the SSL Enabler to Applications and start it up.  Authenticate.  Have&lt;br /&gt;SSL Enabler install stunnel.  It crashed on me then.  No big deal.&lt;br /&gt;&lt;br /&gt;Restart if it crashed, click Authenticate, and set up a Local Port for POP3&lt;br /&gt;(say 1109), type "pop.gmail.com" (if you're using a Gmail account) as the&lt;br /&gt;Remote Server IP, then 995 as the Remote Port, as 995 is the standard POP3&lt;br /&gt;port for SSL connections.&lt;br /&gt;&lt;br /&gt;Here's a catch -- and I've written utilities this sloppy before, I'm afraid&lt;br /&gt;-- you have to have focus leave the Remote Port blank to make sure it&lt;br /&gt;registers your change.  Otherwise it sometimes records the default 9999&lt;br /&gt;value.  So change focus back to the Local Port or Remote Server IP entry&lt;br /&gt;before clicking save.&lt;br /&gt;&lt;br /&gt;Open a term window.  Enter the following:&lt;br /&gt;&lt;br /&gt;ps ax | egrep stun | egrep -v egrep&lt;br /&gt;&lt;br /&gt;Hit return.  You should see your stunnel there.  For instance:&lt;br /&gt;&lt;br /&gt;10526   ??  Ss     0:00.01 /usr/local/sbin/stunnel -c -d 1109 -r&lt;br /&gt;pop.gmail.com:995&lt;br /&gt;&lt;br /&gt;Now you can, for kicks, test out that things are working by telnetting into&lt;br /&gt;Gmail's pop server.  Ensure you've enabled POP in your test gmail account.&lt;br /&gt; Note that this is different from enabling IMAP.  If you enabled IMAP in the&lt;br /&gt;past, make sure you go back in and do the same for POP.  (Yes, personal&lt;br /&gt;experience here.  Stoopid.)&lt;br /&gt;&lt;br /&gt;So things starting with + came from Google, and stuff before those + lines&lt;br /&gt;are the stuff you'll type.&lt;br /&gt;&lt;br /&gt;$ telnet 127.0.0.1 1109&lt;br /&gt;Trying 127.0.0.1...&lt;br /&gt;Connected to localhost.&lt;br /&gt;Escape character is '^]'.&lt;br /&gt;+OK Gpop ready for requests from [your IP and other info]&lt;br /&gt;user yourUserNameWith@gmail.com&lt;br /&gt;+OK send PASS&lt;br /&gt;pass yourPassword&lt;br /&gt;+OK Welcome.&lt;br /&gt;list&lt;br /&gt;+OK 159 messages (1621817 bytes)&lt;br /&gt;1 2935&lt;br /&gt;2 2764&lt;br /&gt;3 2456&lt;br /&gt;....&lt;br /&gt;retr 2&lt;br /&gt;+OK message follows&lt;br /&gt;MIME-Version: 1.0&lt;br /&gt;Received: by 10.147.34.3; Sun, 2 Jan 2011 14:22:40 -0800 (PST)&lt;br /&gt;Date: Sun, 2 Jan 2011 14:22:40 -0800&lt;br /&gt;....&lt;br /&gt;rset&lt;br /&gt;+OK&lt;br /&gt;quit&lt;br /&gt;+OK Farewell.&lt;br /&gt;&lt;br /&gt;Make sure you use "rset" to reset the POP server's state if you're testing.&lt;br /&gt; You'll want the emails to stay "current" so that they show up on your next&lt;br /&gt;LIST.  If you don't, they've been permanently POPped, and the server won't&lt;br /&gt;show them to you again without fiddling with Gmail's Mail Settings.  (This,&lt;br /&gt;of course, is a large part of why IMAP rocks.  POP really is just the Post&lt;br /&gt;Office shoving new stuff you haven't received into your mailbox and washing&lt;br /&gt;their hands of the whole mess.)&lt;br /&gt;&lt;br /&gt;In a Real Basic app, you'd start things off with code like this, perhaps in&lt;br /&gt;your main window's Open() subroutine:&lt;br /&gt;  Socket1.Port = 1109&lt;br /&gt;  Socket1.Address = "127.0.0.1"  ' with stunnel&lt;br /&gt;&lt;br /&gt;  Socket1.username = "yourUserNameWith@gmail.com"&lt;br /&gt;  Socket1.password = "yourPassword"&lt;br /&gt;&lt;br /&gt;  Socket1.Connect&lt;br /&gt;&lt;br /&gt;To reset the server while you test and then disconnect, drop this into the&lt;br /&gt;window's Close() sub:&lt;br /&gt;  Socket1.RollbackServer  ' equivalent of RSET in telnet&lt;br /&gt;  Socket1.DisconnectFromServer ' QUIT&lt;br /&gt;&lt;br /&gt;As long as you fire up SSL Enabler each time you start up your Mac and enter&lt;br /&gt;in the stunnel, you can code away with the Personal POP3Socket against POP3&lt;br /&gt;servers that require SSL, without the 5 minute warning some Zymail folk were&lt;br /&gt;apparently slogging through as they tested builds without Professional.&lt;br /&gt; Then write the great American novel and change over to POP3SecureSocket&lt;br /&gt;years later once you've slain the whale.  I think all you'd hack at that&lt;br /&gt;point would be your Socket.Address from 127.0.0.1 to, in Gmail's case,&lt;br /&gt;pop.gmail.com, the Port from 1109 (or whatever you stunneled) to 995, and&lt;br /&gt;then you'd add these two lines in your window's Open():&lt;br /&gt;&lt;br /&gt;Socket1.ConnectionType = POP3SecureSocket.SSLv23&lt;br /&gt;Socket1.Secure = true&lt;br /&gt;&lt;br /&gt;There's $200 "saved".  ;^)  (More accurately, there's $100 /spent/ on the&lt;br /&gt;Personal Edition.  Fun nighttime project.)&lt;br /&gt;&lt;br /&gt;Thanks for your patience.&lt;/tt&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-463464317945535201?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/463464317945535201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=463464317945535201' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/463464317945535201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/463464317945535201'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/08/using-stunnel-for-ssld-pop3-etc-in-real.html' title='Using stunnel for SSL&apos;d POP3 (etc) in Real Basic'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-4907847490532234112</id><published>2011-08-14T13:24:00.005-04:00</published><updated>2011-08-18T10:38:49.259-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='problem solved'/><title type='text'>How to get Sun's jdk via apt-get, maybe.</title><content type='html'>from: http://happy-coding.com/install-sun-java6-jdk-on-ubuntu-10-04-lucid/&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;What I did to solve this problem was to add a new source&lt;br /&gt;&lt;br /&gt;sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"&lt;br /&gt;&lt;br /&gt;After that a normal&lt;br /&gt;&lt;br /&gt;sudo apt-get update&lt;br /&gt;sudo apt-get install sun-java6-jdk&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This is followed by this pressing question:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;After requesting and downloading a java install on a terminal, I got the following, and ONLY the following:&lt;br /&gt;&lt;br /&gt;Package configuration...&lt;br /&gt;&lt;br /&gt;┌────────────────────┤ Configuring sun-java6-jre ├─────────────────────┐&lt;br /&gt;│ │...&lt;br /&gt;│&lt;br /&gt;│ &lt;Ok&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There is no more to the window, no place to type a command, no way to read the whole agreement, nor to select Y/N or OK, or anything.&lt;br /&gt;&lt;br /&gt;What do I do?&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;emeraldgirl08&lt;br /&gt;August 8th, 2009, 01:53 AM&lt;br /&gt;Have you tried pressing the TAB button?&lt;br /&gt;&lt;br /&gt;gregapan&lt;br /&gt;August 8th, 2009, 02:45 AM&lt;br /&gt;emeraldgirl, thanks&lt;br /&gt;&lt;br /&gt;I'm just wondering how users are supposed to know that TAB does magical things in ubuntu.&lt;br /&gt;&lt;br /&gt;such things are not usually left to the user's guessing skills&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I knew there was an easy way to do it...&lt;br /&gt;&lt;br /&gt;Then, pick which to use, OpenJDK which is installed by default (and which an apt-get -purge didn't remove for me) or Sun's...&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&gt;Can I run both side by side?&lt;br /&gt;&lt;br /&gt;Yes, you can and you can tell the system which one to use by default (for the Java software).&lt;br /&gt;&lt;br /&gt;To get a list of the installed JDK&lt;br /&gt;&lt;br /&gt;$ sudo update-java-alternatives -l &lt;br /&gt;&lt;br /&gt;To set a new as default one (at the system level)&lt;br /&gt;&lt;br /&gt;$ sudo update-java-alternatives -s &lt;jname&gt; &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;And just to add one more XAMPP related thing:&lt;br /&gt;&lt;br /&gt;Once lampp is up and running, you want to run: &lt;tt&gt;sudo ufw enable&lt;/tt&gt; to make sure folks aren't accessing your server, etc.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-4907847490532234112?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/4907847490532234112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=4907847490532234112' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/4907847490532234112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/4907847490532234112'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/08/how-to-get-suns-jdk-via-apt-get-maybe.html' title='How to get Sun&apos;s jdk via apt-get, maybe.'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-5989545061471127802</id><published>2011-08-12T12:35:00.000-04:00</published><updated>2011-08-12T12:35:52.769-04:00</updated><title type='text'>For EMG image - Smarter skin with diagnostic 'tattoo' (photos) - CNET News</title><content type='html'>&lt;a href="http://news.cnet.com/2300-27083_3-10008997.html"&gt;For EMG image - Smarter skin with diagnostic &amp;#39;tattoo&amp;#39; (photos) - CNET News&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;With the mechanical properties of skin, a miniature diagnostic device unveiled today can be mounted directly to the wrist, as shown here, for EMG and other measurements.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Hello, &lt;a href="http://www.pocket-lint.com/review/5182/sprint-zte-peel-ipod-review"&gt;OCtattoo&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-5989545061471127802?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://news.cnet.com/2300-27083_3-10008997.html' title='For EMG image - Smarter skin with diagnostic &apos;tattoo&apos; (photos) - CNET News'/><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/5989545061471127802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=5989545061471127802' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5989545061471127802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5989545061471127802'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/08/for-emg-image-smarter-skin-with.html' title='For EMG image - Smarter skin with diagnostic &apos;tattoo&apos; (photos) - CNET News'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-7373421212736244620</id><published>2011-07-26T06:23:00.000-04:00</published><updated>2011-07-26T06:23:25.293-04:00</updated><title type='text'>"A patent isn't innovation"</title><content type='html'>&lt;a href="http://www.appleinsider.com/articles/11/07/25/google_exec_talks_nortel_patent_auction_loss_calls_for_patent_reform.html"&gt;AppleInsider | Google exec talks Nortel patent auction loss, calls for patent reform&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"A patent isn’t innovation. It’s the right to block someone else from innovating,” [Google Senior Vice President and General Counsel Kent Walker] said, later adding that 'patents are government-granted monopolies.' Though the system was originally setup to reward innovation, 'that’s not happening here,” he noted.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-7373421212736244620?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.appleinsider.com/articles/11/07/25/google_exec_talks_nortel_patent_auction_loss_calls_for_patent_reform.html' title='&quot;A patent isn&apos;t innovation&quot;'/><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/7373421212736244620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=7373421212736244620' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7373421212736244620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7373421212736244620'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/07/patent-isnt-innovation.html' title='&quot;A patent isn&apos;t innovation&quot;'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-4168170251562748447</id><published>2011-07-21T12:56:00.005-04:00</published><updated>2011-07-21T13:00:20.853-04:00</updated><title type='text'>CNET, you're so mean to me.</title><content type='html'>I enjoy the CNET Cheapskate, Rick Broida.  I've purchased craploads of stuff he's shilling.  He's insanely good at finding the actionable price for me.  I've bagged two monitors, a Zen music player, a USB drive, a WiFi inkjet/fax/scanner, and a number of iOS and Android games.  It's painful.&lt;br /&gt;&lt;br /&gt;Today, though, CNET seems to have been reading my blog, specifically &lt;a href="http://myfreakinname.blogspot.com/2011/07/must-resist-new-macbook-airs.html"&gt;yesterday's post on buying an Alienware m11x over a MacBook Air&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Today's deal, just for me, promised by a pop-up on the bottom of my browser window?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-gM3jNPqCDS0/Tiha9CJoWyI/AAAAAAAABlc/EqxLK205M8I/s1600/Screen%2Bshot%2B2011-07-21%2Bat%2B12.55.50%2BPM.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 367px;" src="http://3.bp.blogspot.com/-gM3jNPqCDS0/Tiha9CJoWyI/AAAAAAAABlc/EqxLK205M8I/s400/Screen%2Bshot%2B2011-07-21%2Bat%2B12.55.50%2BPM.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5631851338622589730" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This isn't the crappy processor they've been pushing at $599 either.  This is the i3 version.  Tempting.  Darn you, CNET!!!&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-4168170251562748447?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/4168170251562748447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=4168170251562748447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/4168170251562748447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/4168170251562748447'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/07/cnet-youre-so-mean-to-me.html' title='CNET, you&apos;re so mean to me.'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-gM3jNPqCDS0/Tiha9CJoWyI/AAAAAAAABlc/EqxLK205M8I/s72-c/Screen%2Bshot%2B2011-07-21%2Bat%2B12.55.50%2BPM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-1651900172097661205</id><published>2011-07-20T18:42:00.006-04:00</published><updated>2011-07-20T19:11:23.494-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='alienware'/><category scheme='http://www.blogger.com/atom/ns#' term='Irrational Apple-Buying Mind'/><category scheme='http://www.blogger.com/atom/ns#' term='macbook'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Must... resist... new... MacBook... Airs</title><content type='html'>My white, 2.26 GHz Core 2 Duo Macbook is great, but it's, honestly, a little slow.  I spoiled myself with a quad-core, 3 GHz AMD Propus on the desktop, which lets me know every time I use it that the Mac is a little sluggish.&lt;br /&gt;&lt;br /&gt;The second gen Macbook Air was awesome, but slower than my Macbook.  I'm not upgrading just for k3wl.  I could resist it.&lt;br /&gt;&lt;br /&gt;The new Macbook Air was going to be a different story.  It would be a good deal faster than my Macbook.  And lighter.  The SSD really is &lt;i&gt;really&lt;/i&gt; fast.  It, like its predecessor, would have more horizontal resolution than my Macbook, which would be great for three-columned PHPStorm coding.  And, of course, the MBA would be waaaay k3wler than the white plastic Macbook I'm typing on now.&lt;br /&gt;&lt;br /&gt;Part of holding off on the 2nd gen MBA was telling myself I &lt;i&gt;would&lt;/i&gt; buy when the new one hit.  Until things got faster, it was insane to drop the cash.  The little voice egging me on to buy was satisfied, and would wait.&lt;br /&gt;&lt;br /&gt;The new MBA's hit now.  As rumored, it is, seemingly, the perfect mobile laptop.&lt;br /&gt;&lt;br /&gt;Of course, would-be fanboys like me always look for that one flaw that they can use to justify to their irrationally exuberant minds that they're again putting off a purchase.  It was easy when the CPU in the MBA was slower.  All I have now is the lack of RAM.  &lt;br /&gt;&lt;br /&gt;And I think the MBA's lack of RAM is enough.  I had 2 Gigs of RAM in my Macbook for a while, and it simply didn't get the job done.  Now with 5 gigs, I'm a very happy camper.  Even my mother's mini didn't have enough RAM with 2 Gigs; I upped it to 5 today, in fact.  I can't justify buying a machine with 2.  The clearance MBAs start at $749, a price I could swing.  The new MBAs are $999, and have with processors worth a purchase.  But neither at those prices gives me 4 gigs of RAM.  You can't even trick yourself into saying that you'll just update when you've got the cash.  The RAM, unless something's changed, is soldered onto the MBA.  It's fixed.  No option to upgrade, ever.&lt;br /&gt;&lt;br /&gt;I just can't bring myself to splurge $100 to &lt;i&gt;only&lt;/i&gt; add more RAM.  I'll confess, the "RAM is holding me back" excuse is a slightly irrational argument in itself, but it'll do.  You really can't run OS X without 4 gigs, and over $1000 just doesn't seem like as good a deal.  When these things were rumored to have 4 gigs minimum, I thought Irrational Apple-Buying Mind might have a winner.  Boy, I barely dodged a buy.&lt;br /&gt;&lt;br /&gt;I'm finding myself more inclined to grab the i3 Alienware m11x, which is now on sale for $700.  Then I can still Windows game using my laptop, turn my tower over to Ubuntu for programming (and to escape the 32-bit Vista's 3 Gig RAM limitation), and have options when I'm mobile.&lt;br /&gt;&lt;br /&gt;But honestly, that was a close one.  I'm not convinced I'm out of the Macbook Air woods yet.  The Mind might be back, unhappy with the prospects of an on-sale m11x.  I've even had it suggest buying the new Mini for $600.  Who needs a dedicated graphics chip for programming?  Get it!  It's a real, non-hackintosh Mac with an i5!  Clever Mind.&lt;br /&gt;&lt;br /&gt;(And no, no hard feelings at all for Apple killing the white Macbook.  Look, mine's great, but everyone should be &lt;i&gt;forced&lt;/i&gt; to buy the MBA instead.  How often do I use its ethernet port, really?  (Though, admittedly, I did today.)  And it's not like it's got Firewire any more.  Beyond burning an occasional mp3 CD and the possibility to grab 8 gigs of RAM, what's the loss?)&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-1651900172097661205?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/1651900172097661205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=1651900172097661205' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/1651900172097661205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/1651900172097661205'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/07/must-resist-new-macbook-airs.html' title='Must... resist... new... MacBook... Airs'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-7117426343794531708</id><published>2011-06-30T21:02:00.001-04:00</published><updated>2011-06-30T21:02:58.422-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='os x'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Why Apple should support Linux-only users</title><content type='html'>It's not necessarily intuitive, but after reading this blog post called &lt;a href="http://regebro.wordpress.com/2008/11/16/installing-linux-on-a-macbook-without-os-x/"&gt;Installing Linux on a MacBook without OS X&lt;/a&gt;, I think you have to concede the guy makes a lot of sense: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;[To Apple:] Help the Linux people write proper ELI drivers for your machines, if you are serious about this. I understand you don’t want OS X running on normal PC’s. You are using OS X as an argument for buying your hardware. If you sold OS X separately your machines would be cheaper and your upgrades more expensive, and that would probably not be good for business. &lt;span style="font-weight:bold;"&gt;But making it hard to run OTHER things on Macs doesn’t make any sense.&lt;/span&gt; [emph mine]&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Sure, there's a good reason for Apple to want you to use OS X as you primary OS that the blogger here chooses to overlook, namely that if you use OS X now, you're more likely to buy OS X again.  And sure enough, this guy ends with... "All in all, I can not recommend you to buy MacBooks unless you intend your main OS to be OS X. And I can’t recommend OS X to a developer. Yes, this buy was a mistake."&lt;br /&gt;&lt;br /&gt;That's serious overkill, and obviously is coming from a guy who does &lt;span style="font-style:italic;"&gt;Linux&lt;/span&gt;/OSS development, but it doesn't negate his initial, clever argument.  If I am &lt;span style="font-style:italic;"&gt;already a Linux-phile&lt;/span&gt; and Apple's primarily in the hardware business, which I argue they are, why not make your hardware open to whoever wants to use it?  Sure, keep OS X exclusive to Mac hardware, but when you've got guys going out of their way to buy your hardware for Linux, build in at least enough support that it's a painless install, just as you do for a more conventional competitor, Microsoft Windows.  I &lt;span style="font-style:italic;"&gt;think&lt;/span&gt; you can use Boot Camp to install Windows and then blast OS X away.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-7117426343794531708?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/7117426343794531708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=7117426343794531708' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7117426343794531708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7117426343794531708'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/06/why-apple-should-support-linux-only.html' title='Why Apple should support Linux-only users'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-6114414434558024386</id><published>2011-06-23T14:48:00.002-04:00</published><updated>2011-06-23T15:58:10.116-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='rdbms'/><title type='text'>PHP PDO, Drupal, and platform lock-in</title><content type='html'>&lt;a href="http://drupal.org/node/310070"&gt;General concepts | drupal.org&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;The Drupal database layer is built atop PHP's PDO library. PDO provides a unified, object-oriented API for accessing different databases but it does not provide an abstraction for the different dialects of SQL used by different databases.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I believe the implication is that Drupal has those drivers to attach to multiple SQL rdbms.&lt;br /&gt;&lt;br /&gt;Look, hiding the SQL is all well and good, but what you really end up with isn't a savings.  It's platform lock-in.  If I know Drupal's flavor of PDO, I can't do anything with an ANSI SQL compliant rdbms in Java.  I can't do it with VB.NET/ADO.NET.  I can't do it with RealBasic's crazy database features.  &lt;span style="font-style:italic;"&gt;I only know PDO.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If I already knew ANSI SQL, I have to learn a whole new language, not just a dialect.  I've SQuirreL-SQL'd my way from MS SQL Server to Jet to Postgres to MySQL to Oracle to Sybase to Derby to... you get the point.  There are minor flavor changes from one rdbms to another, but nothing, &lt;span style="font-style:italic;"&gt;nothing&lt;/span&gt; as involved as learning this PDO crap.&lt;br /&gt;&lt;br /&gt;There's really only one place an abstraction layer like this makes sense, and that's if you're looking to move to another rdbms.  Perhaps many develop on AMP and move to MS SQL or Oracle, but I kind of doubt it.  If you've normalized [your code] well, even that's not that big a task.&lt;br /&gt;&lt;br /&gt;There are too many SQL abstraction layers out there when you really should just learn SQL.  Instead of marrying yourself to a single MVC platform, you'll be ready to do your thing anywhere and in any language.  This is why the guy who taught me to be a dba always said to stick as much logic as you can into the database where it belongs.  I don't think we'll see many cursors or triggers or, most importantly, sprocs with either or both in PDO.  Put your logic in the database system that's not going to change, and move from Drupal to Joolma to roll-your-own as quickly as possible.  Save your data, not your interface.&lt;br /&gt;&lt;br /&gt;(Now, I understand.  They want you to use Drupal, not rdbms X.  They want every Drupal module to work with every combo of available platforms.  I get it.  It's a mistake.  ;^D)&lt;br /&gt;&lt;br /&gt;You're always picking a platform when you code.  Make sure you lock-in intelligently.&lt;br /&gt;&lt;br /&gt;(Although the more I look at this, the greater the possibility that they may be working on doing just that with PDO.  Still, any time you have to learn a new OM to hit a database, you've wasted a developer's time.)&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-6114414434558024386?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/6114414434558024386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=6114414434558024386' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/6114414434558024386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/6114414434558024386'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/06/php-pdo-drupal-and-platform-lock-in.html' title='PHP PDO, Drupal, and platform lock-in'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-8710402646327586013</id><published>2011-06-22T16:29:00.003-04:00</published><updated>2011-06-22T16:48:11.208-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='shareware'/><category scheme='http://www.blogger.com/atom/ns#' term='realbasic'/><category scheme='http://www.blogger.com/atom/ns#' term='rdbms'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>RealBasic Extends -- Hello, kludgey</title><content type='html'>I'm going out of my mind with stuff to do, which usually means I take on &lt;i&gt;yet another&lt;/i&gt; project, if only to make sure I take a little time for myself.&lt;br /&gt;&lt;br /&gt;This time, that's a personal budgeting application made in RealBasic, and boy, does RealBasic have some pokey edges.  One is the way that you can extend UI objects.  It's insane.  You can't make up your own object type, like in Java where MyFancyFrame might extend JFrame and provide a few new methods.  Instead, you can extend the objects by creating new methods that act like the belong to the UI object from the start, but, and this is the important part, you can't actually put the methods on the UI objects themselves.&lt;br /&gt;&lt;br /&gt;Instead, you have to declare the methods in a stand-alone module and ensure that the first parameter is the type of object that it should act, but only act, like it's attached to.  So if I want to override the way a cell's rendered in a Listbox (as partially described in &lt;a href="http://www.monkeybreadsoftware.eu/listarchive-realbasic-nug/2010-06-13-4.shtml#253620"&gt;this thread&lt;/a&gt; and &lt;a href="http://www.realsoftware.com/listarchives/realbasic-nug/2009-06/msg01201.html"&gt;this thread before it&lt;/a&gt;, I have to create a module -- let's call it mdlExtensions -- insert the method I want to tack onto the Listbox -- we'll call that PopUpCellChoices -- and have a line like this for params:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;extends lb As Listbox, row As Integer, column As Integer, astrChoices() As String&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;When I actually call the method, which is, again, sitting in its own module, as I might from my Listbox's CellClick event handler, I do it like this:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;bOut = me.PopUpCellChoices(row, column, astrChoices)&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;That's right... it's &lt;i&gt;not&lt;/i&gt; mdlExtensions.PopUpCellChoices, but Me., though the method is nowhere near me.  In that method, however, "Me" is gone.  It's all lb.  All I did was obfuscate that I sent "Me" in as lb the Listbox.&lt;br /&gt;&lt;br /&gt;Why don't I just call &lt;tt&gt;mdlExtensions.PopUpCellChoices(Me, row, column, astrChoices)&lt;/tt&gt; I have no idea.&lt;br /&gt;&lt;br /&gt;In other news, RealBasic's POP3Socket's MIME parsing ability is exactly zero when it comes to UTF-8, which sorta stink0rz.  Still, I think I'll shell out for the &lt;a href="http://www.realsoftware.com/realstudio/compare.php"&gt;Personal edition&lt;/a&gt; this time.  I've been testing RealBasic for years, since OS 9 (maybe before?), and there really isn't any way to create a crossplatform codebase that acts native and has an embedded, SQL-literate database as quickly.  Java's great, but I've finally given up on its being a good way to make a app for the masses.  RealBasic can apparently even make it to the &lt;a href="http://www.tempel.org/RB/AppStoreGuide"&gt;Mac App Store&lt;/a&gt;, so I think I'm going to code up one The Wrong Way (not ugly, just not up to my normal standards of overengineering) and see how difficult it'll be to publish.&lt;br /&gt;&lt;br /&gt;Should be [mostly] fun, anyhow.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-8710402646327586013?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/8710402646327586013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=8710402646327586013' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/8710402646327586013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/8710402646327586013'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/06/realbasic-extends-hello-kludgey.html' title='RealBasic Extends -- Hello, kludgey'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-5351859638981912354</id><published>2011-06-14T22:14:00.000-04:00</published><updated>2011-06-14T22:14:45.404-04:00</updated><title type='text'>Learning about "Thunderbird: the global picture"</title><content type='html'>Talk about giving back... This is an impressive &lt;a href="http://blog.xulforum.org/index.php?post/2011/01/03/An-overview-of-Thunderbird-Conversations"&gt;series of blog posts&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;I've been working on Thunderbird Conversations for more than a year now, and I've learned a lot about Thunderbird internals over the past months. I thought I'd share some thoughts on the design of Thunderbird Conversations, in the hope that it helps would-be extension authors better grasp the design and the relationship between Gloda, libmime, the message headers, and the message database.&lt;br /&gt;&lt;br /&gt;This is the first blog post in a series. In this post, I'll talk how various parts of Thunderbird interact together. In another post, I'll talk about the Thunderbird Conversations design.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Interesting info follows.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-5351859638981912354?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.xulforum.org/index.php?post/2011/01/03/An-overview-of-Thunderbird-Conversations' title='Learning about &quot;Thunderbird: the global picture&quot;'/><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/5351859638981912354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=5351859638981912354' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5351859638981912354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5351859638981912354'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/06/learning-about-thunderbird-global.html' title='Learning about &quot;Thunderbird: the global picture&quot;'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-7452210687816623706</id><published>2011-06-13T21:06:00.000-04:00</published><updated>2011-06-13T21:06:40.501-04:00</updated><title type='text'>First Doonesbury Flag Burning Amendment Cartoon: November 05, 1989</title><content type='html'>Note to self: &lt;a href="http://www.gocomics.com/doonesbury/1989/11/05"&gt;Doonesbury Comic Strip, November 05, 1989 on GoComics.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-7452210687816623706?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.gocomics.com/doonesbury/1989/11/05' title='First Doonesbury Flag Burning Amendment Cartoon: November 05, 1989'/><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/7452210687816623706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=7452210687816623706' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7452210687816623706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7452210687816623706'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/06/first-doonesbury-flag-burning-amendment.html' title='First Doonesbury Flag Burning Amendment Cartoon: November 05, 1989'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-606833325172075144</id><published>2011-06-13T17:18:00.001-04:00</published><updated>2011-06-13T17:23:33.688-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Hello, Mr. Gladwell: "50% of iPhones Brought to Genius Bar Have Never Been Synced"</title><content type='html'>From Macrumors.  &lt;a href="http://www.macrumors.com/2011/06/13/50-of-iphones-brought-to-genius-bar-have-never-been-synced/"&gt;This is kinda hard to believe, while not, all at the same time&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Fifty percent of iPhone owners who have iPhones swapped at the Genius Bar have never plugged them into a computer to backup or sync&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;If you didn't believe Joel Spolsky's &lt;a href="http://www.joelonsoftware.com/articles/fog0000000052.html"&gt;Strategy Letter III&lt;/a&gt; before, you should now.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;This calculus means that eliminating barriers to switching is the most important thing you have to do if you want to take over an existing market, because eliminating just one barrier will likely double your sales. Eliminate two barriers, and you'll double your sales again.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Now interestingly, if you're still in the lead, a single barrier doesn't necessarily kill you like Spolsky thought it might.  And, of course, iPhones don't, I assume, make up a majority of the iPods out there.  Makes you wonder how many iPod touch users synced, or if they just bought music via WiFi.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;To take over a market, you have to address every barrier to entry. If you forget just one barrier which trips up 50% of your potential customers, then by definition, you can't have more than 50% market share, and you will never displace the dominant player, and you'll be stuck on the sad (omelet) side of chicken and egg problems.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Will iCloud mean more iTMS purchases?  No idea.  I don't sync up my Android phone much, and kinda like leaving the tether behind.  It's not like the iPhone had to be synced to buy apps or music.  It's really just a backup issue, right?&lt;br /&gt;&lt;br /&gt;Still, Apple screwed up there.  Who knew?&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-606833325172075144?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/606833325172075144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=606833325172075144' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/606833325172075144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/606833325172075144'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/06/hello-mr-gladwell-50-of-iphones-brought.html' title='Hello, Mr. Gladwell: &quot;50% of iPhones Brought to Genius Bar Have Never Been Synced&quot;'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-6912883104979163166</id><published>2011-06-08T19:33:00.000-04:00</published><updated>2011-06-08T19:33:51.970-04:00</updated><title type='text'>Hello Chrome 12, good-bye Google Gears | The Download Blog - Download.com</title><content type='html'>&lt;a href="http://download.cnet.com/8301-2007_4-20069860-12.html?tag=TOCcarouselMain.0"&gt;Hello Chrome 12, good-bye Google Gears | The Download Blog - Download.com&lt;/a&gt;: &lt;br /&gt;&lt;blockquote&gt;Hello Chrome 12, good-bye Google Gears&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;That didn't take long.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-6912883104979163166?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://download.cnet.com/8301-2007_4-20069860-12.html?tag=TOCcarouselMain.0' title='Hello Chrome 12, good-bye Google Gears | The Download Blog - Download.com'/><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/6912883104979163166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=6912883104979163166' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/6912883104979163166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/6912883104979163166'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/06/hello-chrome-12-good-bye-google-gears.html' title='Hello Chrome 12, good-bye Google Gears | The Download Blog - Download.com'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-353428155360721659</id><published>2011-06-07T10:53:00.016-04:00</published><updated>2011-06-07T11:27:19.845-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DRM'/><category scheme='http://www.blogger.com/atom/ns#' term='iTunes'/><title type='text'>Jobs tells me to get off of his iCloud -- Apple Blocks Protected AAC?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-6u-IBzzB6j0/Te489RbNIbI/AAAAAAAABf8/fizknto2mck/s1600/buttonsProtected.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 356px;" src="http://3.bp.blogspot.com/-6u-IBzzB6j0/Te489RbNIbI/AAAAAAAABf8/fizknto2mck/s400/buttonsProtected.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5615492808724783538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-_f20d_A1ads/Te481ez1WCI/AAAAAAAABf0/xeoxLUrQtyY/s1600/noStones.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 241px; height: 343px;" src="http://3.bp.blogspot.com/-_f20d_A1ads/Te481ez1WCI/AAAAAAAABf0/xeoxLUrQtyY/s400/noStones.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5615492674878789666" /&gt;&lt;/a&gt;&lt;br /&gt;I just downloaded the iTunes beta with iCloud, and my protected AAC files aren't there.  Look, I understand that they're stuck saying that, &lt;a href="http://www.apple.com/itunes/"&gt;"Previous purchases may be unavailable if they are no longer in the iTunes Store, App Store, or iBookstore,"&lt;/a&gt; but &lt;span style="font-style:italic;"&gt;Between the Buttons&lt;/span&gt; by the Rolling Stones is &lt;a href="http://itunes.apple.com/us/album/between-the-buttons/id76532834"&gt;still on iTunes&lt;/a&gt;.  I can't help myself.  I have to ask.  Why are the Stones &lt;a href="http://itunes.apple.com/us/album/get-off-of-my-cloud/id76532575?i=76532614"&gt;off of my iCloud&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;I think the answer is that I bought the album while it was a protected AAC.  None of the tracks I've purchased via iTunes when it sold tracks with DRM are there.  Unfortunately, the Stones aren't on the iTunes Plus upgrade list, so I'm toast.  &lt;br /&gt;&lt;br /&gt;I'm a little miffed that things I bought from Apple aren't on my iCloud, even though Apple told me the tracks should be, since they're still in the iTunes Music Store library.  And don't think Apple doesn't have a stake in making Protected AAC disappear.  They'd love to stop validating owners.  Lost another Protected AAC?  It's gone forever.&lt;br /&gt;&lt;br /&gt;Thus is licensing, I suppose, and I can always burn my 128 kbps Protected AACs to CD and rip them back as mp3.  It's nice to have my other files, some I didn't even know I was missing, back.  Apple is, admittedly, bringing your iTunes Plus files without DRM back from the dead if they've been lost.  Amazon isn't doing that with their cloud-player; only new files get saved.  And admittedly, most of my tracks are from CDs or Furthurnet.org and other [legal] live show trading sources.&lt;br /&gt;&lt;br /&gt;It's always been a real pain to sync libraries between computers, much less portable devices.  For $30 a year, now with &lt;a href="http://www.apple.com/icloud/features/"&gt;iTunes Match&lt;/a&gt;, Apple will do &lt;span style="font-style:italic;"&gt;all&lt;/span&gt; of the heavy lifting for you.  For $30, I can take those 128 Protected AACs from (CD to crappy) mp3s on to 256 kbps AAC -- and all of the rest of my mp3s -- without DRM.&lt;br /&gt;&lt;br /&gt;In fact, that's power-play number two here: Move everyone's library from the standard of mp3 to AAC, and push AAC's adoption.  My Android phone already plays AAC, and with moves like this, nobody will be able to drop it.  Imagine the amount of &lt;span style="font-style:italic;"&gt;de facto&lt;/span&gt; conversions from mp3 to AAC iTunes Match will bring.  (Nevermind that I recently swapped to 320 kbps for mp3 rips... not that it apparently &lt;a href="http://www.maximumpc.com/article/do_higher_mp3_bit_rates_pay_off?page=0,3"&gt;makes much difference in all but the most technical tracks&lt;/a&gt;.)&lt;br /&gt;&lt;br /&gt;That is, Apple'll do all the file syncing heavy lifting except in a few cases where you played early adopter, went out on a limb, and bought files from Apple.  Thanks, Steve.  Thanks for telling me to get your own files off of your cloud.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-353428155360721659?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/353428155360721659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=353428155360721659' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/353428155360721659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/353428155360721659'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/06/files-protected-from-icloud.html' title='Jobs tells me to get off of his iCloud -- Apple Blocks Protected AAC?'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-6u-IBzzB6j0/Te489RbNIbI/AAAAAAAABf8/fizknto2mck/s72-c/buttonsProtected.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-4251394249781192771</id><published>2011-06-05T13:59:00.000-04:00</published><updated>2011-08-18T10:38:49.260-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='problem solved'/><title type='text'>Note to Self: newlines - Join lines inside paragraphs in vim - Super User</title><content type='html'>&lt;a href="http://superuser.com/questions/200423/join-lines-inside-paragraphs-in-vim"&gt;newlines - Join lines inside paragraphs in vim - Super User&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;This should do it:&lt;br /&gt;&lt;br /&gt;:set tw=99999&lt;br /&gt;gggqG&lt;br /&gt;tw is set to some value at least as large as the number of characters in the longest paragraph. gg moves the cursor to the first line; gq is the command to reformat; G moves the cursor to the last line, telling gq to reformat from the current cursor location to the last line.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Seems to work.  So to save paper, I'm taking an article from Firefox, saving as text, pulling out the line breaks with VIm, then printing from Word with very little margins.&lt;br /&gt;&lt;br /&gt;Worth it?  Doanno.  Works though.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-4251394249781192771?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://superuser.com/questions/200423/join-lines-inside-paragraphs-in-vim' title='Note to Self: newlines - Join lines inside paragraphs in vim - Super User'/><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/4251394249781192771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=4251394249781192771' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/4251394249781192771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/4251394249781192771'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/06/note-to-self-newlines-join-lines-inside.html' title='Note to Self: newlines - Join lines inside paragraphs in vim - Super User'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-7235517279850799119</id><published>2011-06-05T13:01:00.000-04:00</published><updated>2011-06-05T13:01:08.709-04:00</updated><title type='text'>Cell Phones -- Our Generation's Cigarettes</title><content type='html'>&lt;a href="http://www.nytimes.com/2010/11/14/business/14digi.html"&gt;Cellphones and Cancer - A Far-From-Settled Issue - NYTimes.com&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;The warnings may be missed by an awful lot of customers. The United States has 292 million wireless numbers in use, approaching one for every adult and child, according to C.T.I.A.-The Wireless Association, the cellphone industry’s primary trade group. It says that as of June, about a quarter of domestic households were wireless-only.&lt;br /&gt;&lt;br /&gt;If health issues arise from ordinary use of this hardware, it would affect not just many customers but also a huge industry. Our voice calls — we chat on our cellphones 2.26 trillion minutes annually, according to the C.T.I.A. — generate $109 billion for the wireless carriers.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The worst part is that they don't even keep us thin.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-7235517279850799119?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.nytimes.com/2010/11/14/business/14digi.html' title='Cell Phones -- Our Generation&apos;s Cigarettes'/><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/7235517279850799119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=7235517279850799119' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7235517279850799119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/7235517279850799119'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/06/cell-phones-our-generations-cigarettes.html' title='Cell Phones -- Our Generation&apos;s Cigarettes'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-3237096073462266429</id><published>2011-06-04T10:09:00.000-04:00</published><updated>2011-06-04T10:09:05.111-04:00</updated><title type='text'>vWorker/Rent-a-Coder understands scoping bets?</title><content type='html'>I got a real kick out of &lt;a href="http://www.vworker.com/RentACoder/DotNet/Docs/BestPractice_OutsourcingModel.aspx#PaymentModels_PFD_HighAbandonmentRate"&gt;vWorker's explanation why programmers underbid for projects&lt;/a&gt;.  They do miss one thing, which I'll add below.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;You may be thinking this is a great thing for you, because it saves you money. However, if you think about it, receiving a severely under-market bid really doesn't. Imagine you are a worker who won a project and began work. Then, reality begins to sink in as you realize you under-bid by a factor between two and five. Soon you're calculating what that means. You've just taken a 50-80% pay-cut, and found yourself obligated to work for a period that's two to five times longer than you expected. How would you perform? You would probably not be delivering your best work. You might become very difficult to deal with. And you might even throw up your hands and completely quit. This is what tends to happen on larger pay-for-deliverables projects.&lt;br /&gt;&lt;br /&gt;You might be thinking 'So what? It's their own fault for bidding too low. I don't care because I still get my money back with the triple-point guarantee'. Yes, it's true you will get your money back. However, you'll have wasted all the time spent qualifying workers and interviewing, and will be stuck with the hassle of starting all over again. And even after your repost, re-qualify workers, and redo the work process, you still have the exact same 25% chance of ending up in the same place again.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The real reason this happens is the above, sure, but also 1.) Lots of programmers are dolts who can't do what they think they can. ("Sure, I can give you a CMS and online marketplace in 20 hours!  I've got this great third-party, open-source package that I Googled up!") and 2.) Those that are good want to get the project and bid based on their Best Case Scenario.  You know, the one where the coding breaks like you want it to:  You'll have tunes blasting out of your earphones, you'll forget about your coffee, and you'll figure out some way to factor your code where all you need are a few variations on three quick, brilliantly-written functions.  That actually happens, what, 20% of the time?  Just enough that you think it'll happen every time you decide it should happen.&lt;br /&gt;&lt;br /&gt;But the devil's always in the details.  Unless things break perfectly, you spend 35% of your time doing the last 15% of the work.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-3237096073462266429?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.vworker.com/RentACoder/DotNet/Docs/BestPractice_OutsourcingModel.aspx#PaymentModels_PFD_HighAbandonmentRate' title='vWorker/Rent-a-Coder understands scoping bets?'/><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/3237096073462266429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=3237096073462266429' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/3237096073462266429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/3237096073462266429'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/06/vworkerrent-coder-understands-scoping.html' title='vWorker/Rent-a-Coder understands scoping bets?'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-5431907677409945165</id><published>2011-06-01T16:57:00.003-04:00</published><updated>2011-06-01T16:59:11.445-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><title type='text'>Chrome's javascript debugger rocks</title><content type='html'>I'm not sure why I feel this way, but it does.  It seems to present errors in an easy, human-readable fashion, and its ability to jump into code is awesome.  The way it reloads from scratch when you reload a page is also nice.  I'm partial to having it in its own window, but it's nice.  It's like a built-in, well polished Venkman.&lt;br /&gt;&lt;br /&gt;I've taken to debugging my code on Chrome first.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-5431907677409945165?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/5431907677409945165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=5431907677409945165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5431907677409945165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5431907677409945165'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/06/chromes-javascript-debugger-rocks.html' title='Chrome&apos;s javascript debugger rocks'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-8181194239231263098</id><published>2011-05-31T07:15:00.000-04:00</published><updated>2011-05-31T07:15:28.453-04:00</updated><title type='text'>Apple initiates MacBook bottom case replacement program</title><content type='html'>&lt;a href="http://www.appleinsider.com/articles/11/05/30/apple_initiates_macbook_bottom_case_replacement_program.html"&gt;AppleInsider | Apple initiates MacBook bottom case replacement program&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Apple has initiated a case replacement program for MacBooks shipped between October 2009 and April 2011 to resolve an issue where the rubber separates from the bottom of the case.&lt;br /&gt;&lt;br /&gt;The MacBook Bottom Case Replacement Program is available to owners with affected MacBooks, regardless of current warranty status.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Thank heavens.  I've got duct tape on mine and lost a screw earlier this week.  Now if they'd just fix the track pad, which I had replaced twice before falling out of warranty and giving up.  It doesn't hard-click anymore, so I have to drag with a three-finger swipe.&lt;br /&gt;&lt;br /&gt;It's a great machine -- my favorite Mac laptop yet -- but these two hardware foibles drive me mad.  Glad to see I wasn't alone on the stupid rubber bottom.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-8181194239231263098?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.appleinsider.com/articles/11/05/30/apple_initiates_macbook_bottom_case_replacement_program.html' title='Apple initiates MacBook bottom case replacement program'/><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/8181194239231263098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=8181194239231263098' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/8181194239231263098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/8181194239231263098'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/05/apple-initiates-macbook-bottom-case.html' title='Apple initiates MacBook bottom case replacement program'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-6938952940670412354</id><published>2011-05-23T23:02:00.002-04:00</published><updated>2011-08-18T10:26:47.300-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='problem solved'/><title type='text'>Authorize.net Error (99) with SIM</title><content type='html'>&lt;a href="http://www.ubercart.org/forum/support/7647/authorizenet_sim_module_problem_transaction_cannot_be_accepted"&gt;Authorize.net SIM module problem: &amp;quot;This transaction cannot be accepted&amp;quot; | Ubercart&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;I am trying to setup the this module Authorize.net (SIM) payment method... but I keep getting this error when I try to complete a transaction:&lt;br /&gt;&lt;br /&gt;'The following errors have occurred.&lt;br /&gt;(99) This transaction cannot be accepted.'&lt;br /&gt;...&lt;br /&gt;Where exactly do I place my MD5 hash or what may be creating this error?&lt;br /&gt;&lt;br /&gt;Thanks...&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;And the right answer, whether you're using Ubercart or, in my case, rolling your own SIM cart...&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;The has[h] is an MD5 of your API login ID and a few other fields in the transaction. Have you entered the correct login ID?&lt;/blockquote&gt;&lt;br /&gt;Welp, that's it.  Whatever it is that you're doing, it's the fingerprint that's screwing up.  I'm allowing customers to change quantities on the order page, so of course we've got to allow the amount to change as well.  That screws up your fingerprint, and you have to generate a new one for each amount.  I'm doing that with AJAX, and let's just say there are lots of places where you can screw that up.&lt;br /&gt;&lt;br /&gt;Phew, glad that's over.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-6938952940670412354?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/6938952940670412354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=6938952940670412354' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/6938952940670412354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/6938952940670412354'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/05/authorizenet-error-99-with-sim.html' title='Authorize.net Error (99) with SIM'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-652524807426502450</id><published>2011-05-23T11:59:00.008-04:00</published><updated>2011-08-18T10:38:49.262-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dhtml'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='problem solved'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>CSS pop-ups</title><content type='html'>Sure, pop-ups are evil -- if they're for advertisements.  If they're to relay information from AJAX, perhaps not so much.  &lt;a href="http://colorpowered.com/colorbox/"&gt;ColorBox, a "customizable lightbox plugin for jQuery 1.3, 1.4, &amp;amp; 1.5"&lt;/a&gt; is a pretty good widget for in-window pop-up feedback.&lt;br /&gt;&lt;br /&gt;But what's the minimum code I could use to display this jive?  Glad you asked...&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="syntax0"&gt;&lt;span class="gutter"&gt;   1 &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;lt;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;html&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   2 &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   3 &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;lt;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;head&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   4 &lt;/span&gt;        &lt;span class="syntax-MARKUP"&gt;&amp;lt;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;title&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;gt;&lt;/span&gt;Simplest (give or take) Colorbox&lt;span class="syntax-MARKUP"&gt;&amp;lt;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;/&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;title&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;   5 &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   6 &lt;/span&gt;        &lt;span class="syntax-MARKUP"&gt;&amp;lt;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;link&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt; &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;media&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;screen&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt; &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;rel&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;stylesheet&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt; &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;href&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;./includes/colorbox.css&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt; &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;/&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   7 &lt;/span&gt;        &lt;span class="syntax-MARKUP"&gt;&amp;lt;script&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt; &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;src=&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;https&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;:&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;/&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;/&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;ajax&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;.&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;googleapis&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;.&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;com&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;/&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;ajax&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;/&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;libs&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;/&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;jquery&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;/&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;1&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;.&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;5&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;.&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;2&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;/&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;jquery&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;.&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;min&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;.&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;js&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;gt;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   8 &lt;/span&gt;        &lt;span class="syntax-COMMENT1"&gt;&amp;lt;!--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;from&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;http://colorpowered.com/colorbox/&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;--&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   9 &lt;/span&gt;        &lt;span class="syntax-MARKUP"&gt;&amp;lt;script&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt; &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;src=&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;.&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;/&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;includes&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;/&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;jquery&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;.&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;colorbox&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;.&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;js&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;gt;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  10 &lt;/span&gt;        &lt;span class="syntax-MARKUP"&gt;&amp;lt;script&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  11 &lt;/span&gt;                &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;This&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;is&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;for&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;colorbox&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;support&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  12 &lt;/span&gt;                &lt;span class="syntax-KEYWORD1"&gt;function&lt;/span&gt; &lt;span class="syntax-FUNCTION"&gt;disFeedback&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;str&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;   &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  13 &lt;/span&gt;                        elmOut &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; document&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;getElementById&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;feedback&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  14 &lt;/span&gt;                        &lt;span class="syntax-KEYWORD1"&gt;var&lt;/span&gt; d &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;new&lt;/span&gt; &lt;span class="syntax-KEYWORD3"&gt;Date&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  15 &lt;/span&gt;                        &lt;span class="syntax-OPERATOR"&gt;&amp;lt;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;?&lt;/span&gt;php&lt;br /&gt;&lt;span class="gutter"&gt;  16 &lt;/span&gt;                                &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;$bDebug&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;   &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  17 &lt;/span&gt;                                        echo &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;elmOut.innerHTML&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  18 &lt;/span&gt;                                         &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;=&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;elmOut.innerHTML&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;+&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;\&amp;quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;\\n\&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;+&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  19 &lt;/span&gt;                                         &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;d.getTime()&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;+&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;\&amp;quot;&amp;lt;br&amp;gt;\n\&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;+&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;str;\n&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  20 &lt;/span&gt;                                &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;    &lt;span class="syntax-KEYWORD1"&gt;else&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  21 &lt;/span&gt;                                        echo &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;elmOut.innerHTML&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;=&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;str;\n&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  22 &lt;/span&gt;                                &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  23 &lt;/span&gt;                        &lt;span class="syntax-OPERATOR"&gt;?&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  24 &lt;/span&gt;                        $&lt;span class="syntax-OPERATOR"&gt;.&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;colorbox&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;{&lt;/span&gt;width&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;50%&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; inline&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL2"&gt;true&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;,&lt;/span&gt; href&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;#feedback&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  25 &lt;/span&gt;        &lt;span class="syntax-COMMENT2"&gt;//&lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;      &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;        &lt;/span&gt;&lt;span class="syntax-COMMENT2"&gt;alert('here');&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  26 &lt;/span&gt;                &lt;span class="syntax-OPERATOR"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  27 &lt;/span&gt;        &lt;span class="syntax-MARKUP"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  28 &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;lt;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;/&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;head&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  29 &lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  30 &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  31 &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;lt;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;body&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  32 &lt;/span&gt;        This is some text.&lt;span class="syntax-MARKUP"&gt;&amp;lt;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;br&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  33 &lt;/span&gt;        &lt;span class="syntax-COMMENT1"&gt;&amp;lt;!--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;below&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;DIV&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;is&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;for&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;colorbox&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;info&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;--&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  34 &lt;/span&gt;        &lt;span class="syntax-MARKUP"&gt;&amp;lt;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;div&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt; &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;style='&lt;/span&gt;&lt;span class="syntax-KEYWORD2"&gt;display&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-KEYWORD3"&gt;none&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;'&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  35 &lt;/span&gt;                &lt;span class="syntax-MARKUP"&gt;&amp;lt;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;div&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt; &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;id&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;feedback&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt; &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;style='&lt;/span&gt;&lt;span class="syntax-KEYWORD2"&gt;padding&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-DIGIT"&gt;10px&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt; &lt;span class="syntax-KEYWORD2"&gt;background&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;:&lt;/span&gt;&lt;span class="syntax-DIGIT"&gt;#&lt;/span&gt;&lt;span class="syntax-DIGIT"&gt;fff&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;'&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;gt;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;lt;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;/&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;div&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  36 &lt;/span&gt;        &lt;span class="syntax-MARKUP"&gt;&amp;lt;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;/&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;div&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  37 &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  38 &lt;/span&gt;        &lt;span class="syntax-MARKUP"&gt;&amp;lt;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;a&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt; &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;href&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;#&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt; &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;onClick=&amp;quot;&lt;/span&gt;&lt;span class="syntax-FUNCTION"&gt;disFeedback&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;lt;b&amp;gt;test&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;feedback&amp;lt;/b&amp;gt;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;return&lt;/span&gt; &lt;span class="syntax-LITERAL2"&gt;false&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;gt;&lt;/span&gt;test&lt;span class="syntax-MARKUP"&gt;&amp;lt;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;/&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;a&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  39 &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;lt;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;/&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;body&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  40 &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  41 &lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;lt;&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;/&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;html&lt;/span&gt;&lt;span class="syntax-MARKUP"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  42 &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;You must also have an includes folder that looks something like this...&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-yqFmKaAvhJo/TdqFmBMX1jI/AAAAAAAABbk/krpa4OdbGkA/s1600/colorboxIncludes.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 257px; height: 354px;" src="http://4.bp.blogspot.com/-yqFmKaAvhJo/TdqFmBMX1jI/AAAAAAAABbk/krpa4OdbGkA/s400/colorboxIncludes.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5609943174045226546" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-652524807426502450?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/652524807426502450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=652524807426502450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/652524807426502450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/652524807426502450'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/05/css-pop-ups.html' title='CSS pop-ups'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-yqFmKaAvhJo/TdqFmBMX1jI/AAAAAAAABbk/krpa4OdbGkA/s72-c/colorboxIncludes.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-650776208837559924</id><published>2011-05-18T10:56:00.005-04:00</published><updated>2011-05-18T11:06:46.085-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powerpoint'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='F/free'/><category scheme='http://www.blogger.com/atom/ns#' term='schools'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Why isn't Linux making a push for schools?</title><content type='html'>Remember grammar school?  If you're of an age, where "an age" means approximately mine, you got used to using the Apple IIe with Logo and The Oregon Trail and even, for many of us, BASIC.  Ah, 10 PRINT &amp;lt;Control-G&gt; 20 GOTO 10.  Even in AP Pascal a decade later, I'm using an LC in our class to hack up my code.  Apple's aggressive marketing to schools was a brilliant move.&lt;br /&gt;&lt;br /&gt;Is this positive experience why I have Macs now?  Um, duh.  Yes.  If it's not a direct correlation, the indirect quotient is so small as to be nearly negligible.  Heck, I still like using OS 9 every so often on my StarMax clone, so it's not even the recent Apple cache that's sucked me back in.  I was brainwashed.&lt;br /&gt;&lt;br /&gt;Why aren't we doing that with Linux and grammar schools today?  Why are kids learning how to present with Powerpoint instead of OpenOffice?  Do I even need to argue the merits of going with "free as in beer" software that's function complete?  A local school is using Powerpoint 2007, so many kids can't even edit their Powerpoints at home if they wanted to, even if they did shell out for Office 2003 or 2004.  You get the picture.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-650776208837559924?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/650776208837559924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=650776208837559924' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/650776208837559924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/650776208837559924'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/05/why-isnt-linux-making-push-for-schools.html' title='Why isn&apos;t Linux making a push for schools?'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-4554635284969056481</id><published>2011-05-14T08:15:00.003-04:00</published><updated>2011-05-14T08:20:42.184-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hats of money'/><category scheme='http://www.blogger.com/atom/ns#' term='youtube'/><title type='text'>See, YouTube, commercials I don't pick make me stop watching</title><content type='html'>YouTube seems to be inserting a lot more commercials recently.  I realize they want to monetize, and maybe the commercials they have now do get more clicks overall, but it's getting difficult to fall into an hour long, OMGWTFBBQ I just watched 18 YouTube video bouts of watching when a Jeep commercial keeps throwing itself into the mix.  I didn't choose a Jeep video.  I don't want to watch a Jeep video.  If I did, I would have searched for "new jeep grand cherokee".  I didn't.&lt;br /&gt;&lt;br /&gt;Monetization isn't always evil, but this one is.  The beauty of YouTube was that you chose (maybe like a Choose Your Own Adventure, but you chose) what came next.  Exceptionally common video commercials kill that.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-4554635284969056481?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/4554635284969056481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=4554635284969056481' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/4554635284969056481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/4554635284969056481'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/05/see-youtube-commercials-i-dont-pick.html' title='See, YouTube, commercials I don&apos;t pick make me stop watching'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-5910371430537275596</id><published>2011-05-13T12:59:00.002-04:00</published><updated>2011-08-18T10:38:49.263-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='problem solved'/><title type='text'>VIM – Comment blocks of code</title><content type='html'>Ah, Blogger's back already.&lt;br /&gt;&lt;br /&gt;VIm, the editor that keeps on giving.  Seriously, there's a certain amount of this thing that you can be trained to use, but so much of it is simply using it year after year, finding increasingly (?) obscure things your workflow wishes you could do more quickly, and then slowly stalagmiting more and more wacky key combinations into the folds of your brain to make it all happen at light speed sans mouse.  Man, I love editing without a mouse.&lt;br /&gt;&lt;br /&gt;Today's lesson was in &lt;a href="http://notfaq.wordpress.com/2006/07/28/vim-comment-blocks-of-code/"&gt;blockwise visual mode&lt;/a&gt;, which I hadn't used [intentionally] before: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Mark the area which is to be commented using the *blockwise* visual mode (CTRL-V, in Windows this is CTRL-Q).&lt;br /&gt;&lt;br /&gt;Press I (capital i) and write the text you want to prepend to each line of the selected block, e.g. %.&lt;br /&gt;&lt;br /&gt;Then press ESC and the text will be inserted to the left of each line of the selected block.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;PhpStorm is a pretty good PHP IDE, about as good as you can get other than its rough edges, and it has a buggy and incomplete but pretty good VIm clone as an optional extension.  It, with PhpMyAdmin and SQuirreL SQL, really is reasonably close to achieving AMP stack programming perfection.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-5910371430537275596?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/5910371430537275596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=5910371430537275596' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5910371430537275596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/5910371430537275596'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/05/vim-comment-blocks-of-code.html' title='VIM – Comment blocks of code'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-2426157779141018594</id><published>2011-05-11T11:02:00.002-04:00</published><updated>2011-05-11T11:05:57.635-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='FSF'/><category scheme='http://www.blogger.com/atom/ns#' term='open'/><category scheme='http://www.blogger.com/atom/ns#' term='F/free'/><category scheme='http://www.blogger.com/atom/ns#' term='gmail'/><category scheme='http://www.blogger.com/atom/ns#' term='online distribution'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google's Animated Doodle: Technology Overkill?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-2tyN7oZe6S4/TcqlD_cLdkI/AAAAAAAABbU/kgidHLRRE2I/s1600/martha.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 285px;" src="http://3.bp.blogspot.com/-2tyN7oZe6S4/TcqlD_cLdkI/AAAAAAAABbU/kgidHLRRE2I/s400/martha.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5605474174203819586" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://news.cnet.com/8301-30685_3-20061774-264.html"&gt;Dynamic Google doodle draws dancers, complaints | Deep Tech - CNET News&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Today's Google doodle honors choreographer Martha Graham's birthday--and with animated dancers revealing it, the doodle also showcases the company's push to build a more dynamic Web.&lt;br /&gt;&lt;br /&gt;The only problem: some people find it's slowing their machines. That's hardly the outcome that Google--obsessed over every millisecond of delay in delivering search results--could have wanted.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The interesting thing here is that the animation is apparently all done with dhtml instead of, say, an animated gif, which would have done just as well.  The code is a mess.  And using the javascript engine to power your animation as well as your keystroke sensing is a little cannibalistic.  It's like ethanol -- there's no inherent reason that corn prices should be directly and immediately influenced by gasoline price until we started feeding our mouths and tanks with the same stuff.  It's a ill-fated confluence of convenience.&lt;br /&gt;&lt;br /&gt;Google's "everything's a nail" attitude also reminds me of what the Free Software Foundation is trying to call "&lt;a href="http://www.fsf.org/blogs/community/gmail-jstrap"&gt;The Javascript Trap&lt;/a&gt;.  Because Gmail's interface online is full of proprietary code, the FSF has decided they'd like to tell their mail list subscribers to stop using that fully-featured web app.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;You may not be aware of the dangers of JavaScript -- a problem we've deemed The JavaScript Trap -- proprietary software running on your computer, inside your web browser.&lt;br /&gt;...&lt;br /&gt;When you visit a website such as Gmail, your browser will download and run several thousand lines of JavaScript code. This JavaScript code is no different to other programming languages -- applications written in those languages running on our computers should be free software, so we can run, modify and share them if we wish.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;It's an interesting line, but a flawed one (my first reaction was a solid "&lt;a href="http://files.sharenator.com/oh_noes_Oh_noes-s500x375-49739-580.jpg"&gt;Oh noes!&lt;/a&gt;"), I think.  The Javascript is still out there for you to review and edit.  It's &lt;i&gt;heavily&lt;/i&gt; obfuscated, even moreso than decompiling many Java or .NET apps, I'd argue, but it's still out there.  The FSF should be more worried about the proprietary software on the Gmail &lt;span style="font-style:italic;"&gt;servers&lt;/span&gt;.  They suggest IMAP and Thunderbird is the way to go, which is nice, but they obviously haven't used Thunderbird recently.  (I kidded hyperbolically) &lt;br /&gt;&lt;br /&gt;I wonder if Javascript on your browser isn't in some sense a use of a little-"o" open source medium that is more in tune with FSF than, say, Outlook.  Sure you've still got the assembler/machine code of Outlook -- any app is just a bunch of zeroes and ones -- so you could argue it's open too, but Gmail is several steps closer.&lt;br /&gt;&lt;br /&gt;I did email Mr. Lee, who sent out an email to me (and everyone else) saying that I should stop using Gmail's online interface.  Here's a bit of my replies.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Though I expect Google's Javascript is copyrighted, it would seem that studying the Javascript is still possible, isn't it?  I'll admit I haven't checked the code, but each include file, etc, is downloaded to your browser, so we're a few cURLs away from the source, aren't we?  What's different here?&lt;br /&gt;... [he's nice enough to reply, and I send another]...&lt;br /&gt;There's nothing illegal about having your browser interpret Javascript differently, is there?  We can turn off window.open, eg, having our browsers censor or rewrite code.  There's an implicit openness to and ability to modify the interpretation of [little "o"] open Javascript already.  Extend Tor and interpret away, (c) or no.&lt;br /&gt;&lt;br /&gt;Like Java, the code's all there by virtue of the system, you know?  Your Gmail protest is really arguing that Free also implies "written for humans", which is a point I really appreciate.  It'd be great to see that slant foregrounded more in FSF posts and projects.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Open source is, ultimately, all about the human readability, isn't it?  The "Javascript trap" really means that you can't stop at open.  If I obfuscate my Java as part of the compilation process and release the obfuscated code, it's not really Open is it?&lt;br /&gt;&lt;br /&gt;Still, Google's mastery and overuse of Javascript is an excellent point.  What are they doing with our browsers?  Why are they willing to compromised their own functionality to recreate the animated gif or SVG?  And even though their interface seems very simplistic to the point of minimalism, which platforms are part of the Google web and which aren't?&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-2426157779141018594?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/2426157779141018594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=2426157779141018594' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/2426157779141018594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/2426157779141018594'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/05/googles-animated-doodle-technology.html' title='Google&apos;s Animated Doodle: Technology Overkill?'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-2tyN7oZe6S4/TcqlD_cLdkI/AAAAAAAABbU/kgidHLRRE2I/s72-c/martha.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-1765334799780795917</id><published>2011-05-08T22:11:00.000-04:00</published><updated>2011-08-18T10:38:49.265-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='problem solved'/><title type='text'>Note to self: "Android emulator screen too tall"</title><content type='html'>&lt;a href="http://stackoverflow.com/questions/2359895/android-emulator-screen-too-tall"&gt;Android emulator screen too tall - Stack Overflow&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;From within Eclipse:&lt;br /&gt;&lt;br /&gt;Go to Window -&amp;gt; Android SDK and AVD Manager -&amp;gt; Virtual Devices&lt;br /&gt;Select the AVD you want to launch and click Start&lt;br /&gt;Check the &amp;#39;Scale display to real size&amp;#39; button&lt;br /&gt;Enter how big you want it to appear in inches and press Launch. For this to work, you&amp;#39;ll have to also enter a reasonable approximation of your mac&amp;#39;s screen resolution. I&amp;#39;m using 7 inches and 113 dpi for my 13&amp;#39; Macbook Pro, but you may be able to get away with 8 or 9 inches.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-1765334799780795917?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://stackoverflow.com/questions/2359895/android-emulator-screen-too-tall' title='Note to self: &quot;Android emulator screen too tall&quot;'/><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/1765334799780795917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=1765334799780795917' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/1765334799780795917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/1765334799780795917'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/05/note-to-self-android-emulator-screen.html' title='Note to self: &quot;Android emulator screen too tall&quot;'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-8704313133521491870</id><published>2011-05-07T10:13:00.000-04:00</published><updated>2011-05-07T10:13:09.137-04:00</updated><title type='text'>Mac Skype Exploit -- What you don't know shouldn't hurt you, right?</title><content type='html'>&lt;a href="http://www.macrumors.com/2011/05/06/security-vulnerability-discovered-in-skype-for-mac-latest-update-includes-patch/"&gt;Security Vulnerability Discovered in Skype for Mac, Latest Update Includes Patch - Mac Rumors&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Skype quickly responded on its security blog, noting that the company was already aware of the issue by the time Maddern reported it and had in fact issued a fix for it as part of a minor update to Skype for Mac released on April 14th. &lt;span style="font-weight:bold;"&gt;But because exploits for the vulnerability had not been reported in the wild, the company opted not to prompt existing users to apply the update.&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Emphasis mine, natch.  So Skype's not going to protect their users until &lt;span style="font-style:italic;"&gt;after&lt;/span&gt; a few of them have been hacked &lt;span style="font-style:italic;"&gt;completely&lt;/span&gt;?  The whole point of Maddern emailing them that he'd found the issue is that, as soon as he discovered it, &lt;span style="font-style:italic;"&gt;the exploit was in the wild&lt;/span&gt;.  At least one fellow could have already completely compromised any Mac Skype user who accepted his messages.&lt;br /&gt;&lt;br /&gt;Wow.  There's a lawsuit waiting to happen.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-8704313133521491870?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.macrumors.com/2011/05/06/security-vulnerability-discovered-in-skype-for-mac-latest-update-includes-patch/' title='Mac Skype Exploit -- What you don&apos;t know shouldn&apos;t hurt you, right?'/><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/8704313133521491870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=8704313133521491870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/8704313133521491870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/8704313133521491870'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/05/mac-skype-exploit-what-you-dont-know.html' title='Mac Skype Exploit -- What you don&apos;t know shouldn&apos;t hurt you, right?'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-3972473157119849575</id><published>2011-05-04T13:07:00.000-04:00</published><updated>2011-05-04T13:07:11.636-04:00</updated><title type='text'>The iMac Mezzanine Slot is Back!</title><content type='html'>&lt;a href="http://www.ifixit.com/blog/blog/2011/05/04/imac-21-5-emc-2428-teardown/"&gt;iMac 21.5″ (EMC 2428) Teardown � iFixit Blog&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;With a bit of magic, the GPU heat sink detaches from the logic board, exposing the AMD GPU board. You heard that right, folks — you don’t have to replace the entire logic board if your GPU explodes from too much l33t gaming. You can just swap out the GPU board for another one.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;If you're just joining us, the original iMac and a few versions after &lt;a href="http://en.wikipedia.org/wiki/IMac_G3#cite_ref-4"&gt;had a "mezzanine" slot&lt;/a&gt; that allowed some folk to &lt;a href="http://www.xlr8yourmac.com/voodoo2/voodooII_faq.html"&gt;shove a Voodoo 2 video card into the beasts&lt;/a&gt;.  I've always thought that was pretty cool, if horribly impractical.&lt;br /&gt;&lt;br /&gt;Looks like that slot's back though, honestly, it'd almost be better to go the &lt;a href="http://www.curmudgeongamer.com/2007/01/finally-game-on-your-laptop.html"&gt;ASUS Game Station&lt;/a&gt; route and slap it into the &lt;a href="http://www.curmudgeongamer.com/2011/02/macbooks-with-thunderbolt-can-i-get-my.html"&gt;Thunderbolt port&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Wonder if coolness will strike twice?&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-3972473157119849575?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.ifixit.com/blog/blog/2011/05/04/imac-21-5-emc-2428-teardown/' title='The iMac Mezzanine Slot is Back!'/><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/3972473157119849575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=3972473157119849575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/3972473157119849575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/3972473157119849575'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/05/imac-mezzanine-slot-is-back.html' title='The iMac Mezzanine Slot is Back!'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-4323664310033214086</id><published>2011-04-29T09:21:00.003-04:00</published><updated>2011-08-18T10:38:49.267-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='problem solved'/><title type='text'>php with html forms: Assign to a specific array member</title><content type='html'>Kinda a neat trick that works with php (in my limited, MAMP-only testing):&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;&lt;pre&gt;&amp;lt;?php&lt;br /&gt; if (isset($_POST['test']))    {&lt;br /&gt;  foreach($_POST['test'] as $key =&gt; $x)   {&lt;br /&gt;   echo $key . "::" . $x . "&amp;lt;br&gt;\n";&lt;br /&gt;  }&lt;br /&gt; }    else {&lt;br /&gt;  echo "Enter values.&amp;lt;br&gt;\n";&lt;br /&gt; }&lt;br /&gt;?&gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;form method="POST"&gt;&lt;br /&gt;  &amp;lt;input type="text" value="dude" name="test[1]"&gt;&amp;lt;br&gt;&lt;br /&gt;  &amp;lt;input type="text" value="dude" name="test[3]"&gt;&amp;lt;br&gt;&lt;br /&gt;  &amp;lt;input type="text" value="dude" name="test[5]"&gt;&amp;lt;br&gt;&lt;br /&gt;  &amp;lt;input type="text" value="dude" name="test[8]"&gt;&amp;lt;br&gt;&lt;br /&gt;  &amp;lt;input type="text" value="dude" name="test[9]"&gt;&amp;lt;br&gt;&lt;br /&gt;  &amp;lt;input type="text" value="dude" name="test[2]"&gt;&amp;lt;br&gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;input type="submit"&gt;&amp;lt;br&gt;&lt;br /&gt; &amp;lt;/form&gt;&lt;/pre&gt;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;Output is...&lt;br /&gt;&lt;blockquote&gt;1::dude&lt;br /&gt;3::dude&lt;br /&gt;5::dude&lt;br /&gt;8::dude&lt;br /&gt;9::dude&lt;br /&gt;2::dude&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;That gives you a lot more control than just having &lt;tt&gt;test[]&lt;/tt&gt; for your form element names.  So in one page, I want to know the id numbers of the elements that are selected.  Now I can put that information in the index of the array and pass a value (in this case, a user-inputed ordinal reflecting the display order of the elements) as well.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-4323664310033214086?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/4323664310033214086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=4323664310033214086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/4323664310033214086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/4323664310033214086'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/04/php-with-html-forms-assign-to-specific.html' title='php with html forms: Assign to a specific array member'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-2738824387893255396</id><published>2011-04-20T16:15:00.000-04:00</published><updated>2011-04-20T16:15:08.654-04:00</updated><title type='text'>Global Variables Are Bad</title><content type='html'>&lt;a href="http://c2.com/cgi/wiki?GlobalVariablesAreBad"&gt;Global Variables Are Bad&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Why Global Variables Should Be Avoided When Unnecessary&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;(with a list that follows)&lt;br /&gt;&lt;br /&gt;Where were you guys in the sixties when I needed you? (Harry Chapin)&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-2738824387893255396?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://c2.com/cgi/wiki?GlobalVariablesAreBad' title='Global Variables Are Bad'/><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/2738824387893255396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=2738824387893255396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/2738824387893255396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/2738824387893255396'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/04/global-variables-are-bad.html' title='Global Variables Are Bad'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-2253881177546828259</id><published>2011-04-20T14:00:00.007-04:00</published><updated>2011-08-18T10:38:49.268-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='excel'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='problem solved'/><category scheme='http://www.blogger.com/atom/ns#' term='applescript'/><title type='text'>Minimize your tells!  More Applescript+Excel 2008 fun</title><content type='html'>So if you want to automate Excel 2008 with Applescript, you have to minimize your tells.  There are some strange scoping interferences.  For instance, this code breaks.&lt;tt&gt;&lt;pre&gt;tell application "Microsoft Excel"&lt;br /&gt; set intOffset to (offset of "E" in "ABCDEFG")&lt;br /&gt;end tell&lt;/pre&gt;&lt;/tt&gt;Try to compile/run and you get "Syntax Error -- Can't get "E" in "ABCDEFG".  Access not allowed."  Wack.  Fun times with text manipulation and Excel automation, eh?&lt;br /&gt;&lt;br /&gt;So code that borks like that needs to be pulled out of the tell block.  You maintain values that were pulled out of Excel references, so it's not a big deal other than the inherent wackiness.  So in my code now, the tell block to Excel is &lt;i&gt;very&lt;/i&gt; small.&lt;tt&gt;&lt;pre&gt;-- it seems like you could do all this work within tell&lt;br /&gt;-- tags, but that's not the case.  For instance, the&lt;br /&gt;-- following code WON'T work within a tell to MS Excel:&lt;br /&gt;--  set intOffset to (offset of "E" in "ABCDEFG")&lt;br /&gt;-- I'm not sure what the problem is, or if it's keyword&lt;br /&gt;-- overload or something, but reducing the tell to a&lt;br /&gt;-- minimum seems to be the best move.&lt;br /&gt;tell application "Microsoft Excel"&lt;br /&gt; set theValue to get value of cell c of row r of active sheet&lt;br /&gt;end tell&lt;/pre&gt;&lt;/tt&gt;theValue sticks around afterwards and my stock/simple string manipulation calls work again, so no problems.  Not sure if doing the tell inside of instead of outside of my logic's loops causes some big bridge between Excel and Applescript to be built, destroyed, and built again, but it's already so freakin' slow it's not like it really matters.  There's fast as in "give it to me now" and 'fast' as in "give it to me in a few hours after I go for a run, to the grocery store, and do the dishes".  This is in the second, and is nearly already in the "go to sleep on it and hope it's done in the morning" category that comes afterwards.  I hate this.  &lt;br /&gt;&lt;br /&gt;(I ran into this "sleep on it" speed at a shop that used Crystal Reports against very large databases and it drove me MAD.  It was bad enough I took the time to figure out a way to have Crystal use SQL directly against the DB, moving the logic where it's supposed to go -- the database -- and left Crystal just with formatting.  Thank heavens.  Even if I personally only used it a few times, give me a break, folk.  We went from clients waiting all night -- even DAYS at times -- for reports to them waiting a few minutes at worst.  It's not 1980 any more!  Your workstations are &lt;i&gt;fast&lt;/i&gt; if you're not gaming, okay?  (Not 1980, that is, unless you're using Applescript to automate Excel 2008, apparently.))&lt;br /&gt;&lt;br /&gt;FUN IN KLUDGEVILLE!!!  I'll probably repost my "practical example" as it is now in a bit.  It's not clean at all.  Drives me a little crazy.&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-2253881177546828259?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/2253881177546828259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=2253881177546828259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/2253881177546828259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/2253881177546828259'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/04/minimize-your-tells-more.html' title='Minimize your tells!  More Applescript+Excel 2008 fun'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-835774295061654643</id><published>2011-04-19T16:07:00.006-04:00</published><updated>2011-08-18T10:38:49.270-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='excel'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='vba'/><category scheme='http://www.blogger.com/atom/ns#' term='problem solved'/><category scheme='http://www.blogger.com/atom/ns#' term='applescript'/><title type='text'>What "real" Applescript code looks like</title><content type='html'>This stinks.  Really.  Say what you will about Microsoft, they know how to create and maintain a programming language.  Whoever thought that s/vbscript/Applescript/gi would be a fair substitution in Office for Mac (even ignoring that it breaks legacy macros) was not a programmer.&lt;br /&gt;&lt;br /&gt;Here's what my "final" code looks like.  It's a mess and needs cleaning.  But something that's &lt;a href="http://myfreakinname.blogspot.com/2009/08/note-to-self-excel-vba-ist-facile.html"&gt;INSANELY EASY in vbscript&lt;/a&gt; takes the below to do something similar.  I couldn't even get it to know what cell format selections I'd made in Excel and ended up with an ugly kludge for zip codes and a hellah ugly kludge for phone numbers which were coming out in a format like "9.195553662E+9".  What a mess.  &lt;br /&gt;&lt;br /&gt;I could clean it up some, taking out lesser kludges that aren't working, but I think you get the point better as is.  Not intuitive.  Not fully-featured.  The stuff you have to roll yourself in Applescript (afaict) is insane and inane.  Boy.  Talk about not feeling fully featured.&lt;br /&gt;&lt;br /&gt;Now I have to let it wade through over 3000 lines of Excel tonight...&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="syntax0"&gt;&lt;span class="gutter"&gt;   1 &lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;on&lt;/span&gt; replaceText&lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;find, replace, subject&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;   2 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; prevTIDs &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; text item delimiters &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; AppleScript&lt;br /&gt;&lt;span class="gutter"&gt;   3 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; text item delimiters &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; AppleScript &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; find&lt;br /&gt;&lt;span class="gutter"&gt;   4 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; subject &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; text items &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; subject&lt;br /&gt;&lt;span class="gutterH"&gt;   5 &lt;/span&gt;        &lt;br /&gt;&lt;span class="gutter"&gt;   6 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; text item delimiters &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; AppleScript &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; replace&lt;br /&gt;&lt;span class="gutter"&gt;   7 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; subject &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; subject&lt;br /&gt;&lt;span class="gutter"&gt;   8 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; text item delimiters &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; AppleScript &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; prevTIDs&lt;br /&gt;&lt;span class="gutter"&gt;   9 &lt;/span&gt;        &lt;br /&gt;&lt;span class="gutterH"&gt;  10 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;return&lt;/span&gt; subject&lt;br /&gt;&lt;span class="gutter"&gt;  11 &lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;end&lt;/span&gt; replaceText&lt;br /&gt;&lt;span class="gutter"&gt;  12 &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  13 &lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;tell&lt;/span&gt; application &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;Microsoft&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;Excel&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  14 &lt;/span&gt;        &lt;br /&gt;&lt;span class="gutterH"&gt;  15 &lt;/span&gt;        &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;from&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;http://lists.apple.com/archives/applescript-users/2009/Jun/msg00331.html&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  16 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; hc &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; find &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;row &lt;span class="syntax-DIGIT"&gt;1&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; used range &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; active sheet&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; what &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;PHONE&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  17 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; n &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-KEYWORD2"&gt;first&lt;/span&gt; column &lt;span class="syntax-KEYWORD2"&gt;index&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; hc&lt;br /&gt;&lt;span class="gutter"&gt;  18 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; f &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-KEYWORD2"&gt;first&lt;/span&gt; column &lt;span class="syntax-KEYWORD2"&gt;index&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;column &lt;span class="syntax-DIGIT"&gt;1&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; used range &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; active sheet&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  19 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; col &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; column &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;n &lt;span class="syntax-OPERATOR"&gt;-&lt;/span&gt; f &lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;1&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; used range &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; active sheet&lt;br /&gt;&lt;span class="gutterH"&gt;  20 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; number format &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; col &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;0&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  21 &lt;/span&gt;        &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;doesn't&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;seem&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;work&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  22 &lt;/span&gt;        &lt;br /&gt;&lt;span class="gutter"&gt;  23 &lt;/span&gt;        &lt;br /&gt;&lt;span class="gutter"&gt;  24 &lt;/span&gt;        &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;      &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;say&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;&amp;quot;Saving&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;with&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;every&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;row&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  25 &lt;/span&gt;        &lt;br /&gt;&lt;span class="gutter"&gt;  26 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; lastCol &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;10&lt;/span&gt; &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;yes,&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;I'm&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;cheating.&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  27 &lt;/span&gt;        &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;you&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;have&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;know&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;the&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;last&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;col&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;and&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;row&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;for&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;this&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;work&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  28 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; lastRow &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;100&lt;/span&gt; &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;I&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;suppose&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;I&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;could&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;add&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;dialog&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;boxes&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;ask&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;max&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;nums&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  29 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; c &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  30 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; r &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;90&lt;/span&gt; &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;that's&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;the&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;first&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;row&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;that's&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;got&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;info&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;it&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;in;&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;skip&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;the&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;first&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;row's&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;col&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;headers&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  31 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; strCmd &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  32 &lt;/span&gt;        &lt;br /&gt;&lt;span class="gutter"&gt;  33 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;try&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  34 &lt;/span&gt;                &lt;span class="syntax-KEYWORD1"&gt;repeat&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;until&lt;/span&gt; r &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; lastRow &lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  35 &lt;/span&gt;                        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; strCmd &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; strCmd &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;INSERT&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;INTO&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;restaurants&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;(phone,&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;company,&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;address,&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;not;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  36 &lt;/span&gt;                        city, state, zip, owner, gm, agent, chef&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  37 &lt;/span&gt;                        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; strCmd &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; strCmd &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;VALUES&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;(&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  38 &lt;/span&gt;                        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; daComma &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  39 &lt;/span&gt;                        &lt;br /&gt;&lt;span class="gutterH"&gt;  40 &lt;/span&gt;                        &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;'','','',42,,'','','')&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  41 &lt;/span&gt;                        &lt;br /&gt;&lt;span class="gutter"&gt;  42 &lt;/span&gt;                        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; c &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  43 &lt;/span&gt;                        &lt;br /&gt;&lt;span class="gutter"&gt;  44 &lt;/span&gt;                        &lt;span class="syntax-KEYWORD1"&gt;repeat&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;until&lt;/span&gt; c &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; lastCol &lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  45 &lt;/span&gt;                                &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;display&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;dialog&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;&amp;quot;Row:&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;&amp;amp;&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;r&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;&amp;amp;&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;Col:&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;&amp;amp;&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;c&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  46 &lt;/span&gt;                                &lt;br /&gt;&lt;span class="gutter"&gt;  47 &lt;/span&gt;                                &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; theValue &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;get&lt;/span&gt; value &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; cell c &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; row r &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; active sheet&lt;br /&gt;&lt;span class="gutter"&gt;  48 &lt;/span&gt;                                &lt;br /&gt;&lt;span class="gutter"&gt;  49 &lt;/span&gt;                                &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;c &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;1&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;then&lt;/span&gt; &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;then&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;we&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;have&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;a&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;phone&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;number&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  50 &lt;/span&gt;                                        &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;Excel&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;via&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;Applescript&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;is&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;borking&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;numbers&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;like&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;mad.&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  51 &lt;/span&gt;                                        &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;There&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;are&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;Right&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;Ways&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;handle&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;this.&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;They&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  52 &lt;/span&gt;                                        &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;don't&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;see&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;be&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;working&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;well&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;(see&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;above).&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  53 &lt;/span&gt;                                        &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;we're&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;going&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;cheat&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;like&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;mad&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;instead.&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  54 &lt;/span&gt;                                        &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;TODO:&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;KLUDGE-A-RIFFIC&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  55 &lt;/span&gt;                                        &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;text &lt;span class="syntax-DIGIT"&gt;11&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;theValue &lt;span class="syntax-OPERATOR"&gt;as&lt;/span&gt; string&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;E&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  56 &lt;/span&gt;                                                &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; strOut &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; text &lt;span class="syntax-DIGIT"&gt;1&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;theValue &lt;span class="syntax-OPERATOR"&gt;as&lt;/span&gt; string&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &amp;not;&lt;br /&gt;&lt;span class="gutter"&gt;  57 &lt;/span&gt;                                                        &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; text &lt;span class="syntax-DIGIT"&gt;3&lt;/span&gt; &lt;span class="syntax-KEYWORD2"&gt;thru&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;10&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;theValue &lt;span class="syntax-OPERATOR"&gt;as&lt;/span&gt; string&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;0&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  58 &lt;/span&gt;                                        &lt;span class="syntax-KEYWORD1"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  59 &lt;/span&gt;                                                &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; strOut &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; text &lt;span class="syntax-DIGIT"&gt;1&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;theValue &lt;span class="syntax-OPERATOR"&gt;as&lt;/span&gt; string&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &amp;not;&lt;br /&gt;&lt;span class="gutterH"&gt;  60 &lt;/span&gt;                                                        &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; text &lt;span class="syntax-DIGIT"&gt;3&lt;/span&gt; &lt;span class="syntax-KEYWORD2"&gt;thru&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;11&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;theValue &lt;span class="syntax-OPERATOR"&gt;as&lt;/span&gt; string&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  61 &lt;/span&gt;                                        &lt;span class="syntax-KEYWORD1"&gt;end&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  62 &lt;/span&gt;                                        &lt;br /&gt;&lt;span class="gutter"&gt;  63 &lt;/span&gt;                                        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; strCmd &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; strCmd &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; daComma &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; strOut&lt;br /&gt;&lt;span class="gutter"&gt;  64 &lt;/span&gt;                                        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; daComma &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;,&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  65 &lt;/span&gt;                                        &lt;br /&gt;&lt;span class="gutter"&gt;  66 &lt;/span&gt;                                &lt;span class="syntax-KEYWORD1"&gt;else&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;c &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;6&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;then&lt;/span&gt; &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;then&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;we&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;have&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;a&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;zip&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;code&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  67 &lt;/span&gt;                                        &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;can't&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;use&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;this&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;branch&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;for&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;phone&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;numbers&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  68 &lt;/span&gt;                                        &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;as&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;they&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;evaluate&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;a&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;number&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;larger&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;than&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  69 &lt;/span&gt;                                        &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;our&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;largest&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;possible&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;integer&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  70 &lt;/span&gt;                                        &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;&lt;span class="syntax-KEYWORD3"&gt;count&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; characters &lt;span class="syntax-KEYWORD1"&gt;of&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;theValue &lt;span class="syntax-OPERATOR"&gt;as&lt;/span&gt; string&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;5&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  71 &lt;/span&gt;                                                &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; theValue &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; theValue &lt;span class="syntax-OPERATOR"&gt;as&lt;/span&gt; integer&lt;br /&gt;&lt;span class="gutter"&gt;  72 &lt;/span&gt;                                        &lt;span class="syntax-KEYWORD1"&gt;end&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  73 &lt;/span&gt;                                        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; strCmd &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; strCmd &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; daComma &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;theValue &lt;span class="syntax-OPERATOR"&gt;as&lt;/span&gt; string&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  74 &lt;/span&gt;                                        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; daComma &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;,&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  75 &lt;/span&gt;                                &lt;span class="syntax-KEYWORD1"&gt;else&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;c &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;5&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  76 &lt;/span&gt;                                        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; strCmd &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; strCmd &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; daComma &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;42&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  77 &lt;/span&gt;                                        &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;hard&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;coding&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;SC&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;save&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;a&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;lookup&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  78 &lt;/span&gt;                                        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; daComma &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;,&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  79 &lt;/span&gt;                                &lt;span class="syntax-KEYWORD1"&gt;else&lt;/span&gt; &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;else&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;it's&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;a&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;string&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  80 &lt;/span&gt;                                        &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt; theValue &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  81 &lt;/span&gt;                                                &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; theValue &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;empty&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  82 &lt;/span&gt;                                        &lt;span class="syntax-KEYWORD1"&gt;end&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  83 &lt;/span&gt;                                        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; strCmd &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; strCmd &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; daComma &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;theValue &lt;span class="syntax-OPERATOR"&gt;as&lt;/span&gt; string&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;'&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  84 &lt;/span&gt;                                        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; daComma &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;,&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  85 &lt;/span&gt;                                &lt;span class="syntax-KEYWORD1"&gt;end&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  86 &lt;/span&gt;                                &lt;br /&gt;&lt;span class="gutter"&gt;  87 &lt;/span&gt;                                &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; c &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;c &lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;1&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  88 &lt;/span&gt;                        &lt;span class="syntax-KEYWORD1"&gt;end&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;repeat&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  89 &lt;/span&gt;                        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; strCmd &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; strCmd &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;)&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;return&lt;/span&gt; &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;return&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;adds&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;a&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;MacOS&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;newline&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  90 &lt;/span&gt;                        &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; r &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;r &lt;span class="syntax-OPERATOR"&gt;+&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;1&lt;/span&gt;&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  91 &lt;/span&gt;                        &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt; r &lt;span class="syntax-OPERATOR"&gt;mod&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;50&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;=&lt;/span&gt; &lt;span class="syntax-DIGIT"&gt;0&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  92 &lt;/span&gt;                                &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;beep&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;add&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;some&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;sort&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;of&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;feedback.&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  93 &lt;/span&gt;                                say r &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;add&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;cooler&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;feedback.&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;This&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;talks.&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  94 &lt;/span&gt;                                &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;Btw,&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;Applescript&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;for&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;this&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;in&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;Excel&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;is&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;insanely&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;slooooow&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt;  95 &lt;/span&gt;                                &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;vs.&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;my&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;experience&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;with&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;vbs.&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;It&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;takes&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;several&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;seconds&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  96 &lt;/span&gt;                                &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;do&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;10&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;rows&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;of&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;ten&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;columns&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;of&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;customer&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;address&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;and&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;phone,&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;etc.&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  97 &lt;/span&gt;                                &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;information.&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  98 &lt;/span&gt;                        &lt;span class="syntax-KEYWORD1"&gt;end&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;if&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt;  99 &lt;/span&gt;                &lt;span class="syntax-KEYWORD1"&gt;end&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;repeat&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt; 100 &lt;/span&gt;                &lt;br /&gt;&lt;span class="gutter"&gt; 101 &lt;/span&gt;                &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; theFilePath &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;(&lt;/span&gt;path &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; desktop &lt;span class="syntax-OPERATOR"&gt;as&lt;/span&gt; string&lt;span class="syntax-OPERATOR"&gt;)&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;test11.txt&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;as&lt;/span&gt; string&lt;br /&gt;&lt;span class="gutter"&gt; 102 &lt;/span&gt;                &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; theFileReference &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-KEYWORD3"&gt;open&lt;/span&gt; for access theFilePath &lt;span class="syntax-KEYWORD1"&gt;with&lt;/span&gt; write permission&lt;br /&gt;&lt;span class="gutter"&gt; 103 &lt;/span&gt;                write strCmd &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; theFileReference&lt;br /&gt;&lt;span class="gutter"&gt; 104 &lt;/span&gt;                &lt;span class="syntax-KEYWORD3"&gt;close&lt;/span&gt; access theFileReference&lt;br /&gt;&lt;span class="gutterH"&gt; 105 &lt;/span&gt;                &lt;br /&gt;&lt;span class="gutter"&gt; 106 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;on&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;error&lt;/span&gt; errMessage number errNum &lt;span class="syntax-KEYWORD1"&gt;from&lt;/span&gt; errSource partial &lt;span class="syntax-LITERAL2"&gt;result&lt;/span&gt; errList &amp;not;&lt;br /&gt;&lt;span class="gutter"&gt; 107 &lt;/span&gt;                &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; class_constant &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;various&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;variables&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;store&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;information&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;about&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;the&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;error&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt; 108 &lt;/span&gt;                &lt;span class="syntax-KEYWORD1"&gt;set&lt;/span&gt; bigmessage &lt;span class="syntax-KEYWORD1"&gt;to&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;The&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;error&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;is:&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; errMessage &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;return&lt;/span&gt; &amp;not;&lt;br /&gt;&lt;span class="gutter"&gt; 109 &lt;/span&gt;                        &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;The&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;number&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;is:&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; errNum &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;return&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;The&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;source&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;is:&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; errSource &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;return&lt;/span&gt; &amp;not;&lt;br /&gt;&lt;span class="gutterH"&gt; 110 &lt;/span&gt;                        &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;r&amp;amp;c:&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; r &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;amp;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt; &lt;span class="syntax-OPERATOR"&gt;&amp;amp;&lt;/span&gt; c&lt;br /&gt;&lt;span class="gutter"&gt; 111 &lt;/span&gt;                &lt;span class="syntax-KEYWORD1"&gt;error&lt;/span&gt; bigmessage &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;error&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;statement&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;displays&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;dialog&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;box&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;user&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt; 112 &lt;/span&gt;                say &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;error&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;in&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;the&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt; &lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;loop&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt; 113 &lt;/span&gt;                &lt;span class="syntax-KEYWORD3"&gt;close&lt;/span&gt; access theFileReference&lt;br /&gt;&lt;span class="gutter"&gt; 114 &lt;/span&gt;                &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;this&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;close&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;seems&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;important.&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;I&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;can't&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;tell&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;how&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;get&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt; 115 &lt;/span&gt;                &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;back&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;the&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;handle&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;close&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;this&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;if&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;I&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;had&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;an&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;error&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;cause&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;it&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt; 116 &lt;/span&gt;                &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;stay&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;open&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;from&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;a&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;past&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;script&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;invocation.&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt; 117 &lt;/span&gt;        &lt;span class="syntax-KEYWORD1"&gt;end&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;try&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt; 118 &lt;/span&gt;        &lt;br /&gt;&lt;span class="gutter"&gt; 119 &lt;/span&gt;        say &lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;Done!&lt;/span&gt;&lt;span class="syntax-LITERAL1"&gt;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutterH"&gt; 120 &lt;/span&gt;        &lt;span class="syntax-COMMENT1"&gt;--&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;      &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;display&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;dialog&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;&amp;quot;Done&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;with&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;write&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;to&lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt; &lt;/span&gt;&lt;span class="syntax-COMMENT1"&gt;file&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="gutter"&gt; 121 &lt;/span&gt;&lt;span class="syntax-KEYWORD1"&gt;end&lt;/span&gt; &lt;span class="syntax-KEYWORD1"&gt;tell&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;Footers rule.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3201639-835774295061654643?l=myfreakinname.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myfreakinname.blogspot.com/feeds/835774295061654643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3201639&amp;postID=835774295061654643' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/835774295061654643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3201639/posts/default/835774295061654643'/><link rel='alternate' type='text/html' href='http://myfreakinname.blogspot.com/2011/04/what-real-applescript-code-looks-like.html' title='What &quot;real&quot; Applescript code looks like'/><author><name>ruffin</name><uri>http://www.blogger.com/profile/02272945932184892035</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/-3FGkPjTp_Qo/Toy2CyaS9pI/AAAAAAAABn4/jYdSrYWOSp4/s220/liteBright.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3201639.post-1558403237045053897</id><published>2011-04-19T14:16:00.002-04:00</published><updated>2011-08-18T10:38:49.272-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='noteToSelf'/><category scheme='http://www.blogger.com/atom/ns#' term='excel'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='problem solved'/><category scheme='http://www.blogger.com/atom/ns#' term='applescript'/><title type='text'>Applescripting cell by cell in Excel 2008</title><content type='html'>I have Excel 2008 on my Mac.  About the only complicated thing I ever want to do with Excel files is to manipulate them line by line and spit the output into a cut and pasteable source for my clipboard.  I have a &lt;a href="http://myfreakinname.blogspot.com/2009/08/note-to-self-excel-vba-ist-facile.html"&gt;vbscript version&lt;/a&gt; for Windows, but when I'm in 2008 land, I'm sunk.  No vbs.  Only Applescript.  Stinks.&lt;br /&gt;&lt;br /&gt;Frustrated with having to wait until I'm back on my Windows box, not yet willing to shell out more cash and buy &lt;a href="http://www.macworld.com/article/133393/2008/05/vba.html"&gt;Office 2011&lt;/a&gt; (and fed up enough with Office 2004 that I threw it away the second 2008 hit my box), I'm finally going to figure out how to port the code to Applescript.&lt;br /&gt;&lt;br /&gt;So first let's essentially run Hello, World, and put a value into a specific Excel cell.&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;&lt;pre&gt;tell application "Microsoft Excel"&lt;br /&gt; tell worksheet "Sheet1" of active workbook&lt;br /&gt;  set value of cell "A1" to 35&lt;br /&gt; end tell&lt;br /&gt;end tell&lt;/pre&gt;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;Going to Sheet2 is exactly like you'd expect.&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;&lt;pre&gt;tell application "Microsoft Excel"&lt;br /&gt; tell worksheet "Sheet2" of active workbook&lt;br /&gt;  set value of cell "A1" to 35&lt;br /&gt; end tell&lt;br /&gt;end tell&lt;/pre&gt;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;So once we start playing around, we'll probably want some way to keep track of what we've found.  In my case, I want to turn line after line from an Excel file to SQL statements.  Instead of a giant dialog box, I'll just slap that into a file.&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;&lt;pre&gt;set theText to "some text"&lt;br /&gt;set theFilePath to (path to desktop as string) &amp; "test.txt" as string&lt;br /&gt;set theFileReference to open for access theFilePath with write permission&lt;br /&gt;write theText to theFileReference&lt;br /&gt;close access theFileReference&lt;/pre&gt;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;So now all we've got to do is to throw the contents of each cell into theText.  So now we need to find out how to iterate through all Excel cells?&lt;br /&gt;&lt;br /&gt;This took a little longer that I would have expected.  The key is this line:&lt;br /&gt;&lt;tt&gt;&lt;pre&gt;get value of cell c of row r of active sheet&lt;/pre&gt;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;That takes the place of .Cells(x,y)&lt;br /&gt;&lt;br /&gt;So here's the end result.&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;&lt;pre&gt;tell application "Microsoft Excel"&lt;br /&gt; &lt;br /&gt; say "Saving at the end"&lt;br /&gt;&lt;br /&gt; set lastCol to 10 -- yes, I'm cheating.  &lt;br /&gt; -- you have to know the last col and row for this to work&lt;br /&gt; set lastRow to 1000 -- I suppose I could add dialog boxes to ask max nums&lt;br /&gt; set c to 1&lt;br /&gt; set r to 2 -- that's the first row that's got info it in; skip the first row's col headers&lt;br /&gt; set strCells to ""&lt;br /&gt; &lt;br /&gt; try&lt;br /&gt;  repeat until r = lastRow&lt;br /&gt;   set c to 2&lt;br /&gt;   set strCells to strCells &amp; (r as text) &amp; " -- "&lt;br /&gt;   repeat until c = lastCol&lt;br /&gt;    --display dialog "Row: " &amp; r &amp; " Col: " &amp; c&lt;br /&gt;    set theValue to get value of cell c of row r of active sheet&lt;br /&gt;    set strCells to strCells &amp; theValue &amp; " :: " as text&lt;br /&gt;    -- just use &amp; to append; cast to text with "as text"&lt;br /&gt;    set c to (c + 1)&lt;br /&gt;   end repeat&lt;br /&gt;   set strCells to strCells &amp; return -- return adds a MacOS newline&lt;br /&gt;   set r to (r + 1)&lt;br /&gt;   if r mod 20 = 0 then&lt;br /&gt;    -- beep -- add some sort of feedback.  &lt;br /&gt;    say r -- add cooler feedback.  This talks.&lt;br /&gt;    -- Btw, Applescript for this in Excel is insanely slooooow &lt;br /&gt;    -- vs. my experience with vbs.  It takes several seconds to &lt;br /&gt;    -- do 10 rows of ten columns of customer address and phone, etc.&lt;br /&gt;    -- information.&lt;br /&gt;   end if&lt;br /&gt;  end repeat&lt;br /&gt;  close access theFileReference&lt;br /&gt;  &lt;br /&gt;  -- write strCells to theFileReference&lt;br /&gt; on error&lt;br /&gt;  say "error in the loop"&lt;br /&gt; end try&lt;br /&gt; &lt;br /&gt; try&lt;br /&gt;  set theFilePath to (path to desktop as string) &amp; "test2.txt" as string&lt;br /&gt;  set theFileReference to open for access theFilePath with write permission&lt;br /&gt;  write strCells to theFileReference&lt;br /&gt;  close access theFileReference&lt;br /&gt; on error&lt;br /&gt;  say "Error in writing to file"&lt;br /&gt;  close access theFileReference&lt;br /&gt;  -- this close seems important.  I can't tell how to get&lt;br /&gt;  -- back the handle to close this if I had an error cause it&lt;br /&gt;  -- to stay open from a past script invocation.&lt;br /&gt; end try&lt;br /&gt;  &lt;br /&gt; say "Done!"&lt;br /&gt;&lt;br /&gt;end tell&lt;/pre&gt;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;This is PAINFULLY slow, however.  I'm used to it screaming.  I tried rearranging the code to write out the jive to the file with each line, and that's not noticeably quicker.&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;&lt;pre&gt;tell application "Microsoft Excel"&lt;br /&gt; &lt;br /&gt; say "Saving with every row"&lt;br /&gt; &lt;br /&gt; set lastCol to 10 -- yes, I'm cheating.  &lt;br /&gt; -- you have to know the last col and row for this to work&lt;br /&gt; set lastRow to 100 -- I suppose I could add dialog boxes to ask max nums&lt;br /&gt; set c to 1&lt;br /&gt; set r to 2 -- that's the first row that's got info it in; skip the first row's col headers&lt;br /&gt; set strCells to ""&lt;br /&gt; &lt;br /&gt; set theFilePath to (path to desktop as string) &amp; "test5.txt" as string&lt;br /&gt; set theFileReference to open for access theFilePath with write permission&lt;br /&gt; try&lt;br /&gt;  repeat until r = lastRow + 1&lt;br /&gt;   set c to 2&lt;br /&gt;   repeat until c = lastCol + 1&lt;br /&gt;    --display dialog "Row: " &amp; r &amp; " Col: " &amp; c&lt;br /&gt;    set theValue to get value of cell c of row r of active sheet&lt;br /&gt;    set strCells to strCells &amp; theValue &amp; " :: " as text&lt;br /&gt;    -- just use &amp; to append; cast to text with "as text"&lt;br /&gt;    set c to (c + 1)&lt;br /&gt;   end repeat&lt;br /&gt;   set strCells to (r as text) &amp; " -- " &amp; strCells &amp; return -- return adds a MacOS newline&lt;br /&gt;   write strCells to theFileReference&lt;br /&gt;   set strCells to ""&lt;br /&gt;   set r to (r + 1)&lt;br /&gt;   if r mod 50 = 0 then&lt;br /&gt;    -- beep -- add some sort of feedback.  &lt;br /&gt;    say r -- add cooler feedback.  This talks.&lt;br /&gt;    -- Btw, Applescript for this in Excel is insanely slooooow &lt;br /&gt;    -- vs. my experience with vbs.  It 
