<?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-569768729436997146</id><updated>2012-02-16T20:44:21.841-08:00</updated><category term='SharePoint'/><category term='Software'/><category term='Web Routines'/><category term='Hardware'/><category term='Memories'/><category term='Life'/><category term='Hosting'/><category term='Endorsements'/><category term='Ideas'/><category term='Hack'/><category term='Fix'/><category term='Telemarketing'/><title type='text'>a a d h o c</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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>41</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-569768729436997146.post-5028872471879967725</id><published>2010-05-28T20:22:00.000-07:00</published><updated>2010-05-28T20:38:41.957-07:00</updated><title type='text'>Cryptographic failure while signing assembly -- Unknown error (8013141c)</title><content type='html'>My Visual Studio 2008 project built fine a few weeks ago, now every time I compile it, I receive this error:&lt;br /&gt;&lt;br /&gt;Cryptographic failure while signing assembly 'MyAssembly.dll' -- 'Unknown error (8013141c)'&lt;br /&gt;&lt;br /&gt;&lt;a href="http://techblog.ranjanbanerji.com/post/2008/10/07/error-CS1548-Cryptographic-failure-while-signing-assembly-Unknown-error-%288013141c%29.aspx"&gt;This post&lt;/a&gt; helped the most, and brought me to the answer.&lt;br /&gt;&lt;br /&gt;My twist on the solution is as follows:&lt;br /&gt;&lt;br /&gt;1) I use 64 bit Windows 7 (though it should be the same for Windows Vista, and 32 bit)&lt;br /&gt;2) I needed to change security on directory:&lt;br /&gt;       C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys&lt;br /&gt;3) I added my user name, with the following minimum "Advanced" set of permissions:&lt;br /&gt;       * Create files / write data&lt;br /&gt;       * Create folders / append data&lt;br /&gt;       * Write attributes&lt;br /&gt;       * Write extended attributes&lt;br /&gt;       * Delete&lt;br /&gt;4) After hitting apply, I had to accept that 5 directories were "Access is denied"&lt;br /&gt;&lt;br /&gt;The project then built successfully. Any fewer permissions, and the error reoccurred.&lt;br /&gt;&lt;br /&gt;According to blogger's consensus, a Windows Update broke the permissions on that directory. I'm using a domain account in the local Administrators group which has "Full Control" so I don't understand why I had to do this at all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-5028872471879967725?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/5028872471879967725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=5028872471879967725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/5028872471879967725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/5028872471879967725'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2010/05/cryptographic-failure-while-signing.html' title='Cryptographic failure while signing assembly -- Unknown error (8013141c)'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-7270619761092766314</id><published>2010-01-19T12:48:00.000-08:00</published><updated>2010-01-19T13:27:53.349-08:00</updated><title type='text'>WCF Service 401 Intermittent Error (Solution)</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Summary:&lt;/span&gt;&lt;br /&gt;For a WCF service running on IIS7, the entire service may become inaccessible reporting an HTTP 401 error on every web access, even the main /Service.svc/ and /Service.svc/help URLs. The problem may be that the web.config's &lt;span style="color: rgb(204, 0, 0);"&gt;aspNetCompatibilityEnabled must be set to "false"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Scenario A (works):&lt;/span&gt;&lt;br /&gt;1) web.config / aspNetCompatibilityEnabled="true"&lt;br /&gt;2) iisreset&lt;br /&gt;3) Issue GET request, success (200) (Agent w3wp.exe appears in Task Manager)&lt;br /&gt;4) Issue PUT request, success (200)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Scenario B (fails):&lt;/span&gt;&lt;br /&gt;1) web.config / aspNetCompatibilityEnabled="true"&lt;br /&gt;2) iisreset&lt;br /&gt;3) Issue GET request, success (200) (Agent w3wp.exe appears in Task Manager)&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(153, 0, 0);"&gt;3b) Wait 25 minutes (assuming app pool is set to recycle agents after 20 minutes, or do iisreset, agent w3wp.exe disappears from Task Manager)&lt;/span&gt;&lt;br /&gt;4) Issue PUT request, failure (401) (See Attachment A below)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution:&lt;/span&gt;&lt;br /&gt; If at all possible, change your Service's web.config setting aspNetCompatibilityEnabled="false" Even if your app needs it to be true, make the change and redo the test to see if you get by the 401 error. Luckily, my service wasn't using any compatibility features, so I could remove this template default value from my WCF service. This behavior appears to be a bug to me.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The repeatable problem:&lt;/span&gt;&lt;br /&gt;When the IIS app pool agent (w3wp.exe) is not running, if a PUT request comes through first, the service will fail with an HTTP 401, and all endpoints of the service will become completely unusable. An iisreset will fix the problem temporarily, but again if the service agent becomes idle for long enough, you may be unluckly enough that a PUT may be the first hit. If a GET is the first hit to the new (or recycled) agent, then the PUT (and other) requests will work properly.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Checking for recycled agent:&lt;/span&gt;&lt;br /&gt;1) You could look for that service's w3wp.exe in the task list. Be warned that if you have more than one site/service on that machine they will all look the same.&lt;br /&gt;2) An easy way to determine the first hit on an IIS agent is to look at the IIS log file. The headers are added to the log file when the agent starts up. If the first HTTP hit below the header is unexplicably a 401 (but that hit worked before), then you may have this problem.&lt;br /&gt;3) You could check the "System" event log, it will have an Informational "WAS" event saying: "A worker process with process id of 'NNN' serving application pool 'MyService' was shutdown due to inactivity.  Application Pool timeout configuration was set to 20 minutes.  A new worker process will be started when needed."&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Attachment A: Resulting error&lt;/span&gt;&lt;br /&gt;&lt;H2&gt;Access is denied.&lt;/H2&gt;&lt;style&gt;          body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;}           p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}          b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}          H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }          H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }          pre {font-family:"Lucida Console";font-size: .9em}          .marker {font-weight: bold; color: black;text-decoration: none;}          .version {color: gray;}          .error {margin-bottom: 10px;}          .expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }         &lt;/style&gt;&lt;span&gt; &lt;h1&gt;Server Error in '/' Application. &lt;hr color="silver" size="1" width="100%"&gt; &lt;/h1&gt; &lt;h2&gt;&lt;i&gt;Access is denied.&lt;/i&gt; &lt;/h2&gt;&lt;/span&gt;&lt;span style="font-family:Arial, Helvetica, Geneva, SunSans-Regular, sans-serif ;"&gt;&lt;b&gt;Description:  &lt;/b&gt;An error occurred while accessing the resources required to serve this  request. You might not have permission to view the requested resources. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Error message 401.3: &lt;/b&gt;You do not have permission to view this  directory or page using the credentials you supplied (access denied due to  Access Control Lists). Ask the Web server's administrator to give you access to  'C:\inetpub\MyService\Service.svc'.&lt;br /&gt;&lt;br /&gt;&lt;hr color="silver" size="1" width="100%"&gt; &lt;b&gt;Version Information:&lt;/b&gt; Microsoft .NET Framework Version:2.0.50727.4927;  ASP.NET Version:2.0.50727.4927 &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-7270619761092766314?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/7270619761092766314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=7270619761092766314' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/7270619761092766314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/7270619761092766314'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2010/01/wcf-service-401-intermittent-error.html' title='WCF Service 401 Intermittent Error (Solution)'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-7517538896712792710</id><published>2009-03-13T12:55:00.000-07:00</published><updated>2009-03-13T13:00:58.997-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Telemarketing'/><title type='text'>Automotive Warranty scam</title><content type='html'>I've been receiving phone calls from these caller-ID numbers recently, claiming to have important information about my automotive warranty. They clearly are not my car's manufacturer, and similar scams are being reported elsewhere. These types of offers have arrived in postal mail for a while.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Do NOT fall for their sales pitches. They want to pretend to be a company you already deal with, and sell you expensive and questionable extended warranties under false pretenses.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I wanted to put these phone numbers on the net to help anyone searching for them from their caller id:&lt;br /&gt;&lt;br /&gt;1-062-233-4418&lt;br /&gt;1-062-226-3618&lt;br /&gt;1-062-291-1712&lt;br /&gt;&lt;br /&gt;Be warned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-7517538896712792710?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/7517538896712792710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=7517538896712792710' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/7517538896712792710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/7517538896712792710'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2009/03/automotive-warranty-scam.html' title='Automotive Warranty scam'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-1587425915383734043</id><published>2009-02-19T12:35:00.000-08:00</published><updated>2009-02-19T13:35:37.299-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Copy content types Across Farms (SharePoint)</title><content type='html'>&lt;a href="http://msdn.microsoft.com/en-us/library/ms472236.aspx"&gt;Content Types&lt;/a&gt; in SharePoint can be very useful, and can be created by manually by users or automatically by various products or procedures. In one case, content types may be created automatically during a migration of content from CMS to SharePoint MOSS 2007 publishing server. Regardless of where they came from, they can be copied from one site to another, even moved across farms.&lt;br /&gt;&lt;br /&gt;Under most circumstances, &lt;a href="http://stsadm.blogspot.com/"&gt;Gary Lapointe's stsadm extensions&lt;/a&gt; can be used to help automate the process. He has operations for &lt;a href="http://stsadm.blogspot.com/2007/08/copy-content-types.html"&gt;copying content types between sites in the same farm&lt;/a&gt;, for &lt;a href="http://stsadm.blogspot.com/2008/05/propagate-content-type-changes.html"&gt;propogating content types&lt;/a&gt; and for &lt;a href="http://stsadm.blogspot.com/2008/02/export-content-types.html"&gt;exporting content types from a site&lt;/a&gt;. Strangely there is no import content types, which would have enabled cross-farm content type copying.&lt;br /&gt;&lt;br /&gt;To copy content types across farms, you'll need to do the &lt;a href="http://stsadm.blogspot.com/2008/02/export-content-types.html"&gt;gl-exportcontenttypes&lt;/a&gt; and then create a SharePoint feature that adds them to your site collection, site, ... whatever. If you don't want to install &lt;a href="http://stsadm.blogspot.com/"&gt;Gary Lapointe's stsadm extensions&lt;/a&gt;, you'll need to use his source code to write a console application that does the same thing. If you have the console application, you can drop it onto your source server (no install needed) and do the export.&lt;br /&gt;&lt;br /&gt;For the export, I used the following flags:&lt;br /&gt;url = http://hostname&lt;br /&gt;contentTypeGroup = "Custom Content Types"&lt;br /&gt;contentTypeName = null&lt;br /&gt;excludeParentFields = false&lt;br /&gt;includeFieldDefinitions = true&lt;br /&gt;includeListBindings = false&lt;br /&gt;listName = null&lt;br /&gt;removeEncodedSpaces = false&lt;br /&gt;featureSafe = true&lt;br /&gt;outputFile = "ctypes.xml"&lt;br /&gt;&lt;br /&gt;Once I had my output (ctypes.xml), I had to remove any &lt;customization&gt;...&lt;/customization&gt; tag pairs. For some reason they were included in some of the field definitions (site columns) associated with the exported content types. I don't know what the ultimate effect of this is, but it didn't matter to me in this case, and it worked without it.&lt;br /&gt;&lt;br /&gt;The structure of the ctypes.xml file should look like this (values removed):&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&amp;lt;elements xmlns="http://schemas.microsoft.com/sharepoint/"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&amp;lt;field id=" Name="" sourceid=" StaticName="" group=" RowOrdinal="" type=" DisplayName="" readonly=" Sealed="" colname=" PITarget="" piattribute=" /"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;[...]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&amp;lt;contenttype id=" Name="" group=" Version=""&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&amp;lt;folder targetname=" /"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&amp;lt;fieldrefs&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&amp;lt;fieldref id=" Name=""&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&amp;lt;fieldref id=" Name=""&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&amp;lt;/fieldrefs&amp;gt;&amp;lt;/contenttype&amp;gt;&amp;lt;/elements&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Create a 12 hive feature directory:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\MyCtypes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Copy the &lt;span style="font-family: courier new;"&gt;ctypes.xml&lt;/span&gt; file into the directory.&lt;br /&gt;&lt;br /&gt;Add &lt;span style="font-family: courier new;"&gt;feature.xml&lt;/span&gt; with content like this (with a new Id GUID, and change Scope if desired,&lt;a href="http://msdn.microsoft.com/en-us/library/ms436075.aspx"&gt; remember Scope="Site" means SiteCollection&lt;/a&gt;):&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&amp;lt;feature id="&lt;span style="color:Red;"&gt;031D991D-2559-4512-BE86-024E9CA035B3&lt;/span&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;          Title="My Imported content types"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;          Description="Content types imported from wherever"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;          Version="1.0.0.0"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;          Scope="Site"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;          ImageUrl="Health.GIF"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;          Hidden="FALSE"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;          DefaultResourceFile="core"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;          xmlns="http://schemas.microsoft.com/sharepoint/"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    &amp;lt;elementmanifests&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        &amp;lt;elementmanifest location="ctypes.xml"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    &amp;lt;/elementmanifests&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&amp;lt;/feature&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Install the feature this way:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;"C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\stsadm.exe" -o installfeature -name MyCtypes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(if your xml file doesn't comply to proper schema, this installfeature will fail)&lt;br /&gt;&lt;br /&gt;Now go activeate the feature. In this case, go to "Site Collection Features" and click activate for the new feature. This will add the content types to the site collection.&lt;br /&gt;&lt;br /&gt;Uninstall this way:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;"C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\stsadm.exe" -o uninstallfeature -name MyCtypes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This uninstall will remove the content types from the site collection. I suspect this will fail if the content types are in use by the site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-1587425915383734043?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/1587425915383734043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=1587425915383734043' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/1587425915383734043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/1587425915383734043'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2009/02/copy-content-types-across-farms.html' title='Copy content types Across Farms (SharePoint)'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-8096129517765648967</id><published>2009-02-02T20:40:00.001-08:00</published><updated>2009-02-02T20:56:28.120-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Memories'/><title type='text'>Olympics of the Mind - Smarty Pants - 1985</title><content type='html'>(Flashback to high school... Reprinted here with attribution but without permission. From &lt;a href="http://fultonhistory.com/Newspaper4/Marcellus%20NY%20Weekly%20Observer/Marcellus%20NY%20Weekly%20Observer%201985%20-%201985%20Grayscale.pdf/Marcellus%20NY%20Weekly%20Observer%201985%20-%201985%20Grayscale%20-%200463.pdf"&gt;this source&lt;/a&gt;.)&lt;br /&gt;&lt;br /&gt;Marcellus NY Weekly Observer 1985&lt;br /&gt;Press-Observer, April 24, 1985 - Page 24&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Two O.M. Teams Bring Home Trophies&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Two school buses, a station wagon and a van slipped quietly back into Skaneateles late Saturday, April 20. This caravan was returning from the New York State finals of the Olympics of the Mind competition at SUNY-Buftalo.&lt;br /&gt;&lt;br /&gt;Skaneateles pupils who participated in the Buffalo event were all winners of the regional competition March 16 in Auburn. The contests were titled "Big Top," "Ecology Dozer,"&lt;br /&gt;"Compound Fracture," "Music Maestro" and &lt;span style="color: rgb(255, 0, 0);"&gt;"High Tech-Smarty Pants."&lt;/span&gt; Competition is in three divisions according to the grade level of the student.&lt;br /&gt;&lt;br /&gt;After checking in at the guest dorms on the Buffalo campus, Friday, April 19,the 60 students and adult coaches were treated to a dinner at Niagara Falls, Canada. Mist and dense fog unfortunately totally obscured their view of the Falls.&lt;br /&gt;&lt;br /&gt;Saturday morning the Skaneateles teams began competing against the other regional winners. The first part of the event is called "long term." This allows the competitors to show or use devices and skits to earn points toward victory. The second part of the event is called "spontaneous," where the team members use only brainpower to earn additional points.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;The Division Three Skaneateles team for "High Tech-Smarty Pants" won first place for their robot and its skit dealing with an explosion in the chemistry laboratory. Coached by Georgia Peach, with Tammy Dudden assisting, the team of Sharon Graham, Eric Hadley, Maggie Kelly, David Leonard, Aaron Naas, and John Spear earned the privelege of competing in the 1985 World O.M. Finals at the University of Maryland on June 6 and 7. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A third place trophy went to the Divison Two Skaneateles team for "Ecology Dozer." This team of sixth graders, Jim Darrow, Michael Hancock, Jason Highsmith, Jilian Richards, Dietrich Rapalaski and Marcus Frick, built a vehicle powered by a small hydraulic jack. The car and driver had to move four trees from a starting point and place them into buckets along a 25 foot course. Beth and Jorge Batlle coached this team.&lt;br /&gt;&lt;br /&gt;This team also won an award for exceptional creativity for the "long term" part of their event. Carol Anne Smith, coordinator for the elementary teams remarked that this was the first time in her memory that this award was presented for the "long term" portion of the event.&lt;br /&gt;&lt;br /&gt;Jimmy Allred competing in Division One's "Compound Fracture" event won an award for special achievement in the "spontaneous" part of his team's event.&lt;br /&gt;&lt;br /&gt;The Olympics of the Mind competition encourages the development of individual creative skills, team work, diligence and hard work. The predominant spirit of O.M. competitions is fun and humor, and finding new and different ways of doing things.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-8096129517765648967?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/8096129517765648967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=8096129517765648967' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/8096129517765648967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/8096129517765648967'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2009/02/olympics-of-mind-smarty-pants-1985.html' title='Olympics of the Mind - Smarty Pants - 1985'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-5133139062515804957</id><published>2009-02-02T06:46:00.000-08:00</published><updated>2009-02-02T06:55:04.426-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Endorsements'/><title type='text'>Frack the BEEP (in BSG podcasts)</title><content type='html'>There is a great Battlestar Galactica podcast where the Executive Producer, Ronald D. Moore, discusses each episode and the decisions and circumstances that affected aspects of the show. Very interesting and insightful.&lt;br /&gt;&lt;br /&gt;I listen to podcasts as I drive to and from work, and unfortunately I can't listen to this one. His podcasts for each show are constructed from segments, and those segments are separated by something that sounds like an industry standard scene-change extended BEEP. Unfortunately he speaks softly enough that I have to turn up the volume to hear him, and the BEEPs are unexpected and ear-piercing. I'm convinced that he has never listened to his own podcast.&lt;br /&gt;&lt;br /&gt;I just posted this to podcast alley for that podcast (&lt;a href="http://www.podcastalley.com/podcast_details.php?pod_id=1819"&gt;http://www.podcastalley.com/podcast_details.php?pod_id=1819&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;"Not recommended for listening while driving. Great podcast, but he speaks softly, and the transition beeps are very loud and unexpected. In the car I have to turn it up enough to hear him and I do a massive flinch each time it beeps, and I'm concerned that I'll run off the road. Ronald D. Moore, you need to listen to your own podcast, maybe while you're driving or working out. You'll want the beeps reduced in volume too."&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-5133139062515804957?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/5133139062515804957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=5133139062515804957' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/5133139062515804957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/5133139062515804957'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2009/02/frack-beep-in-bsg-podcasts.html' title='Frack the BEEP (in BSG podcasts)'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-7219833241052172945</id><published>2009-01-09T06:28:00.000-08:00</published><updated>2009-01-09T07:46:57.068-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='Fix'/><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>Seagate/Maxtor SeaTools Drive Diagnostic - Problems/Solutions</title><content type='html'>I had a hard time testing some new Seagate &lt;a href="http://www.seagate.com/ww/v/index.jsp?vgnextoid=481e83de34b43110VgnVCM100000f5ee0a0aRCRD&amp;amp;locale=en-US"&gt;ST31000340NS&lt;/a&gt; drives recently, and here is what I learned.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Always test new drives ASAP so you can return defective drives within warantee period, and avoid lots of wasted work/installs/reinstalls.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Download the Seagate &lt;a href="http://www.seagate.com/www/en-us/support/downloads/seatools"&gt;SeaTools&lt;/a&gt; (also works for Maxtor) DOS ISO for drive testing, and burn the CD (I downloaded v2.13B on Jan-7-2009).&lt;/li&gt;&lt;li&gt;The SeaTools Windows version doesn't generally work in Vista x64 (Known problem). Though a certain &lt;a href="http://www.wowway.com/%7Esgbarber/"&gt;hack/fix&lt;/a&gt; (from &lt;a href="http://forums.seagate.com/stx/board/message?board.id=SeaTool&amp;amp;message.id=116"&gt;this discussion&lt;/a&gt;) might work for you in Vista 64 bit. It worked better for me, but I think my hardware hindered the drive detection.&lt;/li&gt;&lt;li&gt;Connecting the SATA drive externally via eSATA works great for drive testing  (I used a &lt;a href="http://www.rosewill.com/products/917/productDetail.htm"&gt;Rosewill eSATA enclosure&lt;/a&gt;).&lt;/li&gt;&lt;li&gt;My &lt;a href="http://support.asus.com/search/search.aspx?keyword=a7n8x%20deluxe&amp;amp;SLanguage=en-us"&gt;A7N8X Deluxe&lt;/a&gt; based computer would not boot with the drive attached. After drive detection, the machine hung.&lt;/li&gt;&lt;li&gt;My &lt;a href="http://www.asus.com/products.aspx?modelmenu=1&amp;amp;model=1179&amp;amp;l1=3&amp;amp;l2=11&amp;amp;l3=307"&gt;P5B Deluxe/WiFi-AP&lt;/a&gt;  based machine booted from the SeaTools CD no problem.&lt;/li&gt;&lt;li&gt;The SeaTools software must have a floppy disk in the A drive (possibly writeable) or the long test will not complete. After the test, the floppy disk was completely empty. I put the CD and floppy in, then booted.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I ran the Short Test, the Long Test and the Acoustic Test, taking a digital photo of the results of each.&lt;/li&gt;&lt;li&gt;I also photographed the drive. The photos are for my inventory and testing results.&lt;/li&gt;&lt;/ul&gt;If you were wondering my new drives tested as flawless.&lt;br /&gt;&lt;br /&gt;-AAron&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-7219833241052172945?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/7219833241052172945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=7219833241052172945' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/7219833241052172945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/7219833241052172945'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2009/01/seagatemaxtor-seatools-drive-diagnostic.html' title='Seagate/Maxtor SeaTools Drive Diagnostic - Problems/Solutions'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-2350247634792913301</id><published>2008-12-31T06:32:00.000-08:00</published><updated>2008-12-31T07:05:40.341-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Endorsements'/><title type='text'>GoodShop, NewEgg and PackageMapping</title><content type='html'>I've just ordered some new computer equipment, and I'm rather excited and anxious about it's arrival! But when will that be? I have the UPS tracking number&lt;br /&gt;&lt;br /&gt;Firstly I have to say that I've been buying from NewEgg for many years, and they've always been wonderful. Among other things, I've ordered at least 5 motherboards and over 15 hard drives. I point those out because I have received faulty equipment (odds are with that volume that it will happen), but NewEgg support has always been helpful and courteous. I just spoke with them today about a 1 yr old Samsung hard drive that Samsung refused to warantee, to which NewEgg then offered me a full refund. They have great prices, and great service. And you can help a charity dear to my heart if you shop NewEgg from this link:&lt;br /&gt;&lt;br /&gt;    &lt;a href="http://www.goodshop.com/?charityid=861128"&gt;GoodShop&lt;/a&gt;&lt;br /&gt;    No additional costs or registration. The charity will be preselected, just select NewEgg or any other store and shop as normal.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JroyqkvpxZo/SVuJuDmFEAI/AAAAAAAAAKI/5vn_BlaoYQs/s1600-h/GoodShopNewEgg.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 116px;" src="http://3.bp.blogspot.com/_JroyqkvpxZo/SVuJuDmFEAI/AAAAAAAAAKI/5vn_BlaoYQs/s400/GoodShopNewEgg.jpg" alt="" id="BLOGGER_PHOTO_ID_5285970011981418498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.goodshop.com/?charityid=861128" target="_blank"&gt;&lt;/a&gt;Ok, so I've place my order. When will it get here?!?!?!?!&lt;br /&gt;I've just discovered &lt;a href="http://PackageMapping.com"&gt;PackageMapping.com&lt;/a&gt;, which uses any tracking number and shows you the path and current location of your package on Google Maps! Very cool. I now have a sense for the geographic proximity of my package and how soon it may arrive!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JroyqkvpxZo/SVuI3q_zJRI/AAAAAAAAAKA/COOYhnY6lvQ/s1600-h/PackageMappingMap.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 164px;" src="http://3.bp.blogspot.com/_JroyqkvpxZo/SVuI3q_zJRI/AAAAAAAAAKA/COOYhnY6lvQ/s400/PackageMappingMap.jpg" alt="" id="BLOGGER_PHOTO_ID_5285969077665473810" 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/569768729436997146-2350247634792913301?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/2350247634792913301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=2350247634792913301' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/2350247634792913301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/2350247634792913301'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/12/goodshop-newegg-and-packagemapping.html' title='GoodShop, NewEgg and PackageMapping'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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://3.bp.blogspot.com/_JroyqkvpxZo/SVuJuDmFEAI/AAAAAAAAAKI/5vn_BlaoYQs/s72-c/GoodShopNewEgg.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-569768729436997146.post-2071382152813632634</id><published>2008-11-18T08:55:00.000-08:00</published><updated>2008-11-18T09:02:52.328-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ideas'/><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>Computer Backups @ Home</title><content type='html'>After trying lots of different backup strategies for my home computers, I’ve finally settled on a backup system that is fault, fire and theft tolerant.  With a convenient combination of live recovery and offsite backup, I can easily recover from single hard drive failures, and even a complete system loss.&lt;br /&gt;&lt;br /&gt;The trick is that I’m using a RAID 1 mirror approach with an extra drive.  In this scenario, I’ve got two drives working as one that tolerates the complete loss of one of the drives, and the system continues to operate without interruption. Each week, I power down the systems and remove one of the drives (which is a perfect copy of the other). I then install a drive that I had kept offsite in a safe deposit box at my bank. During the boot process I tell the machine to rebuild the RAID 1 array and overwrite the newly inserted drive. The RAID rebuild doesn’t take much processing power, and a few hours later the machine is back to full redundancy.&lt;br /&gt;&lt;br /&gt;At any one time, I have 2 drives in a machine acting as fault tolerance, and a third drive at the bank acting as standby for a complete and total loss disaster. I’ve experimented with my motherboard built in ICH8R hardware assisted RAID controller, and I know that I can easily rebuild from only the offsite drive.&lt;br /&gt;&lt;br /&gt;To make the process better, I put mobile drive racks into my 5.25 bays. The rack accepts direct insertion of SATA drives (no sleds needed). I don’t even have to disassemble anything to make the drive swap. These days 500GB drives are cheap, which makes this scheme very affordable.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;KINGWIN KF-1000-BK 3.5" Internal hot swap rack ($25)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;http://www.newegg.com/Product/Product.aspx?Item=N82E16817990001&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;OEM 500GB drives ($60-$70)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;http://www.newegg.com/Product/ProductList.aspx?Submit=ENE&amp;amp;N=2010150014%20103530113&amp;amp;bop=And&amp;amp;Order=PRICE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This is arguably not a backup strategy. Considering that I have fault tolerance AND an offsite copy, this simple system satisfies all my needs. The offsite “backup” is about a week old at any one point, but I would suggest that it’s more current, more reliable, more viable and more convenient than most people’s backup strategies. Considering that most people backup by taking hours copying files to an external drive, my backup is basically just pulling the drive out of the machine.&lt;br /&gt;&lt;br /&gt;Also consider that my RAID 1 mirror strategy can be used like a Virtual Machine rollback feature. If I wanted to, remove one of the drives, and try arbitrary system changes and software installs. If I didn’t like the result, I could remove the remaining drive, and reinsert the one I had pre-removed. At that point the system would be in pre-experimentation mode. The system would need to rebuild the array, but a small price to pay for having rollback capabilities on a physical machine.&lt;br /&gt;&lt;br /&gt;There are some issues/annoyances to this approach.  First, when a drive is failing, typical consumer drives make “heroic” attempts to prevent data loss. This means it can take extremely long amounts of time retrying and remapping bad sectors (hard drives are S.M.A.R.T. you know :-) I’ve seen this occur on my systems, and it takes a while to realize why the system is semi-freezing, acting erratic, or possibly not shutting down properly. Once I recognize it, I shut down and run my vendor supplied drive diagnostics to find (and possibly correct) the bad drive. I don’t like any drive problems, but these days the diagnostic software will correct them enough that a warrantee exchange can’t be done. The other annoyance is having to shutdown my systems once a week, and drive to the bank. The systems aren’t down for long and it is a short drive to the bank, but it is slightly annoying. If you wanted to attempt this scheme, you would have to RAID enable your system in some way. Maybe buying a new motherboard, or a PCI card, or external NAS RAID… I can see that being annoying too if you don’t have it already.&lt;br /&gt;&lt;br /&gt;With my frequent visits to my safe deposit box in the vault, and bringing my precious data (photo collection, word docs, personal projects, etc…), I feel like it would be cool to have one of those steel secret-agent brief cases handcuffed to my wrist :-)&lt;br /&gt;&lt;br /&gt;Note:&lt;br /&gt;I could use an online Internet cloud-based backup solution, but my Honda Civic can transfer 1.5TB of data to/from offsite in about 20 minutes. My cable modem at home can't achieve that type of bandwidth every week :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-2071382152813632634?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/2071382152813632634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=2071382152813632634' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/2071382152813632634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/2071382152813632634'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/11/computer-backups-home.html' title='Computer Backups @ Home'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-4350125709327001290</id><published>2008-10-03T11:06:00.001-07:00</published><updated>2008-10-03T11:14:27.925-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Life'/><category scheme='http://www.blogger.com/atom/ns#' term='Telemarketing'/><title type='text'>Telemarketers and Robo Callers</title><content type='html'>Sigh.&lt;br /&gt;&lt;br /&gt;There's only so much attention that I can give to unwanted callers interrupting me during all hours of the day. Whether the attention I give is to annoy them in return, research them on the Internet, provide "public service messages" about the ethics of these callers and the do-not-call list, ... there's just too many annoyances in the world, and giving them any attention at all has become too much.&lt;br /&gt;&lt;br /&gt;Although it's interesting to document and blog about "Freedom's watch against Kay Hagan", "Associated Builders Association against Kay Hagan" (both of whom called today), the democratic party doing opinion surveys yesterday, or whatever... I'm done with them. The next time I get a robo message on my voice mail, or a person calls at 9:30pm... I'm done. I'm going to delete the message. I'm going to cut the phone calls short. I'm going to stop blogging about how the do-not-call doesn't stop all the annoying phone calls, and how wrong the whole system is.&lt;br /&gt;&lt;br /&gt;I'm done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-4350125709327001290?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/4350125709327001290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=4350125709327001290' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/4350125709327001290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/4350125709327001290'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/10/telemarketers-and-robo-callers.html' title='Telemarketers and Robo Callers'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-8398283126191758964</id><published>2008-09-17T13:09:00.000-07:00</published><updated>2008-09-17T13:38:11.445-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Life'/><category scheme='http://www.blogger.com/atom/ns#' term='Telemarketing'/><title type='text'>What Telemarketer Research ? For WHO ?</title><content type='html'>I got ANOTHER call today from a telemarketer claiming market research.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;TELL ME YOUR CONCERNS&lt;/span&gt;&lt;br /&gt;The call was from Mountain West Research Center (&lt;a href="http://www.mwrcenter.com"&gt;http://www.mwrcenter.com&lt;/a&gt;) wanting to ask me about national and local issues facing communities. As I probed for answers about who they were and who would get the results of the survey, the caller could not provided me with an answer on where my responses would end up. Why would anyone volunteer information that may go toward causes or political interests that they do not agree with. For example, lets say that I'm concerned about local businesses losing out to big corporations. Now anyone can bring up that topic to try to sway my opinion, regardless of their real intent.  If I said pollution was my national concern, any corporation or political machine would know to how to gain my favor or dollars.&lt;br /&gt;&lt;br /&gt;Are you a republican? How would you answer the survey if it was democrats calling?&lt;br /&gt;Are you a democrat?  How would you answer the survey if it was republicans calling?&lt;br /&gt;&lt;br /&gt;I don't mind giving my opinions in the proper forum, but phone calling blind (which is annoying enough) and not telling me how my answers will be used. Its easy for both friends and enemies  to use a person's opinion to sway or coerce them.&lt;br /&gt;&lt;br /&gt;As an aside,  I asked their company name, location, phone number... they told me they didn't have a phone number, that they were calling from the Internet (how ridiculous is that?).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;YOU LIKE PET FOOD?&lt;/span&gt;&lt;br /&gt;I had a different call recently (at 9:00 pm) researching my views on pet food products. They too weren't selling anything and felt the Do-Not-Call list didn't apply to them. I kept them on the line for a while asking about who was paying for and receiving the survey. As they said the survey results would be free, I asked them to send me the results. They then said it was not free, to which I asked who was paying for it. I had the guy talking in circles before he suggested I speak with his supervisor. The supervisor was rather unapologetic about calling anyone and about not revealing who was getting the survey. My point with these people was that it WAS a commercial phone call, and that they shouldn't be able to call me due to the Do-Not-Call List.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;YOUR HOMEWORK&lt;/span&gt;&lt;br /&gt;When they call YOU, be sure to get any identifying information so that you can look them up on the Internet, and blog about them. Get company name, address, phone number anything you can search on. Also insist that they tell you where your information is going, and who is paying for it. Good luck.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-8398283126191758964?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/8398283126191758964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=8398283126191758964' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/8398283126191758964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/8398283126191758964'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/09/what-telemarketer-research-for-who.html' title='What Telemarketer Research ? For WHO ?'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-842217014912109820</id><published>2008-09-10T11:44:00.000-07:00</published><updated>2008-09-18T07:24:54.483-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Enterprise Library Logging with WMI</title><content type='html'>In Enterprise Library for Microsoft (EntLib v3.1), you can use the WMI TraceListener (WMITraceListener class) to send logging events/statistics to the Windows Performance Monitor application.&lt;br /&gt;&lt;br /&gt;Steps:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Enable Instrumentation on the host: Start / All Programs / Microsoft Patterns &amp;amp; Practices / Enteprise Library 3.1 - May 2007 / Install Instrumentation&lt;br /&gt;&lt;/li&gt;&lt;li&gt;With Enterprise Library Configuration, configure your app.config or web.config to use the WMI TraceListener.&lt;/li&gt;&lt;li&gt;With Enterprise Library Configuration, add Instrumentation&lt;/li&gt;&lt;li&gt;Edit the resulting config file (from previous steps) to set the instrumentation properties to "true": &lt;span style="font-family:courier new;"&gt;&amp;lt;instrumentationconfiguration performanceCountersEnabled="true"&lt;br /&gt;    eventLoggingEnabled="true" wmiEnabled="true" /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;If you have subclassed LogEntry, make sure any custom typed Attributes are decorated with &lt;span style="font-family:courier new;"&gt;[IgnoreMember]&lt;/span&gt; (you'll have to have System.Management as a Reference)&lt;/li&gt;&lt;li&gt;Run your program&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Add a new Counter in Windows Performance Monitor: Performance Object "Enterprise Library Logging Counter"; Select counters from list; Select your program's instance.&lt;/li&gt;&lt;/ol&gt;Troubleshooting:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If "Enterprise Library Logging Counter" isn't available in Performance Monitor, then you didn't Install Instrumentation in EntLib.&lt;/li&gt;&lt;li&gt;If you can't select an instance while adding the Counter, then your program probably isn't running, or something is preventing it from being instrumentable&lt;/li&gt;&lt;li&gt;If the application event log contains errors suggesting that you use IgnoreMember, then you are logging a subclassed EventLog that has Attributes with special types (the event log error will say which one). Or change the type of you attributes to string, int, etc... to avoid the problem.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-842217014912109820?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/842217014912109820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=842217014912109820' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/842217014912109820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/842217014912109820'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/09/enterprise-library-logging-with-wmi.html' title='Enterprise Library Logging with WMI'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-7701469419712547903</id><published>2008-09-08T18:31:00.000-07:00</published><updated>2008-09-17T13:38:30.568-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Life'/><category scheme='http://www.blogger.com/atom/ns#' term='Telemarketing'/><title type='text'>Don't Give to Rude Telemarketers</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Hey Telemarketers!&lt;/span&gt;&lt;br /&gt;Telemarketers, when you call me midday or in the evenings, I am not happy or receptive to your message... but I am polite. I generally will try to end the call gracefully. If you are rude to me, then I start to question why I am being polite to you.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fraternal Order of Police&lt;/span&gt;&lt;br /&gt;Yesterday evening I received a call from the Fraternal Order of Police, asking for a donation to their noble cause. I listened and waited for a chance to reply and when I calmly said "no thank you" they immediately hung up.&lt;br /&gt;Today, to my surprise, I received another call from the Fraternal Order of Police (in the afternoon). I interrupted the telemarketer a few times to make sure that I was talking with the same organization, as I made notes. Then I interrupted again and said that they had called yesterday and were rather rude to me. I conveyed that they hung up on me after I had politely refused. As this telemarketer tried to break in, I said that I was NOT happy with them, and I hung up. I'm surprised that I was able to hang up on them before they hung up on me.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;March of Dimes&lt;/span&gt;&lt;br /&gt;I like the intent of this organization, but their fund raising efforts are ruthless. The March of Dimes has called my house asking for my wife... I'll ask who they are. After they respond I tell them that my wife isn't around, but I can help them. At that point they tend to hang up without further response. Later (sometimes hours, sometimes days) they call back, identified by caller ID, and hang up quickly when they find out that my wife isn't available. To me, that's rude and devious. It is also impossible to get off their mailing list.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Not Over the Phone&lt;/span&gt;&lt;br /&gt;Additionally, stop insisting that I give right now! I tell anyone who calls that I do not make donation decisions over the phone. Send me information in the mail, and I'll make my decisions casually when I sit down to pay bills. I've had telemarketers hang up when I tell them that I do not commit to donations over the phone, but that I would like them to send information to me.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Who are the Telemarketers Helping? Themselves?&lt;/span&gt;&lt;br /&gt;Some of the telemarketers that call me are not doing justice to the charities that they represent. Either through poor phone etiquette, or not providing a high enough percentage back to the charity. The telemarketers that are now blocked by do-not-call lists seem to have moved to calling for charities. They see the potential for raising money for a charity, the potential to get around the do-not-call list, and a way to make profits again. I've asked some of the telemarketers that call me about what percentage goes to the charity... some don't know, some are low percentages, and others are more reasonable. I don't know how March of Dimes works, but do your own googling on the telemarketers calling for Fraternal Order of Police... I've seen horrible reports stating the charity gets as low as 12%. All of these comments are about the telemarketers representing the charities. I'm sure the charities are worth while, but ask some questions and do some quick research (Google) before you give to any charity through a second party service (ex: what percent goes to the charity?)... that's why I don't make decisions over the phone!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Give, but Not to Telemarketers&lt;br /&gt;&lt;/span&gt;I do suggest that everyone find a charity they feel is deserving, and find a comfortable way to donate to them. Each year I tithe to our church and give to some charities. I'm also on the board of NathanCan Foundation (&lt;a href="http://nathancan.org/"&gt;NathanCan.org&lt;/a&gt;) working to help chronically sick kids. If I weren't giving or directly participating in a charity, I'd feel like this entire discussion was merely an excuse not to give anyone anything... but there ARE good and deserving causes out there, and GOOD ways to donate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-7701469419712547903?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/7701469419712547903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=7701469419712547903' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/7701469419712547903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/7701469419712547903'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/09/dont-give-to-rude-telemarketers.html' title='Don&apos;t Give to Rude Telemarketers'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-6005525168667089574</id><published>2008-08-24T13:50:00.001-07:00</published><updated>2008-08-24T20:25:25.786-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Porting YetAnotherForum.NET to SharePoint</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Idea&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.yetanotherforum.net/"&gt;YetAnotherForum.NET&lt;/a&gt; (YAF.NET) on SharePoint, sounds like a great idea!&lt;br /&gt;&lt;span style="font-style: italic;"&gt;(The main focus of this article is partitioning data between YAF.NET forums based on SharePoint site.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It sounds like YAF.NET might already handle authentication of users arriving through Active Directory (ie: auto register), but I don't want just a YAF.NET install next to my SharePoint system. My needs are to have YAF.NET be a feature that can be deployed across hundreds (thousands?) of SharePoint sites without intermingling the content (Topics/Posts) between sites.&lt;br /&gt;&lt;br /&gt;It seemed like it might be a weekend effort, but with family activities, other personal projects and the size of the effort, I've decided that I just won't have the time to port YetAnotherForum.NET to SharePoint 2007 (WSSv3). I will share my findings though.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Approach #1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Inversion of Control, decoupling the data access mechanism from the application so a new data store (ie: SharePoint) could be injected. The approach would be to take all the DB access methods in YAF.NET, and make them use an interface, and put the existing DB access code into a class to satisfy that data interface. The phase 1 result would be a code refactored YAF.NET that works exactly the same as it did.&lt;br /&gt;&lt;br /&gt;The second phase of the port would be to create another implementation of the data access interface that utilizes SharePoint lists instead of the SQL database. Plug in that new interface, and the YAF.NET should work fine without knowing that its running on SharePoint. It should be possible to satisfy all the database needs of YAF.NET with SharePoint lists and CAML for access. The only need that might not work is YAF.NET's free-text search capabilities.&lt;br /&gt;&lt;br /&gt;Data will need to be compartmentalized into the SharePoint sites that YAF.NET was enabled for. This will help application scaling and content ownership. There are some practical data limits to SharePoint's core list capabilities, but utilizing separate YAF.NET lists per SharePoint site avoid those issues. The YAF.NET SharePoint data access would have to utilize the lists for the current site to make this work, would be pretty easy once the rest was in place.&lt;br /&gt;&lt;br /&gt;Example YAF.NET loading from SharePoint site context:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;http://hostname/sites/TestSite/_layouts/YAF/default.aspx&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The SharePoint site at "&lt;span style="font-family:courier new;"&gt;/sites/TestSite&lt;/span&gt;" would have the normal YAF.NET data sources:&lt;br /&gt;         &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JroyqkvpxZo/SLHNs0bUPTI/AAAAAAAAAG8/Cp2tsnv6Hxw/s1600-h/YAF_NET-SiteLists.jpg"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_JroyqkvpxZo/SLHNs0bUPTI/AAAAAAAAAG8/Cp2tsnv6Hxw/s320/YAF_NET-SiteLists.jpg" alt="" id="BLOGGER_PHOTO_ID_5238194011479751986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   [...]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The entire YAF.NET for SharePoint system would be packaged as a SharePoint site collection or web scoped feature in a SharePoint solution file. That means that once the solution has been added to your SharePoint system, site administrators could go to Site Features (or Site Collection Features) and enable that feature. The initialization of the feature would run, creating the proper lists and default data.&lt;br /&gt;&lt;br /&gt;This approach sounds like the best SharePoint solution, but without in-depth knowledge of YAF.NET, it feels like 3-4 weeks worth of development and testing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Approach #2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A compromise solution to porting YAF.NET to SharePoint would be to partition the data for SharePoint sites within the current YAF.NET SQL database. By adding a new "Context" column to all existing tables, then slightly modifying all the SQL in YAF.NET, the system could function within the context of the SharePoint site it was accessed from. This approach simulates different data stores for each SharePoint site, but does not change the native source YAF.NET already uses, so the approach is less complex.&lt;br /&gt;&lt;br /&gt;This approach sounds like a reasonable SharePoint solution, and avoids some of the questions about SharePoint list data scalability issues by continuing to use native SQL Server. Because this approach is generally many simple modifications, it feels more like 1-3 weeks worth of development and testing.&lt;br /&gt;&lt;br /&gt;I started some work down this approach to flush out the main issues. Some of these steps are required for either approach...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Live in SharePoint Layouts&lt;/span&gt;&lt;br /&gt;YAF.NET would need to function in the common SharePoint "layouts" directory. This is where common SharePoint functions/systems need to live, and they are given the opportunity to be "aware" of the site context that they are invoked from. This part was quick and easy.&lt;br /&gt;&lt;br /&gt;Misc:&lt;br /&gt;In &lt;span style="font-family:courier new;"&gt;&lt;webroot&gt;\web.config&lt;/webroot&gt;&lt;/span&gt;, I enabled session state, and switched trust level to full. Neither is a great idea for SharePoint, but worked for my development purposes...&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;pages enablesessionstate="&lt;span style="color: rgb(51, 204, 0);"&gt;true&lt;/span&gt;" ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;trust level="&lt;span style="color: rgb(51, 204, 0);"&gt;Full&lt;/span&gt;" originUrl=""&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For this url to work:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;http://hostname/sites/TestSite/_layouts/YAF/default.aspx&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;...YAF.NET needs to be copied to:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\YAF&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    (I put the YAF.NET binaries into the webroot/bin for testing)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Config.cs needs to know about site context:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        /// &lt;summary&gt;&lt;/summary&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        /// Determine the site context from the http request.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        /// &lt;example&gt;/&lt;/example&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        /// &lt;example&gt;/sites/TestSite&lt;/example&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        /// &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        static public string UrlContextPath&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            get&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                string scriptUrl = HttpContext.Current.Request.ServerVariables["SCRIPT_NAME"];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                string rawUrl = HttpContext.Current.Request.RawUrl;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                int pos = rawUrl.ToUpper().IndexOf(scriptUrl.ToUpper());&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                if (pos &lt;&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                    return "/";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                return "/" + rawUrl.Substring(0, pos);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;UrlBuilder.cs needs to build urls with site context:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        public string BuildUrl(string url)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            return string.Format("{0}{1}?{2}",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                Config.UrlContextPath.Substring(1),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                HttpContext.Current.Request.ServerVariables["SCRIPT_NAME"],&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                url&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            //return string.Format("{0}?{1}",HttpContext.Current.Request.ServerVariables["SCRIPT_NAME"],url);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Partition Data by Site Context&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is the BIGGEST porting task, requiring changes to all 31 database tables, 1 view, 162 stored procedures, and all corresponding code invocations of SQL and stored procedures.&lt;br /&gt;&lt;br /&gt;Add the Context field to all database tables. For example:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;IF NOT EXISTS (SELECT 1&lt;br /&gt;          FROM   sysobjects&lt;br /&gt;          WHERE  id = Object_id(N'yaf_AccessMask')&lt;br /&gt;          AND Objectproperty(id,N'IsUserTable') = 1)&lt;br /&gt;CREATE TABLE dbo.yaf_AccessMask (&lt;br /&gt;[AccessMaskID] INT IDENTITY NOT NULL,&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;[Context]      NVARCHAR(255) NOT NULL,&lt;/span&gt;&lt;br /&gt;[BoardID]      INT NOT NULL,&lt;br /&gt;[Name]         NVARCHAR(50) NOT NULL,&lt;br /&gt;[Flags]        INT NOT NULL CONSTRAINT DF_yaf_AccessMask_Flags DEFAULT (0))&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;IF NOT EXISTS (SELECT 1&lt;br /&gt;          FROM   syscolumns&lt;br /&gt;          WHERE  id = Object_id('yaf_AccessMask')&lt;br /&gt;          AND name = 'Context')&lt;br /&gt;BEGIN&lt;br /&gt;ALTER TABLE dbo.yaf_AccessMask&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;ADD Context NVARCHAR(255) NOT NULL DEFAULT '/'&lt;/span&gt;&lt;br /&gt;END&lt;br /&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Modify all SQL and Stored Procedures to use the new Context field. For example:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;CREATE PROCEDURE [dbo].[yaf_accessmask_delete](&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                @AccessMaskID INT,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                &lt;span style="color: rgb(51, 204, 0);"&gt;@Context NVARCHAR(255) = '/'&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;AS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    BEGIN&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        DECLARE  @flag INT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        SET @flag = 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        IF EXISTS (SELECT 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                   FROM   yaf_ForumAccess&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                   WHERE  AccessMaskID = @AccessMaskID)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            OR EXISTS (SELECT 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                       FROM   yaf_UserForum&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                       WHERE  AccessMaskID = @AccessMaskID)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        SET @flag = 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        ELSE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        DELETE FROM yaf_AccessMask&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        WHERE       AccessMaskID = @AccessMaskID&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        &lt;span style="color: rgb(51, 204, 0);"&gt;AND         Context = @Context&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        SELECT @flag&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    END&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;GO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Modify all invocations to SQL and Stored Procedures to use the new Context field. For example:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;        static public bool accessmask_delete( object accessMaskID )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            using ( SqlCommand cmd = new SqlCommand( "yaf_accessmask_delete" ) )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                cmd.CommandType = CommandType.StoredProcedure;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                cmd.Parameters.AddWithValue( "@AccessMaskID", accessMaskID );&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                &lt;span style="color: rgb(51, 204, 0);"&gt;cmd.Parameters.AddWithValue("@Context", Config.UrlContextPath);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                return (int)ExecuteScalar(cmd) != 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;With a few of these changes in effect, YAF.NET continued to function properly, which helped prove the viability of the approach, but also proved that it would take a non-trivial amount of time to complete. I did not continue the effort due to my lack of availability.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Additional Issues:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Web Part - These approaches are targeted at making YAF.NET work as a companion to SharePoint, not fully integrate it. An expectation of any SharePoint admin would be how to drop a dynamic view of the forum onto a SharePoint Web Part Page. Luckily YAF.NET is constructed with web user controls, which translate pretty easily into web parts. Look at SmartPart WebPart (or other sample code) for how to load a normal web user control in a Web Part container.&lt;br /&gt;&lt;br /&gt;Isolation - Some elements of YAF.NET need to be shared rather than isolated between SharePoint web sites. Data such as Users, Permissions and Access Masks are some examples of data that might need to be shared across all SharePoint sites (especially users!)&lt;br /&gt;&lt;br /&gt;Overlapping domains - Some elements of YAF.NET need to pull data from SharePoint rather than handled by YAF.NET. For instance, Users and Permissions should come from SharePoint, otherwise SharePoint admins will need to setup users/permissions TWICE (once for SharePoint sites, and another time for YAF.NET).&lt;br /&gt;&lt;br /&gt;Default data - Some data is provisioned during the one-time YAF.NET install. Some amount of data provisioning may need to occur once per SharePoint site. During setup/initialization. For instance, the AccessMask is setup with some default permissions. If data in YAFF.NET is merely partitioned between SharePoint sites, that one-time data initialization will only benefit one SharePoint site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-6005525168667089574?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/6005525168667089574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=6005525168667089574' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/6005525168667089574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/6005525168667089574'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/08/porting-yetanotherforumnet-to.html' title='Porting YetAnotherForum.NET to SharePoint'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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://3.bp.blogspot.com/_JroyqkvpxZo/SLHNs0bUPTI/AAAAAAAAAG8/Cp2tsnv6Hxw/s72-c/YAF_NET-SiteLists.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-569768729436997146.post-1039176688775771843</id><published>2008-08-18T17:40:00.000-07:00</published><updated>2008-08-18T17:45:08.921-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fix'/><title type='text'>Microsoft Update - the following updates were not installed</title><content type='html'>I kept receiving "the following updates were not installed" when trying to use Microsoft Update on one of my plain Windows XP VMware machines. I have HEAVILY relied on Microsoft Update for a long time for many machines, and this is the first time updates just wouldn't install. In my scenario, I would choose "Custom" and anything I chose would go through the motions, but ultimately fail to install.&lt;br /&gt;&lt;br /&gt;I followed the simple instructions here which solved my problem: &lt;a href="http://support.microsoft.com/kb/943144"&gt;Updates are not installed successfully from Windows Update, from Microsoft Update, or by using Automatic Updates after you perform a new Windows XP installation or you repair a Windows XP installation&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 id="tocHeadRef"&gt;Method 1: Register the Wups2.dll file in Windows&lt;/h3&gt;&lt;script type="text/javascript"&gt;loadTOCNode(2, 'resolution');&lt;/script&gt; To register the Wups2.dll file in Windows, follow these steps:&lt;table class="list ol"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;1.&lt;/td&gt;&lt;td class="text"&gt;Stop the Automatic Updates service. To do this, follow these steps:&lt;table class="list al"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;a. &lt;/td&gt;&lt;td class="text"&gt;Click &lt;strong class="uiterm"&gt;Start&lt;/strong&gt;, click &lt;strong class="uiterm"&gt;Run&lt;/strong&gt;, type &lt;span class="userInput"&gt;cmd&lt;/span&gt;, and then click &lt;strong class="uiterm"&gt;OK&lt;/strong&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="number"&gt;b. &lt;/td&gt;&lt;td class="text"&gt;At the command prompt, type the following command, and then press ENTER:&lt;div class="indent"&gt;&lt;span class="userInput"&gt;net stop wuauserv&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="number"&gt;2.&lt;/td&gt;&lt;td class="text"&gt;Register the Wups2.dll file. To do this, follow these steps:&lt;table class="list al"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;a. &lt;/td&gt;&lt;td class="text"&gt;At the command prompt, type the following command, and then press ENTER:&lt;div class="indent"&gt;&lt;span class="userInput"&gt;regsvr32 %windir%\system32\wups2.dll&lt;/span&gt;&lt;/div&gt;&lt;b&gt;Note&lt;/b&gt; For a computer that is running Windows XP Professional x64 Edition, type the following command, and then press ENTER:&lt;div class="indent"&gt;&lt;span class="userInput"&gt;regsvr32 %windir%\syswow64\wups2.dll &lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="number"&gt;b. &lt;/td&gt;&lt;td class="text"&gt;Click &lt;strong class="uiterm"&gt;OK&lt;/strong&gt; on each verification message that you receive.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="number"&gt;3.&lt;/td&gt;&lt;td class="text"&gt;Start the Automatic Updates service. To do this, type the following command at the command prompt, and then press ENTER:&lt;div class="indent"&gt;&lt;span class="userInput"&gt;net start wuauserv&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="number"&gt;4.&lt;/td&gt;&lt;td class="text"&gt;Exit the command prompt. To do this type &lt;span class="userInput"&gt;exit&lt;/span&gt;, and then press ENTER.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-1039176688775771843?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/1039176688775771843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=1039176688775771843' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/1039176688775771843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/1039176688775771843'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/08/microsoft-update-following-updates-were.html' title='Microsoft Update - the following updates were not installed'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-6112087581643214414</id><published>2008-08-10T20:37:00.000-07:00</published><updated>2008-08-10T20:56:53.576-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>Service manuals are very useful !</title><content type='html'>My printer broke and I was confident that I'd be able to fix the simple problem once I downloaded the service manual. I have to say it was very cool to be able to get a hold of that manual ! It has instructions on how to diagnose, disassemble and fix. The printer went through the motions, just didn't lay any ink... must be clogged, should be easy to fix.&lt;br /&gt;&lt;br /&gt;The printer actually stopped printing about 2 years ago, and I had since abandoned the overly expensive and questionable ethics of that printer's manufacturer. Since I HAD purchased extra printer ink cartridges with that company's settlement to the class action lawsuit (pertaining to questionable ink practices)... I wanted to use up that ink, and spare some ink on my new Canon PIXMA MP780.&lt;br /&gt;&lt;br /&gt;I have to applaud any company (even the maker of this printer and its expensive ink) that has a service manual that I can find online (I got it at &lt;a href="http://www.eserviceinfo.com/"&gt;this site&lt;/a&gt;). Kudos ! I also found community help for exactly the problem I had. Regardless of technical expertise or skills, I think everyone should have the chance to get the full manuals and self-help for all the products they own.&lt;br /&gt;&lt;br /&gt;My project started following &lt;a href="http://www.fixyourownprinter.com/forums/inkjet/11804"&gt;A FIX for Clogged Printheads&lt;/a&gt; which was VERY nice. The disassembly, construction of make-shift tools, and use of anti-freeze... all went great removing tons of gunk from my old printhead. Followed all instructions, didn't help in the end. I was still happy and empowered by the community help.&lt;br /&gt;&lt;br /&gt;Then I found and dove into the service manual. I wouldn't gotten nearly as far carefully and gracefully locating and removing the proper screws without it. I usually break things as I'm being careful, which I didn't do as I followed the manual.&lt;br /&gt;&lt;br /&gt;As the manual pointed me at screws that could only be reached with long narrow specialized screwdrivers I started to get frustrated, but still thinking there was SOME hope that I'd be able to reseat them all and get this thing back together.&lt;br /&gt;&lt;br /&gt;Having to ultimately go for removing the printhead itself (ugh), I abandoned the manual, and honestly all hope of ever getting this darn thing back together. Just think though, without the manual I wouldn't have ended up with this, or potentially in the mood to buy a new printer. Too bad I already decided I didn't like this one's manufacturer, I might have bought another of their printers merely because I was empowered with the service manual to destroy my old one!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JroyqkvpxZo/SJ-3cuAMssI/AAAAAAAAAG0/B54KidVBxw8/s1600-h/DSC06978.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_JroyqkvpxZo/SJ-3cuAMssI/AAAAAAAAAG0/B54KidVBxw8/s320/DSC06978.JPG" alt="" id="BLOGGER_PHOTO_ID_5233102996040889026" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;Care with the service manual lead to not caring and destruction.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Well, at least the 3 day project is now over, and I've got some additional neat parts for my Junk box.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-6112087581643214414?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/6112087581643214414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=6112087581643214414' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/6112087581643214414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/6112087581643214414'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/08/service-manuals-are-very-useful.html' title='Service manuals are very useful !'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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://4.bp.blogspot.com/_JroyqkvpxZo/SJ-3cuAMssI/AAAAAAAAAG0/B54KidVBxw8/s72-c/DSC06978.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-569768729436997146.post-6502766980881518030</id><published>2008-07-16T15:59:00.000-07:00</published><updated>2008-07-16T16:07:43.926-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><title type='text'>Send Email Attachment Through Filter</title><content type='html'>Through much trial and error, I've found an obscure but reliable way to send any attachment through an email system that normally prohibits DLL, CMD, VBS, etc... files. Even zipping the files or renaming files usually isn't enough to trick the filter into letting the file through. Sending emails through gmail and corporate systems, the attachment can cause the email to be partially or fully rejected. With a solid need to send .CMD and .CAB files (with a DLL inside the CAB) through a corporate email system, I figured this out:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Create original.zip, NOT password protected.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;span&gt;&lt;span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Rename original.zip to something else original.zip.&lt;wbr&gt;RemoveThisExtension.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;span&gt;&lt;span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Zip the original.zip.&lt;wbr&gt;RemoveThisExtension file with a password.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Send the &lt;/span&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;original.zip.&lt;wbr&gt;RemoveThisExtension.zip file to someone.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Tell recipient the password to unzip the outer file and that they should remove the ".RemoveThisExtension" portion of the inner file.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;/span&gt;I think password'ed zip files still provide the directory without needing the password. So "double embed + password " doesn't let the email scanner see past the one non-zip extension'ed file. Here's a shocker, I suspect that the file doesn't even have to be renamed! I didn't have time to try zipping the zip (while adding the password).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-6502766980881518030?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/6502766980881518030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=6502766980881518030' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/6502766980881518030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/6502766980881518030'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/07/send-email-attachment-through-filter.html' title='Send Email Attachment Through Filter'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-5297873454511345182</id><published>2008-07-12T07:51:00.000-07:00</published><updated>2008-07-12T08:19:37.483-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='Fix'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>AVG Free v8 - Start automatic updates fix</title><content type='html'>Recently I found that my AVG Free (version 8 / AVG8), was not updating definitions and complained that "Database update is disabled" (strange since I had installed only this Vista x64 (64 bit) machine only about 1-2 months ago). I didn't reinstall, but I did find a fix:&lt;br /&gt;&lt;br /&gt;The problem was that automatic updates were not enabled. But when I was not able to make AVG save my settings when I tried to enable it via:&lt;br /&gt;    Update Manager / Update Manager settings / Start automatic updates&lt;br /&gt;&lt;br /&gt;I found Error: e001018b in the log file (C:\ProgramData\avg8\Log\avgcfg.log):&lt;br /&gt;&lt;br /&gt;    [AVG8.CFGMGR] ERROR 2008-07-12 14:25:06,155 AAFRY PID:3800 THID:2848 ID:{4B69726F-6E736B79-4C696C69-32303036-30393034}:519.134.79458 MSG:'DWORD:0x455295d4', 'DWORD:0x2', 'DWORD:0xffffffff', 'DWORD:0xffffffff', 'ERRORCODE:0xe001018b'&lt;br /&gt;&lt;br /&gt;The solution was to remove the schedule config file (C:\ProgramData\avg8\Cfg\sched.cfg), and let it be recreated. Here's what I did:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Move "C:\ProgramData\avg8\Cfg\*.cfg" to "C:\ProgramData\avg8\Cfg\old" (NOTE: you might want to try moving JUST sched.cfg... that might be enough)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Open AVG console from the system tray&lt;/li&gt;&lt;li&gt;Check the box at Update Manager / Update Manager settings / Start automatic updates&lt;/li&gt;&lt;li&gt;Perform "update now" on all AVG components&lt;/li&gt;&lt;li&gt;Reboot&lt;/li&gt;&lt;/ol&gt;At this point everything seems fine.&lt;br /&gt;&lt;br /&gt;These files were automatically recreated:&lt;br /&gt;    C:\ProgramData\avg8\Cfg\mail.cfg&lt;br /&gt;    C:\ProgramData\avg8\Cfg\sched.cfg&lt;br /&gt;    C:\ProgramData\avg8\Cfg\update.cfg&lt;br /&gt;These files were NOT auto recreated:&lt;br /&gt;    C:\ProgramData\avg8\Cfg\krnl.cfg&lt;br /&gt;    C:\ProgramData\avg8\Cfg\user.cfg&lt;br /&gt;&lt;br /&gt; File paths/directories will probably be different on Windows Vista vs Windows XP. To reiterate, I'm using Vista x64, so the paths above are for Vista.&lt;br /&gt;&lt;br /&gt;If anyone does the above procedure with moving JUST sched.cfg, let me us know if it worked for you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-5297873454511345182?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/5297873454511345182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=5297873454511345182' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/5297873454511345182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/5297873454511345182'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/07/avg-free-v8-start-automatic-updates-fix.html' title='AVG Free v8 - Start automatic updates fix'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-569768729436997146.post-1086786187855057725</id><published>2008-07-08T10:17:00.000-07:00</published><updated>2008-07-08T10:32:43.275-07:00</updated><title type='text'>Accumalizer.com Pretends to Care</title><content type='html'>I've been getting a lot of spam recently from Accumalizer.com. Various spam offerings always with the Accumalizer.com top banner with the sugar speckled gumdrop, makes it easy to identify and delete the spam.&lt;br /&gt;&lt;br /&gt;I'm enraged by the good-neighbor spam policy at the bottom. It reads (FYI: I made the email change to someone@somewhere.com):&lt;br /&gt;&lt;br /&gt;"Accumalizer.com thanks you for opting-in to receiving email advertising with us. You signed up one of our partners with the address someone@somewhere.com, but if you would prefer to you may unsubscribe from future correspondence at anytime.&lt;br /&gt;Please visit the original website where you opted-in to view the relevant privacy policies.&lt;br /&gt;Or, you may contact us at: 3 The Drive, Great Warley, Brentwood, CM13 3FR, UK (CoNo: 06187068)"&lt;br /&gt;&lt;br /&gt;This is not only a half truth (I didn't opt-in in any fashion), but it's also intentionally vague and probably impossible to opt-out electronically. Since I didn't opt-in, or I don't know what horrible site gave them my email address, how do I return to the original site to tell them to stop? Even if I did figure it out, it probably WON'T stop Accumalizer since they already have my email address, and wouldn't notice an off-site unsubscribe!&lt;br /&gt;&lt;br /&gt;It looks to me like they want to appear legit in being a good and responsible custodian of your personal information. Meanwhile they've made it impossible for anyone to actually unsubscribe!&lt;br /&gt;&lt;br /&gt;I've tried their unsubscribe link, which is basically this form: http://accumalizer.com/webforms/accumalizer/unsub/&lt;br /&gt;Yet I'd bet that it doesn't ultimately stop them. I'll add a comment later if the emails stop (or if they continue).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-1086786187855057725?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/1086786187855057725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=1086786187855057725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/1086786187855057725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/1086786187855057725'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/07/accumalizercom-pretends-to-care.html' title='Accumalizer.com Pretends to Care'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-2336951383570775436</id><published>2008-07-05T19:12:00.000-07:00</published><updated>2008-07-05T19:23:47.798-07:00</updated><title type='text'>Blockbuster Knew</title><content type='html'>I just got home from Blockbuster and I am impressed. Their "bricks and mortar" store is connected directly to the online rent-by-mail service, and as far as I can tell, the connection is real-time.&lt;br /&gt;&lt;br /&gt;I have the online plan where they send me one movie at a time via the mail (like Netflix), but I get the added advantage of getting a free rental and an immediate return of the mailer. Its great that I can have a different movie almost every 2 days with this setup, but that's not what this post is about.&lt;br /&gt;&lt;br /&gt;Yesterday I went online and put Futurama "The Beast with a Billion Backs" on the top of my Queue. Today, I went to return a mailer and get a free movie... and lo and behold, the Futurama "The Beast with a Billion Backs" movie was right there on the shelf! I formed a plan to rent the movie, and rush home and remove it from the queue. I raced home and within 5 minutes I was in my online blockbuster queue. I was greeted with an alert that said that I had just rented Futurama "The Beast with a Billion Backs", and that it was also in my queue... and would I like to remove it from the Queue?... and would I like to always remove rented movies from the queue.&lt;br /&gt;&lt;br /&gt;I'm impressed that they have this feature, but I'm more impressed that the system kicked in SO fast! Wow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-2336951383570775436?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/2336951383570775436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=2336951383570775436' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/2336951383570775436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/2336951383570775436'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/07/blockbuster-knew.html' title='Blockbuster Knew'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-399963490929561061</id><published>2008-06-28T20:43:00.000-07:00</published><updated>2008-06-28T20:52:27.305-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>Samsung ESTOOL Drive Diagnostic Does Nothing (here's why)</title><content type='html'>Or does it?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.samsung.com/global/business/hdd/support/utilities/ES_Tool.html"&gt;http://www.samsung.com/global/business/hdd/support/utilities/ES_Tool.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have been trying to get the ESTOOL hard drive diagnostic program to work for over a day now, and just figured out the problem. The bootable floppy disk seems to work. It lets me auto detect and select my Samsung hard drive. It lets me see information about the drive and its settings. When I choose "Drive Diagnostic," it asks how many loops to run, and when I hit enter (defaulting to 1), I end up back at the main menu.&lt;br /&gt;&lt;br /&gt;Ends up that the ESTOOLS boot floppy disk MUST NOT BE WRITE PROTECTED ! It wants to write a status log to the disk, but fails silently if the disk can't be written to. I'd guess that if the floppy disk were full, the same silent error would occur. So, to save yourself the grief I went through, don't lock the disk, and make sure there is at least 10K for log files (they are actually less than 5K each).&lt;br /&gt;&lt;br /&gt;Would have been nice if the program told me what the problem was !!!&lt;br /&gt;(I thought it was that my chipset was Nvidia, which was the problem with another vendor's hard drive diagnostic toolset)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-399963490929561061?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/399963490929561061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=399963490929561061' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/399963490929561061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/399963490929561061'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/06/samsung-estool-drive-diagnostic-does.html' title='Samsung ESTOOL Drive Diagnostic Does Nothing (here&apos;s why)'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-1447009377751340039</id><published>2008-04-02T18:24:00.000-07:00</published><updated>2008-04-02T19:38:12.905-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ideas'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Routines'/><title type='text'>Web Routines - In the Wild</title><content type='html'>This is a log of Web Routine concept "sightings" in the real world:&lt;br /&gt;&lt;p&gt;&lt;strong&gt;1)&lt;/strong&gt; 1999-2004 : DailyRoutine.com (&lt;a href="http://web.archive.org/web/20010410195707/www.dailyroutine.com/cgibin/main.cgi"&gt;Web Archive&lt;/a&gt;)&lt;br /&gt;Free proof-of-concept site, addicted many before shutdown due to cost of maintenance.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;2)&lt;/strong&gt; 2000 : Backflip (&lt;a href="http://www.backflip.com/"&gt;Backflip.com&lt;/a&gt;)&lt;br /&gt;Backflip adds "My Daily Routine" feature.&lt;br /&gt;"Backflip is a free service currently being run by volunteers."&lt;/p&gt;&lt;p&gt;&lt;strong&gt;3) &lt;/strong&gt;2001 : SunGard (&lt;a href="http://web.archive.org/web/20010601164215/www.sungard.com/press.cfm?PR_ID=400173"&gt;Web Archive&lt;/a&gt;)&lt;br /&gt;&lt;em&gt;SunGard Launches High Net Worth Portal Solution&lt;br /&gt;&lt;/em&gt;Birmingham, AL, March 7, 2001- SunGard Asset Management Systems, an operating group of SunGard (NYSE:SDS), has launched the SunGard AMS High Net Worth Portal, a customized, private-labeled Internet portal for financial institutions providing asset management services to high net worth clientele.&lt;br /&gt;[..] Traditional portal features such as news, weather, sports, stock quotes, charts, and market updates are also provided. In addition, using patent pending WebRoutine( technology from DailyRoutine.com.Inc., clients can organize Web sites into channels that can be cycled through in a manner similar to using a TV's remote control. This unique personalization tool allows clients to surf their favorite Web sites without ever leaving the portal.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;4) &lt;/strong&gt;2006 : US Patent issued (&lt;a href="http://www.google.com/patents?id=BSl4AAAAEBAJ"&gt;6,993,531&lt;/a&gt;)&lt;br /&gt;A system and method for navigating through routinely visited web pages with a browser that allows a user to navigate through the web pages using a “Next/Previous” paradigm.[..]&lt;br /&gt;&lt;br /&gt;&lt;a href="http://aadhoc.blogspot.com/2008/03/web-routines.html"&gt;[ Return to index (Web Routines) ]&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-1447009377751340039?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/1447009377751340039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=1447009377751340039' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/1447009377751340039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/1447009377751340039'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/04/web-routines-in-wild.html' title='Web Routines - In the Wild'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-8028205510077561751</id><published>2008-03-26T18:30:00.000-07:00</published><updated>2008-12-12T22:37:05.640-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ideas'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Routines'/><title type='text'>Web Routines</title><content type='html'>&lt;p&gt;&lt;a href="http://1.bp.blogspot.com/_JroyqkvpxZo/R89jIJJ3r7I/AAAAAAAAAFM/cUO9CcxNbkk/s1600-h/WebRoutineCoffeeNPaper.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5174463488419409842" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_JroyqkvpxZo/R89jIJJ3r7I/AAAAAAAAAFM/cUO9CcxNbkk/s320/WebRoutineCoffeeNPaper.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Web Routines organize a user's web browsing habits to provide convenience and efficiency for frequent browsing. RSS readers are a way to browse special web site feeds in a list format (like email), while Web Routines guide the user through a live browsing session to ANY web site, providing each one in its full and intended glory.&lt;/p&gt;&lt;p&gt;A web browser with bookmarks works well when searching for answers, entertainment and shopping. But when you visit a list of specific pages frequently (a routine), you are stuck digging around a potentially huge list of bookmarks, in an attempt to find the next one, then the next one, ... Web Routines solve the problem, and provide additional enhancements, like preloading web pages before you get to them, and allowing tangential browsing without losing track of the next page in your intended sequence.&lt;/p&gt;&lt;p&gt;This is the growing index of the postings I've made on Web Routines.&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:180%;"&gt;Index&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://aadhoc.blogspot.com/2008/03/web-routines-beginning.html"&gt;The Beginning&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://aadhoc.blogspot.com/2008/03/web-routines-browse-with-purpose.html"&gt;Browse with Purpose&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://aadhoc.blogspot.com/2008/03/web-routines-elegant-and-powerful.html"&gt;Elegant and Powerful&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://aadhoc.blogspot.com/2008/03/web-routines-infoporn-2000.html"&gt;InfoPorn 2000&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://aadhoc.blogspot.com/2008/04/web-routines-in-wild.html"&gt;In the Wild&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://aadhoc.blogspot.com/2008/03/web-routines-fair-use-license.html"&gt;Fair Use License&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-8028205510077561751?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/8028205510077561751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=8028205510077561751' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/8028205510077561751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/8028205510077561751'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/03/web-routines.html' title='Web Routines'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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://1.bp.blogspot.com/_JroyqkvpxZo/R89jIJJ3r7I/AAAAAAAAAFM/cUO9CcxNbkk/s72-c/WebRoutineCoffeeNPaper.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-569768729436997146.post-4550260599184246022</id><published>2008-03-23T19:26:00.000-07:00</published><updated>2008-12-12T22:37:05.744-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ideas'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Routines'/><title type='text'>Web Routines - Fair Use License</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_JroyqkvpxZo/R-sDlZjuCzI/AAAAAAAAAF8/hBNLfzcBnfE/s1600-h/WebRoutineIcon1big.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5182239737270635314" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_JroyqkvpxZo/R-sDlZjuCzI/AAAAAAAAAF8/hBNLfzcBnfE/s400/WebRoutineIcon1big.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Patent number: 6993531&lt;br /&gt;Filing date: Feb, 1999 (Provisional)&lt;br /&gt;Filing date: May, 1999 (Utility)&lt;br /&gt;Issue date: Jan 31, 2006&lt;br /&gt;Inventor: Aaron J. Naas&lt;br /&gt;&lt;br /&gt;I, AAron nAAs, owner of patent number 6993531 (The Patent), hereby provide fair use of The Patent to the public to create software works that utilize it (The Software) under the following terms (Fair Use License). I am releasing The Patent for use under the &lt;a href="http://creativecommons.org/"&gt;Creative Commons&lt;/a&gt; license "(CC) BY-NC-SA", which requires Author Attribution, allows Share-Alike Modifications, and allows for Non-Commercial use with the following additional custom stipulations: having The Software default to directing traffic to a commercial site is considered commercial use; hosting or distributing The Software on a commercial site is considered commercial use.&lt;br /&gt;&lt;br /&gt;Note that dispite my best efforts and intentions, if any portion of this license is found to be illegal, incomplete or invalid, the entire license shall be considered invalid and void.&lt;br /&gt;&lt;br /&gt;If you have questions or an interest in uses beyond the Fair Use License, contact me (aaron&lt;b&gt;_&lt;/b&gt;naas at yahoo d0t &lt;span style="font-size:100%;"&gt;c&lt;span style="font-size:100%;"&gt;o&lt;/span&gt;m&lt;/span&gt;), and please include "Web Routines" in the subject line.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://aadhoc.blogspot.com/2008/03/web-routines.html"&gt;[ Return to index (Web Routines) ]&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-4550260599184246022?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/4550260599184246022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=4550260599184246022' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/4550260599184246022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/4550260599184246022'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/03/web-routines-fair-use-license.html' title='Web Routines - Fair Use License'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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://1.bp.blogspot.com/_JroyqkvpxZo/R-sDlZjuCzI/AAAAAAAAAF8/hBNLfzcBnfE/s72-c/WebRoutineIcon1big.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-569768729436997146.post-7041787068120972412</id><published>2008-03-07T19:59:00.000-08:00</published><updated>2008-12-12T22:37:05.946-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ideas'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Routines'/><title type='text'>Web Routines - InfoPorn 2000</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_JroyqkvpxZo/R9IPtCk1FFI/AAAAAAAAAF0/Y0BkWY-gwkk/s1600-h/WebRoutineNumbersTable.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5175216188261995602" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_JroyqkvpxZo/R9IPtCk1FFI/AAAAAAAAAF0/Y0BkWY-gwkk/s400/WebRoutineNumbersTable.jpg" border="0" /&gt;&lt;/a&gt;Back in 2000 and before, there was evidence that users sit down and “routinely” browse their favorite web sites. See the table.&lt;br /&gt;&lt;br /&gt;Consider that these numbers suggest that average users browse about once per day to 5 web sites. They view about 7 sub-pages at each site (36 pageviews) - their whole session (routine) lasting 30 minutes.&lt;br /&gt;&lt;br /&gt;Consider yourself falling into this pattern just by browsing for news (two sites), then weather, then stocks, then email. With the extreme advances in web technologies, businesses flooding the web with services, and the ever increasing numbers of households with broadband, you probably do a lot more!&lt;br /&gt;&lt;br /&gt;These “Routine” habits already exist. I've been touting that “Web Routines” are an opportunity to capture user loyalty and understand user interests.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://aadhoc.blogspot.com/2008/03/web-routines.html"&gt;[ Return to index (Web Routines) ]&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-7041787068120972412?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/7041787068120972412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=7041787068120972412' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/7041787068120972412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/7041787068120972412'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/03/web-routines-infoporn-2000.html' title='Web Routines - InfoPorn 2000'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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://2.bp.blogspot.com/_JroyqkvpxZo/R9IPtCk1FFI/AAAAAAAAAF0/Y0BkWY-gwkk/s72-c/WebRoutineNumbersTable.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-569768729436997146.post-5951941329447094167</id><published>2008-03-07T19:43:00.000-08:00</published><updated>2008-03-07T19:55:15.572-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Life'/><title type='text'>Mood/Rage not eco friendly? More costly?</title><content type='html'>It would be interesting for someone to do a study on the effects of road rage on the environment and driving expenses. I'm not even considering the increased risk of accidents, which is an obvious issue.&lt;br /&gt;&lt;br /&gt;Consider that someone in a bad mood (or generally rage-inclined) drives from here to there, they probably race their engine, break hard at stoplights, and quickly accelerate off of a stop and to drive around other cars. Anytime you consider how much energy is used for something, consider that the energy consumed is dependant on the path chosen. If your car was at the top of a hill, and you coasted down in neutral (or off), you would use much less energy than if you raced down the hill with your foot on the accelerator, then braked hard at the bottom. The more energy you use, the more gasoline consumed and the more pollution expelled.&lt;br /&gt;&lt;br /&gt;If someone in a bad mood gets into their car and drives to/from work, they are more likely to use more gasoline and create more pollution than someone in a good mood. I wonder how much difference there is across a years time.&lt;br /&gt;&lt;br /&gt;Maybe road-raged drivers should be required to buy carbon offsets for the extra pollution they are adding to the environment?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-5951941329447094167?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/5951941329447094167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=5951941329447094167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/5951941329447094167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/5951941329447094167'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/03/moodrage-not-eco-friendly-more-costly.html' title='Mood/Rage not eco friendly? More costly?'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-6493028463923485709</id><published>2008-03-07T15:00:00.000-08:00</published><updated>2008-12-12T22:37:06.131-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ideas'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Routines'/><title type='text'>Web Routines - Elegant and Powerful</title><content type='html'>&lt;p&gt;Originating in 1998, Web Routines are one of the first implementations of “tabbed” type browsing, but further addressed user browsing habits rather than just session window organization.&lt;/p&gt;&lt;p&gt;This idea lays the foundation for compelling feature sets and user reliance, while the host gains insight into user interests, allowing automated site suggestions, useful product and service endorsements and other value added services.&lt;/p&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5174811741547638770" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_JroyqkvpxZo/R9Cf3JJ3r_I/AAAAAAAAAFs/-xdWTU7Tn5A/s400/WebRoutineSlideProjector.jpg" border="0" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://aadhoc.blogspot.com/2008/03/web-routines.html"&gt;[ Return to index (Web Routines) ]&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-6493028463923485709?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/6493028463923485709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=6493028463923485709' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/6493028463923485709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/6493028463923485709'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/03/web-routines-elegant-and-powerful.html' title='Web Routines - Elegant and Powerful'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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://2.bp.blogspot.com/_JroyqkvpxZo/R9Cf3JJ3r_I/AAAAAAAAAFs/-xdWTU7Tn5A/s72-c/WebRoutineSlideProjector.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-569768729436997146.post-5148129485247968327</id><published>2008-03-06T17:34:00.000-08:00</published><updated>2008-12-12T22:37:06.252-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ideas'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Routines'/><title type='text'>Web Routines - Browse with Purpose</title><content type='html'>Web Routines are about organizing users’ web browsing habits into a natural flow. The resulting system is as sticky and personal as email, and frequently leaves the users feeling satisfied-as if they’ve just browsed the entire Internet.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5174808528912101346" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_JroyqkvpxZo/R9Cc8JJ3r-I/AAAAAAAAAFk/wj9bopV8IIU/s400/WebRoutineFlow.gif" border="0" /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;“It’s like bookmarks on steroids”  ... &lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;“Sometimes bookmarks and Favorites aren't enough. Sometimes you need a little guidance to keep track of your daily routine on the Web.”  &lt;/span&gt;&lt;/em&gt;- &lt;a href="http://aroundcny.com/technofile/texts/bit032101.html" target="_parent"&gt;&lt;span style="font-size:85%;"&gt;Al Fasoldt&lt;/span&gt;&lt;/a&gt;&lt;a href="http://aroundcny.com/technofile/texts/bit032101.html" target="_parent"&gt;&lt;span style="font-size:85%;"&gt; (tech columnist/radio/tv)&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://aadhoc.blogspot.com/2008/03/web-routines.html"&gt;[ Return to index (Web Routines) ]&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-5148129485247968327?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/5148129485247968327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=5148129485247968327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/5148129485247968327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/5148129485247968327'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/03/web-routines-browse-with-purpose.html' title='Web Routines - Browse with Purpose'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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://2.bp.blogspot.com/_JroyqkvpxZo/R9Cc8JJ3r-I/AAAAAAAAAFk/wj9bopV8IIU/s72-c/WebRoutineFlow.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-569768729436997146.post-232969421417520763</id><published>2008-03-05T20:20:00.000-08:00</published><updated>2008-03-06T17:02:05.345-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='Ideas'/><title type='text'>Consuming Podcasts (virtually anywhere)</title><content type='html'>I just listened to this week's &lt;a href="http://twit.tv/twit"&gt;TWiT&lt;/a&gt; (fantastic podcast), where they were talking about Blogs, RSS, iPod, Twitter, Podcatchers, etc... That sent me back a few years with my initial experimentation with consuming podcasts. I didn't get an iPod at first, and had a &lt;a href="http://reviews.cnet.com/mp3-players/samsung-yepp-yp-t7z/4505-6490_7-31278881.html"&gt;Samsung YEPP YP-T7Z (1GB)&lt;/a&gt; mp3 player, which was nice, but I would soon find that it was rather bland.&lt;br /&gt;&lt;br /&gt;It felt like the device needed to both be the bucket to hold the mp3 files, but also the mechanism to receive them. ITunes plays on the concept of your "home base," tying up, and tying you to your home computer to receive and update your iPod. It should be that plugging in your media player into ANY computer should auto start the appropriate software to look for and receive new content, for storage back on the device. When you disconnected, your device would be both power and content charged. This is similar to the Windows-on-a-thumbdrive virtualization concept, utilizing the host computers's (PC or Mac, why not?) cpu and bandwidth.&lt;br /&gt;&lt;br /&gt;I tried putting some lightweight podcatchers on the device to varying degrees of success, but didn't get anything solid or compelling enough to believe I had it right. I even provided feedback to some of the authors that the software should be runnable from (and to) the player hardware's filesystem.&lt;br /&gt;&lt;br /&gt;It ends up the the iPod was vastly superior for listening to podcasts with it's content switching and resume features. ITunes really isn't that bad since I have to charge the iPod each day or so anyway... now my thoughts have turned to trying to connect the iPod (while at work) back to the home PC via a &lt;a href="http://www.google.com/search?q=usb+over+internet"&gt;virtual USB connection&lt;/a&gt; and &lt;a href="http://www.logmein.com/"&gt;LogMeIn.com&lt;/a&gt; (which would probably CRAWL so slowly as to be useless).&lt;br /&gt;&lt;br /&gt;I wonder if putting a virtual machine (VMware or VPC) on my iPod to be the ITunes "home base" would work. I would want it to run on any PC box I connected it to, and ITunes would have to recognize the iPod as being "plugged in" when it would in fact, be the unmountable "C:" drive. Too bad ITunes is such a heavyweight program. In this scenario, ITunes would use 2x the diskspace necessary to store music/podcasts for consuming on the run. For example, ITunes would download a TWiT episode onto on the C: drive somewhere to have it available... then detecting the the iPod was connected, it would copy the TWiT episode to the iPod (C: drive remember?)... What a colossal waste of space and effort for what MIGHT work, and certainly would be burden/timewaste and disk corruption risk... but it would be fun to try :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-232969421417520763?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/232969421417520763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=232969421417520763' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/232969421417520763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/232969421417520763'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/03/consuming-podcasts-virtually-anywhere.html' title='Consuming Podcasts (virtually anywhere)'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-2562616001360199111</id><published>2008-03-05T19:19:00.000-08:00</published><updated>2008-12-12T22:37:06.283-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ideas'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Routines'/><title type='text'>Web Routines - The Beginning</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_JroyqkvpxZo/R89jIJJ3r7I/AAAAAAAAAFM/cUO9CcxNbkk/s1600-h/WebRoutineCoffeeNPaper.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5174463488419409842" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_JroyqkvpxZo/R89jIJJ3r7I/AAAAAAAAAFM/cUO9CcxNbkk/s320/WebRoutineCoffeeNPaper.jpg" border="0" /&gt;&lt;/a&gt;Navigate through your favorite web sites with a natural flow. Let your web browser help.&lt;br /&gt;&lt;br /&gt;I had this compelling idea back in 1998 and began to secretly pursue it. We were in the middle of the &lt;a href="http://en.wikipedia.org/wiki/Dot-com_bubble"&gt;Dot-com Bubble&lt;/a&gt; and this new web browsing concept that had more potential than most of the products of the day that were getting millions of dollars from VCs and IPOs. I was more interested in product success than a quick sellout. Now, after almost 10 years I’d built a proof of concept, seen its addictiveness, acquired a patent (7 years after the initial filing), and approached Google, Microsoft, Yahoo, Apple, etc... about acquiring the technology.&lt;br /&gt;&lt;br /&gt;Big companies have very strict (paranoid) rules about receiving unsolicited product ideas, due to concern over &lt;a href="http://www.burst.com/new/newsevents/pressrelease007.htm"&gt;law suits&lt;/a&gt;, and would prefer to have an idea be public knowledge before give it any consideration. I, on the other hand, felt it was a golden opportunity for an Internet savvy corporation to benefit by offering unique features before their competitors.&lt;br /&gt;&lt;br /&gt;Now that the &lt;a href="http://www.readwriteweb.com/archives/who_are_the_big.php"&gt;key companies&lt;/a&gt; are aware of my pursuit, and they need the concepts to be more visible before further consideration, I am posting the ideas. I’ve committed a lot to this effort across the last 10 years, and before a large company can deny or dictate terms of public use, I will use this opportunity to spell out the terms at which the public may utilize my work without cost or fear of cease-and-desist retribution.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://aadhoc.blogspot.com/2008/03/web-routines.html"&gt;[ Return to index (Web Routines) ]&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-2562616001360199111?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/2562616001360199111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=2562616001360199111' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/2562616001360199111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/2562616001360199111'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/03/web-routines-beginning.html' title='Web Routines - The Beginning'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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://1.bp.blogspot.com/_JroyqkvpxZo/R89jIJJ3r7I/AAAAAAAAAFM/cUO9CcxNbkk/s72-c/WebRoutineCoffeeNPaper.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-569768729436997146.post-4942876775050507425</id><published>2008-02-23T19:10:00.000-08:00</published><updated>2008-12-12T22:37:06.692-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Life'/><title type='text'>Easy Opening - First Blood</title><content type='html'>&lt;div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_JroyqkvpxZo/R8Dj9nud00I/AAAAAAAAAE0/37WS5sn_ycE/s1600-h/EasyOpening.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5170383019996730178" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_JroyqkvpxZo/R8Dj9nud00I/AAAAAAAAAE0/37WS5sn_ycE/s400/EasyOpening.jpg" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;I am astonished at how dangerous sealed plastic packaging has become.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;It was one thing when I was now required to use a knife or hefty pair of scissors (metal cutters) to open a product from its throw-away plastic casing. If I didn't cut myself with the knife (not yet), I'd quickly find the plastic to be razor sharp (which HAS hurt). I'm surprised that no big product recalling law suits have resulted from that alone.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Now, I'm seeing the same plastic now in an "Easy Opening" form. The pre-perforated plastic corner DOES break nicely, but going beyond the corner is extremely difficult. The plastic is still hard and sharp, but now it's got jagged razor sharp teeth ! Each stiff triangular breakaway is extremely sharp and pointy. I was extremely careful as I tried to get at my new gadget trapped inside. I still recoiled in pain MANY times at that cautious pace.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;a href="http://3.bp.blogspot.com/_JroyqkvpxZo/R8DkH3ud01I/AAAAAAAAAE8/iB9NnXCnl8k/s1600-h/EasyOpeningTeeth.jpg"&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_JroyqkvpxZo/R8DkH3ud01I/AAAAAAAAAE8/iB9NnXCnl8k/s1600-h/EasyOpeningTeeth.jpg"&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_JroyqkvpxZo/R8DkH3ud01I/AAAAAAAAAE8/iB9NnXCnl8k/s1600-h/EasyOpeningTeeth.jpg"&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_JroyqkvpxZo/R8DkYnud02I/AAAAAAAAAFE/7bFtQss9xRE/s1600-h/EasyOpeningTeeth.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5170383483853198178" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_JroyqkvpxZo/R8DkYnud02I/AAAAAAAAAFE/7bFtQss9xRE/s400/EasyOpeningTeeth.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;I really like the company that made the gadget I had just ordered, but I'm positive that they've not done any usability standards or gathered any first impressions (bloody) on the customer contending with the disposable plastic shell casing. I'd love to see the CEO get his hands on one of his products, and try to open it. He'd probably be swearing his head off and looking for band aids in less than 60 seconds.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Surely some one's been sued over this by now. Any severe lacerations anyone? ANYONE?&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/569768729436997146-4942876775050507425?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/4942876775050507425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=4942876775050507425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/4942876775050507425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/4942876775050507425'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2008/02/easy-opening-first-blood.html' title='Easy Opening - First Blood'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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://2.bp.blogspot.com/_JroyqkvpxZo/R8Dj9nud00I/AAAAAAAAAE0/37WS5sn_ycE/s72-c/EasyOpening.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-569768729436997146.post-2963050860180193932</id><published>2007-12-25T16:37:00.000-08:00</published><updated>2008-03-06T16:57:55.818-08:00</updated><title type='text'>IZArc virus scan settings for McAfee VirusScan</title><content type='html'>&lt;a href="http://www.izarc.org/"&gt;IZArc&lt;/a&gt; is fantastic for handling virtually every possible file compression, but I'm sure you already knew that. Microsoft did well building zip into the operating system, but IZArc is better.&lt;br /&gt;&lt;br /&gt;Anyway, when you install it, you can optionally specify a virus scanning program. I have McAfee / Network Associates VirusScan (v8.0.0), and it took me a moment to figure out reasonable values for the Virus Scanner options. I didn't see any settings on the web for what other people were using for scan32, so here is what I did.&lt;br /&gt;&lt;br /&gt;Options / Configuration / Program Locations / Virus Scanner&lt;br /&gt;Optional Virus Scanner: C:\Program Files\Network Associates\VirusScan\scan32.exe&lt;br /&gt;Parameters: %d /AUTOEXIT /NOESTIMATE&lt;br /&gt;&lt;br /&gt;If anyone has better settings, let me know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-2963050860180193932?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/2963050860180193932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=2963050860180193932' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/2963050860180193932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/2963050860180193932'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2007/12/izarc-virus-scan-settings-for-mcafee.html' title='IZArc virus scan settings for McAfee VirusScan'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-9097312710557633835</id><published>2007-11-21T11:18:00.000-08:00</published><updated>2008-03-06T17:09:32.466-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hosting'/><title type='text'>Google Pages hosting with/without WWW</title><content type='html'>&lt;span id="thread_subject_site"&gt;As a tip to godaddy subscribers (such as myself), I post my experiences with google page hosting...&lt;br /&gt;&lt;br /&gt;I have a host (example.org for this writeup) domain purchased through godaddy.com, and I wanted to host pages at Google. Google makes it easy to point http://www.example.org to their page hosting services, but there is no (or little) information about making http://example.org point to the same web site. The result was that if you people visited http://example.org, they would be greeted with a godaddy domain parked page.&lt;br /&gt;&lt;br /&gt;The good people at godaddy.com lead me to forward the main domain to the subdomain.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span id="thread_subject_site"&gt;I had already setup godaddy as Google pages suggested creating a CNAME to point to ghs.google.com.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span id="thread_subject_site"&gt;I ensured that the A record for Host @ is set to the original value set up by godaddy.com.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span id="thread_subject_site"&gt;I then clicked on example.org and clicked the "Forward" button, enabled forwarding to "http://www.example.org" with option "302 Moved Temporarily".&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span id="thread_subject_site"&gt;Now, when someone tries http://example.org, the forwarding should cause them to browser redirect to http://www.example.org, which has a cname record pointing to ghs.google.com, which should bounce the browser to google pages for example.org.&lt;br /&gt;&lt;br /&gt;In short, http://example.org (and http://www.example.org) should now end up at &lt;/span&gt;http://www.example.org-a.googlepages.com&lt;br /&gt;&lt;br /&gt;I hope this helps godaddy customers who have google apps page hosting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-9097312710557633835?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/9097312710557633835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=9097312710557633835' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/9097312710557633835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/9097312710557633835'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2007/11/google-pages-hosting-withwithout-www.html' title='Google Pages hosting with/without WWW'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-4140509445622865830</id><published>2007-10-03T18:27:00.000-07:00</published><updated>2009-03-09T20:31:54.716-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><title type='text'>Repair ViewSonic V150 BATTERY</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_JroyqkvpxZo/RwRMrF2QaGI/AAAAAAAAACs/YO1RNrz9pXI/s1600-h/V150.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5117299379787556962" style="FLOAT: left; MARGIN: 0px 10px 10px 0px" alt="" src="http://3.bp.blogspot.com/_JroyqkvpxZo/RwRMrF2QaGI/AAAAAAAAACs/YO1RNrz9pXI/s200/V150.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;I bought a &lt;a href="http://www.viewsonic.com/support/mobilewireless/airpanelsmartdisplays/airpanelv150p/"&gt;ViewSonic V150 airpanel Smart Display&lt;/a&gt; on ebay a while ago, and its battery was never very good. Now it won't hold a charge at all. This isn't surprising since the device was discontinued years ago. I see that a "new" battery is currently $129, and I've seen repairs for $79 (at &lt;a href="http://www.batteryrefill.com/laptops/Viewsonic/VSACC24672-1W.phtml"&gt;BatteryRefill&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;As a remote display, it is a nice laptop replacement for around the house, and repairs are too expensive, so I'm fixing the battery myself. Warning: I must mention that this is my attempt, and an account of my own experiences. I ended up encountering many warnings about Li-Ion batteries and their potential for fires and explosions. You may follow my instructions completely at your own risk, but you will need the skill (not just confidence) to do it safely and successfully.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_JroyqkvpxZo/RwREsF2QZ_I/AAAAAAAAAB0/NSEapxJRNx4/s1600-h/IMGP6451.JPG"&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_JroyqkvpxZo/RwRG3F2QaAI/AAAAAAAAAB8/BXhrg4p1Q48/s1600-h/IMGP6451s.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5117292988876220418" style="FLOAT: left; MARGIN: 0px 10px 10px 0px" alt="" src="http://3.bp.blogspot.com/_JroyqkvpxZo/RwRG3F2QaAI/AAAAAAAAAB8/BXhrg4p1Q48/s200/IMGP6451s.jpg" border="0" /&gt;&lt;/a&gt;The battery cartridge appears to be glued tightly all the way around, and the rubber feet have nothing useful hidden below them.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_JroyqkvpxZo/RwRHUV2QaBI/AAAAAAAAACE/J8PT8AVgdvM/s1600-h/BatteryTwist.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5117293491387394066" style="FLOAT: left; MARGIN: 0px 10px 10px 0px" alt="" src="http://4.bp.blogspot.com/_JroyqkvpxZo/RwRHUV2QaBI/AAAAAAAAACE/J8PT8AVgdvM/s200/BatteryTwist.jpg" border="0" /&gt;&lt;/a&gt;Carefully twisting this battery compartment cracked the seal on the connector's side. At this point, I can see that there is a groove that goes all the way around the compartment that holds it all tight, and is only glued together.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_JroyqkvpxZo/RwRHv12QaCI/AAAAAAAAACM/9hUI0wTqHyk/s1600-h/BatteryPrying1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5117293963833796642" style="FLOAT: left; MARGIN: 0px 10px 10px 0px" alt="" src="http://2.bp.blogspot.com/_JroyqkvpxZo/RwRHv12QaCI/AAAAAAAAACM/9hUI0wTqHyk/s200/BatteryPrying1.jpg" border="0" /&gt;&lt;/a&gt;Some additional prying from the center, to crack open the entire connector side.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_JroyqkvpxZo/RwRH4V2QaDI/AAAAAAAAACU/aPSoD_8cLhk/s1600-h/BatteryPrying2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5117294109862684722" style="FLOAT: left; MARGIN: 0px 10px 10px 0px" alt="" src="http://4.bp.blogspot.com/_JroyqkvpxZo/RwRH4V2QaDI/AAAAAAAAACU/aPSoD_8cLhk/s200/BatteryPrying2.jpg" border="0" /&gt;&lt;/a&gt;The with some gentle, but firm prying, the end came apart. Again, just glue holding it together. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_JroyqkvpxZo/RwRJ012QaEI/AAAAAAAAACc/xxfXPXJjO7w/s1600-h/BatteryOpen.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5117296248756398146" style="FLOAT: left; MARGIN: 0px 10px 10px 0px" alt="" src="http://2.bp.blogspot.com/_JroyqkvpxZo/RwRJ012QaEI/AAAAAAAAACc/xxfXPXJjO7w/s200/BatteryOpen.jpg" border="0" /&gt;&lt;/a&gt;As I claimed victory against the glue, I let the comparement open with the labels side down. A small circuit board, and 4 crudely taped batteries are exposed. Interesting that the space beside the batteries is clearly contoured to handle another row of batteries. The extra batteries must have been an idea, or buy-up option that you could have paid for.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_JroyqkvpxZo/RwRKc12QaFI/AAAAAAAAACk/5vSE_pBPojg/s1600-h/BatteryCell.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5117296935951165522" style="FLOAT: left; MARGIN: 0px 10px 10px 0px" alt="" src="http://2.bp.blogspot.com/_JroyqkvpxZo/RwRKc12QaFI/AAAAAAAAACk/5vSE_pBPojg/s200/BatteryCell.jpg" border="0" /&gt;&lt;/a&gt;A quick search on the internet for this ICR18650-20 Li-Ion Rechargeable Battery by Samsung reveals all.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.samsungsdi.com/contents/en/product/battery/type01_ICR18650_20.html"&gt;Samsung Site for ICR18650-20 battery.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;&lt;br /&gt;ICR18650-20 Li-Ion Rechargeable Battery&lt;br /&gt;&lt;br /&gt;Nominal Capacity            2,000mAh&lt;br /&gt;Nominal Voltage             3.7V&lt;br /&gt;Dimension                   D 18.25mm, H 65.0mm&lt;br /&gt;Charge Method               Constant Current&lt;br /&gt;                  Constant Voltage (4.2V)&lt;br /&gt;Max. Charge Current         1CmA (2,000mA)&lt;br /&gt;Max. Discharge Current      2CmA (4,000mA)&lt;br /&gt;Discharge Temperature       -20°C ~ +60°C&lt;br /&gt;Weight (approx.)            44g&lt;br /&gt;Energy Density              448Wh/I, 172Wh/kg&lt;br /&gt;Charging Time               Standard : 3hrs.&lt;br /&gt;                  Rapid : 2.5hrs.&lt;br /&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I could order the same exact battery, or improve the battery with either the 2,200mAh or 2,400mAh alternatives.&lt;br /&gt;See&lt;br /&gt;&lt;a href="http://www.samsungsdi.com/contents/en/product/battery/type01_ICR18650_20.html"&gt;http://www.samsungsdi.com/contents/en/product/battery/type01_ICR18650_20.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.samsungsdi.com/contents/en/product/battery/type01_ICR18650_22.html"&gt;http://www.samsungsdi.com/contents/en/product/battery/type01_ICR18650_22.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.samsungsdi.com/contents/en/product/battery/type01_ICR18650_24.html"&gt;http://www.samsungsdi.com/contents/en/product/battery/type01_ICR18650_24.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I looked around at all the options, 2000mAh - 3600mAh, with slightly varying specs. Sometimes the built in safety protection circuits made the size slightly longer than 65mm tall. It looks like any additional length will cause problem with the already tight fit. I suspect that there are lots of options that will work, but I tried to go for close compatibility and safety. More capacity means more longer charging, higher density, and more potential instability. Closer specs to the original should mean the better the existing circuitry will treat the new batteries. I also want a good price without buying cut-rate or used merchandise.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;I found an inexpensive battery that had a close match to the original Samsung 18650, except in a 2200mAh. It even had similar charge and discharge current numbers, which sometimes was the only obvious difference from the original battery. I decided to get pre-wired tabs since I'm not supposed to soldier directly to the battery. The company also had "reasonable" feedback on &lt;a href="http://www.resellerratings.com/"&gt;ResellerRatings.com&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;I ordered:&lt;/div&gt;&lt;div&gt;Li-Ion 18650 Cylindrical Cell 18650 3.6V 2200mAh Cell (LC-18650H2-tab)&lt;/div&gt;&lt;div&gt;4 x $5.80 (includes $.25 for Pre-Wired Tabs) + shipping = $30.18&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.batteryspace.com/index.asp?PageAction=VIEWPROD&amp;amp;ProdID=1404"&gt;Here at BatterySpace&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;I NOTED THE ORIENTATION (DIRECTION) OF ALL THE BATTERIES. If I put a battery back in the wrong orientation and tried to charge it, the battery would probably catch fire or explode. The negative/positive ends must be lined up properly !!!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JroyqkvpxZo/Rx1DDV2QaHI/AAAAAAAAADk/XjosXIFhyjg/s1600-h/removebatteries.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5124325675700873330" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://1.bp.blogspot.com/_JroyqkvpxZo/Rx1DDV2QaHI/AAAAAAAAADk/XjosXIFhyjg/s400/removebatteries.jpg" border="0" /&gt;&lt;/a&gt;I removed the batteries by clipping the ribbon "tabs," then noted the orientation of all the batteries to install the new batteries exactly the same way as the old batteries. I removed all the tape from the tops and bottoms very carefully. Be most careful by the two small wires next to the blue one. Save the brown single sided tape if possible! Throw away all the double sided tape.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JroyqkvpxZo/Rx1D0l2QaII/AAAAAAAAADs/mJQOJVOBY4M/s1600-h/connection1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5124326521809430658" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://2.bp.blogspot.com/_JroyqkvpxZo/Rx1D0l2QaII/AAAAAAAAADs/mJQOJVOBY4M/s400/connection1.jpg" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JroyqkvpxZo/Rx1D712QaJI/AAAAAAAAAD0/5F0WA-Kq5OU/s1600-h/connection2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5124326646363482258" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://3.bp.blogspot.com/_JroyqkvpxZo/Rx1D712QaJI/AAAAAAAAAD0/5F0WA-Kq5OU/s400/connection2.jpg" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JroyqkvpxZo/Rx1EE12QaKI/AAAAAAAAAD8/ECtI9jV81bI/s1600-h/connection3.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5124326800982304930" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://3.bp.blogspot.com/_JroyqkvpxZo/Rx1EE12QaKI/AAAAAAAAAD8/ECtI9jV81bI/s400/connection3.jpg" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JroyqkvpxZo/Rx1EK12QaLI/AAAAAAAAAEE/OsRj6rX0vRc/s1600-h/connection4.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5124326904061520050" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://3.bp.blogspot.com/_JroyqkvpxZo/Rx1EK12QaLI/AAAAAAAAAEE/OsRj6rX0vRc/s400/connection4.jpg" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JroyqkvpxZo/Rx1ERF2QaMI/AAAAAAAAAEM/NLQ7FDua1jA/s1600-h/connection5.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5124327011435702466" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://4.bp.blogspot.com/_JroyqkvpxZo/Rx1ERF2QaMI/AAAAAAAAAEM/NLQ7FDua1jA/s400/connection5.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I soldered the SAME wires to the battery tabs the SAME way the old batteries were attached. I was careful to only solder to the tabs (and quickly) to be sure no heat bothered the fire hazard explosive batteries (as all the warnings told me).&lt;br /&gt;&lt;/p&gt;&lt;div&gt;I left the two dangling wires beside the blue wire. I'm convinced that they are thermo devices to help the circuitry ensure that the batteries aren't getting too hot during charging. These temperature sensors must attach the same way they were afterward.&lt;br /&gt;&lt;/div&gt;&lt;p&gt;I secured the batteries to the plastic compartment with double sided tape. I used "Glass-Tac Acrylic Double-Face Tape" from Home Depot. I also had to secure the batteries AFTER I soldered them in place. It would have been MUCH better for me to put tape in the plastic chamber, add the batteries, positioning the tabs for soldering, then solder them in. I was left trying to lift the connected batteries enough to put double sticky tape below, which was rather difficult.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;When I secured the batteries, I made sure the blue wire's connection was reasonably far from the two temperature sensing wires, because I would then need to carefully secure those two with their own tape.&lt;/p&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JroyqkvpxZo/Rx1Jml2QaNI/AAAAAAAAAEU/2nI6cPbtoj8/s1600-h/tapedsensors.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5124332878361028818" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://2.bp.blogspot.com/_JroyqkvpxZo/Rx1Jml2QaNI/AAAAAAAAAEU/2nI6cPbtoj8/s400/tapedsensors.jpg" border="0" /&gt;&lt;/a&gt;I put tape over the two wire temp sensors to secure them tightly against the batteries just as they were before. If I had saved any of the brown single sided tape from above, I could have reused it here. I ended up using the same double sided tape for this. I wanted to use heat resistant tape as was there before.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I resisted the temptation to use the typical black electrical tape. That stuff tends to get gooey over time and slide around. It certainly wouldn't work for anything that needed to be tightly taped. I did put the little paper dividers back under the solder points to protect the battery from contact and put a little bit of electrical tape on top of the paper to thicken the divider.&lt;br /&gt;&lt;br /&gt;After reassembling the pack, I found that the battery pack would attach to the console without the battery pack top plastic attached. I attached the power supply and charged the unit out in the garage for 1.5 hours keeping it carefully covered (in case of explosion), and touched the batteries every few minutes to test for overheating. The unit charged perfectly, without the batteries warming up at all.&lt;br /&gt;&lt;br /&gt;I will probably NOT glue/secure the battery pack shell together since when assembled and jammed into the console, it locks and stays together perfectly. If anyone other than myself were to use the unit, I would immediately consider gluing it back together. I will be carefully charging this unit for some time to come, and feeling for battery heat.&lt;br /&gt;&lt;br /&gt;I spent less than $40, and consider the project a success!&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;If you want to further hack the unit, try this (I'm not going to)&lt;br /&gt;&lt;a href="http://www.aibohack.com/panel/"&gt;PanelPet's Smart Display Panel page&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/569768729436997146-4140509445622865830?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/4140509445622865830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=4140509445622865830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/4140509445622865830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/4140509445622865830'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2007/10/repair-viewsonic-v150-battery.html' title='Repair ViewSonic V150 BATTERY'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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://3.bp.blogspot.com/_JroyqkvpxZo/RwRMrF2QaGI/AAAAAAAAACs/YO1RNrz9pXI/s72-c/V150.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-569768729436997146.post-431691992829922147</id><published>2007-09-26T20:30:00.000-07:00</published><updated>2008-03-06T17:02:32.377-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ideas'/><title type='text'>Google Bot-Net Stopper?</title><content type='html'>With an idea like GoogleDNS widely in use, Google would be in a position to detect Bot-Nets. Many computers (estimated to be 1 in 4) have been taken over and made part of a Bot-Net to do the hackers' bidding. Quite often, these computers are used to serve as hosts for impossible to detect/track web sites.&lt;br /&gt;&lt;br /&gt;If a scam artist wanted to run an "example.com" web site and provide purchase and payment instructions, but not get caught doing it, they would pay a hacker to have it hosted by a bot-net. When the user clicks on the example.com link, a dynamic DNS entry would dole out an IP address for some poor individual whose machine has been compromised. The scammer's web page would be served up, and no one would be able to track down the scammer. The next time someone went to example.com, the IP address would be someone else's compromised computer. The IP addresses for example.com would appear to bounce around all over the world. Law enforcement is left trying to "follow the money" to catch the scammer, since they can't track them down via the web site.&lt;br /&gt;&lt;br /&gt;A GoogleDNS solution would allow Google to detect DNS resolution oddities such as a bot-net would exhibit. As the user attempts to visit example.com, Google could provide the user with warnings or outright blocking of the site based on the user's preferences.&lt;br /&gt;&lt;br /&gt;Unfortunately there is a possible work-around for hackers to avoid immediate detection. Hackers would want to make their bot-net web site "clusters" act like respectable authentic web site clusters. Many web sites exhibit this DNS resolution behavior as they load balance their web site across the country, or across the world. I am convinced though, that there are detectable differences in this behavior that the clever people at Google can use. For example, bot-nets would likely need a larger number of sites, or higher turnover, to do the same thing as a "respectable" cluster... or the hosts of the web site could be resolved to be on home cable networks.&lt;br /&gt;&lt;br /&gt;Google is in a unique position to offer protection from bot-nets that few services could detect or provide.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-431691992829922147?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/431691992829922147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=431691992829922147' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/431691992829922147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/431691992829922147'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2007/09/google-bot-net-stopper.html' title='Google Bot-Net Stopper?'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-5210013826905327876</id><published>2007-09-26T20:25:00.000-07:00</published><updated>2008-03-06T17:02:43.829-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ideas'/><title type='text'>GoogleDNS</title><content type='html'>Google has a lot of high level information about internet web sites, including topical categorizations. They have the ability to offer services to filter the web traffic from your machine(s), and insights to discover phishing and other malevolent web sites.&lt;br /&gt;&lt;br /&gt;(See &lt;a href="http://aadhoc.blogspot.com/2007/09/google-porn-stopper.html"&gt;Google Porn Stopper?&lt;/a&gt; and &lt;a href="http://aadhoc.blogspot.com/2007/09/google-bot-net-stopper.html"&gt;Google Bot-Net Stopper?&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Google could provide a service such as OpenDNS.com which currently provides a robust DNS lookup and web site filtering (if desired). Google has the knowledge and horsepower to offer DNS services and the associated web site filtering. They would then connect your existing Google account to web site filter settings (possibly with some automatic help from a small network identifying and setup application in &lt;a href="http://pack.google.com/"&gt;Google Pack&lt;/a&gt;). &lt;a href="https://www.google.com/a/"&gt;Google Apps&lt;/a&gt; already intends to be most of the personal/home/business web services infrastructure that you'll need... web based content filtering seems to fit right in for those users that want it.&lt;br /&gt;&lt;br /&gt;A GoogleDNS solution would also provide users with a way to remotely monitor the activity of their own machines/networks, just as any commercial web site filtering software would offer. This would be possible because your machine using GoogleDNS services would log all their DNS lookups (which amounts to all internet activity).&lt;br /&gt;&lt;br /&gt;The real question is whether Google will determine this to be "evil" because of the potential for abuse of information. Though they are already housing your email, your web sites, your browsing habits, ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-5210013826905327876?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/5210013826905327876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=5210013826905327876' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/5210013826905327876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/5210013826905327876'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2007/09/googledns.html' title='GoogleDNS'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-1663198824230246165</id><published>2007-09-26T20:06:00.000-07:00</published><updated>2008-03-06T17:02:54.366-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ideas'/><title type='text'>Google Porn Stopper?</title><content type='html'>Google is built on some rather advanced reliance algorithms, but can also detect communities of interest. Looking at white papers about detecting groups of sites in a topical community can be rather difficult due to the surprising amount math involved. The end result though, is that Google can detect the interconnected nature of adult web sites, or sites of any other topic.&lt;br /&gt;&lt;br /&gt;The difficulty for adult site blocking software is the manual categorization of sites. I would suggest that Google has that information, through it's current algorithms, possibly with better coverage than any other database. They are already offering a glimpse of their knowledge by providing moderate and strict filtering from the search preferences page.&lt;br /&gt;&lt;br /&gt;The next step is for Google to package an web site filter into their Google Pack of essential software.&lt;br /&gt;&lt;br /&gt;(Of course this filtering and web site categorization works great for other topics as well. Google should have sites already categorized as: adult, violence, gambling, illegal, ...)&lt;br /&gt;&lt;br /&gt;Look to my GoogleDNS post for how Google could help us filter our web browsing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-1663198824230246165?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/1663198824230246165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=1663198824230246165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/1663198824230246165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/1663198824230246165'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2007/09/google-porn-stopper.html' title='Google Porn Stopper?'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-6575609156528957214</id><published>2007-09-24T17:18:00.001-07:00</published><updated>2008-12-12T22:37:09.712-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ideas'/><title type='text'>FileSystem Firewall</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JroyqkvpxZo/RvhdZ12QZ9I/AAAAAAAAABk/X91VdcslFcA/s1600-h/fw.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5113940075411957714" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://2.bp.blogspot.com/_JroyqkvpxZo/RvhdZ12QZ9I/AAAAAAAAABk/X91VdcslFcA/s200/fw.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There is a compromise security model that could make it easy for Windows users to prevent unauthorized programs (ex: malware) from reading files that they shouldn't.&lt;br /&gt;&lt;br /&gt;There is currently a disparity between the "ideal" file system security model touted by Unix/Linux zealots, and the "practicality" of novice Windows users. The tight security model says log on to your computer as a low privileged account and only occasionally run "certain" programs as the high power administrator. The Windows user is used to logging in as a "Power User" or an administrator, and running every program with full authority. With file system security usually as the main goal, the Unix users are preventing rouge programs from corrupting or taking over their computer. Windows users typically see security as getting in the way of desirable programs conveniently auto-installing plug-ins and sometimes even working at all!&lt;br /&gt;&lt;br /&gt;Security enthusiasts use the approach of securing with users and groups that have just enough access to regions of the file system to perform their preprogrammed function. If a program tries to step out of bounds, it will fail since the user account the program "runs as" simply was not granted access to any other region of the file system. This is a solid approach that has worked for decades, but generally requires a system administrator to setup and maintain. In the Windows world on a workstation, this would require a high degree of effort (creating dozens of accounts and groups, and assigning proper permissions to file system nodes) and is well beyond what even most power users would consider reasonable.&lt;br /&gt;&lt;br /&gt;What is needed is an approach where the program is considered as an individual entity automatically. Consider how modern network firewalls let the user allow or disallow network access down to the application level. If a new program tries to access the internet, or a modified program attempts to phone-home... the user is alerted, and given the option to allow or block it. What if an individual application was automatically treated with those kinds of restrictions while trying to access the file system?&lt;br /&gt;&lt;br /&gt;Programs start their lives on your system with an install. You then run them repeatedly and they might even receive updates. An uninstall may also occur. Generally this normal cycle is moderated by core APIs and known directories on the Windows platform. When considering what files and directories an application should be legitimately accessing during that life cycle, it is possible to use community submitted configurations and distribute them the way virus protection software gets updates.... but there is also another "automatic" way.&lt;br /&gt;&lt;br /&gt;When an application is installed, the operating system can "notice" the installation directory, and automatically provide that application with full control to that directory as its "home." When the user goes to save files from the application, the operating system's common "save" dialog box could inform the system of directories or individual files that the application should have read/write access to. Registry entries associating file types to applications is also a clue for the operating system to allow special access. If all these clues aren't enough, the user could always be asked to allow/disallow, the way firewall programs do. Generally between these system clues, and profiling by the community, this system shouldn't require much, if any interaction from the end user to provide this extra layer of security.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JroyqkvpxZo/Rvhc4V2QZ8I/AAAAAAAAABc/wPJDdhZA7yA/s1600-h/popup.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5113939499886340034" style="FLOAT: right; MARGIN: 0pt 0pt 10px 10px; CURSOR: pointer" alt="" src="http://4.bp.blogspot.com/_JroyqkvpxZo/Rvhc4V2QZ8I/AAAAAAAAABc/wPJDdhZA7yA/s200/popup.jpg" border="0" /&gt;&lt;/a&gt;I think there is a potential here for a solid application based file system fire-walling product. A few years ago I did the research, and I only found one defunct product that had attempted this type of "sandboxing" (with a different market and purpose). I am sure that the same consumers that enjoy the Norton or ZoneAlarm network firewall features would find the security and ease of use of this approach. In fact, I even approached ZoneAlarm with an idea to enhance their product line, but I got no response from them.&lt;br /&gt;&lt;br /&gt;I run my PC as an Administrator, and would welcome this security enhancement. I don't want any programs but Quicken accessing my Quicken data files! In Windows, I'm basically forced into this "wide open" predicament because Windows is such a standard and productivity enhancing platform... ie: I like it, but it has problems.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/3.0/" rel="license"&gt;&lt;img class="cc-button" alt="Creative Commons License" src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" border="0" /&gt;&lt;/a&gt; &lt;div class="cc-info"&gt;This Work is licensed under a &lt;a href="http://creativecommons.org/licenses/by-nc-sa/3.0/" rel="license"&gt;Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License&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/569768729436997146-6575609156528957214?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/6575609156528957214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=6575609156528957214' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/6575609156528957214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/6575609156528957214'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2007/09/filesystem-firewall.html' title='FileSystem Firewall'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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://2.bp.blogspot.com/_JroyqkvpxZo/RvhdZ12QZ9I/AAAAAAAAABk/X91VdcslFcA/s72-c/fw.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-569768729436997146.post-71284013879199370</id><published>2007-09-23T19:34:00.000-07:00</published><updated>2008-12-12T22:37:10.830-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ideas'/><title type='text'>Swarm fighting</title><content type='html'>&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JroyqkvpxZo/RvcsIl2QZ3I/AAAAAAAAAA0/NwKz_CNQEAM/s1600-h/matrixPileup.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5113604428012742514" style="FLOAT: right; MARGIN: 0pt 0pt 10px 10px; CURSOR: pointer" alt="" src="http://4.bp.blogspot.com/_JroyqkvpxZo/RvcsIl2QZ3I/AAAAAAAAAA0/NwKz_CNQEAM/s400/matrixPileup.jpg" border="0" /&gt;&lt;/a&gt;Fighting games are limited by the player's ability to comprehend the complexity of game play, the player's reaction time, and the computing horsepower to present a beautifully rendered bout (which people expect these days). One-on-one or One-on-few games are all you are likely to find. What about an advanced One-on-Many or Few-on-Many where one or more players battle a large group of nicely rendered attackers with realistic physics? Are you wondering if it would be playable or even possible? I think it can work well, but conventional one-on-one game play concepts won't produce a compelling result.&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JroyqkvpxZo/RvcoP12QZ1I/AAAAAAAAAAk/rONm0_1MaKo/s1600-h/2Fighter.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5113600154520282962" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://1.bp.blogspot.com/_JroyqkvpxZo/RvcoP12QZ1I/AAAAAAAAAAk/rONm0_1MaKo/s200/2Fighter.jpg" border="0" /&gt;&lt;/a&gt;Consider a One-on-One fighting game. It is easily comprehended by the general gamer. The game authors improve the game by adding stunning graphics and special button press combinations (combos) to enhance game play with special moves. Combos are a sly way to add complexity to a game to challenge advanced players, without turning off the beginners, since the core game play still seems obvious (approach opponent, use attack buttons). Utilizing new hardware and improving the software make the games wonderfully rendered and attractive to new players.  Modern games feature three dimensional "feel," realistic looking surroundings / bodies / clothes / eye movement, swooshes / blurs / replays, fighting implements (like swords), humor, special moves and powers, strategy, … But when you consider them, although fun, they are still just "souped up" classics, and not revolutionary.&lt;/p&gt;&lt;p&gt;The One-on-Few or Few-on-Few fighting games are not very prevalent. They usually have poor game play due to limiting the virtual environment or providing contrived fighting scenarios to aid the player's game comprehension and reaction time (by turning the game play into many one-on-one fights). These games have existed for a while, and are getting better.&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JroyqkvpxZo/RvctHV2QZ5I/AAAAAAAAABE/pMqYQOlPcYo/s1600-h/simpsons.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5113605506049533842" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://3.bp.blogspot.com/_JroyqkvpxZo/RvctHV2QZ5I/AAAAAAAAABE/pMqYQOlPcYo/s200/simpsons.png" border="0" /&gt;&lt;/a&gt;Remember the &lt;strong&gt;&lt;em&gt;old&lt;/em&gt;&lt;/strong&gt; arcade games like the Simpsons or Teenage Mutant Ninja Turtles? They were Few-on-Few by having 1 to 4 players and usually had several attackers on the screen at once. Horrible graphics, physics and game play from today's standards, but they were somewhat entertaining at the time. Many of the multi attacker games today unfortunately provide the same simplistic two dimensional feel of those old classics.&lt;script&gt;&lt;!-- D(["mb","\u003c/p\&gt;  \u003cp\&gt; \u003c/p\&gt;  \u003cp\&gt;\u003cspan\&gt; \u003c/span\&gt;\u003c/p\&gt;  \u003cp\&gt; \u003c/p\&gt;  \u003cp\&gt;It would be amazing to see a good &amp;quot;Swarm Fighting&amp;quot; game where one or more human players face a large group of attackers (imagine 100 attackers!) in the same type of beautifully rendered three dimensional physics that modern one-on-one games exhibit. The questions are how would it work, and would it be playable. There have been some successes in this arena, but nothing modern. Robotron 2084 and Smash TV were basically two dimensional top-down perspective shooters, but they drew players in and gave them the panic of attacking hordes. These games introduced two joysticks (no buttons) for quick reaction time. Move with one joystick, fire with the other. Smash TV even supported two players. The innovation of top-down perspective and two joysticks broke with convention (not just 1 joystick, and 1 fire button) and made game play more natural in fighting large swarms of attackers with what looked like near impossible odds. They were good games, but how about a modern game with well rendered actors and believable physics as dozens or hundreds of attackers approach?\u003c/p\&gt;  \u003cp\&gt; \u003c/p\&gt;  \u003cp\&gt;\u003cspan\&gt; \u003c/span\&gt;\u003c/p\&gt;  \u003cp\&gt; \u003c/p\&gt;  \u003cp\&gt;Here is an approach that would be entertaining and would pull players willfully into the middle of a swarm of attackers. The proven combination of &amp;quot;simplicity of play for beginner players, with combos for advanced players, and beautiful imagery for players and onlookers alike&amp;quot; can be achieved, but the mechanics of game play needs to change to allow the player to react to a new type of battle scene.\u003c/p\&gt;  \u003cp\&gt; \u003c/p\&gt;  \u003cp\&gt;\u003cspan\&gt; \u003c/span\&gt;\u003c/p\&gt;  \u003cp\&gt; \u003c/p\&gt;  \u003cp\&gt;Base the fighting game play on a meta-game that the player can easily understand, allow them to almost fight by &amp;quot;feel&amp;quot; so they get so absorbed that the controls quickly become an extension of themselves, and then add combos and stunning visuals that are worthy of modern gaming. The meta-game is a game-within-a-game, and could be anything. In this case we are using it as a mechanism to play the main game… or a sly substitution for the impossibly difficult task of battling 100+ opponents with one or two joysticks. The player will be drawn in by the simplicity of the meta-game, but then subconsciously find the depth and challenges addicting. Some players may even find themselves internalizing the meta-game and reacting solely to the main display of the game in ways that wouldn&amp;#39;t have been possible without easing them in with the meta-game.",1] );  //--&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;It would be amazing to see a good "Swarm Fighting" game where one or more human players face a large group of attackers (imagine 100 attackers!) in the same type of beautifully rendered three dimensional physics that modern one-on-one games exhibit. The questions are how would it work, and would it be playable. There have been some successes in this arena, but nothing modern. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JroyqkvpxZo/Rvcsal2QZ4I/AAAAAAAAAA8/dQPgznvMY3g/s1600-h/MatrixAttack.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5113604737250387842" style="FLOAT: left; MARGIN: 10pt 10pt 10px 0px; CURSOR: pointer" alt="" src="http://4.bp.blogspot.com/_JroyqkvpxZo/Rvcsal2QZ4I/AAAAAAAAAA8/dQPgznvMY3g/s400/MatrixAttack.jpg" border="0" /&gt;&lt;/a&gt;Robotron 2084 and Smash TV were basically two dimensional top-down perspective shooters, but they drew players in and gave them the panic of attacking hordes. These games introduced two joysticks (no buttons) for quick reaction time. Move with one joystick, fire with the other. Smash TV even supported two players. The innovation of top-down perspective and two joysticks broke with convention (not just 1 joystick, and 1 fire button) and made game play more natural in fighting large swarms of attackers with what looked like near impossible odds. They were good games, but how about a modern game with well rendered actors and believable physics as dozens or hundreds of attackers approach?&lt;/p&gt;&lt;p&gt;Here is an approach that would be entertaining and would pull players willfully into the middle of a swarm of attackers. The proven combination of "simplicity of play for beginner players, with combos for advanced players, and beautiful imagery for players and onlookers alike" can be achieved, but the mechanics of game play needs to change to allow the player to react to a new type of battle scene.&lt;/p&gt;Base the fighting game play on a meta-game that the player can easily understand, allow them to almost fight by "feel" so they get so absorbed that the controls quickly become an extension of themselves, and then add combos and stunning visuals that are worthy of modern gaming. The meta-game is a game-within-a-game, and could be anything. In this case we are using it as a mechanism to play the main game… or a sly substitution for the impossibly difficult task of battling 100+ opponents with one or two joysticks. The player will be drawn in by the simplicity of the meta-game, but then subconsciously find the depth and challenges addicting. Some players may even find themselves internalizing the meta-game and reacting solely to the main display of the game in ways that wouldn't have been possible without easing them in with the meta-game.&lt;script&gt;&lt;!-- D(["mb","\u003c/p\&gt;  \u003cp\&gt; \u003c/p\&gt;  \u003cp\&gt;As a concrete example, let&amp;#39;s talk about a playable version of the Agent Smith swarm on Neo in the movie Matrix where he fought the impossible battle to a rock&amp;#39;n soundtrack. In the movie, Neo could fight off the swarm of thousands of Agent Smith attackers due to his immersion and first person interaction with the environment. To make the game playable to the average real-world person, overlay a fast paced meta-game on top of it that corresponds to the visuals and expected game play. A meta-game that would work well in this example would be a variation of Dance Dance Revolution where upcoming moves are presented &amp;quot;just-in-time&amp;quot; and even correspond to the rhythm of the sound track. As attackers approach, the nearest 4 to 8 would be represented on the &amp;quot;radar&amp;quot; as approaching &amp;quot;blips.&amp;quot; The physical orientation of player would be represented in that peripheral viewer with the attackers approaching. Just as Dance Dance Revolution (and others) show you what is coming, and when to act, the player would see the swarm of attackers and be able to react to the most imminent 1-8 attackers. Run away from the swarm to minimize simultaneous attackers, into the swarm to maximize simultaneous attackers. Consider that even in &amp;quot;real-life,&amp;quot; if you were attacked by 100 people, it would be difficult for more than 8 people to actually be physically by your side to attack you at once.\u003c/p\&gt;  \u003cp\&gt; \u003c/p\&gt;  \u003cp\&gt;To completely bring the player into the action, the game would take advantage of rhythm based game play that Dance Dance Revolution demonstrates so well. This swarm fighting game would have an immersive sound track just as in the Matrix fights or any Hollywood theatrical fight scene (think of our Matrix Agent Smith fight swarm for one), but in this case, the game play would also benefit from it. In the fight, each punch would correspond to the heavy beat of the soundtrack rhythm. The software would even adjust the approach of the attackers to ensure that every punch or kick occurs on the beat. As the player learns this enhancement to game play, reactions will start to occur more accurately and quickly than just watching for or anticipating attacks. There are many depictions in television and movies where a &amp;quot;tough-guy&amp;quot; starts playing a &amp;quot;fight song&amp;quot; or theme song before engaging the enemy. In the case of this game, the fight song will actually help further the immersion and improve game play (I&amp;#39;ve been in that zone, it feels great).",1] );  //--&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JroyqkvpxZo/RvcuP12QZ7I/AAAAAAAAABU/Kbz1IQRLz4w/s1600-h/MatrixAttack.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5113606751590049714" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://1.bp.blogspot.com/_JroyqkvpxZo/RvcuP12QZ7I/AAAAAAAAABU/Kbz1IQRLz4w/s200/MatrixAttack.jpg" border="0" /&gt;&lt;/a&gt;As a concrete example, let's talk about a playable version of the Agent Smith swarm on Neo in the movie Matrix where he fought the impossible battle to a rock'n soundtrack. In the movie, Neo could fight off the swarm of thousands of Agent Smith attackers due to his immersion and first person interaction with the environment. To make the game playable to the average real-world person, overlay a fast paced meta-game on top of it that corresponds to the visuals and expected game play. A meta-game that would work well in this example would be a variation of Dance Dance Revolution where upcoming moves are presented "just-in-time" and even correspond to the rhythm of the sound track. As attackers approach, the nearest 4 to 8 would be represented on the "radar" as approaching "blips." The physical orientation of player would be represented in that peripheral viewer with the attackers approaching. Just as Dance Dance Revolution (and others) show you what is coming, and when to act, the player would see the swarm of attackers and be able to react to the most imminent 1-8 attackers. Run away from the swarm to minimize simultaneous attackers, into the swarm to maximize simultaneous attackers. Consider that even in "real-life," if you were attacked by 100 people, it would be difficult for more than 8 people to actually be physically by your side to attack you at once. &lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JroyqkvpxZo/RvcuBl2QZ6I/AAAAAAAAABM/oXej-2pMxN0/s1600-h/matrixJump.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5113606506776913826" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://4.bp.blogspot.com/_JroyqkvpxZo/RvcuBl2QZ6I/AAAAAAAAABM/oXej-2pMxN0/s200/matrixJump.jpg" border="0" /&gt;&lt;/a&gt;To completely bring the player into the action, the game would take advantage of rhythm based game play that Dance Dance Revolution demonstrates so well. This swarm fighting game would have an immersive sound track just as in the Matrix fights or any Hollywood theatrical fight scene (think of our Matrix Agent Smith fight swarm for one), but in this case, the game play would also benefit from it. In the fight, each punch would correspond to the heavy beat of the soundtrack rhythm. The software would even adjust the approach of the attackers to ensure that every punch or kick occurs on the beat. As the player learns this enhancement to game play, reactions will start to occur more accurately and quickly than just watching for or anticipating attacks. There are many depictions in television and movies where a "tough-guy" starts playing a "fight song" or theme song before engaging the enemy. In the case of this game, the fight song will actually help further the immersion and improve game play (I've been in that zone, it feels great).&lt;script&gt;&lt;!-- D(["mb","\u003c/p\&gt;  \u003cp\&gt; \u003c/p\&gt;  \u003cp\&gt; \u003c/p\&gt;  \u003cp\&gt;Theories for improving immersion with additional feedback have worked well for driving games for many years. Provide the player with a rear-view mirror, radar to show other cars and players, and the player will be more entertained, more involved, and even play more realistically. Consider that adding force feedback to the steering wheel to subtly inform the user of road conditions (and turns) is similar to adding awareness to a fighter that would help convey the timing of encounters with attackers&amp;#39; punches and kicks. The radar and soundtrack rhythm provides the fighting player with a tactical advantage.\u003c/p\&gt;  \u003cp\&gt; \u003c/p\&gt;  \u003cp\&gt;One joystick with directional attack buttons would work. With two joysticks, the player is provided with more flexibility, each joystick representing a different side of the body, or one joystick would be arms and the other joystick would be the legs. These types of controls provide the ability to respond to more attackers in the &amp;quot;radar view&amp;quot; and also provide a wider variety of responses. Add joystick/button combos to game play to allow for one-hand-stand-kicks, round-houses, jumps, pile-up-escapes, attacker-freezing-fast-time and other gravity and time defying moves.\u003c/p\&gt;  \u003cp\&gt; \u003c/p\&gt;  \u003cp\&gt;Considering these approaches, the overwhelming fights in the Matrix movie should be as playable (and cool) in the arcade as they were depicted in the theater.\u003c/p\&gt;",1] );  //--&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Theories for improving immersion with additional feedback have worked well for driving games for many years. Provide the player with a rear-view mirror, radar to show other cars and players, and the player will be more entertained, more involved, and even play more realistically. Consider that adding force feedback to the steering wheel to subtly inform the user of road conditions (and turns) is similar to adding awareness to a fighter that would help convey the timing of encounters with attackers' punches and kicks. The radar and soundtrack rhythm provides the fighting player with a tactical advantage.&lt;/p&gt;&lt;p&gt;One joystick with directional attack buttons would work. With two joysticks, the player is provided with more flexibility, each joystick representing a different side of the body, or one joystick would be arms and the other joystick would be the legs. These types of controls provide the ability to respond to more attackers in the "radar view" and also provide a wider variety of responses. Add joystick/button combos to game play to allow for one-hand-stand-kicks, round-houses, jumps, pile-up-escapes, attacker-freezing-fast-time and other gravity and time defying moves.&lt;/p&gt;&lt;p&gt;Considering these approaches, the overwhelming fights in the Matrix movie should be as playable (and cool) in the arcade as they were depicted in the theater.&lt;/p&gt;&lt;span style="FONT-STYLE: italic"&gt;&lt;span style="font-size:85%;"&gt;(It has been suggested to me that a big game house such as Electronic Arts should appreciate this idea, should build the next killer game based on the One-On-Many or Few-On-Many concept, and that they should also express at least $ome gratitude my way for putting forth the core idea. That remains to be seen.)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/569768729436997146-71284013879199370?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/71284013879199370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=71284013879199370' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/71284013879199370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/71284013879199370'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2007/09/swarm-fighting.html' title='Swarm fighting'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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://4.bp.blogspot.com/_JroyqkvpxZo/RvcsIl2QZ3I/AAAAAAAAAA0/NwKz_CNQEAM/s72-c/matrixPileup.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-569768729436997146.post-3078052276178702288</id><published>2007-08-03T17:53:00.001-07:00</published><updated>2008-03-06T17:03:58.138-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ideas'/><title type='text'>Buy Food @ Movie Ticket Counter</title><content type='html'>The food served at a Movie theater is it's bread-and-butter, metaphorically that is. They need to sell more (and better) to survive. The proceeds from the movie itself are minor compared to the soda, popcorn, candy, etc... sold at the refreshment stand. Those items are completely under their control and sometimes the only real profit the theater can make. I've even gone to a drive-in theater where they &lt;del&gt;begged&lt;/del&gt; outright requested that you buy food from their snack building. These days, without the refreshment stand, the theaters couldn't stay in business.&lt;br /&gt;&lt;br /&gt;Theaters need to make food purchases more convenient and FAST. I try not to buy refreshments at the theater because I'm normally late, either on my own accord, or because the ticket line was so long. I'm certainly not going to stand in another line. Especially one where a bunch of hungry patrons stand at the counter in indecision trying to determine what looks good, then fumble with money or credit cards. Although snacks and drink are pricey, who wants to sit for 2hrs without a drink nearby?&lt;br /&gt;&lt;br /&gt;Theaters need to provide the opportunity for patrons to purchase food at the ticket counter. Consider the convenience for couple asking for two movie tickets and two large sodas at the outside entrance. The couple would pay once and then be handed their two movie tickets and two food vouchers. As the couple enters the building and approaches the refreshment counter, they would choose the short "prepaid food" line, and hand over the vouchers, maybe indicating which soda they preferred. Moments later they are walking to their seats and had avoided a 5-15 minute wait in a second line, and didn't have to pay an additional time.&lt;br /&gt;&lt;br /&gt;The main problem with the refreshment stand is the wait and perceived inconvenience. This system removes all the long indecision times and payment concerns from the customer when going for food. If money is involved, the customer will need to go to the "long" line. It's almost like the airport's self-checkin ticket kiosks or the shorter lines for preferred status customers.&lt;br /&gt;&lt;br /&gt;The ticket counter (and associated line) still cannot be burdened by the aforementioned delays of a normal refreshment stand. To avoid the delays, food should not initially be offered or even suggested by the ticket seller. A small menu could be provided at the counter, but in general, word of mouth, perceptive patrons, and the signs inside will quickly spread the new offering. After one person asks for a drink and popcorn at the counter, the people right behind them are likely try as well. Actually, a short menu of only a few "combo deals", like 2 large sodas and popcorn, would minimize indecision and maximize customer throughput and theater profits. Customers uncomfortable with exploring the new idea (or whom are naturally indecisive) will have to stand in the long line inside and will quickly figure out the benefits of prepaying outside (as they watch the prepay customers walking away with food).&lt;br /&gt;&lt;br /&gt;With the advent of purchasing movie tickets on-line, this could be another valuable differentiating offering. The value of purchasing movie tickets on-line is avoiding the theater entry line and ticket counter. What if the patron could get the snacks they want while avoiding the "long" line at the snack bar too?&lt;br /&gt;&lt;br /&gt;Or... You could always wait for the theaters to implement a "frequent flier" program of their own so you could rack up your "movie points" and stand in the short preferred-customer line at the door, then the preferred-customer line at the refreshment stand.&lt;br /&gt;&lt;br /&gt;I hope I haven't ruined your next movie theater experience. Now that you know it should be possible to avoid one, or &lt;span style="FONT-STYLE: italic"&gt;both &lt;/span&gt;lines a the theater, you're going to hate the wait even more.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/3.0/" rel="license"&gt;&lt;img class="cc-button" alt="Creative Commons License" src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" border="0" /&gt;&lt;/a&gt; &lt;div class="cc-info"&gt;This Work is licensed under a &lt;a href="http://creativecommons.org/licenses/by-nc-sa/3.0/" rel="license"&gt;Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License&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/569768729436997146-3078052276178702288?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/3078052276178702288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=3078052276178702288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/3078052276178702288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/3078052276178702288'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2007/08/buy-food-movie-ticket-counter.html' title='Buy Food @ Movie Ticket Counter'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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-569768729436997146.post-3529402394114944785</id><published>2007-07-13T18:53:00.000-07:00</published><updated>2008-12-12T22:37:11.192-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ideas'/><title type='text'>The Four Way Door</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JroyqkvpxZo/RpgxdianQVI/AAAAAAAAAAM/c1SmBRXKhi0/s1600-h/4way_door.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5086870162639372626" style="FLOAT: right; MARGIN: 0pt 0pt 10px 10px; CURSOR: pointer" alt="" src="http://4.bp.blogspot.com/_JroyqkvpxZo/RpgxdianQVI/AAAAAAAAAAM/c1SmBRXKhi0/s320/4way_door.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A door that can open four different ways.&lt;br /&gt;&lt;br /&gt;I wondered 10 years ago if it was possible to create a door that opens 4 different ways. We've of course seen doors that swing in or out on a double way hinge. I figured there should be a way to build a door that, regardless of whether you were inside or outside, you could push either the left or right side of the door and it would open. Not only that, but the door would swing open as a door should intuitively swing... not merely pivoting in the center.&lt;br /&gt;&lt;br /&gt;This is the design that I came up with, and have done nothing with all that time. One of many ideas that I will eventually publish here.&lt;br /&gt;&lt;br /&gt;There are many &lt;a href="http://www.rube-goldberg.com/"&gt;Rube Goldberg&lt;/a&gt; ways to accomplish an opening door based on pushing any one of 4 areas on it. This was the simple way that I came up with after chewing on the idea for a while.&lt;br /&gt;&lt;br /&gt;At rest, the door's hinges are rods that jet out of the top-left, top-right, bottom-left and bottom-right, engaging into the frame so that the door is essentially "locked" in place. Consider this just as immobile as adding conventional hinges to both sides of the door.&lt;br /&gt;&lt;br /&gt;The pedestrian (user) is expected to approach the door, then push on either the left or the right side. There are many doors with wide recessing "push panels" that disengage the door latch to open the door. This idea uses a panel that pivots in the center so that when pushed on either side, the mechanism behind that side engages.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JroyqkvpxZo/Rpg4nyanQWI/AAAAAAAAAAU/RmXL9C76F7A/s1600-h/4way_door_mechanism.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5086878035314426210" style="FLOAT: right; MARGIN: 0pt 0pt 10px 10px; CURSOR: pointer" alt="" src="http://1.bp.blogspot.com/_JroyqkvpxZo/Rpg4nyanQWI/AAAAAAAAAAU/RmXL9C76F7A/s320/4way_door_mechanism.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;When the right side of the door panel is pushed, the right-side mechanism retracts the right-side hinge rods, allowing it to swing on the remaining left-side hinge. The door must also be prevented from "falling out" of the frame due to a curious pedestrian then pushing the other side. The answer is to engage a lock on the opposing hinge. When the right-side mechanism retracts the right-side hinge, the left-side hinge rods are locked at the normal full extension until the door returns to the resting state, and all four hinge rods return to full extension.&lt;br /&gt;&lt;br /&gt;Normally, some sort of automatic door closing mechanism would be added to the door to ensure that it returns to its closed state once a person walks away. The normal mechanisms mounted on left and right sides would seize a 4 way door. One solution involves a semi-attached version of the conventional slow swing hydraulic mechanism. As the door opens, an extension of the door pushes one of four hydraulic arms out, which slowly returns the door to its closed state.&lt;br /&gt;&lt;br /&gt;Gravity could also be used as a simple mechanism for returning the door to a closed state. When the door is opened, the door's construction where the hinge meets the frame causes the door to slowly rise as the door is opened wider. With the door's weight working for us, the door wants to drop back into the hinge/frame groove, which causes the door to close.&lt;br /&gt;&lt;br /&gt;When the door returns to the closed position, the springs in the retracted mechanism and tapers on the rods will cause the rods to re-engage back into the frame. The door would then be back in it's resting position, and ready for the next pedestrian to walk up and randomly push one of the door's 4 pressure points to open it again.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/3.0/" rel="license"&gt;&lt;img class="cc-button" alt="Creative Commons License" src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" border="0" /&gt;&lt;/a&gt; &lt;div class="cc-info"&gt;This Work is licensed under a &lt;a href="http://creativecommons.org/licenses/by-nc-sa/3.0/" rel="license"&gt;Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License&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/569768729436997146-3529402394114944785?l=aadhoc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aadhoc.blogspot.com/feeds/3529402394114944785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=569768729436997146&amp;postID=3529402394114944785' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/3529402394114944785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/569768729436997146/posts/default/3529402394114944785'/><link rel='alternate' type='text/html' href='http://aadhoc.blogspot.com/2007/07/four-way-door.html' title='The Four Way Door'/><author><name>AAron nAAs</name><uri>http://www.blogger.com/profile/14454730466252170198</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://4.bp.blogspot.com/_JroyqkvpxZo/RpgxdianQVI/AAAAAAAAAAM/c1SmBRXKhi0/s72-c/4way_door.gif' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
