<?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-28160416</id><updated>2011-12-14T21:55:35.895-05:00</updated><category term='ruby'/><category term='VBScript'/><category term='articles'/><category term='nostalgia'/><category term='the internets'/><category term='Microsoft'/><category term='javascript'/><category term='news'/><category term='registry'/><category term='free'/><category term='lists'/><category term='web development'/><category term='toread'/><category term='word'/><category term='microblogging'/><category term='firefox'/><category term='xampp'/><category term='awk'/><category term='jni'/><category term='windows xp'/><category term='powershell'/><category term='windows'/><category term='Mono'/><category term='dos'/><category term='web server'/><category term='productivity'/><category term='HelloWorld'/><category term='learning'/><category term='rant'/><category term='wmic windows'/><category term='linux'/><category term='computer science'/><category term='math'/><category term='business'/><category term='php'/><category term='Office'/><category term='howto'/><category term='startup'/><category term='web-general'/><category term='enterprise2.0'/><category term='socialnetworking'/><category term='geek humor'/><category term='mapping'/><category term='didiwiki'/><category term='sql server'/><category term='2005'/><category term='c'/><category term='C#'/><category term='client software'/><category term='regex'/><category term='blogger'/><category term='web2.0'/><category term='stinkpad'/><category term='twitter'/><category term='vista'/><category term='utilities'/><category term='google'/><category term='Excel'/><title type='text'>Developer Notes</title><subtitle type='html'>Technology notes from an IT/software developer, mostly about the "shiny objects" in the web and software world.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default?start-index=101&amp;max-results=100'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>106</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-28160416.post-441982866038930404</id><published>2008-12-22T23:53:00.003-05:00</published><updated>2008-12-23T00:02:39.176-05:00</updated><title type='text'>Made a space for my "tech notes"</title><content type='html'>I'm moving my tech stuff to &lt;a href="http://tech0x20.com"&gt;tech0x20.com&lt;/a&gt; (Tech Space)&lt;br /&gt;&lt;br /&gt;I originally created three sites on my thomaspowell.com domain:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://linux-notes.thomaspowell.com"&gt;linux-notes&lt;/a&gt; - I started my blogging experiment here.&lt;br /&gt;&lt;a href="http://vim.thomaspowell.com"&gt;vim&lt;/a&gt; - My "adventures" in vim, not a very broad audience, but I liked keeping public notes on my favorite programming editor here.&lt;br /&gt;&lt;a href="http://developernotes.thomaspowell.com"&gt;developernotes&lt;/a&gt; - I realized that I was researching and wanting to publicly note things that did not apply to the other two blogs.&lt;br /&gt;&lt;br /&gt;Moreover, my role and experience has changed in general.  I'm no longer a full-time developer.  I haven't been that for a year or more.  I still research programming and system configuration, but I just as often research technology, trends, and concepts.  I had been using the "developer notes" blog for this, but I was starting to branch out into a new blog when it hit me.  I *really* needed to kick the blogger habit.  Therefore, I have started a new home with a shiny &lt;a href="http://wordpress.org"&gt;wordpress&lt;/a&gt; theme at &lt;a href="http://tech0x20.com"&gt;tech0x20.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-441982866038930404?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/441982866038930404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=441982866038930404' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/441982866038930404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/441982866038930404'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/12/made-space-for-my-tech-notes.php' title='Made a space for my &quot;tech notes&quot;'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-5878938854915922206</id><published>2008-12-22T07:39:00.011-05:00</published><updated>2008-12-22T22:25:17.093-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='xampp'/><category scheme='http://www.blogger.com/atom/ns#' term='web-general'/><title type='text'>Installing JSPWiki on an XAMPP for Windows install</title><content type='html'>I've been experimenting with XAMPP as a way to setup a temporary and transportable Apache install with PHP, MySQL, and a database admin tool (phpMyAdmin).  Before starting, be sure to have &lt;a href="http://java.sun.com/javaee/sdk/"&gt;Sun J2EE 5.x SDK (or higher) installed&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As mentioned on &lt;a href="http://portableapps.com/apps/development/xampp"&gt;PortableApps.com&lt;/a&gt;, by following the &lt;a href="http://www.apachefriends.org/en/xampp-windows.html#521"&gt;"Installation" without the installer&lt;/a&gt; instructions, XAMPP will run from a removable drive (I'm using an SD card, myself--quite a bit slower than other options, but VERY cheap).&lt;br /&gt;&lt;br /&gt;First, I downloaded the ZIP package from from the &lt;a href="http://www.apachefriends.org/en/xampp-windows.html#641"&gt;xampp for windows&lt;/a&gt; page:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://developernotes.thomaspowell.com/uploaded_images/xampp_download-763979.PNG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 356px;" src="http://developernotes.thomaspowell.com/uploaded_images/xampp_download-763961.PNG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Open the xampp-win32-*.*.*.zip file that was just downloaded and extract to C:\ (change to flash drive drive letter here if necessary).&lt;br /&gt;&lt;br /&gt;Run [drive]:\xampp\xampp_start.exe to test starting up the web server and mysql.&lt;br /&gt;Run [drive]:\xampp\xampp_stop.exe to shut the web server and mysql down again.&lt;br /&gt;&lt;br /&gt;Next download the Apache Tomcat plug-in from the &lt;a href="http://www.apachefriends.org/en/xampp-windows.html#644"&gt;XAMPP for Windows Add-Ons&lt;/a&gt; area.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://developernotes.thomaspowell.com/uploaded_images/xampp_tomcat_download-742526.PNG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 356px;" src="http://developernotes.thomaspowell.com/uploaded_images/xampp_tomcat_download-742503.PNG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Extract this .zip file into to the c:\xampp folder (again, substitute c: for appropriate drive letter if necessary).  You should get a "Confile File Overwrite" prompt when you do this--the Tomcat files should overwrite the original xampp files, so select [Yes to All].&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://developernotes.thomaspowell.com/uploaded_images/overwrite_prompt-763292.PNG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 248px;" src="http://developernotes.thomaspowell.com/uploaded_images/overwrite_prompt-762724.PNG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After the Tomcat files have been extracted, run [drive]:\xampp\setup_xampp.bat to setup Tomcat.&lt;br /&gt;&lt;br /&gt;Test the installation by running&lt;br /&gt;&lt;ul&gt;&lt;li&gt;[drive]:\xampp\xampp_start.exe to start xampp, then&lt;br /&gt;&lt;/li&gt;&lt;li&gt;[drive]:\xampp\tomcat_start.bat to start Tomcat.&lt;/li&gt;&lt;li&gt;Browse to &lt;a href="http://localhost:8080/"&gt;http://localhost:8080&lt;/a&gt;, which should be something like the following:&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://developernotes.thomaspowell.com/uploaded_images/tomcat_screenshot-747174.PNG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 356px;" src="http://developernotes.thomaspowell.com/uploaded_images/tomcat_screenshot-747165.PNG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Finally download &lt;a href="http://www.jspwiki.org/wiki/JSPWikiDownload#section-JSPWikiDownload-CurrentStableRelease2.8.11"&gt;JSPWiki&lt;/a&gt; (Current stable release):&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://developernotes.thomaspowell.com/uploaded_images/jspwiki_dl-755180.PNG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 356px;" src="http://developernotes.thomaspowell.com/uploaded_images/jspwiki_dl-755172.PNG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Extract the JSPWiki.war file from the JSPWiki download and copy to the [drive]:\xampp\tomcat\webapps folder.&lt;br /&gt;&lt;br /&gt;Run [drive]:\xampp\tomcat_stop.bat and then [drive]:\xampp\tomcat_start.bat to restart Tomcat.  Web application JSPWiki should get loaded as part of the restart.  I had to restart a second time (probably started too soon after shutting down.)&lt;br /&gt;&lt;br /&gt;Browse to &lt;a href="http://localhost:8080/JSPWiki"&gt;http://localhost:8080/JSPWiki&lt;/a&gt; to view the JSPWiki page.  You will be prompted to begin installation:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://developernotes.thomaspowell.com/uploaded_images/jspwiki_install-712229.PNG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 356px;" src="http://developernotes.thomaspowell.com/uploaded_images/jspwiki_install-711246.PNG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For the installation options, I used:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Application name - JSPWiki&lt;/li&gt;&lt;li&gt;BaseURL - http://localhost:8080/JSPWiki/&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Page Storage - /p/web/www-data/jspwiki/ (default) -- note that this will be the path off of your root drive wherever xampp and Tomcat are running from.  This is where the wiki pages will be stored.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;All other options - default values&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Finally:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Press [Configure!]&lt;/li&gt;&lt;li&gt;[drive]:\xampp\tomcat_stop.bat to stop Tomcat.&lt;/li&gt;&lt;li&gt;[drive]:\xampp\tomcat_start.bat to start Tomcat.&lt;/li&gt;&lt;li&gt;Browse to &lt;a href="http://localhost:8080/JSPWiki/"&gt;http://localhost:8080/JSPWiki/&lt;/a&gt; to start using your JSPWiki.  By default, versioning is turned on, which is accomplished by storing every version of the file in an "OLD" folder just off the main page storage folder.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://www.jspwiki.org/wiki/InstallingJSPWiki"&gt;Troubleshooting JSPWiki Installation&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-5878938854915922206?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/5878938854915922206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=5878938854915922206' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5878938854915922206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5878938854915922206'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/12/installing-jspwiki-on-xampp-for-windows.php' title='Installing JSPWiki on an XAMPP for Windows install'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-3958608048212931447</id><published>2008-12-15T20:34:00.004-05:00</published><updated>2008-12-15T20:59:30.189-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><title type='text'>Insight DNS issues #insight</title><content type='html'>&lt;span class="icon"&gt;&lt;i&gt;Half of my DNS requests are timing out, and DHCP release/renew works about 50% of the time...&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://helpchat.insightbb.com/netagent/client/unified/default/imgs/user1.png" alt="Customer" /&gt;&lt;/span&gt;&lt;span class="name"&gt;thomas.powell&lt;/span&gt;&lt;div class="custtext2"&gt; &lt;span class="text"&gt;Initial Question/Comment: Half my DNS requests are failing,  DHCP renew fails half the time.&lt;/span&gt;&lt;/div&gt; &lt;div class="systemtext1"&gt;&lt;span class="time"&gt;8:29:33 PM &lt;/span&gt;&lt;span class="icon"&gt;&lt;img src="http://helpchat.insightbb.com/netagent/client/unified/default/imgs/system1.png" alt="System" /&gt;&lt;/span&gt;&lt;span class="name"&gt;System&lt;/span&gt;&lt;/div&gt; &lt;div class="systemtext2"&gt;&lt;span class="text"&gt;Ashley H has joined this session!&lt;/span&gt;&lt;/div&gt; &lt;div class="systemtext1"&gt;&lt;span class="time"&gt;8:29:33 PM &lt;/span&gt;&lt;span class="icon"&gt;&lt;img src="http://helpchat.insightbb.com/netagent/client/unified/default/imgs/system1.png" alt="System" /&gt;&lt;/span&gt;&lt;span class="name"&gt;System&lt;/span&gt;&lt;/div&gt; &lt;div class="systemtext2"&gt;&lt;span class="text"&gt;Connected with Ashley H&lt;/span&gt;&lt;/div&gt; &lt;div class="systemtext1"&gt;&lt;span class="time"&gt;8:29:33 PM &lt;/span&gt;&lt;span class="icon"&gt;&lt;img src="http://helpchat.insightbb.com/netagent/client/unified/default/imgs/system1.png" alt="System" /&gt;&lt;/span&gt;&lt;span class="name"&gt;System&lt;/span&gt;&lt;/div&gt; &lt;div class="systemtext2"&gt;&lt;span class="text"&gt;Thank you for contacting Insight Communications Customer Netchat Support, please allow me a moment to read your question and I will be more than happy to assist you.&lt;/span&gt;&lt;/div&gt; &lt;div class="agenttext1"&gt;&lt;span class="time"&gt;8:29:53 PM &lt;/span&gt;&lt;span class="icon"&gt;&lt;img src="http://helpchat.insightbb.com/netagent/client/unified/default/imgs/agent.png" alt="Agent" /&gt;&lt;/span&gt;&lt;span class="name"&gt;Ashley H&lt;/span&gt;&lt;/div&gt; &lt;div class="agenttext2"&gt;&lt;span class="text"&gt;We are currently experiencing dns issues in your area that may cause slow browsing speeds or intermittent issues loading pages.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;...Hey Insight, Power Down and Power Up.  It's easy!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Added&lt;/span&gt;&lt;span&gt; @ 8:50 PM:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Thanks to &lt;a href="http://twitter.com/DanielLight"&gt;@DanielLight&lt;/a&gt; I'm using &lt;a href="http://www.opendns.com/"&gt;OpenDNS&lt;/a&gt; now.&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Of course, now I can't connect to the server addresses half the time.&lt;/span&gt;&lt;span style="font-style: italic;"&gt;  Thanks, Insight!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-3958608048212931447?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/3958608048212931447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=3958608048212931447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/3958608048212931447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/3958608048212931447'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/12/insight-dns-issues-insight.php' title='Insight DNS issues #insight'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-7910346257128611685</id><published>2008-12-15T13:25:00.003-05:00</published><updated>2008-12-15T14:10:32.375-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Office'/><title type='text'>Every time you make an Excel spreadsheet this big, a kitten meets its maker</title><content type='html'>I'm not really that elitist about non-programmers using applications in an advanced way the programmers could find a better way to do.  I've never had to port functionality from an Excel spreadsheet that was 2 MB in size prior to data being added--at least not more than once.&lt;br /&gt;&lt;br /&gt;However, I am a bit disturbed that &lt;a href="http://blogs.msdn.com/excel/archive/2005/09/26/474258.aspx"&gt;Excel is the new Access&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote"&gt; &lt;p&gt;&lt;span style="font-family:Verdana;"&gt;The total number of available columns in Excel&lt;br /&gt;Old Limit: 256  (2^8)&lt;br /&gt;New Limit: 16k  (2^14)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;The total number of available rows in Excel&lt;br /&gt;Old Limit: 64k  (2^16)&lt;br /&gt;New Limit: 1M  (2^20)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;Number of unique colours allowed a single workbook&lt;br /&gt;Old Limit: 56 (indexed colour)&lt;br /&gt;New Limit: 4.3 billion (32-bit colour)&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Therefore, Excel is now Microsoft's new small business data warehouse.  (Apologies to DW people.)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;You could also store and represent a very large 32-bit color bitmap inside an Excel spreadsheet.  Also supported are Base-64 Encoded BLOBs :-)  :&lt;br /&gt;&lt;/p&gt;&lt;blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote"&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;The total number of characters that can display in a cell&lt;br /&gt;Old Limit: 1k (when the text is formatted)&lt;br /&gt;New Limit: 32k or as many as will fit in the cell (regardless of formatting)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;The number of characters per cell that Excel can print&lt;br /&gt;Old Limit: 1k&lt;br /&gt;New Limit: 32k&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;div&gt; I'd hate to have to debug a 8k character formula with 64 levels of nesting:&lt;br /&gt;&lt;/div&gt;&lt;blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote"&gt; &lt;p&gt;&lt;span style="font-family:Verdana;"&gt;The maximum length of formulas (in characters)&lt;br /&gt;Old Limit: 1k characters&lt;br /&gt;New Limit: 8k characters&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;The number of levels of nesting that Excel allows in formulas&lt;br /&gt;Old Limit: 7&lt;br /&gt;New Limit: 64&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;div&gt;A 255 argument function.  The mind shudders.  Even if you did not use a computer science major to create the program, such an unwieldly program might benefit from the education and experience of a computer science major.  Maybe there is a better way to do this, by applying some mid-level software engineering techniques instead of stream of consciousness coding.&lt;br /&gt;&lt;/div&gt;&lt;blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote"&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;Maximum number of arguments to a function&lt;br /&gt;Old Limit: 30&lt;br /&gt;New Limit: 255&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;     &lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-7910346257128611685?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/7910346257128611685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=7910346257128611685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7910346257128611685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7910346257128611685'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/12/every-time-you-make-excel-spreadsheet.php' title='Every time you make an Excel spreadsheet this big, a kitten meets its maker'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-4379870314599363086</id><published>2008-12-15T09:43:00.002-05:00</published><updated>2008-12-15T09:50:20.231-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='socialnetworking'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><title type='text'>TwitterThreads.com - what I've been looking for. Almost.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://developernotes.thomaspowell.com/uploaded_images/twitterthreads-700752.PNG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 238px;" src="http://developernotes.thomaspowell.com/uploaded_images/twitterthreads-700745.PNG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I just searched on  &lt;a href="http://www.google.com/search?q=twitter+threads&amp;amp;ie=utf-8&amp;amp;oe=utf-8&amp;amp;aq=t&amp;amp;rls=org.mozilla:en-US:official&amp;amp;client=firefox-a"&gt;"twitter" and "threads" in google&lt;/a&gt;.  What I found was &lt;a href="http://www.twitterthreads.com/"&gt;TwitterThreads.com&lt;/a&gt;.  Simple, huh?&lt;br /&gt;&lt;br /&gt;It's not 100% what I had envisioned:  My vision was probably something more like expandable threading by author sorted by date of most recent update.  The TwitterThreads version looks like it shows all posts that you'd normally see if you were following someone, but limited to a single day's posts.&lt;br /&gt;&lt;br /&gt;This is pretty much what I wanted to build, with a few additional features... Other things I thought of were [+]/[-] Expand/Collapse functionality, an option to configure the number of days shown, and read/unread functionality of some sort.&lt;br /&gt;&lt;br /&gt;There is also a &lt;a href="http://m.twitterthreads.com/"&gt;mobile TwitterThreads&lt;/a&gt; site.  On my ancient Treo 650, this is a beautifully elegant and simple interface.  It may become my new twitter interface on my phone.&lt;br /&gt;&lt;br /&gt;Something both interfaces are missing are direct links to "reply-to" and "favorite" individual tweets.  I was also a little disappointed that the timestamp link on each tweet went to the person's home instead of direct linking to the tweet on Twitter.  This makes the lack of reply-to and favorite functionality more of an issue for me.  If the timestamp had linked to the individual tweet, I could reply-to or favorite through the Twitter web interface.&lt;br /&gt;&lt;br /&gt;Overall, I am still thrilled to see that someone has implemented this idea.  Like any programmer geek, I would have liked to be the first, but I wouldn't really have made the time to throw something like this together.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-4379870314599363086?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/4379870314599363086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=4379870314599363086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4379870314599363086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4379870314599363086'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/12/twitterthreadscom-what-ive-been-looking.php' title='TwitterThreads.com - what I&apos;ve been looking for. Almost.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-4294681561825488285</id><published>2008-12-05T11:27:00.008-05:00</published><updated>2008-12-12T08:50:07.378-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stinkpad'/><title type='text'>Proof that I'm not the only one with problems with the Lenovo T-61 laptop</title><content type='html'>I had virtually no problems with my IBM T60 laptop, but my T61 has had several problems.&lt;br /&gt;&lt;br /&gt;The most recent problem that I've had is that I went into hibernate mode last night, and this morning, my PC would not turn on:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;I dock my PC, the dock indicator light comes on, but the battery and AC power indicators on the laptop do not.  The power button does not respond.&lt;/li&gt;&lt;li&gt;I remove my PC from the dock and plug in the AC directly, still the battery and AC power indicators on the laptop do not come on.&lt;/li&gt;&lt;li&gt;I remove the battery and plug in the AC directly.  Still nothing.&lt;/li&gt;&lt;li&gt;I finally panic enough to call our internal help desk (early call might get turnaround by lunch time) and the tech offers one last suggestion...  pull the battery out (AC too) and let power state drain, then re-insert battery.  Crisis averted.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;a href="http://forums.lenovo.com/lnv/board/message?board.id=T_Series_Thinkpads&amp;amp;thread.id=260&amp;amp;view=by_date_ascending&amp;amp;page=1" target="_blank"&gt;Lenovo support thread for T61 power on problem&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've also had problems with the LCD screen being locked in an "off" state on [Max Battery] mode (Presentation mode works well, though).&lt;br /&gt;&lt;br /&gt;When I had the PC in [Max Battery] performance, the machine would not come out of hibernate at least 50% of the time.&lt;br /&gt;&lt;br /&gt;I had a DAILY blue screen on Windows XP when I was docked (wired connection to LAN) and wireless was turned on.  This was remedied by having my laptop upgraded to a newer version of Symantec Security software than was widely deployed in the organization.&lt;br /&gt;&lt;br /&gt;Added 2008.12.05:&lt;br /&gt;If my laptop was in its docking station when I tried to hibernate, it would restart immediately.  I have now gotten into the habit of undocking first, then hibernating.  According to another blog, this is due to a &lt;a href="http://www.brooks-bilson.com/blogs/rob/index.cfm/2008/5/2/Fix-for-Lenovo-ThinkPad-T61-Hibernation-Issue-where-Laptop-Restarts-Immediately-after-Hibernating"&gt;Wake On LAN setting in Windows Device manager and BIOS&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;cnet user review:  &lt;a href="http://reviews.cnet.com/laptops/lenovo-thinkpad-t61/4864-3121_7-32442903-2.html?tag=mncol;uo"&gt;Blue Screen of Death w/ Bad Customer Service&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Added 2008.12.09:&lt;br /&gt;&lt;a href="http://forum.notebookreview.com/showthread.php?t=135145"&gt;T61 Problems?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Added 2008.12.12:&lt;br /&gt;I ended up in the weird power state again today, but this time I was prepared to pull my battery, wait 10 seconds, and replace.  Voilà!  It works!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-4294681561825488285?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/4294681561825488285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=4294681561825488285' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4294681561825488285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4294681561825488285'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/12/proof-that-im-not-only-one-with.php' title='Proof that I&apos;m not the only one with problems with the Lenovo T-61 laptop'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-73413775455627019</id><published>2008-11-29T14:40:00.002-05:00</published><updated>2008-11-30T09:04:49.183-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='mapping'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Finding distances between two zip codes in PHP</title><content type='html'>I found &lt;a href="http://www.micahcarrick.com/04-19-2005/php-zip-code-range-and-distance-calculation.html"&gt;this script&lt;/a&gt; to calculate distances between two zip codes from PHP (requires MySQL).  According to this &lt;a href="http://www.idealog.us/2006/07/zip_code_distan.html"&gt;Idealog post&lt;/a&gt;, the calculation relies on a text file of  &lt;a href="http://www.cfdynamics.com/cfdynamics/zipbase/index.cfm"&gt;Zip code lon/lats from CFDynamics&lt;/a&gt;, available on the &lt;a href="http://www.populardata.com/downloads.html"&gt;downloads page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I have yet to try it; however, I have a specific implementation that I was needing it for.  Does anyone else have a better way to align searcher's proximity to location-based data?  I'd like to classify by city, but I'm sure that is a lot more of a gray area than allowing the searcher to specify a specific radius in which to search or letting the resource specify maximum distance to travel.&lt;br /&gt;&lt;br /&gt;Added 2008.11.30:&lt;br /&gt;I love Twitter.  A few hours after posting this, I received a suggestion that I could get longitude/latitude from Google Maps.&lt;br /&gt;&lt;br /&gt;On &lt;a href="http://code.google.com"&gt;code.google.com&lt;/a&gt;, I found the following question:  &lt;a href="http://code.google.com/support/bin/answer.py?answer=55180&amp;amp;topic=12266"&gt;I need to convert addresses to latitude/longitude pairs. Can I do that with the Maps API?&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;Yes, this process is called "geocoding." The Google Maps API provides two methods for performing geocoding. If you wish to geocode from within your Google Maps API application you can do so using the &lt;a href="http://code.google.com/apis/maps/documentation/services.html#Geocoding_Object"&gt;GClientGeocoder&lt;/a&gt; object. Alternatively you can send geocoding requests directly to the &lt;a href="http://code.google.com/apis/maps/documentation/services.html#Geocoding_Direct"&gt;HTTP geocoder&lt;/a&gt;.&lt;span style="font-size:0;"&gt; &lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-73413775455627019?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/73413775455627019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=73413775455627019' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/73413775455627019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/73413775455627019'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/11/finding-distances-between-two-zip-codes.php' title='Finding distances between two zip codes in PHP'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-5680509479129064193</id><published>2008-11-20T22:14:00.003-05:00</published><updated>2008-11-20T22:24:55.169-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Gmail terminal theme--for your inner nerd</title><content type='html'>&lt;p class="mobile-photo"&gt;&lt;a href="http://developernotes.thomaspowell.com/uploaded_images/gmailterminal-784742-784834.PNG"&gt;&lt;img src="http://developernotes.thomaspowell.com/uploaded_images/gmailterminal-784742-784831.PNG" alt="" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;I don't know if I like it for nostalgia and geekiness, or just plain geekiness.  There's only one thing I'd change with the terminal theme...  make it truly like the BBS experiences of 15+ years ago.  I want ANSI animation and color ANSI art--especially for the Gmail logo.&lt;br /&gt;&lt;br /&gt;Added:  Even more importantly, the terminal theme works great if you get LISTSERV mailings that have tables rendered in all ASCII characters or code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-5680509479129064193?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/5680509479129064193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=5680509479129064193' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5680509479129064193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5680509479129064193'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/11/gmail-terminal-theme-for-your-inner.php' title='Gmail terminal theme--for your inner nerd'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-7845319177753319670</id><published>2008-11-15T09:32:00.006-05:00</published><updated>2008-12-14T18:16:28.836-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><title type='text'>I suspect that the delicious bookmark plug-in for Firefox 3 is not keeping me logged for  two weeks.</title><content type='html'>Not only that, but whenever I'm required to log-in to bookmark a page, the plug-in does not continue on to actually creating the bookmark.&lt;br /&gt;&lt;br /&gt;This morning I was forced to log in.  I believe the loss of information is coinciding with Firefox updates.  Anyone else have this experience?&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Home PC&lt;/u&gt;:&lt;br /&gt;2008.11.15, 9:15 AM&lt;br /&gt;2008.11.29, 2:29 PM&lt;br /&gt;2008.12.14. 6:16 PM&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Work PC&lt;/u&gt;:&lt;br /&gt;2008.11.26, 10:01 AM&lt;br /&gt;2008.12.11, 5:08 PM&lt;br /&gt;&lt;br /&gt;Updated 2008.11.29:  So far, no glitches.  However, I still dislike the fact that the log-in prompt prevents tagging and you have to have to select the tag icon again after logging in.&lt;br /&gt;&lt;br /&gt;Updated 2008.12.11:  Looks like everything's fine, just that I'm overly sensitive to having to login.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-7845319177753319670?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/7845319177753319670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=7845319177753319670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7845319177753319670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7845319177753319670'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/11/i-suspect-that-delicious-bookmark-plug.php' title='I suspect that the delicious bookmark plug-in for Firefox 3 is not keeping me logged for  two weeks.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-8209834782639936809</id><published>2008-11-10T15:03:00.003-05:00</published><updated>2008-11-10T15:11:45.992-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='word'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Autotext lines in Word (using 2003 here)</title><content type='html'>Sorry if this is pretty trivial for the true power users of Word...&lt;br /&gt;&lt;br /&gt;I don't know if Word 2007 works this way or not, but I've discovered a couple additional characters in Word that auto-correct to divider lines.  (Other than 'equals', 'minus', and 'underscore').  The 'hash' divider was of the most interest to me, as I'm trying to write a white paper and need distinctive, yet compact, format markings.  (The quicker the better, as well.)  Just enter 3 successive '#' (hash), '~' (tilde), '-' (minus sign), '=' (equals), '_' (underscore), or '*' (asterisk) characters and immediately press enter.  The text will be replaced by a dividing line.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(This trick does something similar OpenOffice 2.4.)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://developernotes.thomaspowell.com/uploaded_images/autolines-780261.PNG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 249px;" src="http://developernotes.thomaspowell.com/uploaded_images/autolines-780259.PNG" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-8209834782639936809?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/8209834782639936809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=8209834782639936809' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8209834782639936809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8209834782639936809'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/11/autotext-lines-in-word-using-2003-here.php' title='Autotext lines in Word (using 2003 here)'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-8248530189120444071</id><published>2008-11-09T08:22:00.004-05:00</published><updated>2008-11-09T08:36:01.128-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='socialnetworking'/><title type='text'>Reading List by Amazon</title><content type='html'>It looks like LinkedIn has found a way to make itself relevant for day-to-day use...  The Amazon Readling List provides a way for you to post what you're currently reading, want to read, or have read.  You can also see the contents of other people's reading lists--in your network, in your industry, or all recent updates.  Your reading list will automatically appear on your LinkedIn Home and Profile pages.&lt;br /&gt;&lt;br /&gt;So far, I only have one book listed.  I'll probably start adding to this reading list from my Safari bookshelf list, and all the various other lists that I've been compiling over the last couple of years.&lt;br /&gt;&lt;br /&gt;You can get to my LinkedIn profile at &lt;a href="http://www.linkedin.com/in/twilliampowell" target="_blank" title="New window will open"&gt;http://www.linkedin.com/in/twilliampowell&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Reading List Application full view:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://developernotes.thomaspowell.com/uploaded_images/readinglistapphome-761867.PNG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 291px;" src="http://developernotes.thomaspowell.com/uploaded_images/readinglistapphome-761858.PNG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On your LinkedIn Home:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://developernotes.thomaspowell.com/uploaded_images/readinglisthome-761758.PNG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 117px;" src="http://developernotes.thomaspowell.com/uploaded_images/readinglisthome-761750.PNG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On your LinkedIn Profile:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://developernotes.thomaspowell.com/uploaded_images/readinglistonprofile-751618.PNG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 233px;" src="http://developernotes.thomaspowell.com/uploaded_images/readinglistonprofile-750563.PNG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Adding from featured applications page.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://developernotes.thomaspowell.com/uploaded_images/readinglistappselection-750373.PNG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 255px;" src="http://developernotes.thomaspowell.com/uploaded_images/readinglistappselection-750359.PNG" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-8248530189120444071?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/8248530189120444071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=8248530189120444071' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8248530189120444071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8248530189120444071'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/11/reading-list-by-amazon.php' title='Reading List by Amazon'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-1404974154605265748</id><published>2008-11-03T22:43:00.002-05:00</published><updated>2008-11-03T22:44:36.750-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lists'/><title type='text'>99 bottles of beer and hello world programming examples</title><content type='html'>I'm a sucker for different programming languages, especially in trivial and whimsical implementations...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://99-bottles-of-beer.net/"&gt;99 Bottles of Beer in 1200+ programming languages&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://esolangs.org/wiki/Main_Page"&gt;Esoteric Programming Languages wiki&lt;/a&gt; - contains Hello World samples.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.roesler-ac.de/wolfram/hello.htm"&gt;The hello world collection (420+ languages)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www2.latech.edu/%7Eacm/HelloWorld.html"&gt;Hello World project&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikibooks.org/wiki/List_of_hello_world_programs"&gt;List of hello world programs on Wikibooks&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-1404974154605265748?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/1404974154605265748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=1404974154605265748' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/1404974154605265748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/1404974154605265748'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/11/99-bottles-of-beer-and-hello-world.php' title='99 bottles of beer and hello world programming examples'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-4373116235931291189</id><published>2008-11-03T21:04:00.001-05:00</published><updated>2008-11-03T21:04:06.450-05:00</updated><title type='text'>Found some Gtk/Ruby signal stuff.</title><content type='html'>(For gtk2+ruby, I used the &lt;a href="http://ruby-gnome2.sourceforge.jp/hiki.cgi?Install+Guide+for+Windows#Microsoft+Windows+%28mswin32%2C+mingw32%29"&gt;Windows installer package&lt;/a&gt;)&lt;br&gt;&lt;br&gt;For some reason, I&amp;#39;m trying to learn a portable language/toolkit.&lt;br&gt; &lt;br&gt;First, I had to find the &lt;a href="http://ruby-gnome.sourceforge.net/programming/signal.html" target="_blank"&gt;correct signal to connect to&lt;/a&gt;.&amp;nbsp; Looks like focus_out_event is it.&lt;br&gt; &lt;br&gt;&lt;br style="font-family: courier new,monospace;"&gt; &lt;blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote"&gt;&lt;span style="font-family: courier new,monospace;"&gt;currentMileage.signal_connect(&amp;quot;focus_out_event&amp;quot;) {&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt; &lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp; mileagePerDay.text=((targetMileage.text.to_f&amp;nbsp; - currentMileage.text.to_f)&lt;/span&gt;&lt;br&gt;&lt;span style="font-family: courier new,monospace;"&gt; &amp;nbsp;&amp;nbsp; /(Time.parse(targetDate.text)-Time.now)*3600*24).to_s&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;}&lt;/span&gt;&lt;br&gt;&lt;/blockquote&gt;  &lt;br&gt;&lt;a href="http://markmail.org/message/3dzrezlzfhdgt2so" target="_blank"&gt;signal_connect vs signal_connect_after&lt;/a&gt;...&amp;nbsp; apparently, improper usage of signal_connect (for &amp;quot;focus_out_event&amp;quot;) will generate the following warning which the signal occurs&lt;br&gt;  &lt;span style="font-family: courier new,monospace;"&gt;Gtk-WARNING **: GtkEntry - did not receive focus-out-event&lt;/span&gt;&lt;br&gt;&lt;br&gt;From the description, what has happened is a timeout with a now invalid pointer (because of the signal&amp;#39;s redirect).&amp;nbsp; Using signal_connect_after() ensures that the default handler has run first.&lt;br&gt;  &lt;span style="font-family: courier new,monospace;"&gt;&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt;&lt;blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote"&gt; &lt;span style="font-family: courier new,monospace;"&gt;currentMileage.signal_connect&lt;b&gt;_after&lt;/b&gt;(&amp;quot;focus_out_event&amp;quot;) {&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp; mileagePerDay.text=((targetMileage.text.to_f&amp;nbsp; - currentMileage.text.to_f)&lt;/span&gt;&lt;br&gt; &lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp;&amp;nbsp; /(Time.parse(targetDate.text)-Time.now)*3600*24).to_s&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;}&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt; &lt;/blockquote&gt;&lt;span style="font-family: courier new,monospace;"&gt;&lt;/span&gt;&lt;br&gt;Next up:&amp;nbsp; Encapsulate some of this stuff.&amp;nbsp; In this exercise, I realized that I forgot some of the basics, like how variable scope is defined in Ruby:&amp;nbsp; &lt;a href="http://www.informit.com/articles/article.aspx?p=18225&amp;amp;seqNum=2" target="_blank"&gt;http://www.informit.com/articles/article.aspx?p=18225&amp;amp;seqNum=2&lt;/a&gt;.&lt;br&gt;  &lt;br&gt;Some additional Ruby links...&lt;br&gt;&lt;a href="http://www.rubyist.net/%7Eslagell/ruby/globalvars.html" target="_blank"&gt;Rubyist reference&lt;/a&gt;&lt;br&gt;&lt;a href="http://www.ruby-doc.org/docs/UsersGuide/rg/globalvars.html" target="_blank"&gt;RubyDocs reference to global variables&lt;/a&gt;&lt;br&gt;  &lt;a href="http://pasadenarb.com/2007/03/ruby-shell-commands.html" target="_blank"&gt;6 Ways to Run Shell Commands in Ruby &lt;/a&gt;&lt;br&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-4373116235931291189?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/4373116235931291189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=4373116235931291189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4373116235931291189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4373116235931291189'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/11/found-some-gtkruby-signal-stuff.php' title='Found some Gtk/Ruby signal stuff.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-1791535917458047710</id><published>2008-10-30T10:09:00.001-04:00</published><updated>2008-10-30T10:09:08.836-04:00</updated><title type='text'>I remember the good old days of domain squatting</title><content type='html'>At least you had to pony up a few bucks per domain name back then.&amp;nbsp; Now there&amp;#39;s &lt;a href="http://www.networkworld.com/community/node/34635?netht=rn_102908&amp;amp;nladname=102908dailynewspmal"&gt;Twitter squatting&lt;/a&gt;.&amp;nbsp; It&amp;#39;s fairly predictable, really...&amp;nbsp; Every single letter TwitID is taken.&amp;nbsp; Common surnames...&amp;nbsp; taken.&amp;nbsp; Common words...&amp;nbsp; taken.&amp;nbsp; Apparently, you don&amp;#39;t even need to use a legitimate or at least &lt;i&gt;legitimately unique &lt;/i&gt;e-mail address to do it.&lt;br&gt; &lt;br&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-1791535917458047710?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/1791535917458047710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=1791535917458047710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/1791535917458047710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/1791535917458047710'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/10/i-remember-good-old-days-of-domain.php' title='I remember the good old days of domain squatting'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-7531460821966886255</id><published>2008-10-30T08:42:00.001-04:00</published><updated>2008-10-30T08:42:02.709-04:00</updated><title type='text'>Classic Blogger and PHP?</title><content type='html'>&lt;div class="gmail_quote"&gt;A question via e-mail:&lt;br&gt;&lt;div class="gmail_quote"&gt;&lt;blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"&gt; &lt;br&gt;I stumbled upon your blog: &lt;a href="http://developernotes.thomaspowell.com/" target="_blank"&gt;http://developernotes.thomaspowell.com&lt;/a&gt;&lt;br&gt;What I noticed - and it&amp;#39;s something that I wanted also - is that your blogpages are all ending in .php, even your individual blogpost pages (&lt;a href="http://developernotes.thomaspowell.com/2008/10/remember-milk-is-on-twitter.php" target="_blank"&gt;http://developernotes.thomaspowell.com/2008/10/remember-milk-is-on-twitter.php&lt;/a&gt;)&lt;br&gt;   &lt;br&gt;How do you do that in settings? I can only get the index page to end as PHP. The individual posts remain in HTML. &lt;br&gt;&lt;br&gt;Could you share this nugget of wisdom with me? &lt;br&gt;&lt;br&gt; &lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt; (Note:&amp;nbsp; I&amp;#39;ve only done this publishing to another host via FTP)&lt;br&gt;&lt;br&gt;In Blogger dashboard, click the [Settings] link for your blog.&lt;br&gt;&lt;br&gt;Under the [Settings] Tab -&amp;gt; [Publishing] Tab, edit the Blog Filename field. (index.html -&amp;gt; index.php)&lt;br&gt;  &lt;br&gt;There is also a setting for the archive file:&lt;br&gt;Under the [Settings] Tab -&amp;gt; [Archive] Tab, edit the Archive filename field. (archive.html -&amp;gt; archive.php)&lt;br&gt;&lt;br&gt;One more thing to note...&amp;nbsp; all the old *.html files will still be left on the server, so if you want them removed, you&amp;#39;ll have to clean them yourself.&lt;div&gt; &lt;div class="Wj3C7c"&gt;&lt;br&gt;(You may also want to &lt;a href="http://developernotes.thomaspowell.com/2008/07/htaccess-redirect-guide.php"&gt;redirect old links&lt;/a&gt; to the new extension).&lt;br&gt; &lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-7531460821966886255?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/7531460821966886255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=7531460821966886255' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7531460821966886255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7531460821966886255'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/10/classic-blogger-and-php.php' title='Classic Blogger and PHP?'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-6692197819133670847</id><published>2008-10-29T10:16:00.001-04:00</published><updated>2008-10-29T10:16:19.435-04:00</updated><title type='text'>Is a Yahoo developer platform worth the time investment to learn?</title><content type='html'>&lt;a href="http://www.informationweek.com/news/internet/social_network/showArticle.jhtml?articleID=211601154"&gt;Yahoo Introduces Social Developer Platform&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;quot;3 elements&amp;quot;:&lt;br&gt;&lt;b&gt;&lt;span id="articleBody"&gt; &lt;/span&gt;&lt;/b&gt;&lt;blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote"&gt; &lt;b&gt;Yahoo Social Platform&lt;/b&gt;, a set of REST-based social application programming interfaces (APIs) for utilizing social data related to Profiles, Connections, Updates, Contacts, and Status. &lt;span id="articleBody"&gt;&lt;p&gt;&lt;b&gt;Yahoo Query Language&lt;/b&gt;, a new Web service API for accessing other Web services &lt;b&gt;using a SQL-style query language&lt;/b&gt;, rather than a lower-level programming code. Yahoo describes it as &amp;quot;a command-line version of Pipes,&amp;quot; Yahoo&amp;#39;s visual programming system for mashing up and remixing Web data, like RSS feeds. &lt;/p&gt;&lt;p&gt;&lt;b&gt;Yahoo Application Platform&lt;/b&gt;, a set of software and services to build applications that run on Yahoo. It includes a browser-based development environment, various APIs and Web services, a distribution and discovery infrastructure, and a runtime and rendering environment.&lt;/p&gt;&lt;/span&gt;&lt;span id="articleBody"&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span id="articleBody"&gt;&lt;p&gt;&lt;span id="articleBody"&gt;&lt;a href="http://developer.yahoo.com/yos/intro/index.html"&gt;Yahoo Open Strategy (Y!OS) 1.0 Developer Release&lt;/a&gt;&lt;/span&gt; announcement and &lt;a class="ulink" href="http://developer.yahoo.com/yos/intro/yos-docs.html" target="_top"&gt;List of Y!OS                 Documentation&lt;/a&gt;. &lt;br&gt;&lt;/p&gt;&lt;p&gt;Is this new hope for Yahoo, or another potential dead-end for an industry laggard?&amp;nbsp; I remember&amp;nbsp; &lt;a href="http://valleywag.com/5043513/yahoo-kills-its-facebook-wannabe"&gt;Yahoo killing its Facebook wannabe&lt;/a&gt;, which, with TechCrunch keeping score, makes Yahoo &lt;a href="http://www.techcrunch.com/2008/08/28/yahoo-shuts-down-mash-0-4-on-social-networking/" rel="bookmark" title="Yahoo Shuts Down Mash, 0-4 On Social Networking"&gt;0-4 On Social Networking&lt;/a&gt;. Yahoo does not equal AOL, but I can&amp;#39;t help but think of AOL&amp;#39;s shutting down of &lt;a href="http://arstechnica.com/news.ars/post/20081028-aol-tightening-belt-to-kill-off-three-more-products.html"&gt;AOL Journals, Pictures, Hometown, Bluestring, and XDrive&lt;/a&gt;.&amp;nbsp; Is it worth investing the time to figure out something that will potentially be on the chopping block in the future?&lt;br&gt; &lt;/p&gt;&lt;/span&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-6692197819133670847?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/6692197819133670847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=6692197819133670847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6692197819133670847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6692197819133670847'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/10/is-yahoo-developer-platform-worth-time.php' title='Is a Yahoo developer platform worth the time investment to learn?'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-8711938265043283406</id><published>2008-10-20T15:30:00.003-04:00</published><updated>2008-10-23T08:28:30.159-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><title type='text'>Remember the Milk is on Twitter!</title><content type='html'>&lt;div dir="ltr"&gt;This may be old news to many RTM/Twitter users, but it was a pleasant surprise to me today.&lt;br /&gt;&lt;br /&gt;As I was perusing the Remember the Milk keyboard shortcuts, I noticed that at the bottom, under "Services", Twitter was listed.  So I clicked on the link, and the "Services / Remember the Milk for Twitter page" came up, where I could enter my Twitter id.  I was presented with a verification code for the next step.&lt;br /&gt;&lt;br /&gt;From there, I typed "follow rtm" and then "d rtm [verification code]".&lt;br /&gt;&lt;br /&gt;Now that all that is set up, I can interact with Twitter through direct msg:&lt;br /&gt;&lt;br /&gt;"&lt;b&gt;d rtm&lt;/b&gt; pick up the milk"&lt;br /&gt;&lt;br /&gt;"&lt;b&gt;d rtm&lt;/b&gt; call jimmy at 5pm tomorrow"&lt;br /&gt;&lt;br /&gt;"&lt;b&gt;d rtm !complete&lt;/b&gt; call jimmy"&lt;br /&gt;&lt;br /&gt;All the instructions and some command examples are at: &lt;a href="http://www.rememberthemilk.com/services/twitter/"&gt;http://www.rememberthemilk.com/services/twitter/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Of course, I'm still learning how to even use the &lt;a href="http://www.rememberthemilk.com/help/answers/basics/dateformat.rtm"&gt;RTM Date Formats&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Added:&lt;br /&gt;Of course, since I can txt updates to Twitter (40404), I can add tasks for today by texting&lt;br /&gt;"&lt;span style="font-weight: bold;"&gt;d rtm&lt;/span&gt; pick up the milk &lt;span style="font-weight: bold;"&gt;tod&lt;/span&gt;ay"&lt;br /&gt;&lt;br /&gt;I don't need a laptop or notepad to record my "action items" anymore.  This is awesome.&lt;br /&gt;&lt;br /&gt;Added 8/23:&lt;br /&gt;Thanks to &lt;a href="http://twitter.com/louisvillesoup"&gt;@louisvilllesoup&lt;/a&gt;, I looked into sending tasks &lt;a href="http://www.rememberthemilk.com/help/answers/sending/emailinbox.rtm"&gt;from e-mail to RTM inbox&lt;/a&gt; as well...  this is a pretty robust feature set.&lt;br /&gt;&lt;br /&gt;A much simpler setup is &lt;a href="http://www.rememberthemilk.com/help/answers/sending/importemail.rtm"&gt;importing a list via e-mail&lt;/a&gt;, which enables adding a list in bulk to a specific list (e.g., personal) by specifying the list in the subject line and list items on individual lines in the message body.  A downside to this method is that signature lines and legal disclaimers get added (per line) to your to do list.  I'll need to research if there is a way around this.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-8711938265043283406?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/8711938265043283406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=8711938265043283406' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8711938265043283406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8711938265043283406'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/10/remember-milk-is-on-twitter.php' title='Remember the Milk is on Twitter!'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-5032359749891226504</id><published>2008-10-20T09:50:00.002-04:00</published><updated>2008-10-21T08:58:33.695-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><title type='text'>Trying to dig up IT relevant podcasts</title><content type='html'>&lt;div dir="ltr"&gt;&lt;div&gt;Any suggestions?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://www.infoworld.com/weblog/podcasts/new_podcasts_index.html"&gt;InfoWorld Podcasts&lt;/a&gt;: These look promising...&lt;div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Infoworld Daily - includes a general tech news segment which is repeated in the NetworkWorld 360 podcast as well.&lt;br /&gt;&lt;/li&gt; &lt;li&gt;The Virtualization Report&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Storage Sprawl&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The SOA Report&lt;br /&gt;&lt;/li&gt;&lt;li&gt;...a few discontinued ones are out there, too.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;a href="http://enterprise2conf.libsyn.com/"&gt;Enterprise 2.0 podcasts&lt;/a&gt;  - looks like recordings from a conference?  I'll have to download and check them out tonight.  Not as promising as the Infoworld ones.  I see that a lone spammer has managed to post spam comments in "response" to a few of the links.&lt;/div&gt; &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.networkworld.com/podcasts/"&gt;NetworkWorld podcasts&lt;/a&gt;:  Again, some promise here.&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;NetworkWorld's Twisted Pair (this sounds more like entertainment, but possibly relevant news)&lt;/li&gt; &lt;li&gt;NetworkWorld Panorama&lt;/li&gt;&lt;li&gt;NetworkWorld 360 - includes a general tech news segment.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Voices from the IT Roadmap&lt;/li&gt;&lt;li&gt;NetworkWorld's Newsmaker of the Week&lt;/li&gt;&lt;li&gt;Forrester Fundamentals&lt;/li&gt;&lt;li&gt;Network Downtime (entertainment)&lt;/li&gt;&lt;li&gt;Converging on Microsoft&lt;/li&gt; &lt;li&gt;Cisco News and Reviews&lt;/li&gt;&lt;li&gt;JavaWorld's Java Technology Insider&lt;/li&gt;&lt;li&gt;LinuxCast&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-5032359749891226504?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/5032359749891226504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=5032359749891226504' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5032359749891226504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5032359749891226504'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/10/trying-to-dig-up-it-relevant-podcasts.php' title='Trying to dig up IT relevant podcasts'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-462110637565062976</id><published>2008-10-20T08:12:00.002-04:00</published><updated>2008-10-20T08:16:57.104-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geek humor'/><title type='text'>Same old grind / a new day / gotta work / for the pay / Burma-shave</title><content type='html'>&lt;div dir="ltr"&gt;&lt;a href="http://xkcd.com/491/"&gt;Today's xkcd comic&lt;/a&gt; has &lt;a href="http://www.twitter.com/"&gt;Twitter&lt;/a&gt; all &lt;a href="http://search.twitter.com/search?q=Burma-shave"&gt;Twitterpated&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://xkcd.com/491/"&gt;&lt;img src="http://imgs.xkcd.com/comics/twitter.png" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-462110637565062976?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/462110637565062976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=462110637565062976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/462110637565062976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/462110637565062976'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/10/same-old-grind-new-day-gotta-work-for.php' title='Same old grind / a new day / gotta work / for the pay / Burma-shave'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-6715008058697964148</id><published>2008-10-17T15:59:00.002-04:00</published><updated>2008-10-17T16:02:58.696-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><title type='text'>On comments and blogs</title><content type='html'>&lt;div dir="ltr"&gt;A &lt;a href="http://twitter.com/JasonFalls/statuses/964223313"&gt;tweet&lt;/a&gt; by &lt;a href="http://twitter.com/JasonFalls"&gt;@JasonFalls&lt;/a&gt; reminded of this topic.&lt;br /&gt;&lt;br /&gt;Have you ever been in a large meeting where someone asks a question that is uncomfortably inappropriate?  The perceived anonymity of the internet only seems to only embolden such tendencies.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://copywriteink.blogspot.com/2008/10/allowing-anonymous-communicators.html"&gt;Copywrite, Ink.:  Allowing Anonymous:  Communicators Divided&lt;/a&gt; - The business and communications justifications for allowing anonymous, allowing moderated comments, or allowing no comments at all.  I would tend to agree that considering "[allowing] no comments at all" myopic is a bit harsh, for two reasons:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;While the average lone miscreant is relatively harmless, many organizations might (justifiably) consider themselves potential targets of coordinated attacks.&lt;/li&gt;&lt;li&gt;The more popular the blog, the faster the comments degrade into flame wars.  I avoid the comments on &lt;a href="http://digg.com/"&gt;digg.com&lt;/a&gt; and several news sites because I've seen mildly provacative devolve into vitriolic hatred and ignorance--sometimes over something as benign as a story about a local basketball game.&lt;/li&gt; &lt;/ol&gt;&lt;br /&gt;I do, however, like this final point:&lt;br /&gt;&lt;blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote"&gt;However, and I cannot stress this enough, I do advise communicators and public relations professionals to never make anonymous comments or, if they do, they need to be prepared to answer for such posts in a world where no communication is really private. Not &lt;a href="http://copywriteink.blogspot.com/2006/09/e-mailing-is-never-private.html"&gt;anymore&lt;/a&gt;.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Of course, my feelings might be partially influenced by the &lt;a href="http://www.scripting.com/2007/01/01.html#theUneditedVoiceOfAPerson"&gt;Unedited Voice of a Person&lt;/a&gt;:&lt;br /&gt;&lt;blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote"&gt;Do comments make it a blog? Do the lack of comments make it not a blog? Well actually, my opinion is different from many, but it still is my opinion that it does not follow that a blog must have comments, in fact, to the extent that comments interfere with the natural expression of the unedited voice of an individual, comments may act to make something &lt;i&gt;not&lt;/i&gt; a blog.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;a href="http://www.joelonsoftware.com/"&gt;Joel Spolsky&lt;/a&gt; draws from this to make the point that you get a few insights, followed by a spew of noise/filth that no one would say out loud if they had to take ownership of their words.&lt;br /&gt;&lt;br /&gt;Finally, &lt;a href="http://xkcd.com/"&gt;xkcd&lt;/a&gt; illustrates:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://imgs.xkcd.com/comics/listen_to_yourself.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Especially&lt;/span&gt; on &lt;a href="http://www.youtube.com"&gt;YouTube&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://imgs.xkcd.com/comics/youtube.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-6715008058697964148?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/6715008058697964148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=6715008058697964148' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6715008058697964148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6715008058697964148'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/10/on-comments-and-blogs.php' title='On comments and blogs'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-6609814529214303096</id><published>2008-10-17T09:51:00.002-04:00</published><updated>2008-10-17T14:55:23.906-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><title type='text'>In a time when I'm aggravated at Insight, Verizon cheers me so...</title><content type='html'>&lt;div dir="ltr"&gt;...of course, only in a schadenfreude kind of way.&lt;br /&gt;&lt;br /&gt;Part of my reluctance to change carriers for phone and internet service is the whole "devil you know" dilemma.  I've never really considered Verizon a viable option for my needs, and I know very few people in the area that are on Verizon.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.networkworld.com/community/node/33767"&gt;Verizon plays fast and loose with the wrong 1,200 e-mail addresses&lt;/a&gt; is an almost juvenile example of Verizon's customer service failings...  just a mere mass e-mail with a cc: version bcc: used for the mailing list, plus some exchange server glitches.  There's also the equally juvenile &lt;a href="http://www.networkworld.com/community/node/32639"&gt;Run-amok Verizon robo-caller torments 1,400 customers&lt;/a&gt; incident.&lt;br /&gt;&lt;br /&gt;When I think Verizon, I think of: &lt;a href="http://www.engadget.com/2005/04/17/verizon-ceo-thinks-its-unreasonable-to-expect-your-cellphone/2"&gt;Verizon CEO thinks it's unreasonable to expect your cellphone to work at home&lt;/a&gt; or &lt;a href="http://verizonmath.blogspot.com/2006/12/verizon-doesnt-know-dollars-from-cents.html"&gt;Verizon doesn't know dollars from cents&lt;/a&gt;...  Oh yeah, and &lt;a href="http://thedailywtf.com/Articles/792-Octiiiiiiilion-Dollars.aspx"&gt;792 Octillion Dollars&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-6609814529214303096?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/6609814529214303096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=6609814529214303096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6609814529214303096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6609814529214303096'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/10/in-time-when-im-aggravated-at-insight.php' title='In a time when I&apos;m aggravated at Insight, Verizon cheers me so...'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-8740428079366377468</id><published>2008-10-16T21:52:00.002-04:00</published><updated>2008-10-16T22:32:29.610-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><title type='text'>See?  I'm not insane...</title><content type='html'>Less than an hour later, no changes to my setup or running programs.&lt;br /&gt;&lt;br /&gt;Firefox 3&lt;br /&gt;&lt;a href="http://speedtest.dslreports.com"&gt;&lt;img border=0 src="http://www.dslreports.com/im/59364893/13109.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then things fall apart again:&lt;br /&gt;IE 7&lt;br /&gt;&lt;a href="http://speedtest.dslreports.com"&gt;&lt;img border=0 src="http://www.dslreports.com/im/59365198/6986.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;40 minutes later:&lt;br /&gt;&lt;a href="http://speedtest.dslreports.com"&gt;&lt;img border=0 src="http://www.dslreports.com/im/59366774/79394.png"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-8740428079366377468?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/8740428079366377468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=8740428079366377468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8740428079366377468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8740428079366377468'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/10/see-im-not-insane.php' title='See?  I&apos;m not insane...'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-7452028669278491047</id><published>2008-10-16T21:11:00.001-04:00</published><updated>2008-10-17T19:59:23.893-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><title type='text'>My current Insight cable speed tests.</title><content type='html'>(No, I'm not just trying to squeeze maximum throughput here--I just want basic pages to load properly--the slow speeds are yet another indicator that there is a problem.)&lt;br /&gt;&lt;br /&gt;Under IE 7:&lt;br /&gt;&lt;a href="http://speedtest.dslreports.com/"&gt;&lt;img src="http://www.dslreports.com/im/59362865/61739.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Under Firefox 3:&lt;br /&gt;&lt;a href="http://speedtest.dslreports.com/"&gt;&lt;img src="http://www.dslreports.com/im/59363017/63817.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;These are actually excellent results for me right now...  I've been dropping to 88 Kps down/22 Kps up.  Aggravating thing is, at certain times of the day, I get over 3000 Kbs up and over 300 Kbs down (sometimes 7000 up, 700 down).  Supposedly, since my line is "good" (according to the tech at the call center) and behavior just as bad without router plugged in, it hasto be the modem.  I don't really have time to drive to Insight office to get replacement and then hook up.  Besides, I told the tech that connection has been inconsistent since the storm.  I guess it's cheaper for me to come have the modem replaced than to have someone check the line these days.&lt;br /&gt;&lt;br /&gt;At least when I used to have bad internet service before, I'd at least get decent/on-site service.  I guess I need to "power down/power up" 30 times, try turning the cable modem upside down, and letting the water run before getting a tech out here.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Added:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://dotherightthing.com/entries/845-dear-insight-broadband-please-treat-your-customers-with-respect"&gt;&lt;span&gt;Dear Insight Broadband, Please Treat Your Customers with Respect&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://huh.youmightbe.com/2007/03/insight-wants-to-save-you-money.html"&gt;&lt;span&gt;Insight want to save? you money&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Update:&lt;/span&gt;&lt;br /&gt;So far so good with the new modem:&lt;br /&gt;&lt;a href="http://speedtest.dslreports.com"&gt;&lt;img border=0 src="http://www.dslreports.com/im/59419326/43391.png"&gt;&lt;/a&gt;&lt;br /&gt;This should tide me over until my cell phone contract runs out, at least.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-7452028669278491047?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/7452028669278491047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=7452028669278491047' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7452028669278491047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7452028669278491047'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/10/my-current-insight-cable-speed-tests.php' title='My current Insight cable speed tests.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-1875169750851451232</id><published>2008-10-15T16:09:00.001-04:00</published><updated>2008-10-17T14:56:10.473-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='socialnetworking'/><title type='text'>Follow Cost on Twitter</title><content type='html'>&lt;p class="mobile-photo"&gt;&lt;a href="http://developernotes.thomaspowell.com/uploaded_images/followcosts-793055-793185.png"&gt;&lt;img src="http://developernotes.thomaspowell.com/uploaded_images/followcosts-793055-793171.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div dir="ltr"&gt;&lt;a href="http://followcost.com/stringsn88keys"&gt;My follow cost for Twitter&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-1875169750851451232?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/1875169750851451232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=1875169750851451232' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/1875169750851451232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/1875169750851451232'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/10/follow-cost-on-twitter.php' title='Follow Cost on Twitter'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-427289128288972281</id><published>2008-10-14T16:47:00.001-04:00</published><updated>2008-10-14T16:47:17.668-04:00</updated><title type='text'>All these silly little Top 10 lists.</title><content type='html'>&lt;div dir="ltr"&gt;Okay, so I just love punditry sometimes...&lt;br&gt;&lt;br&gt;&lt;a href="http://www.networkworld.com/community/node/33961"&gt;10 Things That Won&amp;#39;t Make Windows 7 A Success (and 1 That Will)&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote"&gt; &lt;span&gt;&lt;strong&gt;8.&amp;nbsp;Death By A Thousand Versions Of The Same Product.&lt;/strong&gt; How many versions of Vista are there again? Okay, if you say so. We only need 3 versions of Windows 7:&amp;nbsp;a home version, a business version, and a mobile version. Three products, and three SKUs. That&amp;#39;s it. Give us any more and we&amp;#39;ll send you back into timeout, Microsoft.&lt;/span&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;&lt;blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote"&gt; &lt;span&gt;&lt;strong&gt;10. Annoying The User.&lt;/strong&gt; UAC was the direct approach. Ask the end user at every turn possible a question they don&amp;#39;t care about, don&amp;#39;t know the answer to, for something they are going to do any way. Or there&amp;#39;s the indirect approach, the sum of a lot annoying little problems: slower file copy, a slower computer using experience, a lack of drivers, stability issues, confusing product editions, etc. Either approach works great at annoying the end user. Doing both&amp;nbsp;guarantees it will happen.&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;Also, some really cool graphic design going on here on a couple of these slideshows:&lt;br&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.networkworld.com/slideshows/2007/071207-top-25-iphonies-nano.html"&gt;Top 25 iPhonies: The Nano edition&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.networkworld.com/slideshows/2007/062907-top-25-iphonies.html"&gt;Top 25 iPhonies&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.networkworld.com/slideshows/2007/101007-google-gphonies.html?nwwpkg=slideshows"&gt;Top 12 Gooogle GPhonies&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; &lt;/div&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-427289128288972281?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/427289128288972281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=427289128288972281' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/427289128288972281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/427289128288972281'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/10/all-these-silly-little-top-10-lists.php' title='All these silly little Top 10 lists.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-587514886381117802</id><published>2008-10-14T15:40:00.001-04:00</published><updated>2008-10-15T16:23:42.957-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='articles'/><title type='text'>Random Articles found through NetworkWorld</title><content type='html'>&lt;div dir="ltr"&gt;&lt;a href="http://www.tsa.gov/blog/2008/10/message-in-carry-on.html"&gt;Sending a message to TSA will cost you time&lt;/a&gt; - the lesson here?  Don't try to be clever in what you take through security. &lt;a href="http://evan-roth.com/rhizome2008/"&gt;Evan Roth&lt;/a&gt; has designed personalized plates that allow the bags screeners for TSA to see a "message" that you've had etched into a steel plate.  Of course, these plates obstruct the view of your baggage, pretty much guaranteeing that you'll be searched.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.networkworld.com/slideshows/2008/101308-it-graveyard.html?netht=rn_101408&amp;amp;nladname=101408"&gt;2008 I.T. Industry Graveyard&lt;/a&gt; - Slide 3...  The IT department.  I don't know about this.  This prediction is along the same lines as the prediction of the death of the desktop computer 10 years ago and the "this time it's different" about the dot-com boom, the housing market, or [insert your future prediction here].  Until the barriers to replacing the legacy systems are met, someone will always be making the connections to the old data through SOA, or worse yet, changing the old applications for minor changes in the business environment.&lt;br /&gt;&lt;br /&gt;A contrasting (if not differing) opinion from &lt;a href="http://www.computerworld.com/index.jsp"&gt;ComputerWorld.com&lt;/a&gt; blogs:  &lt;a href="http://blogs.computerworld.com/vista_r_i_p"&gt;Vista R.I.P.&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-587514886381117802?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/587514886381117802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=587514886381117802' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/587514886381117802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/587514886381117802'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/10/random-articles-found-through.php' title='Random Articles found through NetworkWorld'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-6956615881607272774</id><published>2008-10-13T20:57:00.001-04:00</published><updated>2008-10-13T20:57:37.643-04:00</updated><title type='text'>Problem 1 from Project Euler . net ("set"-based solution)</title><content type='html'>&lt;div dir="ltr"&gt;This time, I fill a hash map for step values of 3 and of 5. &amp;nbsp;No noticeable difference from &lt;a href="http://developernotes.thomaspowell.com/2008/10/problem-1-from-project-euler-net.php"&gt;my first try&lt;/a&gt;, until you start trying to find results for much larger than stopping at 999, at which point amount of memory consumed/allocated makes this method way more inefficient.&lt;br&gt; &lt;br&gt;&lt;span style="font-family: courier new,monospace;"&gt;x=0&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt;&lt;br style="font-family: courier new,monospace;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;h = {}&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt; &lt;span style="font-family: courier new,monospace;"&gt;3.step(999, 3) {&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp;|i|&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt; &lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp;h[i] = 1&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;}&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;5.step(999, 5) {&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt; &lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp;|i|&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp;h[i] = 1&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt; &lt;span style="font-family: courier new,monospace;"&gt;}&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt;&lt;br style="font-family: courier new,monospace;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;h.each { |k,v|&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt; &lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp;x=x+k&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;}&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;print x,&amp;quot;\n&amp;quot;&lt;/span&gt;&lt;br&gt; &lt;br&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-6956615881607272774?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/6956615881607272774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=6956615881607272774' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6956615881607272774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6956615881607272774'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/10/problem-1-from-project-euler-net-set_13.php' title='Problem 1 from Project Euler . net (&quot;set&quot;-based solution)'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-9169212697544951410</id><published>2008-10-13T13:42:00.001-04:00</published><updated>2008-10-13T13:42:18.841-04:00</updated><title type='text'>A fledgling blog on the progress of technology</title><content type='html'>&lt;div dir="ltr"&gt;I think I&amp;#39;m generally more interested in the small-time blogs than the well-established blog.&amp;nbsp; Well-established blogs with a solid following can succumb to group-think in the guise of introspection.&lt;br&gt;&lt;br&gt; Sometimes, a newer blogging voice can present a different perspective on existing topics:&lt;br&gt;&lt;br&gt;Found from a &lt;a href="http://twitter.com/implu"&gt;@implu&lt;/a&gt; tweet &lt;a href="http://retireyourdesktop.blogspot.com/2008/10/future.html"&gt;Retire your desktop:  The Future&lt;/a&gt;:&lt;br&gt; - Greenspan&amp;#39;s perception of the Information Technology bonus (in terms of productivity)&lt;br&gt;- Wall Street&amp;#39;s irrational exuberance leading to the DotCom Bubble.&lt;br&gt;- Gen Y&amp;#39;s unintentional leadership of humanity into freedom.&lt;br&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-9169212697544951410?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/9169212697544951410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=9169212697544951410' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/9169212697544951410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/9169212697544951410'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/10/fledgling-blog-on-progress-of.php' title='A fledgling blog on the progress of technology'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-5857383733656013354</id><published>2008-10-12T22:44:00.001-04:00</published><updated>2008-10-13T20:58:52.467-04:00</updated><title type='text'>Problem 1 from Project Euler . net</title><content type='html'>&lt;div dir="ltr"&gt;&lt;span style="font-size:85%;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;font-family:'Trebuchet MS';font-size:16;"  &gt;&lt;p&gt; Trying to reinforce the syntax in ruby, I did &lt;a href="http://projecteuler.net/index.php?section=problems&amp;amp;id=1"&gt;Problem 1 from Project Euler . net&lt;/a&gt;:&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote"&gt; &lt;span style="font-size:85%;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(255, 255, 255); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;font-family:'Trebuchet MS';font-size:16;"  &gt;&lt;p&gt; If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.&lt;/p&gt;&lt;p&gt;Find the sum of all the multiples of 3 or 5 below 1000.&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt; &lt;span style="font-family:courier new,monospace;"&gt;x=0&lt;/span&gt; &lt;span style="font-family:courier new,monospace;"&gt;&lt;br /&gt;1.upto(999) { &lt;/span&gt; &lt;br /&gt;&lt;span style="font-family:courier new,monospace;"&gt;  |i|&lt;/span&gt; &lt;span style="font-family:courier new,monospace;"&gt; &lt;br /&gt;  x=x+i if (i % 5 == 0 || i % 3 == 0)  &lt;/span&gt;  &lt;span style="font-family:courier new,monospace;"&gt;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new,monospace;"&gt;print x&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I'd like to do this by merging two sets of numbers next.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-5857383733656013354?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/5857383733656013354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=5857383733656013354' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5857383733656013354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5857383733656013354'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/10/problem-1-from-project-euler-net.php' title='Problem 1 from Project Euler . net'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-8582265425035481806</id><published>2008-10-12T22:39:00.001-04:00</published><updated>2008-10-12T22:39:40.150-04:00</updated><title type='text'>My first powershell</title><content type='html'>&lt;div dir="ltr"&gt;A &lt;span style="font-family: courier new,monospace;"&gt;foreach &lt;/span&gt;loop that calls &lt;span style="font-family: courier new,monospace;"&gt;ping &lt;/span&gt;with a specific buffer size, and sends output to a ping*.txt file corresponding to the buffer size:&lt;br&gt; &lt;br&gt;&lt;span style="font-family: courier new,monospace;"&gt;foreach ($number in 32, 256, 1024) { ping -n100 -l$number &lt;a href="http://yahoo.com"&gt;yahoo.com&lt;/a&gt; &amp;gt; ping$number.txt }&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-8582265425035481806?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/8582265425035481806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=8582265425035481806' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8582265425035481806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8582265425035481806'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/10/my-first-powershell.php' title='My first powershell'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-5173467135876029568</id><published>2008-10-10T15:25:00.001-04:00</published><updated>2008-10-10T15:25:55.644-04:00</updated><title type='text'>For when I really can't get my brain fired up on a given day</title><content type='html'>&lt;div dir="ltr"&gt;&lt;a href="http://projecteuler.net/index.php?section=problems"&gt;Project Euler for programming problems.&lt;/a&gt;:&amp;nbsp; &amp;quot;Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.&amp;quot;&lt;br&gt;&lt;br&gt;I was looking up V=IR, P=IV, etc...&amp;nbsp; and found this site:&amp;nbsp; &lt;a href="http://www.equationsheet.com/sheets/Equations-25/0.html"&gt;Equation Sheet site&lt;/a&gt;.&amp;nbsp; It has algebra, calculus, statistics, and physics, etc... equations.&lt;br&gt; &lt;br&gt;A simple &lt;a href="http://labs.mininova.org/todolist2/"&gt;AJAX TODO List&lt;/a&gt; and links to the code&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-5173467135876029568?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/5173467135876029568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=5173467135876029568' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5173467135876029568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5173467135876029568'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/10/for-when-i-really-cant-get-my-brain.php' title='For when I really can&apos;t get my brain fired up on a given day'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-8662773329157293107</id><published>2008-10-06T16:43:00.001-04:00</published><updated>2008-10-06T16:43:31.589-04:00</updated><title type='text'>PC World's opinions on products and websites.</title><content type='html'>&lt;div dir="ltr"&gt;&lt;a href="http://www.pcworld.com/article/150897/100_incredibly_useful_web_sites.html"&gt;100 Incredibly Useful and Interesting Web Sites&lt;/a&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.pcworld.com/article/151771/100_web_sitesthe_list_by_category.html"&gt;Complete List by Category&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.pcworld.com/article/151769/100_web_sitesthe_alphabetical_list.html"&gt;Complete List in Alphabetical Order&lt;/a&gt;&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;a href="http://www.pcworld.com/article/151200/the_bottom_10_the_webs_most_useless_sites.html"&gt;The Bottom 10: The Web&amp;#39;s Most Useless Sites&lt;/a&gt; - Digg made it!&amp;nbsp; Wow.&amp;nbsp; Some pretty ugly sites otherwise as well.&lt;br&gt; &lt;br&gt;&lt;a href="http://www.pcworld.com/article/151402/the_10_most_overrated_products.html"&gt;The 10 Most Overrated Products&lt;/a&gt;&amp;nbsp; -- a little too much credit to Microsoft, especially with the underrated Zune vs. the overrated iPod.&amp;nbsp; Part of the greatness of the iPod and iTunes is the market saturation of the product.&amp;nbsp; My ripped CDs, my iTunes-purchased AAC files, and my podcasts co-exist seemlessly.&amp;nbsp; The wifi sharing feature of the Zune is made relatively useless by the lack of adoption.&lt;br&gt; &lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-8662773329157293107?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/8662773329157293107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=8662773329157293107' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8662773329157293107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8662773329157293107'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/10/pc-worlds-opinions-on-products-and.php' title='PC World&apos;s opinions on products and websites.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-5462760807035592138</id><published>2008-10-06T16:13:00.001-04:00</published><updated>2008-10-06T16:13:04.653-04:00</updated><title type='text'>Cleaning up a brand new PC</title><content type='html'>&lt;div dir="ltr"&gt;I&amp;#39;ve found a new blog to scour:&amp;nbsp; &lt;a href="http://www.labnol.org/"&gt;DigitalInspiration&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;a href="http://www.labnol.org/software/remove-pre-installed-trial-software-from-new-computer/4729/"&gt;Bought a New Computer? Now Remove all the Pre-Installed Trial Software&lt;/a&gt; - this article points to the program &lt;a href="http://www.pcdecrapifier.com/"&gt;PC Decrapifier&lt;/a&gt; and the &lt;a href="http://www.pcdecrapifier.com/apps"&gt;full list of programs&lt;/a&gt; that the program can remove.&amp;nbsp; &lt;br&gt; &lt;br&gt;A related post of theirs, &lt;a href="http://labnol.blogspot.com/2007/01/spring-cleaning-utilities-for-your-pc.html"&gt;Spring Cleaning Utilities for your PC : Reclaim Hard Disk Space&lt;/a&gt;, provides more clean-up tips and utilities.&lt;br&gt; &lt;br&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-5462760807035592138?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/5462760807035592138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=5462760807035592138' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5462760807035592138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5462760807035592138'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/10/cleaning-up-brand-new-pc.php' title='Cleaning up a brand new PC'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-9219846509504550665</id><published>2008-10-06T15:50:00.001-04:00</published><updated>2008-10-06T15:50:18.967-04:00</updated><title type='text'>Send Tweets to Twitter via e-mail</title><content type='html'>&lt;div dir="ltr"&gt;&lt;a href="http://www.labnol.org/internet/email/send-twitter-updates-email-mobile-phone-without-sms/2955/"&gt;Send Twitter Updates via e-mail&lt;/a&gt;&lt;br&gt;&lt;br&gt;Interesting concept:&lt;br&gt;&lt;ul&gt;&lt;li&gt;Create a dummy blog&lt;/li&gt;&lt;li&gt; Set-up a private mail-to-blogger address.&lt;/li&gt;&lt;li&gt;Use &lt;a href="http://twitterfeed.com"&gt;twitterfeed.com&lt;/a&gt; and your OpenID to associate the rss.xml feed for the blog to your Twitter account&lt;/li&gt;&lt;/ul&gt;To post to Twitter, all you have to do is e-mail your Twitter updates to the mail-to-blogger address.&lt;br&gt; &lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-9219846509504550665?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/9219846509504550665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=9219846509504550665' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/9219846509504550665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/9219846509504550665'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/10/send-tweets-to-twitter-via-e-mail.php' title='Send Tweets to Twitter via e-mail'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-3642749793633726473</id><published>2008-09-26T11:09:00.001-04:00</published><updated>2008-09-26T11:20:48.390-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='math'/><title type='text'>Google Calculator cheat sheet</title><content type='html'>&lt;div dir="ltr"&gt;I just found an awesome site describing some of the features in Google while looking for info on Google Calculator:&amp;nbsp; &lt;a href="http://www.googleguide.com/"&gt;Google Guide&lt;/a&gt;&lt;br&gt;&lt;br&gt; My first find was the &lt;a href="http://www.googleguide.com/help/calculator.html"&gt;&lt;span class="t"&gt;Quick Reference:  Google Calculator (Cheat Sheet)&lt;/span&gt;&lt;/a&gt;.&lt;br&gt;&lt;br&gt;I like this tip from &lt;a href="http://www.googleguide.com/solutions/#calculator"&gt;Google Guide solutions to Calculator problems&lt;/a&gt;:&lt;br&gt;  &lt;br&gt; &lt;blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote"&gt;Compute the probability of your winning the lottery if you buy 1,000 tickets  each bearing five distinct independently randomly chosen integers between 1 and  99.    &lt;p&gt;The following answer was contributed by Nelson Blachman (Nancy's father).&lt;/p&gt;   &lt;p&gt;You might try [&amp;nbsp;&lt;a class="results" href="http://www.google.com/search?q=1-+%28+1-+1/%2899+choose+5%29%29%5E1000" target="_blank"&gt;1 - (1 - 1/(99 choose 5))^1000&lt;/a&gt;&amp;nbsp;], but this is well  approximated by [&amp;nbsp;&lt;a class="results" href="http://www.google.com/search?q=1000/%2899+choose+5%29" target="_blank"&gt;1000/(99  choose 5)&lt;/a&gt;&amp;nbsp;], which is roughly 0.00001 . If each ticket costs $1, the prize  had better be at least $100 million to be fair to you — and higher if you might  have to share the prize with other winners. &lt;/p&gt;&lt;/blockquote&gt;&lt;div&gt;While I was on that train of thought, I found the &lt;a href="http://en.wikipedia.org/wiki/Lottery_mathematics"&gt;Lottery Mathematics&lt;/a&gt; entry on Wikipedia.&lt;br&gt; &lt;br&gt;Also...&amp;nbsp; I&amp;#39;ve always wanted to figure out the &lt;a href="http://en.wikipedia.org/wiki/Poker_probability"&gt;probability calculation for various poker hands&lt;/a&gt;.&lt;br&gt;&amp;nbsp;&lt;/div&gt;One more interesting link:&amp;nbsp; &lt;a href="http://www.soople.com/soople_intcalchome.php"&gt;Soople.com&amp;#39;s Visual Interface to Google&amp;#39;s calculator&lt;/a&gt;&lt;br&gt; &lt;br&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-3642749793633726473?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/3642749793633726473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=3642749793633726473' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/3642749793633726473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/3642749793633726473'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/09/google-calculator-cheat-sheet.php' title='Google Calculator cheat sheet'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-6449193421981127825</id><published>2008-09-25T16:55:00.001-04:00</published><updated>2008-09-25T16:56:45.260-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='the internets'/><title type='text'>Way to go, Beshear.</title><content type='html'>&lt;div dir="ltr"&gt;Kentucky is getting a lot of love on the Tech Blogs...&lt;br&gt;&lt;br&gt;&lt;a href="http://arstechnica.com/news.ars/post/20080924-kentucky-tries-to-seize-gambling-site-domain-names.html"&gt;Kentucky tries to seize gambling site domain names&lt;/a&gt; - on ArsTechnica&lt;br&gt; &lt;br&gt;&lt;a href="http://yro.slashdot.org/article.pl?sid=08/09/25/178253"&gt;State of Kentucky Seizes Control of 141 Domain Names&lt;/a&gt; - on SlashDot&lt;br&gt;&lt;br&gt;&lt;a href="http://valleywag.com/5053704/kentucky-judge-moves-to-seize-gambling-sites-domains"&gt;Kentucky judge moves to seize gambling sites&amp;#39; domains&lt;/a&gt; - on ValleyWag&lt;br&gt; &lt;br&gt;&lt;a href="http://techdirt.com/articles/20080923/1851142353.shtml"&gt;Kentucky Governor Seizes Online Gambling Domain Names&lt;/a&gt; - on TechDirt&lt;br&gt;&lt;br&gt;Not only is the state of Kentucky being laughed at for this massive overstepping of jurisdiction, but every single other facet of Kentucky living and business is being dragged through the mud.&amp;nbsp; Just look at the comments.&amp;nbsp; Never mind that...&amp;nbsp; just reading the articles is enough.&lt;br&gt; &lt;a href="http://techdirt.com/articles/20080923/1851142353.shtml"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-6449193421981127825?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/6449193421981127825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=6449193421981127825' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6449193421981127825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6449193421981127825'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/09/way-to-go-beshear.php' title='Way to go, Beshear.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-1072664136890646916</id><published>2008-09-10T08:46:00.000-04:00</published><updated>2008-09-10T08:55:38.036-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='microblogging'/><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='socialnetworking'/><title type='text'>The trouble with Twitter</title><content type='html'>&lt;a href="http://www.businessweek.com/technology/content/aug2008/tc20080815_597307.htm"&gt;The Trouble with Twitter&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The trouble with social networking... (see &lt;a href="http://www.liv.ac.uk/evolpsyc/Evol_Anthrop_6.pdf"&gt;The Social Brain Hypothesis&lt;/a&gt;, page 184, column 3)&lt;br /&gt;&lt;blockquote&gt;British anthropologist Robin Dunbar [...] noted in 1992 that humans—like other primates—can handle only 150 relationships. If we try to add many more connections, our little brains get overloaded. &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The conclusion from a ballpark example...&lt;br /&gt;&lt;blockquote&gt;Thus Twitter has a real value of $12.26 per user. Compare that with Facebook, which has a perceived value of $300 a user—or at least it did last year, when Microsoft purchased its 1.6% stake for $240 million and the site had 50 million users.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Even with this example, there is the difficulty of inserting the ads...  In messages?  On the front end interface?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-1072664136890646916?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.businessweek.com/technology/content/aug2008/tc20080815_597307.htm' title='The trouble with Twitter'/><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/1072664136890646916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=1072664136890646916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/1072664136890646916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/1072664136890646916'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/09/trouble-with-twitter.php' title='The trouble with Twitter'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-5730366000497269050</id><published>2008-09-09T05:30:00.002-04:00</published><updated>2008-12-30T17:48:34.337-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='microblogging'/><category scheme='http://www.blogger.com/atom/ns#' term='enterprise2.0'/><title type='text'>My thoughts on Yammer</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://developernotes.thomaspowell.com/uploaded_images/yammer-719067.PNG"&gt;&lt;img style="cursor: pointer;" src="http://developernotes.thomaspowell.com/uploaded_images/yammer-719065.PNG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;I commented on &lt;a target="_blank" href="http://joewheeler.tumblr.com/post/49339859/this-is-basically-the-application-i-had-specd-out"&gt;@joewheeler's take on Yammer&lt;/a&gt; (&lt;a href="http://www.yammer.com/" target="_blank"&gt;Yammer.com&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;I'm not entirely sure that there is as huge of a barrier to adoption from the corporate side.  Office Communicator and Windows Messenger before that offered private network IM capability.  Additionally, the Millenials and like-minded young adults are starting to filter into the workplace as interns and entry-level employees...  Watching job websites, I often see articles about attracting the younger workforce.  Microblogging is one way.&lt;br /&gt;&lt;br /&gt;The true barrier is *not* the old school management thought (although it is a realistic barrier).  The true barrier is old school employee thought.  Microblogging escapes the mindset of even much of the 30-something crowd.&lt;br /&gt;&lt;br /&gt;Added:&lt;br /&gt;Another possible barrier to Yammer could be seen in a private network microblogging installation.  Ultimately, this is Yammer's barrier to growth.  However, much like AOL IM vs Office Communicator, grassroots adoption of microblogging will occur long before critical mass is achieved to provide a business justification for paying for &lt;i&gt;or even just installing&lt;/i&gt; such software on a server and client machines. &lt;br /&gt;&lt;br /&gt;The company e-mail validation on Yammer counteracts such software installs as well; however, a departing emploee would still have his or her access to internal company updates after departure, as long as the employee's e-mail has been validated.  In Twitter, you can make updates private or block people from following you, but having to do this in Yammer would probably defeat the purpose it was created for.&lt;br /&gt;&lt;br /&gt;Additionally:&lt;br /&gt;Yammer, much like AIM, has the potential to put company information outside of the company’s hands.  Of course, every user does need to sign up and verify through a corporate e-mail address.  Moreover, those who have left the company can be requested for removal (one would have to wonder the validation steps here.)  Nevertheless, there is no guarantee or auditing of the controls that would keep a company’s data private.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-5730366000497269050?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/5730366000497269050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=5730366000497269050' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5730366000497269050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5730366000497269050'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/09/my-thoughts-on-yammer.php' title='My thoughts on Yammer'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-6739441607245187496</id><published>2008-09-05T14:14:00.001-04:00</published><updated>2008-09-05T14:17:12.400-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='toread'/><title type='text'>A recommended book for me to read</title><content type='html'>CODE:  The Hidden Language of Computer Hardware and Software&lt;br/&gt;&lt;br/&gt;ISBN: 0-7356-0505-X; Microsoft Press; September 29, 1999; 400 pages (hardcover). &lt;br/&gt;ISBN: 0-7356-1131-9; Microsoft Press; October 11, 2000; 400 pages (softcover). &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=youmightbecom-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=0735611319&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-6739441607245187496?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/6739441607245187496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=6739441607245187496' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6739441607245187496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6739441607245187496'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/09/recommended-book-to-read.php' title='A recommended book for me to read'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-6651920409859117144</id><published>2008-09-04T13:44:00.000-04:00</published><updated>2008-09-05T14:19:49.380-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><title type='text'>The growth of Wikipedia</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://en.wikipedia.org/wiki/Wikipedia:Size_of_Wikipedia%20'&gt;http://en.wikipedia.org/wiki/Wikipedia:Size_of_Wikipedia&lt;/a&gt; &lt;br/&gt;&lt;br/&gt;I love these graphs.  That's all.  An increase of 2,000 articles per day on Wikipedia.  Even if you managed to read 3,000 articles per day, you'd spend 2 years just reading the current set, and in that time, Wikipedia would probably have doubled in size.&lt;br/&gt;&lt;br/&gt;&lt;img src='http://lh6.ggpht.com/TWilliamPowell/SMAcTXkAD3I/AAAAAAAAACw/Smy7JME_ZVs/%5BUNSET%5D.png' style='max-width: 480px;'/&gt;&lt;br/&gt;&lt;img src='http://lh6.ggpht.com/TWilliamPowell/SMAcXmSfFGI/AAAAAAAAAC0/OVD7b274Kxs/%5BUNSET%5D.png' style='max-width: 480px;'/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-6651920409859117144?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/6651920409859117144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=6651920409859117144' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6651920409859117144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6651920409859117144'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/09/growth-of-wikipedia.php' title='The growth of Wikipedia'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/TWilliamPowell/SMAcTXkAD3I/AAAAAAAAACw/Smy7JME_ZVs/s72-c/%5BUNSET%5D.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-8476185619298795666</id><published>2008-09-02T16:34:00.000-04:00</published><updated>2008-09-10T13:09:42.360-04:00</updated><title type='text'>Firefox vs. Chrome</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I'm currently trying out the Chrome browser from Google.  Very nice so far, however, pros and cons for each so far are:&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Firefox:&lt;/b&gt;&lt;br/&gt;Pros--&lt;br/&gt;&lt;ul&gt;&lt;li&gt;TwitterFox&lt;/li&gt;&lt;li&gt;Delicious&lt;/li&gt;&lt;li&gt;Ubiquity&lt;/li&gt;&lt;li&gt;ScribeFire&lt;/li&gt;&lt;/ul&gt;Cons--&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Memory hog.&lt;br/&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;&lt;b&gt;Chrome:&lt;/b&gt;&lt;br/&gt;Pros--&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Pretty (in a minimalist sort of way)&lt;br/&gt;&lt;/li&gt;&lt;li&gt;Fast&lt;/li&gt;&lt;li&gt;Relatively lightweight (in a 2008 application sense, not in an absolute program sense)&lt;/li&gt;&lt;li&gt;Special &lt;a href='http://lifehacker.com/5045164/google-chromes-full-list-of-special-about-pages'&gt;about: pages&lt;/a&gt;&lt;br/&gt;&lt;/li&gt;&lt;/ul&gt;Cons--&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Looks like some Facebook functionality does not work.  I think mostly involving Facebook apps.&lt;br/&gt;&lt;/li&gt;&lt;li&gt;Fails to render secure sites that are lost in the IE vs. Netscape 4.x days.  Wouldn't be a huge downside if I didn't actually know of one that I use regularly.&lt;br/&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-8476185619298795666?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/8476185619298795666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=8476185619298795666' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8476185619298795666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8476185619298795666'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/09/firefox-vs-chrome.php' title='Firefox vs. Chrome'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-3013036921003652703</id><published>2008-09-01T18:34:00.001-04:00</published><updated>2008-09-01T18:35:45.955-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web-general'/><title type='text'>Google browser officially to debut on Windows tomorrow</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://www.techcrunch.com/2008/09/01/no-joke-google-introduces-its-own-browser-with-a-cartoon/'&gt;Google "launches" browser with a cartoon &lt;/a&gt;&lt;br/&gt;&lt;br/&gt;It would seem to be a natural progression that if you're using Google services for 90% of your web usage (Google, Maps, Gmail, Blogger, Sites, Docs, ...) then a Google browser would make things run "even smoother."&lt;br/&gt;&lt;br/&gt;This is something that Internet Explorer has had in a way for some time.  ...and Firefox has 20% without being the default install in any set up (unless some Linux distros opt for Firefox over the native WM browser).  20% of web users made the choice to use Firefox.  IE 6's share is 25%, so I would venture that that 25% did not *choose* IE.  In fact,  0.13 percentage points of IE traffic is pre-6.0.&lt;br/&gt;&lt;br/&gt;Google will have a much more effective platform through which to push their browser.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-3013036921003652703?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/3013036921003652703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=3013036921003652703' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/3013036921003652703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/3013036921003652703'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/09/google-browser-officially-to-debut-on.php' title='Google browser officially to debut on Windows tomorrow'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-261429556463344291</id><published>2008-09-01T14:12:00.001-04:00</published><updated>2008-09-01T14:12:29.866-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='free'/><title type='text'>Free tools article at Lifehacker</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://lifehacker.com/5042753/free-replacements-for-paid-tools'&gt;Free: Free Replacements for Paid Tools&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;I never really considered GParted as a replacement for PartitionMagic.&lt;br/&gt;&lt;blockquote/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-261429556463344291?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/261429556463344291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=261429556463344291' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/261429556463344291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/261429556463344291'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/09/free-tools-article-at-lifehacker.php' title='Free tools article at Lifehacker'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-9180680090730639457</id><published>2008-09-01T14:06:00.001-04:00</published><updated>2008-09-01T14:06:53.460-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Great article on life-hacker about Windows Performance tweak myths.</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://lifehacker.com/5033518/'&gt;Mythbusting: Debunking Common Windows Performance Tweaking Myths&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Registry cleaners, memory optimizers, and Vista settings... oh my.&lt;br/&gt;&lt;blockquote/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-9180680090730639457?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/9180680090730639457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=9180680090730639457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/9180680090730639457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/9180680090730639457'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/09/great-article-on-life-hacker-about.php' title='Great article on life-hacker about Windows Performance tweak myths.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-7177736334127116250</id><published>2008-09-01T12:56:00.001-04:00</published><updated>2008-09-01T14:07:40.846-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><title type='text'>First pieces of code in PowerShell</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;new-object:&lt;br/&gt;&lt;blockquote&gt;$sw = new-object System.IO.StreamWriter("c:\ts.txt")&lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;get-member:&lt;br/&gt;&lt;blockquote&gt;$sw | get-member -memberType methods&lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;For some reason, this method of invoking object methods is reminiscent of both Ruby and Smalltalk for me.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-7177736334127116250?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/7177736334127116250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=7177736334127116250' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7177736334127116250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7177736334127116250'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/09/first-pieces-of-code-in-powershell.php' title='First pieces of code in PowerShell'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-7904607996123041374</id><published>2008-08-28T09:45:00.001-04:00</published><updated>2008-08-28T09:45:54.651-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>From the PowerShell team blog</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://blogs.msdn.com/powershell/archive/2008/07/08/bash-vs-powershell.aspx' target='_blank'&gt;PowerShell Team Blog blog entry on the Linux Magazine&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a target='_blank' href='http://w3.linux-magazine.com/issue/78/Bash_vs._Vista_PowerShell.pdf'&gt;Bash vs. Vista PowerShell&lt;/a&gt; from Linux Magazine&lt;br/&gt;&lt;br/&gt;&lt;a target='_blank' href='http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx'&gt;PowerShell Script Center&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-7904607996123041374?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/7904607996123041374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=7904607996123041374' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7904607996123041374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7904607996123041374'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/08/from-powershell-team-blog.php' title='From the PowerShell team blog'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-8824974373570915043</id><published>2008-08-27T21:14:00.001-04:00</published><updated>2008-08-27T21:41:52.362-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Cannot hibernate Windows XP machine "Insuffienct Resources Exist to Complete the API"</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;For me, this was happening on a Lenovo T61 with 2GB of RAM...  and for every time that I tried to hibernate.&lt;br/&gt;&lt;br/&gt;&lt;a href='http://support.microsoft.com/kb/909095'&gt;Microsoft Knowledge Base Article (KB909095)&lt;/a&gt; :  The computer occasionally does not hibernate and you receive an "Insufficient System Resources Exist to Complete the API" error message in Windows XP with Service Pack 2, in Windows XP Tablet PC Edition 2005, or in Windows XP Media Center Edition 2005.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;This problem typically occurs when the computer uses 1 gigabyte (GB) or more of RAM.&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;&lt;a href='http://www.microsoft.com/downloads/details.aspx?familyid=9D20F96A-A8D6-4627-89F7-787CD9B3852C&amp;amp;amp;amp;displaylang=en' target='_blank'&gt;Hotfix for KB909095&lt;br/&gt;&lt;/a&gt;&lt;br/&gt;&lt;b&gt;Update 9:41PM:  Hotfix worked great.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-8824974373570915043?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/8824974373570915043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=8824974373570915043' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8824974373570915043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8824974373570915043'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/08/cannot-hibernate-windows-xp-machine.php' title='Cannot hibernate Windows XP machine &amp;quot;Insuffienct Resources Exist to Complete the API&amp;quot;'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-5672635418720997703</id><published>2008-08-26T21:03:00.001-04:00</published><updated>2008-08-26T21:04:51.169-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>Lotus revived? On Linux? To compete with Microsoft?</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://arstechnica.com/journals/linux.ars/2008/08/05/ibm-targets-microsoft-with-desktop-linux-initiative'&gt;IBM targets Microsoft with desktop Linux initiative&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;This really made me do a double-take:&lt;br/&gt;&lt;blockquote&gt;IBM announced a new partnership with Red Hat, Novell, and Canonical to offer "Microsoft-free" personal computers with IBM's Lotus Notes and Lotus Symphony software.&lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;Lotus...  as in Lotus 1-2-3 vs. Quattro Pro...  partnering with Canonical...  as in Ubuntu Canonical.  The mind reels.  Over and over and over...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-5672635418720997703?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/5672635418720997703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=5672635418720997703' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5672635418720997703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5672635418720997703'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/08/lotus-revived-on-linux-to-compete-with.php' title='Lotus revived? On Linux? To compete with Microsoft?'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-9112401640429008840</id><published>2008-08-26T20:47:00.001-04:00</published><updated>2008-08-26T20:47:49.665-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><title type='text'>Massive local mashup of news, events, flickr, Craigslist, Twitter, etc...</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Alas, my town (Louisville, KY) isn't one of the city choice at the moment, but this could be the next evolution of web 2.0, social networking, mashups, &lt;i&gt;however many buzzwords you can rattle off&lt;/i&gt;.&lt;br/&gt;&lt;br/&gt;&lt;a href='http://fwix.com/'&gt;Fwix | Local&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;This is definitely something that I want to keep an eye on.  There's serious potential here.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-9112401640429008840?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/9112401640429008840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=9112401640429008840' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/9112401640429008840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/9112401640429008840'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/08/massive-local-mashup-of-news-events.php' title='Massive local mashup of news, events, flickr, Craigslist, Twitter, etc...'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-332028807893028686</id><published>2008-08-26T08:27:00.000-04:00</published><updated>2008-08-26T08:27:00.793-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><title type='text'>ScribeFire</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I'm testing out &lt;a href='http://www.scribefire.com/'&gt;ScribeFire&lt;/a&gt;, after finding out that the blogger bar for Firefox does not work in Linux.  So far, this has been a pretty exciting experience.  The setup wizard works great with Blogger...  all you need is your blog URL and Blogger login to set up.&lt;br/&gt;&lt;br/&gt;Will I ever use the Blogger.com interface for posting again?&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-332028807893028686?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/332028807893028686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=332028807893028686' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/332028807893028686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/332028807893028686'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/08/scribefire.php' title='ScribeFire'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-5985282951364301279</id><published>2008-08-19T17:25:00.000-04:00</published><updated>2008-08-19T21:21:56.797-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='enterprise2.0'/><title type='text'>Some promising links on growing an internal wiki.</title><content type='html'>From the site, &lt;a href="http://www.ikiw.org"&gt;Grow Your Wiki.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ikiw.org/21days/"&gt;21 Days of Wiki Adoption&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ikiw.org/2008/01/21/top-10-organizational-wiki-tips-and-how-to-use-them/"&gt;Top 10 Organizational Wiki Tips (and how to use them)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Of particular note from my experience is the following article:&lt;br /&gt;&lt;a href="http://www.ikiw.org/2007/09/10/why-wikis-should-replace-email-for-collaboration/"&gt;Why &lt;br /&gt;wikis should replace email for collaboration&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;the bigger issue here is that organizations have to look at how email is being used, and what activities would be better served by other tools, like wikis and blogs. Email has become a crutch in business communications because it’s being stretched far beyond its intended use as a communications tool. Organizations are trying to use it to collaborate and it was never designed for this, so it makes a very poor collaboration tool.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;It always seems like formal documentation as a whole is abandoned in collaboration mode for a furious chain of e-mails.  I would prefer collaborative documentation to not be embedding in one of 10,000 e-mails archived somewhere.  In place of thread progression, how about version control in the wiki?&lt;br /&gt;&lt;br /&gt;Part 4 in a 4-part series:  &lt;a href="http://www.ikiw.org/2007/08/27/wiki-adoption-part-4-email-overload-killed-the-businessperson/"&gt;Email overload killed the businessperson&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-5985282951364301279?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/5985282951364301279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=5985282951364301279' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5985282951364301279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5985282951364301279'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/08/some-promising-links-on-growing.php' title='Some promising links on growing an internal wiki.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-2326700853579808796</id><published>2008-08-19T10:30:00.001-04:00</published><updated>2008-08-19T10:49:15.600-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><title type='text'>Password protecting a website</title><content type='html'>&lt;a href="http://www.cs.dal.ca/studentservices/faq/tutorials/web_sites/htaccess.shtml"&gt;Password protecting a website using .htaccess&lt;/a&gt; - this method pretty much requires shell access, but  most web hosts have a web control panel interface to do this work.  It should be noted that this isn't the most fool-proof method of protecting your data, and a configuration error can inadvertently open up your directory to the world.&lt;br /&gt;&lt;br /&gt;An example for ICDSoft:&lt;br /&gt;&lt;br /&gt;The option for this is called "Protect" on the Control Panel.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://developernotes.thomaspowell.com/uploaded_images/ProtectSelection-704690.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://developernotes.thomaspowell.com/uploaded_images/ProtectSelection-704685.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can browse to a directory through this interface, and click "Protect It!" next to a specific directory.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://developernotes.thomaspowell.com/uploaded_images/ProtectBrowsing-756262.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://developernotes.thomaspowell.com/uploaded_images/ProtectBrowsing-756223.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From this interface, you can add users for the directory:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://developernotes.thomaspowell.com/uploaded_images/ProtectAddUser-754812.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://developernotes.thomaspowell.com/uploaded_images/ProtectAddUser-754804.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-2326700853579808796?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/2326700853579808796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=2326700853579808796' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/2326700853579808796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/2326700853579808796'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/08/password-protecting-website.php' title='Password protecting a website'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-7377088784297103840</id><published>2008-08-18T22:16:00.001-04:00</published><updated>2008-08-18T22:18:20.481-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>symfony | Web PHP Framework</title><content type='html'>&lt;a href="http://www.symfony-project.org/"&gt;Symfony&lt;/a&gt; an Open-Source PHP Web Framework.  This would be a nice tool to use to set up a web site in.&lt;br /&gt;&lt;br /&gt;Maybe I can finally rebuild my accompanists.org website.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-7377088784297103840?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/7377088784297103840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=7377088784297103840' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7377088784297103840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7377088784297103840'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/08/symfony-web-php-framework.php' title='symfony | Web PHP Framework'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-4511855444184978227</id><published>2008-08-18T20:13:00.000-04:00</published><updated>2008-08-18T20:20:15.857-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>Ubiquity for Mozilla web browser</title><content type='html'>&lt;a href="https://wiki.mozilla.org/Labs/Ubiquity"&gt;Mozilla labs Ubiquity&lt;/a&gt; -- based on the Javascript programming language -- will allow users to type commands in an input box to launch a specific action, such as sending an e-mail.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.toolness.com/wp/?p=54"&gt;Ubiquitous Interfaces, Ubiquitous Functionality&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-4511855444184978227?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.technologyreview.com/Infotech/21215/?a=f' title='Ubiquity for Mozilla web browser'/><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/4511855444184978227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=4511855444184978227' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4511855444184978227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4511855444184978227'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/08/ubiquity-for-mozilla-web-browser.php' title='Ubiquity for Mozilla web browser'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-4066344245193018090</id><published>2008-08-18T20:04:00.000-04:00</published><updated>2008-08-18T20:09:04.638-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Dutch National Supercomputer Huygens Beats Human Go Professional</title><content type='html'>I never realized that Go was more complex than chess in terms of number of potential moves throughout the game.&lt;br /&gt;&lt;br /&gt;From the &lt;a href="http://en.wikipedia.org/wiki/Go_(board_game)"&gt;Wikipedia article on Go&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;The area of the board is very large (more than five times the size of a chess board). Throughout most of the game, the number of legal moves stays at around 150–250 per turn, and rarely goes below 50 (compare chess, where the average number of moves is 37).  Because an exhaustive computer program for Go must calculate and compare every possible legal move in each ply (player turn), its ability to work out favorable lines of play is sharply reduced when there are a large number of possible moves.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-4066344245193018090?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sara.nl/news/press/20080813/Go_computer_victory_eng.html' title='Dutch National Supercomputer Huygens Beats Human Go Professional'/><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/4066344245193018090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=4066344245193018090' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4066344245193018090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4066344245193018090'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/08/dutch-national-supercomputer-huygens.php' title='Dutch National Supercomputer Huygens Beats Human Go Professional'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-8777109086430248498</id><published>2008-08-15T08:49:00.000-04:00</published><updated>2008-08-15T09:01:00.161-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='utilities'/><title type='text'>Indispensable and portable free stuff</title><content type='html'>I was listening listening to one of the old &lt;a href="http://www.geekbrief.tv"&gt;Geek Brief&lt;/a&gt; podcasts, and was reminded of a website with portable versions of applications that are very useful when supporting computers that aren't your own, or running from several different PCs.&lt;br /&gt;&lt;br /&gt;Of particular note are the &lt;a href="http://portableapps.com/apps/development"&gt;Development apps&lt;/a&gt; available.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://portableapps.com/apps/development/notepadpp_portable"&gt;Notepad++&lt;/a&gt; is an excellent text editor based on the SciTE editor that comes with Ruby installations.  It's not quite my old standby gvim, but then again, it doesn't need much customization to do its thing either.&lt;br /&gt;&lt;br /&gt;Also included in the section is &lt;a href="http://portableapps.com/apps/development/xampp"&gt;XAMPP&lt;/a&gt;, which includes Apache, mySQL, PHP and Perl.  In addition, the FULL version package includes valuable extras like phpMyAdmin.  I haven't experimented with either the lite or full package, but I will be reloading a PC soon, so I'll see then how much more smoothly this package makes setup for me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-8777109086430248498?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/8777109086430248498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=8777109086430248498' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8777109086430248498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8777109086430248498'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/08/indispensable-and-portable-free-stuff.php' title='Indispensable and portable free stuff'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-7088307963222929665</id><published>2008-08-01T08:52:00.000-04:00</published><updated>2008-08-01T09:00:36.644-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='client software'/><title type='text'>SmartFTP is no longer free</title><content type='html'>Considering my web hosts do not provide shell access, a solid FTP client was invaluable for me in making updates and changing websites, since windows "web-based" ftp client is less useful than their console client for me (web-based does not work consistently with directories above user home).&lt;br /&gt;&lt;br /&gt;I thought I had found a solid FTP client in SmartFTP.  &lt;a href="http://kjctech.net/blog/archive/2008/07/14/smartftp-is-no-longer-free.aspx"&gt;Kent J. Chen's weblog burst my bubble&lt;/a&gt;.  However, he did offer up an alternative product, &lt;a href="http://filezilla-project.org/"&gt;FileZilla&lt;/a&gt;.  Downloading it now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-7088307963222929665?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://kjctech.net/blog/archive/2008/07/14/smartftp-is-no-longer-free.aspx' title='SmartFTP is no longer free'/><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/7088307963222929665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=7088307963222929665' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7088307963222929665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7088307963222929665'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/08/smartftp-is-no-longer-free.php' title='SmartFTP is no longer free'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-420271948370204988</id><published>2008-08-01T08:34:00.000-04:00</published><updated>2008-08-01T08:38:51.994-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><title type='text'>Unable to hibernate in vista?</title><content type='html'>I don't have Vista yet, but I've heard complaints of Hibernate not existing/working in Vista.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jamesnt.wordpress.com/2008/01/11/hibernate-not-available-in-vista-or-stopped-working/"&gt;Hibernate not available in Vista or stopped working&lt;/a&gt; - from the article:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;... The disk cleanup utility wiped out the file Vista uses to store a duplicate of the contents of memory when hibernating.  Apparently, if that file is not present, the power features of Windows assumes hibernation is not available.  Fortunately, the remedy is simple.  On Windows Vista, go to Start | All Programs | Accessories and right click on the Command Prompt icon.  From the menu, choose Run As Administrator.  Then, click OK on the UAC prompt so the command prompt will appear with full Admin rights.  Keep in mind that we assume you are logged in with an account with limited admin rights to begin with, you just need to be elevated once UAC verifies what’s going on.  If you are logged in as a regular user, log out and back in as a user that is a member of the Administrator’s Group or use the built-in Administrator account.  Next, use the powercfg command to re-enable hibernation by typing the following command:&lt;br /&gt;&lt;br /&gt;powercfg /hibernate on&lt;br /&gt;&lt;br /&gt;Go back to the power settings in Vista and you’ll notice that hibernate is now an option (if it still isn’t, try a quick reboot).&lt;br /&gt;&lt;br /&gt;This time, when I closed the lid of my laptop, it hibernated.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-420271948370204988?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://jamesnt.wordpress.com/2008/01/11/hibernate-not-available-in-vista-or-stopped-working/' title='Unable to hibernate in vista?'/><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/420271948370204988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=420271948370204988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/420271948370204988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/420271948370204988'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/08/unable-to-hibernate-in-vista.php' title='Unable to hibernate in vista?'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-3412113367825012214</id><published>2008-07-28T14:38:00.000-04:00</published><updated>2008-07-28T14:40:48.667-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><title type='text'>Have I appropriately professed my love for Ruby yet?</title><content type='html'>I used to play around with Ruby a lot.  Here's another script, where I was downloading fedora ISOs and giving myself feedback as to the progress of the operation (yes, I was in cygwin also).&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#c12869"&gt;#!/usr/bin/ruby&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ccccff"&gt;require&lt;/font&gt;&lt;/span&gt; &lt;font color="#ffa500"&gt;'&lt;/font&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#c34a2c"&gt;net/ftp&lt;/font&gt;&lt;/span&gt;&lt;font color="#ffa500"&gt;'&lt;/font&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ccccff"&gt;require&lt;/font&gt;&lt;/span&gt; &lt;font color="#ffa500"&gt;'&lt;/font&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#c34a2c"&gt;fileutils&lt;/font&gt;&lt;/span&gt;&lt;font color="#ffa500"&gt;'&lt;/font&gt;&lt;br /&gt;ftp=&lt;span style="background-color: #000000"&gt;&lt;font color="#009acd"&gt;Net&lt;/font&gt;&lt;/span&gt;::&lt;span style="background-color: #000000"&gt;&lt;font color="#009acd"&gt;FTP&lt;/font&gt;&lt;/span&gt;.new(&lt;font color="#ffa500"&gt;&amp;quot;&lt;/font&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#c34a2c"&gt;ftp.linux.ncsu.edu&lt;/font&gt;&lt;/span&gt;&lt;font color="#ffa500"&gt;&amp;quot;&lt;/font&gt;)&lt;br /&gt;ftp.login(&lt;font color="#ffa500"&gt;&amp;quot;&lt;/font&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#c34a2c"&gt;anonymous&lt;/font&gt;&lt;/span&gt;&lt;font color="#ffa500"&gt;&amp;quot;&lt;/font&gt;, &lt;font color="#ffa500"&gt;&amp;quot;&lt;/font&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#c34a2c"&gt;me@email.com&lt;/font&gt;&lt;/span&gt;&lt;font color="#ffa500"&gt;&amp;quot;&lt;/font&gt;)&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#009acd"&gt;FileUtils&lt;/font&gt;&lt;/span&gt;.chdir(&lt;font color="#ffa500"&gt;&amp;quot;&lt;/font&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#c34a2c"&gt;/cygdrive/c/downloads/fedora&lt;/font&gt;&lt;/span&gt;&lt;font color="#ffa500"&gt;&amp;quot;&lt;/font&gt;)&lt;br /&gt;files=ftp.chdir(&lt;font color="#ffa500"&gt;&amp;quot;&lt;/font&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#c34a2c"&gt;pub/fedora/linux/core/3/i386/iso&lt;/font&gt;&lt;/span&gt;&lt;font color="#ffa500"&gt;&amp;quot;&lt;/font&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#c12869"&gt;def &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#009acd"&gt;mecallback&lt;/font&gt;&lt;/span&gt;()&lt;br /&gt;    print &lt;font color="#ffa500"&gt;'&lt;/font&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#c34a2c"&gt;filename: &lt;/font&gt;&lt;/span&gt;&lt;font color="#ffa500"&gt;'&lt;/font&gt;, (&lt;span style="background-color: #000000"&gt;&lt;font color="#009acd"&gt;File&lt;/font&gt;&lt;/span&gt;.size(&lt;span style="background-color: #000000"&gt;&lt;font color="#009acd"&gt;$fileName&lt;/font&gt;&lt;/span&gt;) * &lt;span style="background-color: #000000"&gt;&lt;font color="#c34a2c"&gt;100.0&lt;/font&gt;&lt;/span&gt; / &lt;span style="background-color: #000000"&gt;&lt;font color="#009acd"&gt;$fileSize&lt;/font&gt;&lt;/span&gt;), &lt;font color="#ffa500"&gt;&amp;quot;&lt;/font&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#c34a2c"&gt;%&lt;/font&gt;&lt;/span&gt;&lt;font color="#ffa500"&gt;\n&lt;/font&gt;&lt;font color="#ffa500"&gt;&amp;quot;&lt;/font&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#c12869"&gt;end&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#009acd"&gt;$fileName&lt;/font&gt;&lt;/span&gt;=&lt;font color="#ffa500"&gt;&amp;quot;&lt;/font&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#c34a2c"&gt;FC3-i386-disc3.iso&lt;/font&gt;&lt;/span&gt;&lt;font color="#ffa500"&gt;&amp;quot;&lt;/font&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#009acd"&gt;$fileSize&lt;/font&gt;&lt;/span&gt;=ftp.size(&lt;span style="background-color: #000000"&gt;&lt;font color="#009acd"&gt;$fileName&lt;/font&gt;&lt;/span&gt;)&lt;br /&gt;print &lt;font color="#ffa500"&gt;'&lt;/font&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#c34a2c"&gt;filename: &lt;/font&gt;&lt;/span&gt;&lt;font color="#ffa500"&gt;'&lt;/font&gt;, &lt;span style="background-color: #000000"&gt;&lt;font color="#009acd"&gt;$fileName&lt;/font&gt;&lt;/span&gt;, &lt;font color="#ffa500"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ffa500"&gt;\n&lt;/font&gt;&lt;font color="#ffa500"&gt;&amp;quot;&lt;/font&gt;&lt;br /&gt;ftp.getbinaryfile(&lt;span style="background-color: #000000"&gt;&lt;font color="#009acd"&gt;$fileName&lt;/font&gt;&lt;/span&gt;, &lt;span style="background-color: #000000"&gt;&lt;font color="#009acd"&gt;$fileName&lt;/font&gt;&lt;/span&gt;, &lt;span style="background-color: #000000"&gt;&lt;font color="#c34a2c"&gt;2&lt;/font&gt;&lt;/span&gt;**&lt;span style="background-color: #000000"&gt;&lt;font color="#c34a2c"&gt;20&lt;/font&gt;&lt;/span&gt;) {&lt;br /&gt;    print &lt;font color="#ffa500"&gt;'&lt;/font&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#c34a2c"&gt;filename: &lt;/font&gt;&lt;/span&gt;&lt;font color="#ffa500"&gt;'&lt;/font&gt;, (&lt;span style="background-color: #000000"&gt;&lt;font color="#009acd"&gt;File&lt;/font&gt;&lt;/span&gt;.size(&lt;span style="background-color: #000000"&gt;&lt;font color="#009acd"&gt;$fileName&lt;/font&gt;&lt;/span&gt;) * &lt;span style="background-color: #000000"&gt;&lt;font color="#c34a2c"&gt;100.0&lt;/font&gt;&lt;/span&gt; / &lt;span style="background-color: #000000"&gt;&lt;font color="#009acd"&gt;$fileSize&lt;/font&gt;&lt;/span&gt;), &lt;font color="#ffa500"&gt;&amp;quot;&lt;/font&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#c34a2c"&gt;%&lt;/font&gt;&lt;/span&gt;&lt;font color="#ffa500"&gt;\n&lt;/font&gt;&lt;font color="#ffa500"&gt;&amp;quot;&lt;/font&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;ftp.close&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-3412113367825012214?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/3412113367825012214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=3412113367825012214' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/3412113367825012214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/3412113367825012214'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/07/have-i-appropriately-professed-my-love.php' title='Have I appropriately professed my love for Ruby yet?'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-3948521188539783320</id><published>2008-07-28T14:16:00.000-04:00</published><updated>2008-07-28T14:17:15.141-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><title type='text'>Ruby is so elegant</title><content type='html'>This is a script to log in to a server via Telnet and run a single script remotely.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#bf3eff"&gt;require&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#00eeee"&gt;'&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#87ceeb"&gt;net/telnet.rb&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#00eeee"&gt;'&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;myserver.com = &lt;span style="background-color: #000000"&gt;&lt;font color="#63b8ff"&gt;Net&lt;/font&gt;&lt;/span&gt;::&lt;span style="background-color: #000000"&gt;&lt;font color="#63b8ff"&gt;Telnet&lt;/font&gt;&lt;/span&gt;::new(&lt;span style="background-color: #000000"&gt;&lt;font color="#00eeee"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#87ceeb"&gt;Host&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#00eeee"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt; =&amp;gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#00eeee"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#87ceeb"&gt;myserver.com&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#00eeee"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;,&lt;br /&gt;  &lt;span style="background-color: #000000"&gt;&lt;font color="#00eeee"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#87ceeb"&gt;Timeout&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#00eeee"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt; =&amp;gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#87ceeb"&gt;30&lt;/font&gt;&lt;/span&gt;,&lt;br /&gt;  &lt;span style="background-color: #000000"&gt;&lt;font color="#00eeee"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#87ceeb"&gt;Prompt&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#00eeee"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt; =&amp;gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#00eeee"&gt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#87ceeb"&gt;[$%#] \z&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#00eeee"&gt;/&lt;/font&gt;&lt;/span&gt;n)&lt;br /&gt;&lt;br /&gt;myserver.com.login(&lt;span style="background-color: #000000"&gt;&lt;font color="#00eeee"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#87ceeb"&gt;username&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#00eeee"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;, &lt;span style="background-color: #000000"&gt;&lt;font color="#00eeee"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#87ceeb"&gt;password&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#00eeee"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;) { |&lt;span style="background-color: #000000"&gt;&lt;font color="#63b8ff"&gt;c&lt;/font&gt;&lt;/span&gt;| print c }&lt;br /&gt;myserver.com.close&lt;br /&gt;myserver.com.cmd(&lt;span style="background-color: #000000"&gt;&lt;font color="#00eeee"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#87ceeb"&gt;./check_missing.sh&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#00eeee"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;) { |&lt;span style="background-color: #000000"&gt;&lt;font color="#63b8ff"&gt;c&lt;/font&gt;&lt;/span&gt;| print c }&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-3948521188539783320?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/3948521188539783320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=3948521188539783320' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/3948521188539783320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/3948521188539783320'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/07/ruby-is-so-elegant.php' title='Ruby is so elegant'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-2109713065317163418</id><published>2008-07-27T15:56:00.000-04:00</published><updated>2008-07-27T15:59:06.776-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='regex'/><title type='text'>Regular expressions reference</title><content type='html'>&lt;a href="http://regexlib.com/DisplayPatterns.aspx?cattabindex=1&amp;categoryId=2"&gt;URI Regular expressions&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://regexlib.com/DisplayPatterns.aspx?cattabindex=0&amp;categoryId=1"&gt;E-mail regular expressions&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-2109713065317163418?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://regexlib.com/DisplayPatterns.aspx?categoryId=7&amp;cattabindex=2' title='Regular expressions reference'/><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/2109713065317163418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=2109713065317163418' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/2109713065317163418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/2109713065317163418'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/07/regular-expressions-reference.php' title='Regular expressions reference'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-8008685285316428780</id><published>2008-07-26T21:51:00.000-04:00</published><updated>2008-07-26T21:53:40.890-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><title type='text'>.htaccess redirect guide</title><content type='html'>My favorite tip:  &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Changed file extension?&lt;br /&gt;&lt;br /&gt;This example is perfect if you've decided to switch to .php from .html pages. It will look for any .html page and redirect it to .php (ie http://www.example.com/yourpage.html and redirect it to http://www.example.com/yourpage.php). Now, be careful with this, it does mean any html page. I did this on one of my sites and had totally forgotten I had an iframe with .html content on some pages... I didn't notice for weeks that it was broken :S.&lt;br /&gt;So learn from my mistake ;-) check, double check, then check again.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;RedirectMatch 301 (.*)\.html$ http://www.example.com$1.php&lt;/pre&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-8008685285316428780?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.webweaver.nu/html-tips/web-redirection.shtml' title='.htaccess redirect guide'/><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/8008685285316428780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=8008685285316428780' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8008685285316428780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8008685285316428780'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/07/htaccess-redirect-guide.php' title='.htaccess redirect guide'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-4321163055163405121</id><published>2008-07-22T14:13:00.000-04:00</published><updated>2008-08-05T14:03:33.938-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Rip page to new window in firefox</title><content type='html'>On the bookmark toolbar, right-click and select "New Bookmark..."&lt;br /&gt;&lt;br /&gt;Under name, give your bookmark a fitting title, like, "Rip page."&lt;br /&gt;Under location, enter the following code:&lt;br /&gt;&lt;pre&gt;javascript:var x=window.open(document.URL, '_blank','width=800,height=600')&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Or...  just drag the following link to your bookmark toolbar.&lt;br /&gt;&lt;a href="javascript:var x=window.open(document.URL, '_blank','width=800,height=600')"&gt;Rip page.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Update on August 5, 2008:&lt;/span&gt;&lt;br /&gt;I found the following works well for ripping a Google Docs page to a new window (former window closes as well.)&lt;br /&gt;&lt;pre&gt;javascript:var%20x=window.open(document.URL,%20'_blank','width=800,height=600&lt;br /&gt;,status=1,toolbar=1,location=1');window.close();&lt;/pre&gt;&lt;br /&gt;&lt;a href="javascript:var%20x=window.open(document.URL,%20'_blank','width=800,height=600,status=1,toolbar=1,location=1');window.close();"&gt;Rip page.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-4321163055163405121?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/4321163055163405121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=4321163055163405121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4321163055163405121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4321163055163405121'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/07/rip-page-to-new-window-in-firefox.php' title='Rip page to new window in firefox'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-5888907918044725077</id><published>2008-07-20T17:34:00.000-04:00</published><updated>2008-07-20T17:36:06.168-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><title type='text'>Optimized prime number generator</title><content type='html'>Same specs as previous system, 8 hours to find all primes to ULONG_MAX.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;#include &lt;/font&gt;&lt;font color="#00bb00"&gt;&amp;lt;stdio.h&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;#include &lt;/font&gt;&lt;font color="#00bb00"&gt;&amp;lt;malloc.h&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;#include &lt;/font&gt;&lt;font color="#00bb00"&gt;&amp;lt;limits.h&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;#include &lt;/font&gt;&lt;font color="#00bb00"&gt;&amp;lt;math.h&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;struct&lt;/font&gt; linked_list&lt;br /&gt;{&lt;br /&gt;    &lt;font color="#ffffff"&gt;unsigned&lt;/font&gt; &lt;font color="#ffffff"&gt;long&lt;/font&gt; number;&lt;br /&gt;    &lt;font color="#ffffff"&gt;struct&lt;/font&gt; linked_list *next;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;int&lt;/font&gt; main(&lt;font color="#ffffff"&gt;int&lt;/font&gt; argc, &lt;font color="#ffffff"&gt;char&lt;/font&gt; **argv)&lt;br /&gt;{&lt;br /&gt;    &lt;font color="#ffffff"&gt;unsigned&lt;/font&gt; &lt;font color="#ffffff"&gt;long&lt;/font&gt; divisor, max_divisor, prime_test;&lt;br /&gt;    &lt;font color="#ffffff"&gt;unsigned&lt;/font&gt; &lt;font color="#ffffff"&gt;long&lt;/font&gt; max_prime_to_store;&lt;br /&gt;    &lt;font color="#ffffff"&gt;struct&lt;/font&gt; linked_list *first=&lt;font color="#00ff00"&gt;NULL&lt;/font&gt;, *current=&lt;font color="#00ff00"&gt;NULL&lt;/font&gt;, *last=&lt;font color="#00ff00"&gt;NULL&lt;/font&gt;;&lt;br /&gt;&lt;br /&gt;    first=(&lt;font color="#ffffff"&gt;struct&lt;/font&gt; linked_list *)malloc(&lt;font color="#696969"&gt;sizeof&lt;/font&gt;(&lt;font color="#ffffff"&gt;struct&lt;/font&gt; linked_list));&lt;br /&gt;    first-&amp;gt;number = &lt;font color="#00ff00"&gt;2L&lt;/font&gt;;&lt;br /&gt;    first-&amp;gt;next = &lt;font color="#00ff00"&gt;NULL&lt;/font&gt;;&lt;br /&gt;    last = first;&lt;br /&gt;    printf(&lt;font color="#00bb00"&gt;&amp;quot;&lt;/font&gt;%lu&lt;span style="background-color: #000000"&gt;&lt;font color="#ffffff"&gt;\n&lt;/font&gt;&lt;/span&gt;&lt;font color="#00bb00"&gt;&amp;quot;&lt;/font&gt;, &lt;font color="#00ff00"&gt;2L&lt;/font&gt;);&lt;br /&gt;&lt;br /&gt;    max_prime_to_store = &lt;font color="#00ff00"&gt;1L&lt;/font&gt; + sqrt(&lt;font color="#00ff00"&gt;ULONG_MAX&lt;/font&gt;);&lt;br /&gt;&lt;br /&gt;    &lt;font color="#00ff00"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt;(prime_test = &lt;font color="#00ff00"&gt;3L&lt;/font&gt;; prime_test &amp;lt; &lt;font color="#00ff00"&gt;ULONG_MAX&lt;/font&gt;; prime_test+=&lt;font color="#00ff00"&gt;2L&lt;/font&gt;)&lt;br /&gt;    {&lt;br /&gt;        max_divisor=&lt;font color="#00ff00"&gt;1L&lt;/font&gt;+sqrt(prime_test);&lt;br /&gt;        &lt;font color="#00ff00"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt;(current = first; current &amp;amp;&amp;amp; current-&amp;gt;number &amp;lt;= max_divisor; current = current-&amp;gt;next)&lt;br /&gt;        {&lt;br /&gt;            &lt;font color="#00ff00"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt;(prime_test % current-&amp;gt;number == &lt;font color="#00ff00"&gt;0&lt;/font&gt;)&lt;br /&gt;            {&lt;br /&gt;                &lt;font color="#00ff00"&gt;&lt;b&gt;break&lt;/b&gt;&lt;/font&gt;;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;font color="#00ff00"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt;(!current || current-&amp;gt;number &amp;gt; max_divisor)&lt;br /&gt;        {&lt;br /&gt;            &lt;font color="#00ff00"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt;(prime_test &amp;lt;= max_prime_to_store)&lt;br /&gt;            {&lt;br /&gt;                last-&amp;gt;next = (&lt;font color="#ffffff"&gt;struct&lt;/font&gt; linked_list *)malloc(&lt;font color="#696969"&gt;sizeof&lt;/font&gt;(&lt;font color="#ffffff"&gt;struct&lt;/font&gt; linked_list));&lt;br /&gt;                last = last-&amp;gt;next;&lt;br /&gt;                last-&amp;gt;next = &lt;font color="#00ff00"&gt;NULL&lt;/font&gt;;&lt;br /&gt;                last-&amp;gt;number = prime_test;&lt;br /&gt;            }&lt;br /&gt;            printf(&lt;font color="#00bb00"&gt;&amp;quot;&lt;/font&gt;%lu&lt;span style="background-color: #000000"&gt;&lt;font color="#ffffff"&gt;\n&lt;/font&gt;&lt;/span&gt;&lt;font color="#00bb00"&gt;&amp;quot;&lt;/font&gt;, prime_test);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;font color="#00ff00"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/font&gt; &lt;font color="#00ff00"&gt;0&lt;/font&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-5888907918044725077?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/5888907918044725077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=5888907918044725077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5888907918044725077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5888907918044725077'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/07/optimized-prime-number-generator.php' title='Optimized prime number generator'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-1422042693264833082</id><published>2008-07-18T09:23:00.000-04:00</published><updated>2008-07-20T17:36:41.312-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c'/><category scheme='http://www.blogger.com/atom/ns#' term='nostalgia'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><title type='text'>I miss C programming.  Program to find prime numbers</title><content type='html'>Uses unsigned long long, goes up to ULONG_LONG_MAX.&lt;br /&gt;&lt;br /&gt;Intel Core Duo 2 processor, running Cygwin on Windows XP, and compiled using gcc 3.4.4.  Stops at first million results due to time.  Can reasonably get to 10 million, if you're willing to wait.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;font color="#aaffff"&gt;#include &lt;/font&gt;&lt;font color="#66ff00"&gt;&amp;lt;stdio.h&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#aaffff"&gt;#include &lt;/font&gt;&lt;font color="#66ff00"&gt;&amp;lt;math.h&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#aaffff"&gt;#include &lt;/font&gt;&lt;font color="#66ff00"&gt;&amp;lt;limits.h&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#aaaa77"&gt;int&lt;/font&gt; main(&lt;font color="#aaaa77"&gt;int&lt;/font&gt; argc, &lt;font color="#aaaa77"&gt;char&lt;/font&gt; **argv)&lt;br /&gt;{&lt;br /&gt;    &lt;font color="#aaaa77"&gt;unsigned&lt;/font&gt; &lt;font color="#aaaa77"&gt;long&lt;/font&gt; &lt;font color="#aaaa77"&gt;long&lt;/font&gt; divisor, max_divisor, prime_test;&lt;br /&gt;    &lt;font color="#aaaa77"&gt;int&lt;/font&gt; break_time = &lt;font color="#339999"&gt;0&lt;/font&gt;;&lt;br /&gt;&lt;br /&gt;    printf(&lt;font color="#66ff00"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#33aa00"&gt;%llu&lt;/font&gt;&lt;font color="#33aa00"&gt;\n&lt;/font&gt;&lt;font color="#66ff00"&gt;&amp;quot;&lt;/font&gt;, &lt;font color="#339999"&gt;2LL&lt;/font&gt;);&lt;br /&gt;    &lt;font color="#ff6600"&gt;for&lt;/font&gt;(prime_test = &lt;font color="#339999"&gt;3LL&lt;/font&gt;; prime_test &amp;lt; ULONG_LONG_MAX; prime_test+=&lt;font color="#339999"&gt;2LL&lt;/font&gt;)&lt;br /&gt;    {&lt;br /&gt;        max_divisor=&lt;font color="#339999"&gt;1LL&lt;/font&gt;+sqrt(prime_test);&lt;br /&gt;        &lt;font color="#ff6600"&gt;for&lt;/font&gt;(divisor=&lt;font color="#339999"&gt;3LL&lt;/font&gt;;divisor &amp;lt;= max_divisor; divisor+=&lt;font color="#339999"&gt;2LL&lt;/font&gt;)&lt;br /&gt;        {&lt;br /&gt;            &lt;font color="#ff6600"&gt;if&lt;/font&gt;(prime_test % divisor == &lt;font color="#339999"&gt;0&lt;/font&gt;)&lt;br /&gt;            {&lt;br /&gt;                &lt;font color="#ff6600"&gt;break&lt;/font&gt;;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;font color="#ff6600"&gt;if&lt;/font&gt;(divisor &amp;gt;= max_divisor)&lt;br /&gt;        {&lt;br /&gt;            printf(&lt;font color="#66ff00"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#33aa00"&gt;%llu&lt;/font&gt;&lt;font color="#33aa00"&gt;\n&lt;/font&gt;&lt;font color="#66ff00"&gt;&amp;quot;&lt;/font&gt;, prime_test);&lt;br /&gt;        }&lt;br /&gt;        &lt;font color="#ff6600"&gt;else&lt;/font&gt;&lt;br /&gt;        {&lt;br /&gt;            &lt;font color="#ff6600"&gt;continue&lt;/font&gt;;&lt;br /&gt;        }&lt;br /&gt;        break_time++;&lt;br /&gt;        &lt;font color="#ff6600"&gt;if&lt;/font&gt;(break_time == &lt;font color="#339999"&gt;999999&lt;/font&gt;)&lt;br /&gt;        {&lt;br /&gt;            &lt;font color="#ff6600"&gt;break&lt;/font&gt;;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;font color="#ff6600"&gt;return&lt;/font&gt; &lt;font color="#339999"&gt;0&lt;/font&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-1422042693264833082?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/1422042693264833082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=1422042693264833082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/1422042693264833082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/1422042693264833082'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/07/i-miss-c-programming-program-to-find.php' title='I miss C programming.  Program to find prime numbers'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-6230181148217781445</id><published>2008-07-10T10:56:00.000-04:00</published><updated>2008-07-10T12:14:46.079-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VBScript'/><title type='text'>VBScript to push files into an array based on a wildcard</title><content type='html'>&lt;pre&gt;&lt;br /&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;Option&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffff60"&gt;&lt;b&gt;Explicit&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;Dim&lt;/b&gt;&lt;/font&gt; gFSO&lt;br /&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;Dim&lt;/b&gt;&lt;/font&gt; dirListing&lt;br /&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;Dim&lt;/b&gt;&lt;/font&gt; fileName&lt;br /&gt;&lt;br /&gt;&lt;font color="#ff80ff"&gt;set&lt;/font&gt; gFSO &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; &lt;font color="#40ffff"&gt;CreateObject&lt;/font&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;&lt;font color="#ffa0a0"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/font&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;dirListing &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; ListDir&lt;font color="#ffff60"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;&lt;font color="#ffa0a0"&gt;&amp;quot;c:\??*d*&amp;quot;&lt;/font&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;If&lt;/b&gt;&lt;/font&gt; &lt;font color="#40ffff"&gt;UBound&lt;/font&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;dirListing&lt;font color="#ffff60"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffff60"&gt;&lt;b&gt;-&lt;/b&gt;&lt;/font&gt;&lt;font color="#ffa0a0"&gt;1&lt;/font&gt; &lt;font color="#ffff60"&gt;&lt;b&gt;then&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;    Wscript&lt;font color="#ffff60"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/font&gt;Echo &lt;font color="#ffa0a0"&gt;&amp;quot;No files found.&amp;quot;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;Else&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;For&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffff60"&gt;&lt;b&gt;Each&lt;/b&gt;&lt;/font&gt; fileName &lt;font color="#ffff60"&gt;&lt;b&gt;in&lt;/b&gt;&lt;/font&gt; dirListing&lt;br /&gt;        WScript&lt;font color="#ffff60"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/font&gt;Echo FileName&lt;br /&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;Next&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;End&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffff60"&gt;&lt;b&gt;If&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#80a0ff"&gt;'==============================================================================&lt;/font&gt;&lt;br /&gt;&lt;font color="#80a0ff"&gt;' List a directory, with the last part of the directory being the path&lt;/font&gt;&lt;br /&gt;&lt;font color="#80a0ff"&gt;'==============================================================================&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;Function&lt;/b&gt;&lt;/font&gt; ListDir &lt;font color="#ffff60"&gt;&lt;b&gt;(ByVal&lt;/b&gt;&lt;/font&gt; Path&lt;font color="#ffff60"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;Dim&lt;/b&gt;&lt;/font&gt; fileRegex&lt;br /&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;Dim&lt;/b&gt;&lt;/font&gt; searchFolderName&lt;br /&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;Dim&lt;/b&gt;&lt;/font&gt; searchFolder&lt;br /&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;Dim&lt;/b&gt;&lt;/font&gt; searchFolderFiles&lt;br /&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;Dim&lt;/b&gt;&lt;/font&gt; fileName&lt;br /&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;Dim&lt;/b&gt;&lt;/font&gt; fileArray&lt;br /&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;Dim&lt;/b&gt;&lt;/font&gt; file&lt;br /&gt;&lt;br /&gt;    &lt;font color="#ff80ff"&gt;set&lt;/font&gt; fileRegex &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; New RegExp&lt;br /&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;If&lt;/b&gt;&lt;/font&gt; gFSO&lt;font color="#ffff60"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/font&gt;FolderExists&lt;font color="#ffff60"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;Path&lt;font color="#ffff60"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffff60"&gt;&lt;b&gt;Then&lt;/b&gt;&lt;/font&gt; &lt;font color="#80a0ff"&gt;' Path is a directory, list all files in path &lt;/font&gt;&lt;br /&gt;        searchFolder &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; Path&lt;br /&gt;        fileName &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffa0a0"&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;br /&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;Else&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;        searchFolderName &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; gFSO&lt;font color="#ffff60"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/font&gt;GetParentFolderName&lt;font color="#ffff60"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;Path&lt;font color="#ffff60"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;        fileName &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; gFSO&lt;font color="#ffff60"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/font&gt;GetFileName&lt;font color="#ffff60"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;Path&lt;font color="#ffff60"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;        fileRegex&lt;font color="#ffff60"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/font&gt;Global &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffa0a0"&gt;True&lt;/font&gt;&lt;br /&gt;        fileRegex&lt;font color="#ffff60"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/font&gt;Pattern &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffa0a0"&gt;&amp;quot;\.&amp;quot;&lt;/font&gt;&lt;br /&gt;        fileName &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; fileRegex&lt;font color="#ffff60"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/font&gt;Replace&lt;font color="#ffff60"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;fileName&lt;font color="#ffff60"&gt;&lt;b&gt;,&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffa0a0"&gt;&amp;quot;\.&amp;quot;&lt;/font&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;        fileRegex&lt;font color="#ffff60"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/font&gt;Pattern &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffa0a0"&gt;&amp;quot;\?&amp;quot;&lt;/font&gt;&lt;br /&gt;        fileName &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; fileRegex&lt;font color="#ffff60"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/font&gt;Replace&lt;font color="#ffff60"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;fileName&lt;font color="#ffff60"&gt;&lt;b&gt;,&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffa0a0"&gt;&amp;quot;.&amp;quot;&lt;/font&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;        fileRegex&lt;font color="#ffff60"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/font&gt;Pattern &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffa0a0"&gt;&amp;quot;\*&amp;quot;&lt;/font&gt;&lt;br /&gt;        fileName &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; fileRegex&lt;font color="#ffff60"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/font&gt;Replace&lt;font color="#ffff60"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;fileName&lt;font color="#ffff60"&gt;&lt;b&gt;,&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffa0a0"&gt;&amp;quot;.*&amp;quot;&lt;/font&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;End&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffff60"&gt;&lt;b&gt;If&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;With&lt;/b&gt;&lt;/font&gt; fileRegex&lt;br /&gt;        &lt;font color="#ffff60"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/font&gt;Pattern &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; fileName&lt;br /&gt;        &lt;font color="#ffff60"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/font&gt;IgnoreCase &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffa0a0"&gt;True&lt;/font&gt;&lt;br /&gt;        &lt;font color="#ffff60"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/font&gt;Global &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffa0a0"&gt;False&lt;/font&gt;&lt;br /&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;End&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffff60"&gt;&lt;b&gt;With&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;ReDim&lt;/b&gt;&lt;/font&gt; fileArray&lt;font color="#ffff60"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;&lt;font color="#ffa0a0"&gt;1&lt;/font&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;Dim&lt;/b&gt;&lt;/font&gt; fileCount : fileCount &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffa0a0"&gt;0&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;    &lt;font color="#ff80ff"&gt;Set&lt;/font&gt; searchFolder &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; gFSO&lt;font color="#ffff60"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/font&gt;GetFolder&lt;font color="#ffff60"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;searchFolderName&lt;font color="#ffff60"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;    &lt;font color="#ff80ff"&gt;Set&lt;/font&gt; searchFolderFiles &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; searchFolder&lt;font color="#ffff60"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/font&gt;&lt;font color="#ff80ff"&gt;Files&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;For&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffff60"&gt;&lt;b&gt;Each&lt;/b&gt;&lt;/font&gt; file &lt;font color="#ffff60"&gt;&lt;b&gt;in&lt;/b&gt;&lt;/font&gt; searchFolderFiles&lt;br /&gt;        &lt;font color="#ffff60"&gt;&lt;b&gt;If&lt;/b&gt;&lt;/font&gt; fileRegex&lt;font color="#ffff60"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/font&gt;Test&lt;font color="#ffff60"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;file&lt;font color="#ffff60"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/font&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;Name&lt;/b&gt;&lt;/font&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffff60"&gt;&lt;b&gt;Then&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;            &lt;font color="#ffff60"&gt;&lt;b&gt;If&lt;/b&gt;&lt;/font&gt; fileCount &lt;font color="#ffff60"&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt; &lt;font color="#40ffff"&gt;UBound&lt;/font&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;fileArray&lt;font color="#ffff60"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffff60"&gt;&lt;b&gt;Then&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;                &lt;font color="#ffff60"&gt;&lt;b&gt;ReDim&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffff60"&gt;&lt;b&gt;Preserve&lt;/b&gt;&lt;/font&gt; fileArray&lt;font color="#ffff60"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;fileCount&lt;font color="#ffff60"&gt;&lt;b&gt;*&lt;/b&gt;&lt;/font&gt;&lt;font color="#ffa0a0"&gt;2&lt;/font&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;            &lt;font color="#ffff60"&gt;&lt;b&gt;End&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffff60"&gt;&lt;b&gt;If&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;            fileArray&lt;font color="#ffff60"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;fileCount&lt;font color="#ffff60"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; file&lt;font color="#ffff60"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/font&gt;Path&lt;br /&gt;            fileCount &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; fileCount &lt;font color="#ffff60"&gt;&lt;b&gt;+&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffa0a0"&gt;1&lt;/font&gt;&lt;br /&gt;        &lt;font color="#ffff60"&gt;&lt;b&gt;End&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffff60"&gt;&lt;b&gt;If&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;Next&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;    &lt;font color="#ffff60"&gt;&lt;b&gt;ReDim&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffff60"&gt;&lt;b&gt;Preserve&lt;/b&gt;&lt;/font&gt; fileArray&lt;font color="#ffff60"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;fileCount &lt;font color="#ffff60"&gt;&lt;b&gt;-&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffa0a0"&gt;1&lt;/font&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;    ListDir &lt;font color="#ffff60"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; fileArray&lt;br /&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;End&lt;/b&gt;&lt;/font&gt; &lt;font color="#ffff60"&gt;&lt;b&gt;Function&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-6230181148217781445?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/6230181148217781445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=6230181148217781445' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6230181148217781445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6230181148217781445'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/07/vbscript-to-push-files-into-array-based.php' title='VBScript to push files into an array based on a wildcard'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-4890001359967018935</id><published>2008-07-08T06:51:00.000-04:00</published><updated>2008-07-08T06:55:36.751-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Tag Cloud for ftp blogger blogs</title><content type='html'>In the sidebar section for Blogger template, include:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;h2&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#60ff60"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;&amp;quot;sidebar-title&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;font color="#ff00ff"&gt;&lt;b&gt;Labels&lt;/b&gt;&lt;/font&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;h2&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;p&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;&amp;gt;&amp;lt;?php include($_SERVER[&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;'DOCUMENT_ROOT'&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;].&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;&amp;quot;/labels.php&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;); ?&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;p&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The following is a modified version of tag cloud source I found.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;&amp;lt;?php&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;define&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;'&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;PREFIX&lt;/font&gt;&lt;/span&gt;', '&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;labels/&lt;/font&gt;&lt;/span&gt;'&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)&lt;/font&gt;&lt;/span&gt;;  &lt;span style="background-color: #000000"&gt;&lt;font color="#80a0ff"&gt;// for url&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;define&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;'&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;SEARCH_DIR&lt;/font&gt;&lt;/span&gt;', '&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;/home/username/www/labels&lt;/font&gt;&lt;/span&gt;'&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)&lt;/font&gt;&lt;/span&gt;; &lt;span style="background-color: #000000"&gt;&lt;font color="#80a0ff"&gt;// server location of labels subdirectory&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;define&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;'&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;THIS_FILE&lt;/font&gt;&lt;/span&gt;', '&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;labels.php&lt;/font&gt;&lt;/span&gt;'&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)&lt;/font&gt;&lt;/span&gt;; &lt;span style="background-color: #000000"&gt;&lt;font color="#80a0ff"&gt;// name of labels file (this file)&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;file_exists&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;SEARCH_DIR&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;.&lt;/font&gt;&lt;/span&gt;'&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;_cloud_include_cache.php&lt;/font&gt;&lt;/span&gt;'&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;&amp;amp;&amp;amp;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;filemtime&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;SEARCH_DIR&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;.&lt;/font&gt;&lt;/span&gt;'&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;_cloud_include_cache.php&lt;/font&gt;&lt;/span&gt;'&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;time&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;()&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;-&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;60&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;*&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;60&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)))&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;echo&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;file_get_contents&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;SEARCH_DIR&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;.&lt;/font&gt;&lt;/span&gt;'&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;_cloud_include_cache.php&lt;/font&gt;&lt;/span&gt;'&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;else&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;    build_cloud&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;()&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#80a0ff"&gt;/**&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#80a0ff"&gt;* build_cloud builds a tag cloud from the labels files.&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#80a0ff"&gt;* It actually uses labels file size to determine font size... which does&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#80a0ff"&gt;* not necessarily coincide with number of posts for a given label.&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#80a0ff"&gt;* &lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#80a0ff"&gt;* smallest file is assigned 100% font-size.  largest file - 200%&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#80a0ff"&gt;* everything else is proportional in between.&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#80a0ff"&gt;*/&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ff80ff"&gt;function&lt;/font&gt;&lt;/span&gt; build_cloud&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;()&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;output&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;=&lt;/font&gt;&lt;/span&gt; '';&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;files&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#60ff60"&gt;&lt;b&gt;array&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;()&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;dir&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;opendir&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;SEARCH_DIR&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;low_end&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;=&lt;/font&gt;&lt;/span&gt;PHP_INT_MAX;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;high_end&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;0&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;while&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;file&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;readdir&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;dir&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;))&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;file&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;!=&lt;/font&gt;&lt;/span&gt; '&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;.&lt;/font&gt;&lt;/span&gt;' &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;&amp;amp;&amp;amp;&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;file&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;!=&lt;/font&gt;&lt;/span&gt; '&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;..&lt;/font&gt;&lt;/span&gt;' &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;&amp;amp;&amp;amp;&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;file&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;!=&lt;/font&gt;&lt;/span&gt; THIS_FILE &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;&amp;amp;&amp;amp;&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;file&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;!=&lt;/font&gt;&lt;/span&gt; CACHE_FILE&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;files&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;[&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;file&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;]&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;filesize&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;SEARCH_DIR&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;.&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;/&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;file&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;        &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;low_end&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;min&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;low_end&lt;/font&gt;&lt;/span&gt;, &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;files&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;[&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;file&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;])&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;        &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;high_end&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;max&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;high_end&lt;/font&gt;&lt;/span&gt;, &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;files&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;[&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;file&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;])&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;closedir&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;dir&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;ksort&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;files&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;foreach&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;files&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;as&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;size&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;output&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;.=&lt;/font&gt;&lt;/span&gt; &amp;quot;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;&amp;lt;a style=\&amp;quot;&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;.&lt;/font&gt;&lt;/span&gt; get_style&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;low_end&lt;/font&gt;&lt;/span&gt;, &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;high_end&lt;/font&gt;&lt;/span&gt;, &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;size&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;.&lt;/font&gt;&lt;/span&gt; &amp;quot;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;\&amp;quot;&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;        &amp;quot;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;href=\&amp;quot;&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;.&lt;/font&gt;&lt;/span&gt;PREFIX&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;htmlentities&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;.&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;\&amp;quot;&amp;gt;&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;htmlentities&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;str_replace&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;'&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;.php&lt;/font&gt;&lt;/span&gt;','',&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;))&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;.&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;&amp;lt;/a&amp;gt; &lt;/font&gt;&lt;/span&gt;&amp;quot;;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;echo&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;output&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;fp&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;fopen&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;SEARCH_DIR&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;.&lt;/font&gt;&lt;/span&gt;'&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;_cloud_include_cache.html&lt;/font&gt;&lt;/span&gt;','&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;w&lt;/font&gt;&lt;/span&gt;'&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;fwrite&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;fp&lt;/font&gt;&lt;/span&gt;, &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;output&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;fclose&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;fp&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ff80ff"&gt;function&lt;/font&gt;&lt;/span&gt; get_style&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;low_end&lt;/font&gt;&lt;/span&gt;, &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;high_end&lt;/font&gt;&lt;/span&gt;, &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;size&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;net&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;high_end&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;-&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;low_end&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;font_size&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;((&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;size&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;-&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;low_end&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;*&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;100&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;/&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;net&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;+&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;100&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;if&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;!&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;interval&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;)&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;interval&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;++&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;    &lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/font&gt;&lt;/span&gt; &amp;quot;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;font-size: &lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;$&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#40ffff"&gt;font_size&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffff60"&gt;.&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa0a0"&gt;%;&lt;/font&gt;&lt;/span&gt;&amp;quot;;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #000000"&gt;&lt;font color="#ffa500"&gt;?&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-4890001359967018935?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/4890001359967018935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=4890001359967018935' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4890001359967018935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4890001359967018935'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/07/tag-cloud-for-ftp-blogger-blogs.php' title='Tag Cloud for ftp blogger blogs'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-1615653995043593049</id><published>2008-06-18T09:30:00.001-04:00</published><updated>2008-06-18T09:30:43.133-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><title type='text'>Automatic list of labels for classic templates</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-1615653995043593049?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://phydeaux3.blogspot.com/2007/05/automatic-list-of-labels-for-classic.html' title='Automatic list of labels for classic templates'/><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/1615653995043593049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=1615653995043593049' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/1615653995043593049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/1615653995043593049'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/06/automatic-list-of-labels-for-classic.php' title='Automatic list of labels for classic templates'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-3538339618015144412</id><published>2008-06-17T09:32:00.000-04:00</published><updated>2008-06-17T09:33:48.335-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VBScript'/><title type='text'>VBScript to convert timestamp to YYYYMMDD formatted string</title><content type='html'>I started with &lt;a href="http://www.developersdex.com/gurus/code/452.asp"&gt;the code on this page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;Function&lt;/b&gt;&lt;/font&gt; FormatYYYYMMDD&lt;font color="#0000ff"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;timeStamp&lt;font color="#0000ff"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;    &lt;font color="#0000ff"&gt;&lt;b&gt;Dim&lt;/b&gt;&lt;/font&gt; dateMonth : dateMonth &lt;font color="#0000ff"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; &lt;font color="#008b8b"&gt;DatePart&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;&lt;font color="#00cd00"&gt;&amp;quot;M&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;,&lt;/b&gt;&lt;/font&gt; timeStamp&lt;font color="#0000ff"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;    &lt;font color="#0000ff"&gt;&lt;b&gt;Dim&lt;/b&gt;&lt;/font&gt; dateDay : dateDay &lt;font color="#0000ff"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; &lt;font color="#008b8b"&gt;DatePart&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;&lt;font color="#00cd00"&gt;&amp;quot;D&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;,&lt;/b&gt;&lt;/font&gt; timeStamp&lt;font color="#0000ff"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;    &lt;font color="#0000ff"&gt;&lt;b&gt;Dim&lt;/b&gt;&lt;/font&gt; dateYear : dateYear &lt;font color="#0000ff"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; &lt;font color="#008b8b"&gt;DatePart&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;&lt;font color="#00cd00"&gt;&amp;quot;YYYY&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;,&lt;/b&gt;&lt;/font&gt; timeStamp&lt;font color="#0000ff"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;    &lt;font color="#0000ff"&gt;&lt;b&gt;Dim&lt;/b&gt;&lt;/font&gt; dateString&lt;br /&gt;&lt;br /&gt;    dateString &lt;font color="#0000ff"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; dateYear&lt;br /&gt;&lt;br /&gt;    &lt;font color="#0000ff"&gt;&lt;b&gt;If&lt;/b&gt;&lt;/font&gt; dateMonth &lt;font color="#0000ff"&gt;&lt;b&gt;&amp;lt;&lt;/b&gt;&lt;/font&gt; &lt;font color="#00cd00"&gt;10&lt;/font&gt; &lt;font color="#0000ff"&gt;&lt;b&gt;Then&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;        dateString &lt;font color="#0000ff"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; dateString &lt;font color="#0000ff"&gt;&lt;b&gt;&amp;amp;&lt;/b&gt;&lt;/font&gt; &lt;font color="#00cd00"&gt;&amp;quot;0&amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;&lt;b&gt;&amp;amp;&lt;/b&gt;&lt;/font&gt; dateMonth&lt;br /&gt;    &lt;font color="#0000ff"&gt;&lt;b&gt;Else&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;        dateString &lt;font color="#0000ff"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; dateString &lt;font color="#0000ff"&gt;&lt;b&gt;&amp;amp;&lt;/b&gt;&lt;/font&gt; dateMonth&lt;br /&gt;    &lt;font color="#0000ff"&gt;&lt;b&gt;End&lt;/b&gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;&lt;b&gt;If&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;    &lt;font color="#0000ff"&gt;&lt;b&gt;If&lt;/b&gt;&lt;/font&gt; dateDay &lt;font color="#0000ff"&gt;&lt;b&gt;&amp;lt;&lt;/b&gt;&lt;/font&gt; &lt;font color="#00cd00"&gt;10&lt;/font&gt; &lt;font color="#0000ff"&gt;&lt;b&gt;Then&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;        dateString &lt;font color="#0000ff"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; dateString &lt;font color="#0000ff"&gt;&lt;b&gt;&amp;amp;&lt;/b&gt;&lt;/font&gt; &lt;font color="#00cd00"&gt;&amp;quot;0&amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;&lt;b&gt;&amp;amp;&lt;/b&gt;&lt;/font&gt; dateDay&lt;br /&gt;    &lt;font color="#0000ff"&gt;&lt;b&gt;Else&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;        dateString &lt;font color="#0000ff"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; dateString &lt;font color="#0000ff"&gt;&lt;b&gt;&amp;amp;&lt;/b&gt;&lt;/font&gt; dateDay&lt;br /&gt;    &lt;font color="#0000ff"&gt;&lt;b&gt;End&lt;/b&gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;&lt;b&gt;If&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;    FormatYYYYMMDD &lt;font color="#0000ff"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt; dateString&lt;br /&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;End&lt;/b&gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;&lt;b&gt;Function&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-3538339618015144412?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/3538339618015144412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=3538339618015144412' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/3538339618015144412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/3538339618015144412'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/06/vbscript-to-convert-timestamp-to.php' title='VBScript to convert timestamp to YYYYMMDD formatted string'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-5616992835160353563</id><published>2008-05-02T09:24:00.000-04:00</published><updated>2008-05-02T09:41:37.159-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='startup'/><category scheme='http://www.blogger.com/atom/ns#' term='registry'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Microsoft Windows startup Registry Settings</title><content type='html'>INFO: Run, RunOnce, RunServices, RunServicesOnce and Startup:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;I believe this is pretty much a bulk of the information set by &lt;a href="http://www.x-setup.net/purchase/index.php"&gt;Xteq X-Setup&lt;/a&gt;.  For those who don't want to make the purchase for a very simple edit, the following is the except from the &lt;a href="http://support.microsoft.com/kb/179365"&gt;Microsoft KB article&lt;/a&gt; &lt;/i&gt; &lt;br /&gt;&lt;br /&gt;General order of loading:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce&lt;br /&gt;&lt;li&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices&lt;br /&gt;&lt;li&gt;&amp;lt;Logon Prompt&amp;gt;&lt;br /&gt;&lt;li&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce &lt;span style="font-style:italic;"&gt;Not supported in NT 3.51 and ignored by XP and 2000 in safe mode&lt;/span&gt;&lt;br /&gt;&lt;li&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run&lt;br /&gt;&lt;li&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run&lt;br /&gt;&lt;li&gt;StartUp Folder&lt;br /&gt;&lt;li&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce  &lt;span style="font-style:italic;"&gt;Not supported in NT 3.51 and ignored by XP and 2000 in safe mode&lt;/span&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;However,&lt;br /&gt;&lt;blockquote&gt;With the exception of the HKEY_LOCAL_MACHINE\...\RunOnce key, all keys and their entries are loaded asynchronously. Therefore, all entries in the RunServices and RunServicesOnce keys can potentially run at the same time.&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;Entries in the HKEY_LOCAL_MACHINE\...\RunOnce key are loaded synchronously in an undefined order.&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;Because the HKEY_LOCAL_MACHINE\...\RunOnce key is loaded synchronously, all of its entries must finish loading before the HKEY_LOCAL_MACHINE\...\Run, HKEY_CURRENT_USER\...\Run, HKEY_CURRENT_USER\...\RunOnce, and Startup Folder entries can be loaded.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-5616992835160353563?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://support.microsoft.com/kb/179365' title='Microsoft Windows startup Registry Settings'/><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/5616992835160353563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=5616992835160353563' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5616992835160353563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5616992835160353563'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/05/microsoft-windows-startup-registry.php' title='Microsoft Windows startup Registry Settings'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-842863282681491415</id><published>2008-04-11T10:16:00.000-04:00</published><updated>2008-04-11T10:17:18.338-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wmic windows'/><title type='text'>WMIC service cheat sheet.</title><content type='html'>Microsoft's documentation is thorough, but I got a lot more out of the above link.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-842863282681491415?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.ss64.com/nt/wmic.html' title='WMIC service cheat sheet.'/><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/842863282681491415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=842863282681491415' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/842863282681491415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/842863282681491415'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/04/wmic-service-cheat-sheet.php' title='WMIC service cheat sheet.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-4572596064590452360</id><published>2008-04-10T16:43:00.001-04:00</published><updated>2008-04-10T16:53:13.719-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VBScript'/><title type='text'>Time since last boot (Windows, VBScript)</title><content type='html'>I don't remember where I found this, I was just happy to find code that did this.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt; strComputer &lt;font color="#ffa0ff"&gt;=&lt;/font&gt; &lt;font color="#90d0ff"&gt;&amp;quot;.&amp;quot;&lt;/font&gt; &lt;font color="#c0c0d0"&gt;' Local computer&lt;/font&gt; &lt;br /&gt;&lt;font color="#40f0a0"&gt;set&lt;/font&gt; objWMIDateTime &lt;font color="#ffa0ff"&gt;=&lt;/font&gt; &lt;font color="#40f0f0"&gt;CreateObject&lt;/font&gt;&lt;font color="#ffa0ff"&gt;(&lt;/font&gt;&lt;font color="#90d0ff"&gt;&amp;quot;WbemScripting.SWbemDateTime&amp;quot;&lt;/font&gt;&lt;font color="#ffa0ff"&gt;)&lt;/font&gt;&lt;br /&gt;&lt;font color="#40f0a0"&gt;set&lt;/font&gt; objWMI &lt;font color="#ffa0ff"&gt;=&lt;/font&gt; &lt;font color="#40f0f0"&gt;GetObject&lt;/font&gt;&lt;font color="#ffa0ff"&gt;(&lt;/font&gt;&lt;font color="#90d0ff"&gt;&amp;quot;winmgmts:\\&amp;quot;&lt;/font&gt; &lt;font color="#ffa0ff"&gt;&amp;amp;&lt;/font&gt; strComputer &lt;font color="#ffa0ff"&gt;&amp;amp;&lt;/font&gt; &lt;font color="#90d0ff"&gt;&amp;quot;\root\cimv2&amp;quot;&lt;/font&gt;&lt;font color="#ffa0ff"&gt;)&lt;/font&gt;&lt;br /&gt;&lt;font color="#40f0a0"&gt;set&lt;/font&gt; colOS &lt;font color="#ffa0ff"&gt;=&lt;/font&gt; objWMI&lt;font color="#ffa0ff"&gt;.&lt;/font&gt;InstancesOf&lt;font color="#ffa0ff"&gt;(&lt;/font&gt;&lt;font color="#90d0ff"&gt;&amp;quot;Win32_OperatingSystem&amp;quot;&lt;/font&gt;&lt;font color="#ffa0ff"&gt;)&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffa0ff"&gt;for&lt;/font&gt; &lt;font color="#ffa0ff"&gt;each&lt;/font&gt; objOS &lt;font color="#ffa0ff"&gt;in&lt;/font&gt; colOS&lt;br /&gt;    objWMIDateTime&lt;font color="#ffa0ff"&gt;.&lt;/font&gt;Value &lt;font color="#ffa0ff"&gt;=&lt;/font&gt; objOS&lt;font color="#ffa0ff"&gt;.&lt;/font&gt;LastBootUpTime&lt;br /&gt;    Wscript&lt;font color="#ffa0ff"&gt;.&lt;/font&gt;Echo &lt;font color="#90d0ff"&gt;&amp;quot;Last Boot Up Time: &amp;quot;&lt;/font&gt; &lt;font color="#ffa0ff"&gt;&amp;amp;&lt;/font&gt; objWMIDateTime&lt;font color="#ffa0ff"&gt;.&lt;/font&gt;GetVarDate &lt;font color="#ffa0ff"&gt;&amp;amp;&lt;/font&gt; vbcrlf &lt;font color="#ffa0ff"&gt;&amp;amp; _&lt;/font&gt;&lt;br /&gt;        &lt;font color="#90d0ff"&gt;&amp;quot;Time Since Last Boot: &amp;quot;&lt;/font&gt; &lt;font color="#ffa0ff"&gt;&amp;amp;&lt;/font&gt;  TimeSpan&lt;font color="#ffa0ff"&gt;(&lt;/font&gt;objWMIDateTime&lt;font color="#ffa0ff"&gt;.&lt;/font&gt;GetVarDate&lt;font color="#ffa0ff"&gt;,&lt;/font&gt;&lt;font color="#40f0f0"&gt;Now&lt;/font&gt;&lt;font color="#ffa0ff"&gt;)&lt;/font&gt; &lt;font color="#ffa0ff"&gt;&amp;amp; _&lt;/font&gt;&lt;br /&gt;        &lt;font color="#90d0ff"&gt;&amp;quot; (hh:mm:ss)&amp;quot;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffa0ff"&gt;next&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#ffa0ff"&gt;Function&lt;/font&gt; TimeSpan&lt;font color="#ffa0ff"&gt;(&lt;/font&gt;dt1&lt;font color="#ffa0ff"&gt;,&lt;/font&gt; dt2&lt;font color="#ffa0ff"&gt;)&lt;/font&gt;&lt;br /&gt;    &lt;font color="#c0c0d0"&gt;' Function to display the difference between&lt;/font&gt;&lt;br /&gt;    &lt;font color="#c0c0d0"&gt;' 2 dates in hh:mm:ss format&lt;/font&gt;&lt;br /&gt;    &lt;font color="#ffa0ff"&gt;If&lt;/font&gt; &lt;font color="#ffa0ff"&gt;(&lt;/font&gt;&lt;font color="#40f0f0"&gt;isDate&lt;/font&gt;&lt;font color="#ffa0ff"&gt;(&lt;/font&gt;dt1&lt;font color="#ffa0ff"&gt;)&lt;/font&gt; &lt;font color="#ffa0ff"&gt;And&lt;/font&gt; &lt;font color="#40f0f0"&gt;IsDate&lt;/font&gt;&lt;font color="#ffa0ff"&gt;(&lt;/font&gt;dt2&lt;font color="#ffa0ff"&gt;))&lt;/font&gt; &lt;font color="#ffa0ff"&gt;=&lt;/font&gt; &lt;font color="#90d0ff"&gt;false&lt;/font&gt; &lt;font color="#ffa0ff"&gt;Then&lt;/font&gt;&lt;br /&gt;        TimeSpan &lt;font color="#ffa0ff"&gt;=&lt;/font&gt; &lt;font color="#90d0ff"&gt;&amp;quot;00:00:00&amp;quot;&lt;/font&gt;&lt;br /&gt;        &lt;font color="#ffa0ff"&gt;Exit&lt;/font&gt; &lt;font color="#ffa0ff"&gt;Function&lt;/font&gt;&lt;br /&gt;        &lt;font color="#ffa0ff"&gt;End&lt;/font&gt; &lt;font color="#ffa0ff"&gt;If&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;        seconds &lt;font color="#ffa0ff"&gt;=&lt;/font&gt; &lt;font color="#40f0f0"&gt;Abs&lt;/font&gt;&lt;font color="#ffa0ff"&gt;(&lt;/font&gt;&lt;font color="#40f0f0"&gt;DateDiff&lt;/font&gt;&lt;font color="#ffa0ff"&gt;(&lt;/font&gt;&lt;font color="#90d0ff"&gt;&amp;quot;S&amp;quot;&lt;/font&gt;&lt;font color="#ffa0ff"&gt;,&lt;/font&gt; dt1&lt;font color="#ffa0ff"&gt;,&lt;/font&gt; dt2&lt;font color="#ffa0ff"&gt;))&lt;/font&gt;&lt;br /&gt;        minutes &lt;font color="#ffa0ff"&gt;=&lt;/font&gt; seconds \ &lt;font color="#90d0ff"&gt;60&lt;/font&gt;&lt;br /&gt;        hours &lt;font color="#ffa0ff"&gt;=&lt;/font&gt; minutes \ &lt;font color="#90d0ff"&gt;60&lt;/font&gt;&lt;br /&gt;        minutes &lt;font color="#ffa0ff"&gt;=&lt;/font&gt; minutes &lt;font color="#ffa0ff"&gt;mod&lt;/font&gt; &lt;font color="#90d0ff"&gt;60&lt;/font&gt;&lt;br /&gt;        seconds &lt;font color="#ffa0ff"&gt;=&lt;/font&gt; seconds &lt;font color="#ffa0ff"&gt;mod&lt;/font&gt; &lt;font color="#90d0ff"&gt;60&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;        &lt;font color="#ffa0ff"&gt;if&lt;/font&gt; &lt;font color="#40f0f0"&gt;len&lt;/font&gt;&lt;font color="#ffa0ff"&gt;(&lt;/font&gt;hours&lt;font color="#ffa0ff"&gt;)&lt;/font&gt; &lt;font color="#ffa0ff"&gt;=&lt;/font&gt; &lt;font color="#90d0ff"&gt;1&lt;/font&gt; &lt;font color="#ffa0ff"&gt;then&lt;/font&gt; hours &lt;font color="#ffa0ff"&gt;=&lt;/font&gt; &lt;font color="#90d0ff"&gt;&amp;quot;0&amp;quot;&lt;/font&gt; &lt;font color="#ffa0ff"&gt;&amp;amp;&lt;/font&gt; hours&lt;br /&gt;&lt;br /&gt;        TimeSpan &lt;font color="#ffa0ff"&gt;=&lt;/font&gt; hours &lt;font color="#ffa0ff"&gt;&amp;amp;&lt;/font&gt; &lt;font color="#90d0ff"&gt;&amp;quot;:&amp;quot;&lt;/font&gt; &lt;font color="#ffa0ff"&gt;&amp;amp;&lt;/font&gt; _&lt;br /&gt;            &lt;font color="#40f0f0"&gt;RIGHT&lt;/font&gt;&lt;font color="#ffa0ff"&gt;(&lt;/font&gt;&lt;font color="#90d0ff"&gt;&amp;quot;00&amp;quot;&lt;/font&gt; &lt;font color="#ffa0ff"&gt;&amp;amp;&lt;/font&gt; minutes&lt;font color="#ffa0ff"&gt;,&lt;/font&gt; &lt;font color="#90d0ff"&gt;2&lt;/font&gt;&lt;font color="#ffa0ff"&gt;)&lt;/font&gt; &lt;font color="#ffa0ff"&gt;&amp;amp;&lt;/font&gt; &lt;font color="#90d0ff"&gt;&amp;quot;:&amp;quot;&lt;/font&gt; &lt;font color="#ffa0ff"&gt;&amp;amp;&lt;/font&gt; _&lt;br /&gt;            &lt;font color="#40f0f0"&gt;RIGHT&lt;/font&gt;&lt;font color="#ffa0ff"&gt;(&lt;/font&gt;&lt;font color="#90d0ff"&gt;&amp;quot;00&amp;quot;&lt;/font&gt; &lt;font color="#ffa0ff"&gt;&amp;amp;&lt;/font&gt; seconds&lt;font color="#ffa0ff"&gt;,&lt;/font&gt; &lt;font color="#90d0ff"&gt;2&lt;/font&gt;&lt;font color="#ffa0ff"&gt;)&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffa0ff"&gt;End&lt;/font&gt; &lt;font color="#ffa0ff"&gt;Function&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-4572596064590452360?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/4572596064590452360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=4572596064590452360' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4572596064590452360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4572596064590452360'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/04/time-since-last-boot.php' title='Time since last boot (Windows, VBScript)'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-7270640002610929360</id><published>2008-03-27T17:03:00.001-04:00</published><updated>2008-03-27T17:05:30.152-04:00</updated><title type='text'>Getting size estimates for tables  in SQL SERVER 2000</title><content type='html'>&lt;pre&gt;&lt;br /&gt;&lt;font color="#9933cc"&gt;&lt;i&gt;-- &lt;a href="http://sqlserver2000.databases.aspfaq.com/how-do-i-get-a-list-of-sql-server-tables-and-their-row-counts.html"&gt;SQL Server tables and row counts&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;declare tables_cursor &lt;font color="#33aa00"&gt;cursor&lt;/font&gt; &lt;font color="#33aa00"&gt;for&lt;/font&gt; &lt;br /&gt;&lt;font color="#ff6600"&gt;select&lt;/font&gt; name &lt;font color="#33aa00"&gt;from&lt;/font&gt; sysobjects &lt;font color="#33aa00"&gt;where&lt;/font&gt; xtype=&lt;font color="#66ff00"&gt;'U'&lt;/font&gt;&lt;br /&gt;declare @table_name sysname&lt;br /&gt;&lt;br /&gt;open tables_cursor&lt;br /&gt;fetch next &lt;font color="#33aa00"&gt;from&lt;/font&gt; tables_cursor &lt;font color="#33aa00"&gt;INTO&lt;/font&gt; @table_name&lt;br /&gt;&lt;br /&gt;while @@fetch_status = &lt;font color="#339999"&gt;0&lt;/font&gt;&lt;br /&gt;&lt;font color="#33aa00"&gt;begin&lt;/font&gt;&lt;br /&gt;    exec sp_spaceused @table_name&lt;br /&gt;    fetch next &lt;font color="#33aa00"&gt;from&lt;/font&gt; tables_cursor &lt;font color="#33aa00"&gt;INTO&lt;/font&gt; @table_name&lt;br /&gt;&lt;font color="#33aa00"&gt;end&lt;/font&gt;&lt;br /&gt;close tables_cursor&lt;br /&gt;deallocate tables_cursor&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-7270640002610929360?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/7270640002610929360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=7270640002610929360' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7270640002610929360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7270640002610929360'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/03/getting-size-estimates-for-tables-in.php' title='Getting size estimates for tables  in SQL SERVER 2000'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-2497476883646684161</id><published>2008-03-25T10:56:00.000-04:00</published><updated>2008-10-14T14:01:03.666-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dos'/><title type='text'>Restoredb.bat</title><content type='html'>Using osql and trusted connection for SQL Server 2000.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td bgcolor="#000000"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;@&lt;span style="color:#ffcc00;"&gt;echo&lt;/span&gt;&lt;span style="color:#ff6600;"&gt; off&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff6600;"&gt;if&lt;/span&gt;&lt;span style="color:#ff6600;"&gt; &lt;/span&gt;{&lt;span style="color:#ffcc00;"&gt;%2&lt;/span&gt;}&lt;span style="color:#ff6600;"&gt;==&lt;/span&gt;{} (&lt;br /&gt;   &lt;span style="color:#ff6600;"&gt;call&lt;/span&gt;&lt;span style="color:#ff6600;"&gt; :Usage&lt;/span&gt;&lt;br /&gt;   &lt;span style="color:#ff6600;"&gt;goto&lt;/span&gt;&lt;span style="color:#ff6600;"&gt; :EOF&lt;/span&gt;&lt;br /&gt;)&lt;br /&gt;net stop mssqlserver&lt;br /&gt;net &lt;span style="color:#ffcc00;"&gt;start&lt;/span&gt; mssqlserver&lt;br /&gt;osql -E -d master -Q &lt;span style="color:#66ff00;"&gt;"restore database &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffcc00;"&gt;%1&lt;/span&gt;&lt;span style="color:#66ff00;"&gt; from disk='&lt;/span&gt;&lt;span style="color:#ffcc00;"&gt;%2&lt;/span&gt;&lt;span style="color:#66ff00;"&gt;' with replace"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff6600;"&gt;goto&lt;/span&gt;&lt;span style="color:#ff6600;"&gt; :EOF&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#9933cc;"&gt;&lt;i&gt;::Subroutine area &lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff6600;"&gt;:Usage&lt;/span&gt;&lt;br /&gt;   @&lt;span style="color:#ffcc00;"&gt;echo&lt;/span&gt;&lt;span style="color:#66ff00;"&gt; Syntax: call restoredb.bat DatabaseName&lt;br /&gt;FullDatabaseBackupPath&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff6600;"&gt;goto&lt;/span&gt;&lt;span style="color:#ff6600;"&gt; :EOF&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-2497476883646684161?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/2497476883646684161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=2497476883646684161' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/2497476883646684161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/2497476883646684161'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/03/restoredbbat.php' title='Restoredb.bat'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-3639761065047883056</id><published>2008-03-07T20:41:00.000-05:00</published><updated>2008-03-07T21:08:16.044-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web server'/><category scheme='http://www.blogger.com/atom/ns#' term='didiwiki'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>"Playtime" project:  Porting Didiwiki to C#.NET</title><content type='html'>I'm hoping to find time to throw at least a quick port of DidiWiki to C#.NET together.&lt;br /&gt;&lt;br /&gt;Reference 1:  &lt;a href="http://www.c-sharpcorner.com/UploadFile/ialam/CreatingWebServerInCS12022005042042AM/CreatingWebServerInCS.aspx"&gt;Creating your own Web Server using C#&lt;/a&gt; - This article is from 2001, so there might be a significantly better way of doing things.&lt;br /&gt;&lt;br /&gt;Update:  &lt;a href="http://www.codeguru.com/Csharp/.NET/net_general/article.php/c4603#more"&gt;This CodeGuru page&lt;/a&gt; looks like a more original version of the same page.&lt;br /&gt;&lt;br /&gt;Reference 2:  &lt;a href="http://linux-notes.thomaspowell.com/2008/01/didiwiki-05-source-code.html"&gt;Didiwiki Source Code&lt;/a&gt; that I've saved off.  Original maintainer is no longer maintaining.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-3639761065047883056?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/3639761065047883056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=3639761065047883056' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/3639761065047883056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/3639761065047883056'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/03/playtime-project-porting-didiwiki-to.php' title='&quot;Playtime&quot; project:  Porting Didiwiki to C#.NET'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-635427790530747539</id><published>2008-03-01T11:56:00.000-05:00</published><updated>2008-03-02T13:18:48.894-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql server'/><category scheme='http://www.blogger.com/atom/ns#' term='2005'/><title type='text'>Importing a runningahead log.xml into SQL Server 2005 using OPENXML</title><content type='html'>I don't currently have a work-based use for 2005, so I thought I'd use the only readily available collection of data that I have at my disposal...  my running log.  This is an export file from &lt;a href="http://www.runningahead.com/"&gt;RunningAhead.com&lt;/a&gt;.  I don't think I'm completely loading the XML data yet, and I don't have database tables to load to yet, either.  However, this is my implementation of some OPENXML examples.&lt;br /&gt;&lt;br /&gt;&lt;font face="monospace"&gt;&lt;br /&gt;DECLARE @hdoc int&lt;br&gt;DECLARE @xmlDoc XML&lt;br&gt;&lt;font color="#804040"&gt;&lt;b&gt;SET&lt;/b&gt;&lt;/font&gt;&amp;nbsp;@xmlDoc = (&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;font color="#804040"&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt;&amp;nbsp;* &lt;font color="#6a5acd"&gt;FROM&lt;/font&gt;&amp;nbsp;OPENROWSET (&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BULK &lt;font color="#ff00ff"&gt;'C:\projects\runningahead\log.1.321C02\log.xml'&lt;/font&gt;, SINGLE_CLOB&lt;br&gt;&amp;nbsp;&amp;nbsp;) &lt;font color="#6a5acd"&gt;AS&lt;/font&gt;&amp;nbsp;xmlData&lt;br&gt;)&lt;br&gt;&lt;font color="#804040"&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt;&amp;nbsp;@xmlDoc&lt;br&gt;&lt;br&gt;EXEC sp_xml_preparedocument @hdoc OUTPUT, @xmlDoc&lt;br&gt;&lt;br&gt;&lt;font color="#804040"&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt;&amp;nbsp;* &lt;font color="#6a5acd"&gt;FROM&lt;/font&gt;&lt;br&gt;OPENXML(@hdoc, &lt;font color="#ff00ff"&gt;'/RunningAHEADLog/CourseCollection/Course'&lt;/font&gt;, &lt;font color="#ff00ff"&gt;2&lt;/font&gt;)&lt;br&gt;&lt;font color="#6a5acd"&gt;WITH&lt;/font&gt;&lt;br&gt;(&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ID &lt;font color="#2e8b57"&gt;&lt;b&gt;varchar&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;32&lt;/font&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Name &lt;font color="#2e8b57"&gt;&lt;b&gt;varchar&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;255&lt;/font&gt;) ,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Surface &lt;font color="#2e8b57"&gt;&lt;b&gt;varchar&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;255&lt;/font&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;City &lt;font color="#2e8b57"&gt;&lt;b&gt;varchar&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;255&lt;/font&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;State &lt;font color="#2e8b57"&gt;&lt;b&gt;char&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;3&lt;/font&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Notes &lt;font color="#2e8b57"&gt;&lt;b&gt;varchar&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;255&lt;/font&gt;)&lt;br&gt;)&lt;br&gt;&lt;br&gt;&lt;font color="#804040"&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt;&amp;nbsp;* &lt;font color="#6a5acd"&gt;FROM&lt;/font&gt;&lt;br&gt;OPENXML(@hdoc, &lt;font color="#ff00ff"&gt;'/RunningAHEADLog/EquipmentCollection/Shoe'&lt;/font&gt;, &lt;font color="#ff00ff"&gt;2&lt;/font&gt;)&lt;br&gt;&lt;font color="#6a5acd"&gt;WITH&lt;/font&gt;&lt;br&gt;(&lt;br&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ID &lt;font color="#2e8b57"&gt;&lt;b&gt;varchar&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;32&lt;/font&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Make &lt;font color="#2e8b57"&gt;&lt;b&gt;varchar&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;255&lt;/font&gt;) ,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Model &lt;font color="#2e8b57"&gt;&lt;b&gt;varchar&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;255&lt;/font&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Serial &lt;font color="#2e8b57"&gt;&lt;b&gt;char&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;20&lt;/font&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InitDistance &lt;font color="#6a5acd"&gt;decimal&lt;/font&gt;(&lt;font color="#ff00ff"&gt;7&lt;/font&gt;,&lt;font color="#ff00ff"&gt;2&lt;/font&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PurchaseDate datetime,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Retired &lt;font color="#2e8b57"&gt;&lt;b&gt;char&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;3&lt;/font&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#6a5acd"&gt;Size&lt;/font&gt;&amp;nbsp;&lt;font color="#2e8b57"&gt;&lt;b&gt;char&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;10&lt;/font&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SizeSystem &lt;font color="#2e8b57"&gt;&lt;b&gt;char&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;40&lt;/font&gt;)&lt;br&gt;)&lt;br&gt;&lt;br&gt;&lt;font color="#804040"&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt;&amp;nbsp;* &lt;font color="#6a5acd"&gt;FROM&lt;/font&gt;&lt;br&gt;OPENXML(@hdoc, &lt;font color="#ff00ff"&gt;'/RunningAHEADLog/EventCollection/Run'&lt;/font&gt;, &lt;font color="#ff00ff"&gt;2&lt;/font&gt;)&lt;br&gt;&lt;font color="#6a5acd"&gt;WITH&lt;/font&gt;&lt;br&gt;(&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ID &lt;font color="#2e8b57"&gt;&lt;b&gt;char&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;32&lt;/font&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#2e8b57"&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/font&gt;&amp;nbsp;datetime,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Time datetime,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#6a5acd"&gt;Type&lt;/font&gt;&amp;nbsp;&lt;font color="#2e8b57"&gt;&lt;b&gt;char&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;15&lt;/font&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Weight &lt;font color="#6a5acd"&gt;decimal&lt;/font&gt;(&lt;font color="#ff00ff"&gt;4&lt;/font&gt;,&lt;font color="#ff00ff"&gt;1&lt;/font&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WeightUnit &lt;font color="#2e8b57"&gt;&lt;b&gt;char&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;12&lt;/font&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AvgHR tinyint,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MaxHR tinyint,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Quality tinyint,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Effort tinyint,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CourseID &lt;font color="#2e8b57"&gt;&lt;b&gt;char&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;32&lt;/font&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Distance &lt;font color="#6a5acd"&gt;decimal&lt;/font&gt;(&lt;font color="#ff00ff"&gt;8&lt;/font&gt;,&lt;font color="#ff00ff"&gt;2&lt;/font&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DistanceUnit &lt;font color="#2e8b57"&gt;&lt;b&gt;char&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;12&lt;/font&gt;),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Duration &lt;font color="#2e8b57"&gt;&lt;b&gt;char&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;20&lt;/font&gt;)&lt;br&gt;)&lt;br&gt;&lt;br&gt;&lt;br&gt;EXEC sp_xml_removedocument @hdoc&lt;br&gt;&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-635427790530747539?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/635427790530747539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=635427790530747539' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/635427790530747539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/635427790530747539'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/03/importing-runningahead-logxml-into-sql.php' title='Importing a runningahead log.xml into SQL Server 2005 using OPENXML'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-2157311769558314196</id><published>2008-02-22T13:31:00.000-05:00</published><updated>2008-02-22T13:51:21.367-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql server'/><title type='text'>Sql Date Time formats.</title><content type='html'>From&lt;a href="http://lists.evolt.org/archive/Week-of-Mon-20020617/115646.html"&gt;http://lists.evolt.org/archive/Week-of-Mon-20020617/115646.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1" valign="top"&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;without&lt;br&gt;century (yy)&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;with&lt;br&gt;century&lt;br&gt;(yyyy)&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;standard&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;outputformat&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;0 or 100 (*)&lt;/td&gt;&lt;td&gt;default&lt;/td&gt;&lt;td&gt;mon dd yyyy hh:miAM (or PM)&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;101&lt;/td&gt;&lt;td&gt;USA&lt;/td&gt;&lt;td&gt;mm/dd/yy&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;102&lt;/td&gt;&lt;td&gt;ANSI&lt;/td&gt;&lt;td&gt;yy.mm.dd&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;103&lt;/td&gt;&lt;td&gt;British/French&lt;/td&gt;&lt;td&gt;dd/mm/yy&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;104&lt;/td&gt;&lt;td&gt;German&lt;/td&gt;&lt;td&gt;dd.mm.yy&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;105&lt;/td&gt;&lt;td&gt;Italian&lt;/td&gt;&lt;td&gt;dd-mm-yy&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;106&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;dd mon yy&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;107&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;mon dd, yy&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;108&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;hh:mm:ss&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;9 or 109 (*)&lt;/td&gt;&lt;td&gt;default &lt;br&gt;milliseconds&lt;/td&gt;&lt;td&gt;mon dd yyyy hh:mi:ss:mmmAM (or PM)&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;110&lt;/td&gt;&lt;td&gt;USA&lt;/td&gt;&lt;td&gt;mm-dd-yy&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;111&lt;/td&gt;&lt;td&gt;Japan&lt;/td&gt;&lt;td&gt;yy/mm/dd&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;112&lt;/td&gt;&lt;td&gt;ISO&lt;/td&gt;&lt;td&gt;yymmdd&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;13 or 113 (*)&lt;/td&gt;&lt;td&gt;Europe default &lt;br&gt;milliseconds&lt;/td&gt;&lt;td&gt;dd mon yyyy hh:mm:ss:mmm(24h)&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;114&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;hh:mi:ss:mmm(24h)&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;20&lt;/td&gt;&lt;td&gt;120&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;yyyy-mm-dd hh:mi:ss(24h)&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;21&lt;/td&gt;&lt;td&gt;121&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;yyyy-mm-dd hh:mi:ss.mmm(24h)&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;126&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;yyyy-mm-dd Thh:mm:ss.mmm(no spaces)&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;130&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;dd mon yyyy hh:mi:ss:mmmAM&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;131&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;dd/mm/yy hh:mi:ss:mmmAM&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;   (*) the default values (style 0 or 100, 9 or 109, and&lt;br /&gt;       13 or 113) always return the century (yyyy)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-2157311769558314196?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/2157311769558314196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=2157311769558314196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/2157311769558314196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/2157311769558314196'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/02/sql-date-time-formats.php' title='Sql Date Time formats.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-1889509359492249920</id><published>2008-02-15T09:22:00.000-05:00</published><updated>2008-02-15T09:28:10.394-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows xp'/><category scheme='http://www.blogger.com/atom/ns#' term='registry'/><title type='text'>Run Command Most Recently Used List Storage</title><content type='html'>At least for Windows XP, this list is stored in the registry:&lt;br /&gt;&lt;br /&gt;My Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU&lt;br /&gt;&lt;br /&gt;It looks like there are values \a through \z off of RunMRU, plus \(Default) and \MRUList.  There is string value in MRUList:  e.g., "nkvlsawbhczeyoijfugrtdxpmq", which determines the ordering of MRUList entries.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-1889509359492249920?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/1889509359492249920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=1889509359492249920' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/1889509359492249920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/1889509359492249920'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/02/run-command-most-recently-used-list.php' title='Run Command Most Recently Used List Storage'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-8872307039453849316</id><published>2008-02-11T13:29:00.000-05:00</published><updated>2008-02-11T13:49:14.651-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Office'/><title type='text'>Miscellaneous Excel tricks that I needed today.</title><content type='html'>How to &lt;a href="http://office.microsoft.com/en-us/excel/HP052346811033.aspx"&gt;hide gridlines&lt;/a&gt; on an Excel Worksheet.&lt;br /&gt;&lt;br /&gt;Select a Worksheet.&lt;br /&gt;Select &lt;u&gt;T&lt;/u&gt;ools-&gt;&lt;u&gt;O&lt;/u&gt;ptions...&lt;br /&gt;On the [View] tab, un-check &lt;u&gt;G&lt;/u&gt;ridlines under the Window Options section.&lt;br /&gt;&lt;br /&gt;Row and column headers, scroll bars, and sheet tabs are also hideable through this tab.&lt;br /&gt;&lt;br /&gt;How to &lt;a href="http://forums.cnet.com/5208-6130_102-0.html?forumID=7&amp;threadID=32038&amp;messageID=367551"&gt;Split and Freeze Panes&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Freeze panes makes very nice title rows (the bottom pane does not scroll into the title row).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-8872307039453849316?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/8872307039453849316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=8872307039453849316' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8872307039453849316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8872307039453849316'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/02/miscellaneous-excel-tricks-that-i.php' title='Miscellaneous Excel tricks that I needed today.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-2030508148753722324</id><published>2008-02-04T15:29:00.000-05:00</published><updated>2008-02-04T15:33:32.759-05:00</updated><title type='text'>ILASM and ILDASM (.NET "Assembler")</title><content type='html'>&lt;a href="http://www.blong.com/Conferences/DCon2003/ReverseEngineering/ReverseEngineering.htm"&gt;Reverse Engineering To Learn .NET Better&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Accessible via command line using:&lt;br /&gt;Start-&gt;Microsoft Visual Studio 2005-&gt;Visual Studio Tools-&gt;Visual Studio 2005 Command Prompt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-2030508148753722324?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/2030508148753722324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=2030508148753722324' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/2030508148753722324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/2030508148753722324'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/02/ilasm-and-ildasm-net-assembler.php' title='ILASM and ILDASM (.NET &quot;Assembler&quot;)'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-7198551841408167052</id><published>2008-01-31T15:11:00.000-05:00</published><updated>2008-01-31T15:13:32.020-05:00</updated><title type='text'>C vs C# formatting.</title><content type='html'>&lt;pre&gt;&lt;br /&gt;printf("%05d\n",123);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Console.WriteLine(String.Format("{0:00000}", 123))&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-7198551841408167052?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/7198551841408167052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=7198551841408167052' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7198551841408167052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7198551841408167052'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2008/01/c-vs-c-formatting.php' title='C vs C# formatting.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-1203853757434981846</id><published>2007-09-11T11:23:00.000-04:00</published><updated>2007-09-11T11:28:12.671-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql server'/><title type='text'>Calculate average daily mileage required to make yearly goal</title><content type='html'>This might be useful if you're programming a running site.  For me, however, I wanted to write this calculation in SQL Server to expand my knowledge some.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;--Calculates the average daily mileage needed to meet a target yearly mileage goal, based on current mileage.&lt;/font&gt;&lt;br /&gt;&lt;font color="#804040"&gt;&lt;b&gt;CREATE&lt;/b&gt;&lt;/font&gt; &lt;font color="#6a5acd"&gt;FUNCTION&lt;/font&gt; averageDistanceNeeded (@targetMileage &lt;font color="#6a5acd"&gt;decimal&lt;/font&gt;(&lt;font color="#ff00ff"&gt;10&lt;/font&gt;,&lt;font color="#ff00ff"&gt;4&lt;/font&gt;), @currentMileage &lt;font color="#6a5acd"&gt;decimal&lt;/font&gt;(&lt;font color="#ff00ff"&gt;10&lt;/font&gt;,&lt;font color="#ff00ff"&gt;4&lt;/font&gt;))&lt;br /&gt;RETURNS &lt;font color="#6a5acd"&gt;decimal&lt;/font&gt;(&lt;font color="#ff00ff"&gt;10&lt;/font&gt;,&lt;font color="#ff00ff"&gt;4&lt;/font&gt;)&lt;br /&gt;&lt;font color="#6a5acd"&gt;AS&lt;/font&gt;&lt;br /&gt;&lt;font color="#6a5acd"&gt;BEGIN&lt;/font&gt;&lt;br /&gt;    Declare @daysLeft &lt;font color="#6a5acd"&gt;decimal&lt;/font&gt;(&lt;font color="#ff00ff"&gt;10&lt;/font&gt;,&lt;font color="#ff00ff"&gt;4&lt;/font&gt;)&lt;br /&gt;    Declare @dt datetime&lt;br /&gt;&lt;br /&gt;    &lt;font color="#804040"&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; @dt = dt &lt;font color="#6a5acd"&gt;from&lt;/font&gt; openquery&lt;br /&gt;    (&lt;br /&gt;        &lt;font color="#ff00ff"&gt;&amp;quot;my-server&amp;quot;&lt;/font&gt;,&lt;br /&gt;        &lt;font color="#ff00ff"&gt;'select dt = getdate()'&lt;/font&gt;&lt;br /&gt;    )&lt;br /&gt;    &lt;font color="#804040"&gt;&lt;b&gt;select&lt;/b&gt;&lt;/font&gt; @daysLeft = datediff(day, @dt, CAST (CAST (YEAR(@dt) &lt;font color="#6a5acd"&gt;AS&lt;/font&gt; &lt;font color="#2e8b57"&gt;&lt;b&gt;VARCHAR&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;4&lt;/font&gt;)) + &lt;font color="#ff00ff"&gt;'-12-31'&lt;/font&gt; &lt;font color="#6a5acd"&gt;AS&lt;/font&gt; DATETIME))&lt;br /&gt;    &lt;font color="#6a5acd"&gt;return&lt;/font&gt; CONVERT(&lt;font color="#6a5acd"&gt;decimal&lt;/font&gt;(&lt;font color="#ff00ff"&gt;10&lt;/font&gt;,&lt;font color="#ff00ff"&gt;4&lt;/font&gt;), (@targetMileage - @currentMileage) / @daysLeft)&lt;br /&gt;&lt;font color="#6a5acd"&gt;END&lt;/font&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;--Get average daily mileage needed to reach 2000 miles, based on a current mileage&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;-- of 960.2&lt;/font&gt;&lt;br /&gt;&lt;font color="#804040"&gt;&lt;b&gt;select&lt;/b&gt;&lt;/font&gt; dbo.averageDistanceNeeded(&lt;font color="#ff00ff"&gt;2000.0&lt;/font&gt;, &lt;font color="#ff00ff"&gt;960.2&lt;/font&gt;)&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-1203853757434981846?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/1203853757434981846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=1203853757434981846' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/1203853757434981846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/1203853757434981846'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2007/09/calculate-average-daily-mileage.php' title='Calculate average daily mileage required to make yearly goal'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-4771597395703268863</id><published>2007-09-06T10:53:00.001-04:00</published><updated>2007-09-06T11:00:04.696-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql server'/><title type='text'>Further refined version of code searching</title><content type='html'>I have now included views in the search code version.  Both functions now return the object type the result was found in.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;--Searches stored procedures, functions and views for code&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;-- containing the stringtosearch&lt;/font&gt;&lt;br /&gt;&lt;font color="#804040"&gt;&lt;b&gt;CREATE&lt;/b&gt;&lt;/font&gt; &lt;font color="#6a5acd"&gt;FUNCTION&lt;/font&gt; findTextInCode (@StringToSearch &lt;font color="#2e8b57"&gt;&lt;b&gt;varchar&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;100&lt;/font&gt;))&lt;br /&gt;RETURNS @fNames &lt;font color="#6a5acd"&gt;TABLE&lt;/font&gt; (search &lt;font color="#2e8b57"&gt;&lt;b&gt;varchar&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;100&lt;/font&gt;), name sysname, &lt;font color="#6a5acd"&gt;type&lt;/font&gt; &lt;font color="#2e8b57"&gt;&lt;b&gt;char&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;2&lt;/font&gt;))&lt;br /&gt;&lt;font color="#6a5acd"&gt;AS&lt;/font&gt;&lt;br /&gt;&lt;font color="#6a5acd"&gt;BEGIN&lt;/font&gt;&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;SET&lt;/b&gt;&lt;/font&gt; @StringToSearch = &lt;font color="#ff00ff"&gt;'%'&lt;/font&gt; + @StringToSearch +&lt;font color="#ff00ff"&gt;'%'&lt;/font&gt;&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;INSERT&lt;/b&gt;&lt;/font&gt; @fNames&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; &lt;font color="#804040"&gt;&lt;b&gt;DISTINCT&lt;/b&gt;&lt;/font&gt; @stringtosearch, SO.Name, SO.&lt;font color="#6a5acd"&gt;Type&lt;/font&gt;&lt;br /&gt;   &lt;font color="#6a5acd"&gt;FROM&lt;/font&gt; sysobjects SO (NOLOCK)&lt;br /&gt;   INNER JOIN syscomments SC (NOLOCK) &lt;font color="#6a5acd"&gt;on&lt;/font&gt; SO.ID = SC.ID&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;AND&lt;/b&gt;&lt;/font&gt; (SO.&lt;font color="#6a5acd"&gt;Type&lt;/font&gt; = &lt;font color="#ff00ff"&gt;'P'&lt;/font&gt; &lt;font color="#804040"&gt;&lt;b&gt;OR&lt;/b&gt;&lt;/font&gt; SO.&lt;font color="#6a5acd"&gt;Type&lt;/font&gt; &lt;font color="#804040"&gt;&lt;b&gt;LIKE&lt;/b&gt;&lt;/font&gt; &lt;font color="#ff00ff"&gt;'%F%'&lt;/font&gt; &lt;font color="#804040"&gt;&lt;b&gt;OR&lt;/b&gt;&lt;/font&gt; SO.&lt;font color="#6a5acd"&gt;Type&lt;/font&gt; = &lt;font color="#ff00ff"&gt;'V'&lt;/font&gt;)&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;AND&lt;/b&gt;&lt;/font&gt; SC.Text &lt;font color="#804040"&gt;&lt;b&gt;LIKE&lt;/b&gt;&lt;/font&gt; @stringtosearch&lt;br /&gt;   &lt;font color="#6a5acd"&gt;ORDER&lt;/font&gt; &lt;font color="#6a5acd"&gt;BY&lt;/font&gt; SO.Name&lt;br /&gt;   &lt;font color="#6a5acd"&gt;RETURN&lt;/font&gt;&lt;br /&gt;&lt;font color="#6a5acd"&gt;END&lt;/font&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;--Searches column names from stored procedure parameters and function,&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;-- user tables, and view columns&lt;/font&gt;&lt;br /&gt;&lt;font color="#804040"&gt;&lt;b&gt;CREATE&lt;/b&gt;&lt;/font&gt; &lt;font color="#6a5acd"&gt;FUNCTION&lt;/font&gt; findTextInColumnName (@StringToSearch &lt;font color="#2e8b57"&gt;&lt;b&gt;varchar&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;100&lt;/font&gt;))&lt;br /&gt;RETURNS @fColumnNames &lt;font color="#6a5acd"&gt;TABLE&lt;/font&gt; (tablename sysname, colname sysname, &lt;font color="#6a5acd"&gt;type&lt;/font&gt; &lt;font color="#2e8b57"&gt;&lt;b&gt;char&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;2&lt;/font&gt;))&lt;br /&gt;&lt;font color="#6a5acd"&gt;AS&lt;/font&gt;&lt;br /&gt;&lt;font color="#6a5acd"&gt;BEGIN&lt;/font&gt;&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;SET&lt;/b&gt;&lt;/font&gt; @StringToSEarch = &lt;font color="#ff00ff"&gt;'%'&lt;/font&gt; + @StringToSearch + &lt;font color="#ff00ff"&gt;'%'&lt;/font&gt;&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;INSERT&lt;/b&gt;&lt;/font&gt; @fColumnNames&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; &lt;font color="#804040"&gt;&lt;b&gt;DISTINCT&lt;/b&gt;&lt;/font&gt; SO.NAME, SC.NAME, SO.&lt;font color="#6a5acd"&gt;TYPE&lt;/font&gt;&lt;br /&gt;   &lt;font color="#6a5acd"&gt;FROM&lt;/font&gt; syscolumns SC (NOLOCK)&lt;br /&gt;INNER JOIN&lt;br /&gt;   sysobjects SO (NOLOCK)&lt;br /&gt;   &lt;font color="#6a5acd"&gt;ON&lt;/font&gt; SC.id = SO.id&lt;br /&gt;   &lt;font color="#6a5acd"&gt;WHERE&lt;/font&gt; SC.NAME &lt;font color="#804040"&gt;&lt;b&gt;LIKE&lt;/b&gt;&lt;/font&gt; @StringToSearch&lt;br /&gt;   &lt;font color="#6a5acd"&gt;ORDER&lt;/font&gt; &lt;font color="#6a5acd"&gt;BY&lt;/font&gt; SC.Name&lt;br /&gt;   &lt;font color="#6a5acd"&gt;RETURN&lt;/font&gt;&lt;br /&gt;&lt;font color="#6a5acd"&gt;END&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-4771597395703268863?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/4771597395703268863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=4771597395703268863' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4771597395703268863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4771597395703268863'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2007/09/further-refined-version-of-code.php' title='Further refined version of code searching'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-8076872783834191603</id><published>2007-08-16T14:06:00.000-04:00</published><updated>2007-08-16T14:11:35.159-04:00</updated><title type='text'>Further refined Find Text in Column Name</title><content type='html'>Now returns table (or function which returns a table) and column name.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;font color="#804040"&gt;&lt;b&gt;CREATE&lt;/b&gt;&lt;/font&gt; &lt;font color="#6a5acd"&gt;FUNCTION&lt;/font&gt; Find_Text_In_Column_Name (@StringToSearch &lt;font color="#2e8b57"&gt;&lt;b&gt;varchar&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;100&lt;/font&gt;))&lt;br /&gt;RETURNS @fColumnNames &lt;font color="#6a5acd"&gt;TABLE&lt;/font&gt; (tablename sysname, colname sysname)&lt;br /&gt;&lt;font color="#6a5acd"&gt;AS&lt;/font&gt;&lt;br /&gt;&lt;font color="#6a5acd"&gt;BEGIN&lt;/font&gt;&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;SET&lt;/b&gt;&lt;/font&gt; @StringToSEarch = &lt;font color="#ff00ff"&gt;'%'&lt;/font&gt; + @StringToSearch + &lt;font color="#ff00ff"&gt;'%'&lt;/font&gt;&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;INSERT&lt;/b&gt;&lt;/font&gt; @fColumnNames&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; &lt;font color="#804040"&gt;&lt;b&gt;DISTINCT&lt;/b&gt;&lt;/font&gt; SO.NAME, SC.NAME&lt;br /&gt;   &lt;font color="#6a5acd"&gt;FROM&lt;/font&gt; syscolumns SC (NOLOCK)&lt;br /&gt;INNER JOIN&lt;br /&gt;   sysobjects SO (NOLOCK)&lt;br /&gt;   &lt;font color="#6a5acd"&gt;ON&lt;/font&gt; SC.id = SO.id&lt;br /&gt;   &lt;font color="#6a5acd"&gt;WHERE&lt;/font&gt; SC.NAME &lt;font color="#804040"&gt;&lt;b&gt;LIKE&lt;/b&gt;&lt;/font&gt; @StringToSearch&lt;br /&gt;   &lt;font color="#6a5acd"&gt;ORDER&lt;/font&gt; &lt;font color="#6a5acd"&gt;BY&lt;/font&gt; SC.Name&lt;br /&gt;   &lt;font color="#6a5acd"&gt;RETURN&lt;/font&gt;&lt;br /&gt;&lt;font color="#6a5acd"&gt;END&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-8076872783834191603?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/8076872783834191603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=8076872783834191603' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8076872783834191603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8076872783834191603'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2007/08/further-refined-find-text-in-column.php' title='Further refined Find Text in Column Name'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-7209558142275750289</id><published>2007-08-16T10:49:00.000-04:00</published><updated>2007-08-16T10:53:21.663-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql server'/><title type='text'>Functions to find text in column names and in stored procedures and function definitions</title><content type='html'>Implemented in SQL Server:&lt;br /&gt;This function finds a text string in a stored procedure or function definition:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;font color="#804040"&gt;&lt;b&gt;CREATE&lt;/b&gt;&lt;/font&gt; &lt;font color="#6a5acd"&gt;FUNCTION&lt;/font&gt; Find_Text_In_SP_or_FN (@StringToSearch &lt;font color="#2e8b57"&gt;&lt;b&gt;varchar&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;100&lt;/font&gt;))&lt;br /&gt;RETURNS @fNames &lt;font color="#6a5acd"&gt;TABLE&lt;/font&gt; (name sysname)&lt;br /&gt;&lt;font color="#6a5acd"&gt;AS&lt;/font&gt;&lt;br /&gt;&lt;font color="#6a5acd"&gt;BEGIN&lt;/font&gt;&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;SET&lt;/b&gt;&lt;/font&gt; @StringToSearch = &lt;font color="#ff00ff"&gt;'%'&lt;/font&gt; + @StringToSearch +&lt;font color="#ff00ff"&gt;'%'&lt;/font&gt;&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;INSERT&lt;/b&gt;&lt;/font&gt; @fNames&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; &lt;font color="#804040"&gt;&lt;b&gt;DISTINCT&lt;/b&gt;&lt;/font&gt; SO.Name&lt;br /&gt;   &lt;font color="#6a5acd"&gt;FROM&lt;/font&gt; sysobjects SO (NOLOCK)&lt;br /&gt;   INNER JOIN syscomments SC (NOLOCK) &lt;font color="#6a5acd"&gt;on&lt;/font&gt; SO.ID = SC.ID&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;AND&lt;/b&gt;&lt;/font&gt; (SO.&lt;font color="#6a5acd"&gt;Type&lt;/font&gt; = &lt;font color="#ff00ff"&gt;'P'&lt;/font&gt; &lt;font color="#804040"&gt;&lt;b&gt;OR&lt;/b&gt;&lt;/font&gt; SO.&lt;font color="#6a5acd"&gt;Type&lt;/font&gt; &lt;font color="#804040"&gt;&lt;b&gt;LIKE&lt;/b&gt;&lt;/font&gt; &lt;font color="#ff00ff"&gt;'%F%'&lt;/font&gt;)&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;AND&lt;/b&gt;&lt;/font&gt; SC.Text &lt;font color="#804040"&gt;&lt;b&gt;LIKE&lt;/b&gt;&lt;/font&gt; @stringtosearch&lt;br /&gt;   &lt;font color="#6a5acd"&gt;ORDER&lt;/font&gt; &lt;font color="#6a5acd"&gt;BY&lt;/font&gt; SO.Name&lt;br /&gt;   &lt;font color="#6a5acd"&gt;RETURN&lt;/font&gt;&lt;br /&gt;&lt;font color="#6a5acd"&gt;END&lt;/font&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This function finds a text string in a column name:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;font color="#804040"&gt;&lt;b&gt;CREATE&lt;/b&gt;&lt;/font&gt; &lt;font color="#6a5acd"&gt;FUNCTION&lt;/font&gt; Find_Text_In_Column_Name (@StringToSearch &lt;font color="#2e8b57"&gt;&lt;b&gt;varchar&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;100&lt;/font&gt;))&lt;br /&gt;RETURNS @fColumnNames &lt;font color="#6a5acd"&gt;TABLE&lt;/font&gt; (colname sysname)&lt;br /&gt;&lt;font color="#6a5acd"&gt;AS&lt;/font&gt;&lt;br /&gt;&lt;font color="#6a5acd"&gt;BEGIN&lt;/font&gt;&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;SET&lt;/b&gt;&lt;/font&gt; @StringToSEarch = &lt;font color="#ff00ff"&gt;'%'&lt;/font&gt; + @StringToSearch + &lt;font color="#ff00ff"&gt;'%'&lt;/font&gt;&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;INSERT&lt;/b&gt;&lt;/font&gt; @fColumnNames&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; &lt;font color="#804040"&gt;&lt;b&gt;DISTINCT&lt;/b&gt;&lt;/font&gt; SC.NAME&lt;br /&gt;   &lt;font color="#6a5acd"&gt;FROM&lt;/font&gt; syscolumns SC (NOLOCK)&lt;br /&gt;   &lt;font color="#6a5acd"&gt;WHERE&lt;/font&gt; SC.NAME &lt;font color="#804040"&gt;&lt;b&gt;LIKE&lt;/b&gt;&lt;/font&gt; @StringToSearch&lt;br /&gt;   &lt;font color="#6a5acd"&gt;ORDER&lt;/font&gt; &lt;font color="#6a5acd"&gt;BY&lt;/font&gt; SC.Name&lt;br /&gt;   &lt;font color="#6a5acd"&gt;RETURN&lt;/font&gt;&lt;br /&gt;&lt;font color="#6a5acd"&gt;END&lt;/font&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Some example usage for the novices:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;font color="#804040"&gt;&lt;b&gt;select&lt;/b&gt;&lt;/font&gt; * &lt;font color="#6a5acd"&gt;from&lt;/font&gt; Find_Text_In_SP_or_FN(&lt;font color="#ff00ff"&gt;'addr'&lt;/font&gt;)&lt;br /&gt;GO&lt;br /&gt;&lt;font color="#804040"&gt;&lt;b&gt;Select&lt;/b&gt;&lt;/font&gt; * &lt;font color="#6a5acd"&gt;from&lt;/font&gt; Find_Text_In_Column_Name(&lt;font color="#ff00ff"&gt;'city'&lt;/font&gt;)&lt;br /&gt;GO&lt;br /&gt;&lt;font color="#804040"&gt;&lt;b&gt;Select&lt;/b&gt;&lt;/font&gt; * &lt;font color="#6a5acd"&gt;from&lt;/font&gt; Find_Text_In_Column_Name(&lt;font color="#ff00ff"&gt;'state'&lt;/font&gt;)&lt;br /&gt;GO&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-7209558142275750289?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/7209558142275750289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=7209558142275750289' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7209558142275750289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/7209558142275750289'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2007/08/functions-to-find-text-in-column-names.php' title='Functions to find text in column names and in stored procedures and function definitions'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-23152554472837253</id><published>2007-08-15T16:00:00.000-04:00</published><updated>2007-08-15T16:12:44.047-04:00</updated><title type='text'>Google code search for "I'm an idiot"</title><content type='html'>My new favorite toy:  Google code search&lt;br /&gt;&lt;br /&gt;Some interesting comments and such left in code:  &lt;a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=file%3A%5C.c%24+%22I%27m+an+idiot%22&amp;btnG=Search"&gt;I'm an idiot&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=file%3A%5C.c%24+%22Why+the+hell%22&amp;btnG=Search"&gt;Why the hell&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=file%3A%5C.c%24+wtf&amp;btnG=Search"&gt;wtf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=%22some+idiot%22&amp;btnG=Search"&gt;Some idiot&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=file%3A%5C.c%24+%22what+an+idiot%22&amp;btnG=Search"&gt;What an idiot&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Google code search even does regex.  How about a &lt;a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=file%3A%5C.c%24+%22%21%3F%22+%7C+%22%3F%21%22+%5B%3F%21%5D%7B7%7D&amp;btnG=Search"&gt;string of random ? and !&lt;/a&gt;?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-23152554472837253?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/23152554472837253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=23152554472837253' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/23152554472837253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/23152554472837253'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2007/08/google-code-search-for-im-idiot.php' title='Google code search for &quot;I&apos;m an idiot&quot;'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-8537226626163688165</id><published>2007-07-19T14:26:00.000-04:00</published><updated>2007-07-19T14:34:23.019-04:00</updated><title type='text'>Windows XP Keyboard Navigation</title><content type='html'>&lt;h2&gt;In Explorer:&lt;/h2&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&amp;quot;&amp;lt;ALT&amp;gt;VOU&amp;quot; - Go up one level (&lt;u&gt;V&lt;/u&gt;iew, G&lt;u&gt;o&lt;/u&gt; To, &lt;u&gt;U&lt;/u&gt;p one level&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-8537226626163688165?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/8537226626163688165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=8537226626163688165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8537226626163688165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8537226626163688165'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2007/07/windows-xp-keyboard-navigation.php' title='Windows XP Keyboard Navigation'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-6839609535198602189</id><published>2007-07-12T10:09:00.000-04:00</published><updated>2007-07-12T14:25:57.507-04:00</updated><title type='text'>Stored procedure to search functions and stored procedures.</title><content type='html'>&lt;pre&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;-- Altered slightly from &lt;a href="http://www.knowdotnet.com/articles/storedprocfinds.html"&gt;http://www.knowdotnet.com/articles/storedprocfinds.html&lt;/a&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#804040"&gt;&lt;b&gt;CREATE&lt;/b&gt;&lt;/font&gt; &lt;font color="#6a5acd"&gt;PROCEDURE&lt;/font&gt; Find_Text_In_SP_or_FN (@StringToSearch &lt;font color="#2e8b57"&gt;&lt;b&gt;varchar&lt;/b&gt;&lt;/font&gt;(&lt;font color="#ff00ff"&gt;100&lt;/font&gt;))&lt;br /&gt;&lt;font color="#6a5acd"&gt;AS&lt;/font&gt;&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;SET&lt;/b&gt;&lt;/font&gt; @StringToSearch = &lt;font color="#ff00ff"&gt;'%'&lt;/font&gt; + @StringToSearch +&lt;font color="#ff00ff"&gt;'%'&lt;/font&gt;&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; &lt;font color="#804040"&gt;&lt;b&gt;DISTINCT&lt;/b&gt;&lt;/font&gt; SO.Name&lt;br /&gt;   &lt;font color="#6a5acd"&gt;FROM&lt;/font&gt; sysobjects SO (NOLOCK)&lt;br /&gt;   INNER JOIN syscomments SC (NOLOCK) &lt;font color="#6a5acd"&gt;on&lt;/font&gt; SO.ID = SC.ID&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;AND&lt;/b&gt;&lt;/font&gt; (SO.&lt;font color="#6a5acd"&gt;Type&lt;/font&gt; = &lt;font color="#ff00ff"&gt;'P'&lt;/font&gt; &lt;font color="#804040"&gt;&lt;b&gt;OR&lt;/b&gt;&lt;/font&gt; SO.&lt;font color="#6a5acd"&gt;Type&lt;/font&gt; LIKE &lt;font color="#ff00ff"&gt;'%F%'&lt;/font&gt;)&lt;br /&gt;   &lt;font color="#804040"&gt;&lt;b&gt;AND&lt;/b&gt;&lt;/font&gt; SC.Text &lt;font color="#804040"&gt;&lt;b&gt;LIKE&lt;/b&gt;&lt;/font&gt; @stringtosearch&lt;br /&gt;   &lt;font color="#6a5acd"&gt;ORDER&lt;/font&gt; &lt;font color="#6a5acd"&gt;BY&lt;/font&gt; SO.Name&lt;br /&gt;GO&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-6839609535198602189?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/6839609535198602189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=6839609535198602189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6839609535198602189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6839609535198602189'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2007/07/stored-procedure-to-search-functions.php' title='Stored procedure to search functions and stored procedures.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-5505502948624893499</id><published>2007-06-11T00:29:00.000-04:00</published><updated>2007-06-11T00:34:55.524-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='awk'/><title type='text'>Turn pseudo-enums expressed as #defines into strings.</title><content type='html'>I have an include file that has 50+ #defines with constants (0,1,2,3,...,etc).  I have a dump program to dump the data structure that these #defines are used in into a .csv file.  I used this little script to dump case statements out for the #defines, with readable strings instead of arbitrary constant values.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;cat &lt;span style="color:#6a5acd;"&gt;$1&lt;/span&gt; | awk '&lt;span style="color:#ff00ff;"&gt;/#define/&lt;/span&gt;{&lt;br /&gt;   &lt;span style="color:#804040;"&gt;&lt;b&gt;print&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;"&lt;/span&gt;&lt;span style="color:#6a5acd;"&gt;\t\t&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt;case "&lt;/span&gt; &lt;span style="color:#6a5acd;"&gt;$2&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;":"&lt;/span&gt;&lt;span style="color:#6a5acd;"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color:#804040;"&gt;&lt;b&gt;print&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;"&lt;/span&gt;&lt;span style="color:#6a5acd;"&gt;\t\t\t&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt;fprintf(out_csv_fp,&lt;/span&gt;&lt;span style="color:#6a5acd;"&gt;\"&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt;,"&lt;/span&gt; &lt;span style="color:#6a5acd;"&gt;$2&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;"&lt;/span&gt;&lt;span style="color:#6a5acd;"&gt;\"&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt;);"&lt;/span&gt;&lt;span style="color:#6a5acd;"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color:#804040;"&gt;&lt;b&gt;print&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;"&lt;/span&gt;&lt;span style="color:#6a5acd;"&gt;\t\t\t&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt;break;"&lt;/span&gt;&lt;span style="color:#6a5acd;"&gt;;&lt;/span&gt;&lt;br /&gt;}' &amp;gt; out.txt&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-5505502948624893499?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/5505502948624893499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=5505502948624893499' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5505502948624893499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/5505502948624893499'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2007/06/turn-pseudo-enums-expressed-as-defines.php' title='Turn pseudo-enums expressed as #defines into strings.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-9141820950018209263</id><published>2007-06-11T00:14:00.000-04:00</published><updated>2007-06-11T00:35:14.645-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='awk'/><title type='text'>Awk script to quote all parameters for a given function name.</title><content type='html'>I was trying to maintain a program that wrote 200+ lines to a single file, using a single repeated function call--many of which had all NULL parameters.  There were also occasional loops involved.  The data was position based, so NULL writes counted.&lt;br /&gt;&lt;br /&gt;I was just trying to figure out:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;How many times a given function was called.&lt;/li&gt;&lt;li&gt;At what position actual data occurred.&lt;/li&gt;&lt;/ol&gt;I created a stub function of the original offending function that logged to a file what # call this was and the data passed.  Then I copied the offending functions' caller and substituted offending function calls using this script, which quotes all passed parameters (note: already quoted parameters would need a little more work):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(106, 90, 205);"&gt;BEGIN&lt;/span&gt; {&lt;br /&gt;  &lt;span style="color: rgb(106, 90, 205);"&gt;OFS&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 255);"&gt;","&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;/repeated_function_name/&lt;/span&gt;{&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 64, 64);"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/span&gt;(i=&lt;span style="color: rgb(255, 0, 255);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(106, 90, 205);"&gt;;&lt;/span&gt; i&amp;lt;=&lt;span style="color: rgb(106, 90, 205);"&gt;NF&lt;/span&gt;&lt;span style="color: rgb(106, 90, 205);"&gt;;&lt;/span&gt; i++)&lt;br /&gt;  {&lt;br /&gt;      &lt;span style="color: rgb(128, 64, 64);"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt;(i==&lt;span style="color: rgb(255, 0, 255);"&gt;1&lt;/span&gt;)&lt;br /&gt;      {&lt;br /&gt;          &lt;span style="color: rgb(0, 128, 128);"&gt;sub&lt;/span&gt;(&lt;span style="color: rgb(255, 0, 255);"&gt;"[(]"&lt;/span&gt;&lt;span style="color: rgb(106, 90, 205);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(255, 0, 255);"&gt;"(&lt;/span&gt;&lt;span style="color: rgb(106, 90, 205);"&gt;\"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(106, 90, 205);"&gt;,&lt;/span&gt; $i)&lt;span style="color: rgb(106, 90, 205);"&gt;;&lt;/span&gt;&lt;br /&gt;      }&lt;br /&gt;      &lt;span style="color: rgb(128, 64, 64);"&gt;&lt;b&gt;else&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;      {&lt;br /&gt;          &lt;span style="color: rgb(0, 128, 128);"&gt;sub&lt;/span&gt;(&lt;span style="color: rgb(255, 0, 255);"&gt;"^[ ]*"&lt;/span&gt;&lt;span style="color: rgb(106, 90, 205);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(106, 90, 205);"&gt;\"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(106, 90, 205);"&gt;,&lt;/span&gt; $i)&lt;span style="color: rgb(106, 90, 205);"&gt;;&lt;/span&gt;&lt;br /&gt;      }&lt;br /&gt;      &lt;span style="color: rgb(128, 64, 64);"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt;(i==&lt;span style="color: rgb(106, 90, 205);"&gt;NF&lt;/span&gt;)&lt;br /&gt;      {&lt;br /&gt;          &lt;span style="color: rgb(0, 128, 128);"&gt;sub&lt;/span&gt;(&lt;span style="color: rgb(255, 0, 255);"&gt;"[)]"&lt;/span&gt;&lt;span style="color: rgb(106, 90, 205);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(255, 0, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(106, 90, 205);"&gt;\"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;)"&lt;/span&gt;&lt;span style="color: rgb(106, 90, 205);"&gt;,&lt;/span&gt; $i)&lt;span style="color: rgb(106, 90, 205);"&gt;;&lt;/span&gt;&lt;br /&gt;      }&lt;br /&gt;      &lt;span style="color: rgb(128, 64, 64);"&gt;&lt;b&gt;else&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;      {&lt;br /&gt;          &lt;span style="color: rgb(0, 128, 128);"&gt;sub&lt;/span&gt;(&lt;span style="color: rgb(255, 0, 255);"&gt;"[ ]*$"&lt;/span&gt;&lt;span style="color: rgb(106, 90, 205);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(255, 0, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(106, 90, 205);"&gt;\"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(106, 90, 205);"&gt;,&lt;/span&gt; $i)&lt;span style="color: rgb(106, 90, 205);"&gt;;&lt;/span&gt;&lt;br /&gt;      }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 64, 64);"&gt;&lt;b&gt;print&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(106, 90, 205);"&gt;$0&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 64, 64);"&gt;&lt;b&gt;next&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(106, 90, 205);"&gt;;&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;{ &lt;span style="color: rgb(128, 64, 64);"&gt;&lt;b&gt;print&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(106, 90, 205);"&gt;$0&lt;/span&gt;&lt;span style="color: rgb(106, 90, 205);"&gt;;&lt;/span&gt; }&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-9141820950018209263?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/9141820950018209263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=9141820950018209263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/9141820950018209263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/9141820950018209263'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2007/06/awk-script-to-quote-all-parameters-for.php' title='Awk script to quote all parameters for a given function name.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-6524163389390946000</id><published>2007-05-29T16:19:00.000-04:00</published><updated>2007-05-29T16:23:25.469-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='awk'/><title type='text'>Awk to split c functions into multiple files.</title><content type='html'>This, at present, is overly simplistic and makes many stupid assumptions:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;That the return type is short.&lt;/li&gt;&lt;li&gt;That there are no short global variables declared.&lt;/li&gt;&lt;li&gt;That everything is well-formatted so that the return type is always first column, and that there is a space between both function name and return type (as in, only spaces--no comments)  and function name and open parenthesis of the arg list.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;cat &lt;font color="#6a5acd"&gt;$1&lt;/font&gt; | awk '&lt;br /&gt;&lt;font color="#6a5acd"&gt;BEGIN&lt;/font&gt; {&lt;br /&gt;    functionNameFile=&lt;font color="#ff00ff"&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;font color="#6a5acd"&gt;;&lt;/font&gt;&lt;br /&gt;}&lt;br /&gt;&lt;font color="#ff00ff"&gt;/&lt;/font&gt;&lt;font color="#6a5acd"&gt;^&lt;/font&gt;&lt;font color="#ff00ff"&gt;short/&lt;/font&gt; {&lt;br /&gt;    &lt;font color="#ff00ff"&gt;/&lt;/font&gt;&lt;font color="#6a5acd"&gt;*&lt;/font&gt;&lt;font color="#ff00ff"&gt; assumes return type of short &lt;/font&gt;&lt;font color="#6a5acd"&gt;*&lt;/font&gt;&lt;font color="#ff00ff"&gt;/&lt;/font&gt;&lt;br /&gt;    &lt;font color="#ff00ff"&gt;/&lt;/font&gt;&lt;font color="#6a5acd"&gt;*&lt;/font&gt;&lt;font color="#ff00ff"&gt; assumes space between return type, function name, and parm list &lt;/font&gt;&lt;font color="#6a5acd"&gt;*&lt;/font&gt;&lt;font color="#ff00ff"&gt;/&lt;/font&gt;&lt;br /&gt;    functionNameFile=&lt;font color="#6a5acd"&gt;$2&lt;/font&gt;.&lt;font color="#ff00ff"&gt;&amp;quot;.c&amp;quot;&lt;/font&gt;&lt;font color="#6a5acd"&gt;;&lt;/font&gt;&lt;br /&gt;    &lt;font color="#804040"&gt;&lt;b&gt;print&lt;/b&gt;&lt;/font&gt; &lt;font color="#6a5acd"&gt;$0&lt;/font&gt; &amp;gt; functionNameFile&lt;font color="#6a5acd"&gt;;&lt;/font&gt;&lt;br /&gt;}&lt;br /&gt;&lt;font color="#ff00ff"&gt;/&lt;/font&gt;&lt;font color="#6a5acd"&gt;^&lt;/font&gt;&lt;font color="#6a5acd"&gt;\}&lt;/font&gt;&lt;font color="#ff00ff"&gt;/&lt;/font&gt; {&lt;br /&gt;    &lt;font color="#804040"&gt;&lt;b&gt;print&lt;/b&gt;&lt;/font&gt; &lt;font color="#6a5acd"&gt;$0&lt;/font&gt; &amp;gt;&amp;gt; functionNameFile&lt;font color="#6a5acd"&gt;;&lt;/font&gt;&lt;br /&gt;    functionNameFile=&lt;font color="#ff00ff"&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;font color="#6a5acd"&gt;;&lt;/font&gt;&lt;br /&gt;    &lt;font color="#804040"&gt;&lt;b&gt;next&lt;/b&gt;&lt;/font&gt;&lt;font color="#6a5acd"&gt;;&lt;/font&gt;&lt;br /&gt;}&lt;br /&gt;{&lt;br /&gt;    &lt;font color="#804040"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt;(functionNameFile    != &lt;font color="#ff00ff"&gt;&amp;quot;&amp;quot;&lt;/font&gt;) {&lt;br /&gt;        &lt;font color="#804040"&gt;&lt;b&gt;print&lt;/b&gt;&lt;/font&gt; &lt;font color="#6a5acd"&gt;$0&lt;/font&gt; &amp;gt;&amp;gt; functionNameFile&lt;font color="#6a5acd"&gt;;&lt;/font&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;'&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-6524163389390946000?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/6524163389390946000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=6524163389390946000' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6524163389390946000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6524163389390946000'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2007/05/awk-to-split-c-functions-into-multiple.php' title='Awk to split c functions into multiple files.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-3468812514750452747</id><published>2007-05-29T12:52:00.000-04:00</published><updated>2007-05-29T12:55:27.486-04:00</updated><title type='text'>Windows Vista problems resticting GNU GCC apps to 32MB</title><content type='html'>Disturbing to see this come about:&lt;br /&gt;&lt;a href="http://www.trnicely.net/misc/vista.html"&gt;Windows Vista problems resticting GNU GCC apps to 32MB&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Buried in the footnotes is a note about a response supposedly coming from a Microsoft representative saying, "now that people are asking for this, we are planning to fix..."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-3468812514750452747?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/3468812514750452747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=3468812514750452747' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/3468812514750452747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/3468812514750452747'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2007/05/windows-vista-problems-resticting-gnu.php' title='Windows Vista problems resticting GNU GCC apps to 32MB'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-4231333832579242266</id><published>2007-04-26T09:15:00.000-04:00</published><updated>2007-04-26T09:18:33.285-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='awk'/><title type='text'>(g)awk script to remove last dir from PATH</title><content type='html'>This script chops off the last dir off of the PATH (still need to assign back to PATH)&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;echo&lt;/b&gt;&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#a020f0"&gt;$PATH&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;|&lt;/b&gt;&lt;/font&gt; gawk &lt;font color="#6a5acd"&gt;-F&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;'&lt;/b&gt;&lt;/font&gt;&lt;font color="#ff00ff"&gt;:&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;'&lt;/b&gt;&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;'&lt;/b&gt;&lt;/font&gt;&lt;font color="#ff00ff"&gt;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#6a5acd"&gt;    &lt;/font&gt;&lt;font color="#ff00ff"&gt;for(i=1; i&amp;lt;NF; i++) {&lt;/font&gt;&lt;br /&gt;&lt;font color="#6a5acd"&gt;        &lt;/font&gt;&lt;font color="#ff00ff"&gt;if(i) {&lt;/font&gt;&lt;br /&gt;&lt;font color="#6a5acd"&gt;            &lt;/font&gt;&lt;font color="#ff00ff"&gt;printf (&amp;quot;:&amp;quot;);&lt;/font&gt;&lt;br /&gt;&lt;font color="#6a5acd"&gt;        &lt;/font&gt;&lt;font color="#ff00ff"&gt;}&lt;/font&gt;&lt;font color="#6a5acd"&gt; &lt;/font&gt;&lt;br /&gt;&lt;font color="#6a5acd"&gt;        &lt;/font&gt;&lt;font color="#ff00ff"&gt;printf(&amp;quot;%s&amp;quot;, $i);&lt;/font&gt;&lt;br /&gt;&lt;font color="#6a5acd"&gt;    &lt;/font&gt;&lt;font color="#ff00ff"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ff00ff"&gt;}&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;'&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-4231333832579242266?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/4231333832579242266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=4231333832579242266' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4231333832579242266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4231333832579242266'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2007/04/gawk-script-to-remove-last-dir-from.php' title='(g)awk script to remove last dir from PATH'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-8579043276524823298</id><published>2007-04-17T09:59:00.000-04:00</published><updated>2007-04-17T10:02:45.483-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Writing an onLoad function that includes a delay.</title><content type='html'>This code was written out of desperation when I could not use an embedded APPLET's isActive() function to check if the APPLET was loaded.  Instead, I waited for 500 milliseconds.  Hopefully, there are better uses for this code.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style='color: #000000'&gt;&lt;b&gt;&amp;lt;SCRIPT&amp;gt;&lt;br /&gt;&lt;br /&gt;function&lt;/b&gt; OnLoadFunction(milliseconds_time)&lt;br /&gt;{&lt;br /&gt; &lt;/span&gt;&lt;span style='color: #800000'&gt;setTimeout&lt;/span&gt;&lt;span style='color: #000000'&gt;(&lt;/span&gt;&lt;span style='color: #ff0000'&gt;"delayedOnLoadFunction()"&lt;/span&gt;&lt;span style='color: #000000'&gt;, milliseconds_time);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;function&lt;/b&gt; delayedOnLoadFunction()&lt;br /&gt;{&lt;br /&gt; &lt;/span&gt;&lt;span style='color: #808080'&gt;&lt;i&gt;/* Function body */&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style='color: #000000'&gt;}&lt;br /&gt;&lt;b&gt;&amp;lt;/SCRIPT&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;body&lt;/b&gt;&lt;/span&gt;&lt;span style='color: #008000'&gt; onLoad&lt;/span&gt;&lt;span style='color: #000000'&gt;=&lt;/span&gt;&lt;span style='color: #800000'&gt;"OnLoadFunction(500)"&lt;/span&gt;&lt;span style='color: #000000'&gt;&lt;b&gt;&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-8579043276524823298?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/8579043276524823298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=8579043276524823298' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8579043276524823298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8579043276524823298'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2007/04/writing-onload-function-that-includes.php' title='Writing an onLoad function that includes a delay.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-4871557703087829857</id><published>2007-03-29T09:12:00.000-04:00</published><updated>2007-03-29T09:42:43.128-04:00</updated><title type='text'>Insert archive parameter into HTML applet tag.</title><content type='html'>Under Linux:&lt;br /&gt;This code, named replace_applet.sh, adds a archive parameter (classes.jar) to all applet tags for *.htm files in a directory.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color: #cc00cc;"&gt;ls&lt;/span&gt;&lt;span style="color: #000000;"&gt; *.htm &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;|&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;while&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;color: #880088;"&gt;read&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008000;"&gt;x&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;color: #cc00cc;"&gt;cat&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008000;"&gt;$x&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;|&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;color: #cc00cc;"&gt;sed&lt;/span&gt;&lt;span style="color: #000000;"&gt; -e &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #dd0000;"&gt;/&amp;lt;APPLET/ {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #dd0000;"&gt; s/&amp;lt;APPLET /&amp;lt;APPLET archive="classes.jar"/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #dd0000;"&gt;}'&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;color: #223388;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008000;"&gt;$x&lt;/span&gt;&lt;span style="color: #000000;"&gt;.&lt;/span&gt;&lt;span style="color: #008000;"&gt;$$&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;color: #cc00cc;"&gt;cp&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008000;"&gt;$x&lt;/span&gt;&lt;span style="color: #000000;"&gt;.&lt;/span&gt;&lt;span style="color: #008000;"&gt;$$&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008000;"&gt;$x&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;color: #cc00cc;"&gt;rm&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008000;"&gt;$x&lt;/span&gt;&lt;span style="color: #000000;"&gt;.&lt;/span&gt;&lt;span style="color: #008000;"&gt;$$&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-4871557703087829857?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/4871557703087829857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=4871557703087829857' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4871557703087829857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/4871557703087829857'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2007/03/insert-archive-parameter-into-html.php' title='Insert archive parameter into HTML applet tag.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-1911756412512138089</id><published>2007-03-15T09:52:00.000-04:00</published><updated>2007-03-15T09:57:19.466-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HelloWorld'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Mono'/><title type='text'>C# tutorials, Mono and .NET - Hello World</title><content type='html'>&lt;a href="http://www.mono-project.com/GtkSharp:_Hello_World"&gt;GtkSharp: Hello World&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.c-sharpcorner.com/UploadFile/mercy_gp/HelloWorld11152005051702AM/HelloWorld.aspx"&gt;Hello World in Different Styles&lt;/a&gt; - mainly console output.&lt;br /&gt;&lt;a href="http://www.developerfusion.co.uk/show/1770/2/"&gt;The Hello World Application&lt;/a&gt; Windows Forms example from &lt;span style="font-style:italic;"&gt;C# and the .NET Framework&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-1911756412512138089?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/1911756412512138089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=1911756412512138089' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/1911756412512138089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/1911756412512138089'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2007/03/c-tutorials-mono-and-net-hello-world.php' title='C# tutorials, Mono and .NET - Hello World'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-925371538978297393</id><published>2007-02-16T22:23:00.000-05:00</published><updated>2007-02-16T22:36:02.837-05:00</updated><title type='text'>Java:  Preventing a child window's close operation from exiting the app.</title><content type='html'>I included a second JFrame in NetBeans, which I used as a child window.  When the child window was closed, all windows were closed.  I finally figured out that the default close operation needed to be either HIDE_ON_CLOSE or DISPOSE_ON_CLOSE.  The default in Java is HIDE_ON_CLOSE, but in NetBeans is EXIT_ON_CLOSE.&lt;br /&gt;&lt;br /&gt;I first changed this property in the main window code that invokes the child window, but then I looked at the Properties page for the child window.  "defaultCloseOperation" is the first property.  "DISPOSE" can be selected here.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;From &lt;a href="http://java.sun.com/j2se/1.3/docs/api/javax/swing/JFrame.html#setDefaultCloseOperation%28int%29"&gt;Sun Java Documentation&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;h3&gt; setDefaultCloseOperation&lt;/h3&gt; &lt;pre&gt;public void &lt;b&gt;setDefaultCloseOperation&lt;/b&gt;(int operation)&lt;/pre&gt; &lt;dl&gt;&lt;dd&gt;Sets the operation that will happen by default when  the user initiates a "close" on this frame.  You must specify one of the following choices:  &lt;p&gt;  &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;DO_NOTHING_ON_CLOSE&lt;/code&gt;  (defined in &lt;code&gt;WindowConstants&lt;/code&gt;):  Don't do anything; require the  program to handle the operation in the &lt;code&gt;windowClosing&lt;/code&gt;  method of a registered &lt;code&gt;WindowListener&lt;/code&gt; object.   &lt;/li&gt;&lt;li&gt;&lt;code&gt;HIDE_ON_CLOSE&lt;/code&gt;  (defined in &lt;code&gt;WindowConstants&lt;/code&gt;):  Automatically hide the frame after  invoking any registered &lt;code&gt;WindowListener&lt;/code&gt;  objects.   &lt;/li&gt;&lt;li&gt;&lt;code&gt;DISPOSE_ON_CLOSE&lt;/code&gt;  (defined in &lt;code&gt;WindowConstants&lt;/code&gt;):  Automatically hide and dispose the   frame after invoking any registered &lt;code&gt;WindowListener&lt;/code&gt;  objects.   &lt;/li&gt;&lt;li&gt;&lt;code&gt;EXIT_ON_CLOSE&lt;/code&gt;  (defined in &lt;code&gt;JFrame&lt;/code&gt;):  Exit the application using the &lt;code&gt;System&lt;/code&gt; &lt;code&gt;exit&lt;/code&gt; method.  Use this only in applications.  &lt;/li&gt;&lt;/ul&gt;  &lt;p&gt;  The value is set to &lt;code&gt;HIDE_ON_CLOSE&lt;/code&gt; by default.&lt;/p&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-925371538978297393?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/925371538978297393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=925371538978297393' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/925371538978297393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/925371538978297393'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2007/02/java-preventing-child-windows-close.php' title='Java:  Preventing a child window&apos;s close operation from exiting the app.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-3091642997941799703</id><published>2007-02-14T22:13:00.000-05:00</published><updated>2007-02-14T22:14:41.514-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><title type='text'>Link to Random Image Password Generation</title><content type='html'>&lt;a href="http://captchas.net/sample/php/"&gt;Captchas.net&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-3091642997941799703?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/3091642997941799703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=3091642997941799703' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/3091642997941799703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/3091642997941799703'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2007/02/link-to-random-image-password.php' title='Link to Random Image Password Generation'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-8366368103188804334</id><published>2007-02-10T18:26:00.000-05:00</published><updated>2007-04-17T10:13:45.035-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jni'/><title type='text'>Reducing redundant code by wrapping JNI functions.</title><content type='html'>My HelloWorldNative.c, with the "nativePrintObject" function reduced by wrapping the object and integer field retrieval:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;JNIEXPORT &lt;/span&gt;&lt;span style="color: #800000;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; JNICALL Java_helloworld_Main_nativePrintObject(JNIEnv *env, jobject ths, jobject wsv)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; jint ipAddress;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; jstring jPageVisited;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *pageVisited;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; jstring jRefererURL;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *refererURL;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; jobject ipObject;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; ipAddress = getIntegerField(env, wsv, &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"ipAddress"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; printf(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"  wsv.ipAddress = %d.%d.%d.%d&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;\n&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;     ( ipAddress &amp;amp; &lt;/span&gt;&lt;span style="color: #008080;"&gt;0xff000000&lt;/span&gt;&lt;span style="color: #000000;"&gt; ) &amp;gt;&amp;gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;24&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;     ( ipAddress &amp;amp;amp; &lt;/span&gt;&lt;span style="color: #008080;"&gt;0x00ff0000&lt;/span&gt;&lt;span style="color: #000000;"&gt; ) &amp;gt;&amp;gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;16&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;     ( ipAddress &amp;amp; &lt;/span&gt;&lt;span style="color: #008080;"&gt;0x0000ff00&lt;/span&gt;&lt;span style="color: #000000;"&gt; ) &amp;gt;&amp;gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;8&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;     ipAddress &amp;amp;amp;amp;amp; &lt;/span&gt;&lt;span style="color: #008080;"&gt;0x000000ff&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(!(jPageVisited = getStringField(env, wsv, &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"pageVisited"&lt;/span&gt;&lt;span style="color: #000000;"&gt;))) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;     &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; pageVisited = (*env)-&amp;gt;GetStringUTFChars(env, jPageVisited, &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(!pageVisited) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;     &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; printf(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"  wsv.pageVisted = %s&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;\n&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, pageVisited);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; (*env)-&amp;gt;ReleaseStringUTFChars(env, jPageVisited, pageVisited);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(!(jRefererURL = getStringField(env, wsv, &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"refererURL"&lt;/span&gt;&lt;span style="color: #000000;"&gt;))) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;     &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(!(refererURL = (*env)-&amp;gt;GetStringUTFChars(env, jRefererURL, &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;))) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;     &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; printf(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"  wsv.refererURL = %s&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;\n&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, refererURL);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; (*env)-&amp;gt;ReleaseStringUTFChars(env, jRefererURL, refererURL);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(!(ipObject = getObjectField(env, wsv, &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"ipAddr"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"helloworld"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"IPAddress"&lt;/span&gt;&lt;span style="color: #000000;"&gt;))) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;     &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; printf(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"  wsv.ipAddr = %d.%d.%d.%d&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;\n&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;     getIntegerField(env, ipObject, &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"byte1"&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;     getIntegerField(env, ipObject, &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"byte2"&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;     getIntegerField(env, ipObject, &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"byte3"&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;     getIntegerField(env, ipObject, &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"byte4"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt; );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;jniUtils.h, the header for the JNI wrapper:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;* File:   jniUtils.h&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;* Author: thomas&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;* Created on February 10, 2007, 5:30 PM&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;jni.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#ifndef _jniUtils_H&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#define _jniUtils_H&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#ifdef __cplusplus&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;extern&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"C"&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#endif&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;jint getIntegerField(JNIEnv *env, jobject ths, &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *fieldName);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800000;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; putIntegerField(JNIEnv *env, jobject ths, &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *fieldName, jint ji);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;jstring getStringField(JNIEnv *env, jobject ths, &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *fieldName);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;jobject getObjectField(JNIEnv *env, jobject ths, &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *fieldName,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *objectPackage, &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *objectClass);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#ifdef __cplusplus&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#endif&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#endif &lt;/span&gt;&lt;span style="font-style: italic;color: #808080;"&gt;/* _jniUtils_H */&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;jniUtils.c, the wrapper for the JNI C interface.  Note that not all types have been implemented.  Also, error checking may not be performed in all scenarios.  See that the "signature" for objects is broken up into package and class name.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;string.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include "jniUtils.h"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;jint getIntegerField(JNIEnv *env, jobject ths, &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *fieldName)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   jclass c;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   jfieldID fid;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   c = (*env)-&amp;gt;GetObjectClass(env, ths);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   fid = (*env)-&amp;gt;GetFieldID(env, c, fieldName, &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"I"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; (*env)-&amp;gt;GetIntField(env, ths, fid);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #800000;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; putIntegerField(JNIEnv *env, jobject ths, &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *fieldName, jint ji)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   jclass c;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   jfieldID fid;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   c = (*env)-&amp;gt;GetObjectClass(env, ths);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   fid = (*env)-&amp;gt;GetFieldID(env, c, fieldName, &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"I"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   (*env)-&amp;gt;SetIntField(env, ths, fid, ji);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;jstring getStringField(JNIEnv *env, jobject ths, &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *fieldName)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   jclass c;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   jfieldID fid;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; (jstring) getObjectField(env, ths, fieldName, &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"java/lang"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"String"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;jobject getObjectField(JNIEnv *env, jobject ths, &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *fieldName,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *objectPackage, &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *objectClass)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *objectSignature;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   jclass c;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   jfieldID fid;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   jobject objectField = &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   objectSignature = (&lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *) malloc(strlen(objectPackage) + strlen(objectClass) + &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   strcpy(objectSignature, &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"L"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   strcat(objectSignature, objectPackage);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   strcat(objectSignature, &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"/"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   strcat(objectSignature, objectClass);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   strcat(objectSignature, &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;";"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   c = (*env)-&amp;gt;GetObjectClass(env, ths);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   fid = (*env)-&amp;gt;GetFieldID(env, c, fieldName, objectSignature);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(!fid) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;       &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   objectField = (*env)-&amp;gt;GetObjectField(env, ths, fid);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   free(objectSignature);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; objectField;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-8366368103188804334?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/8366368103188804334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=8366368103188804334' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8366368103188804334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/8366368103188804334'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2007/02/reducing-redundant-code-by-wrapping-jni.php' title='Reducing redundant code by wrapping JNI functions.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28160416.post-6966372731108417480</id><published>2007-02-10T16:51:00.000-05:00</published><updated>2007-02-10T15:59:02.067-05:00</updated><title type='text'>Passing an object including java Objects to a C library.</title><content type='html'>Very similar to including Java Strings:&lt;br /&gt;The passed object, WebSiteVisit:&lt;br /&gt;&lt;pre&gt;package helloworld;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;*&lt;br /&gt;* @author thomas&lt;br /&gt;*/&lt;br /&gt;public class WebSiteVisit {&lt;br /&gt; /** URL of the web page that linked user to this one */&lt;br /&gt; public String refererURL;&lt;br /&gt; public String pageVisited;&lt;br /&gt; public int ipAddress;&lt;br /&gt; IPAddress ipAddr;&lt;br /&gt;&lt;br /&gt; /** Creates a new instance of WebSiteVisit */&lt;br /&gt; public WebSiteVisit() {&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public WebSiteVisit(String referer, String page, int ip) {&lt;br /&gt;     this.refererURL = referer;&lt;br /&gt;     this.ipAddress = ip;&lt;br /&gt;     this.pageVisited = page;&lt;br /&gt;     this.ipAddr = new IPAddress(ip);&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;The embedded object, IPAddress:&lt;br /&gt;&lt;pre&gt;package helloworld;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;*&lt;br /&gt;* @author thomas&lt;br /&gt;*/&lt;br /&gt;public class IPAddress {&lt;br /&gt;  public int byte1, byte2, byte3, byte4;&lt;br /&gt;  /** Creates a new instance of IPAddress */&lt;br /&gt;  public IPAddress() {&lt;br /&gt;  }&lt;br /&gt;  public IPAddress(int address) {&lt;br /&gt;      byte1 = (address &amp; 0xff000000) &gt;&gt; 24;&lt;br /&gt;      byte2 = (address &amp; 0x00ff0000) &gt;&gt; 16;&lt;br /&gt;      byte3 = (address &amp; 0x0000ff00) &gt;&gt; 8;&lt;br /&gt;      byte4 =  address &amp; 0x000000ff;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;The C source to the dynamic library, including the IPAddress object access.&lt;br /&gt;&lt;pre&gt;JNIEXPORT void JNICALL Java_helloworld_Main_nativePrintNumber&lt;br /&gt; (JNIEnv *env, jobject obj, jint ji)&lt;br /&gt;{&lt;br /&gt;   jfieldID fid;&lt;br /&gt;   jint version;&lt;br /&gt;   jclass c;&lt;br /&gt;   c = (*env)-&gt;GetObjectClass(env, obj);&lt;br /&gt;   fid = (*env)-&gt;GetFieldID(env, c, "version_number", "I");&lt;br /&gt;   version = (*env)-&gt;GetIntField(env, obj, fid);&lt;br /&gt;   (*env)-&gt;SetIntField(env, obj, fid, ji*ji);&lt;br /&gt;   printf("::: %d, %d\n", fid, version);&lt;br /&gt;   hello_number(ji);&lt;br /&gt;}&lt;br /&gt;JNIEXPORT void JNICALL Java_helloworld_Main_nativePrintObject&lt;br /&gt; (JNIEnv *env, jobject ths, jobject wsv)&lt;br /&gt;{&lt;br /&gt;   jfieldID fid;&lt;br /&gt;   jint ipAddress;&lt;br /&gt;   jstring jPageVisited;&lt;br /&gt;   char *pageVisited;&lt;br /&gt;   jstring jRefererURL;&lt;br /&gt;   char *refererURL;&lt;br /&gt;   jclass c;&lt;br /&gt;   jobject ipObject;&lt;br /&gt;   jclass ipObjectClass;&lt;br /&gt;   jint byte1, byte2, byte3, byte4;&lt;br /&gt;  &lt;br /&gt;   c = (*env)-&gt;GetObjectClass(env, wsv);&lt;br /&gt;&lt;br /&gt;   .&lt;br /&gt;   .&lt;br /&gt;   .&lt;br /&gt;  &lt;br /&gt;   fid = (*env)-&gt;GetFieldID(env, c, "ipAddr", "Lhelloworld/IPAddress;");&lt;br /&gt;   if(!fid) {&lt;br /&gt;       return;&lt;br /&gt;   }&lt;br /&gt;   ipObject = (*env)-&gt;GetObjectField(env, wsv, fid);&lt;br /&gt;   ipObjectClass = (*env)-&gt;GetObjectClass(env, ipObject);&lt;br /&gt;  &lt;br /&gt;   fid = (*env)-&gt;GetFieldID(env, ipObjectClass, "byte1", "I");&lt;br /&gt;   byte1 = (*env)-&gt;GetIntField(env, ipObject, fid);&lt;br /&gt;  &lt;br /&gt;   fid = (*env)-&gt;GetFieldID(env, ipObjectClass, "byte2", "I");&lt;br /&gt;   byte2 = (*env)-&gt;GetIntField(env, ipObject, fid);&lt;br /&gt;&lt;br /&gt;   fid = (*env)-&gt;GetFieldID(env, ipObjectClass, "byte3", "I");&lt;br /&gt;   byte3 = (*env)-&gt;GetIntField(env, ipObject, fid);&lt;br /&gt;  &lt;br /&gt;   fid = (*env)-&gt;GetFieldID(env, ipObjectClass, "byte4", "I");&lt;br /&gt;   byte4 = (*env)-&gt;GetIntField(env, ipObject, fid);&lt;br /&gt;&lt;br /&gt;   printf("wsv.ipAddr = %d.%d.%d.%d\ns", byte1, byte2, byte3, byte4);&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28160416-6966372731108417480?l=devtp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devtp.blogspot.com/feeds/6966372731108417480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28160416&amp;postID=6966372731108417480' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6966372731108417480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28160416/posts/default/6966372731108417480'/><link rel='alternate' type='text/html' href='http://devtp.blogspot.com/2007/02/passing-object-including-java-objects.php' title='Passing an object including java Objects to a C library.'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/08347962976730903449</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
