<?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-13220950</id><updated>2012-02-16T19:10:42.742-06:00</updated><category term='Unix'/><category term='Microsoft'/><category term='dog pets'/><category term='FUD'/><category term='bugs'/><category term='comics'/><category term='xargs'/><category term='Global Warming'/><category term='Marine Corps'/><category term='robust'/><category term='open source'/><category term='ants'/><category term='sed'/><category term='sleep'/><category term='firefox'/><category term='ant-free'/><category term='spam'/><category term='inventions'/><category term='Solaris'/><category term='pets'/><category term='scripts'/><category term='unix shell'/><category term='dish'/><category term='voting'/><category term='commercials'/><category term='computer science'/><category term='knots'/><category term='diy'/><category term='reviews'/><category term='Internet'/><category term='cygwin'/><category term='howto'/><category term='security'/><category term='1000 Words'/><category term='completeness'/><category term='conspiracy'/><category term='OpenOffice'/><category term='how-to'/><category term='regular expression'/><category term='dog'/><category term='blog'/><category term='information assurance'/><category term='life'/><category term='compost'/><category term='copyright'/><category term='RealID'/><category term='adblock'/><category term='insomnia'/><category term='Linux'/><category term='What To Do With...'/><category term='profit'/><category term='project management'/><category term='pet food'/><category term='household tips'/><category term='stupid'/><category term='reuse'/><category term='google'/><title type='text'>Modern Sourcery</title><subtitle type='html'>These days, there is much I don't understand.  I feel compelled to announce to the world my opinion on all of it.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Loren Heal</name><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>70</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-13220950.post-5599428642875897626</id><published>2011-12-24T02:44:00.003-06:00</published><updated>2011-12-27T11:10:04.061-06:00</updated><title type='text'>The Dog Was Part of It</title><content type='html'>&lt;br /&gt;Her name is Angel, named that way because she was all white as a pup. An Australian Shepherd from inbred parents, she was born deaf, blue-eyed, and pink around the edges. &lt;br /&gt;&lt;br /&gt;We wanted a puppy for the kids. We didn't want to go to a puppy mill, but to get a dog no one else wanted. A deaf albino seemed a good choice to fill the billet.&lt;br /&gt;&lt;br /&gt;She was the family dog when the kids were growing up. We let her sleep inside at first. This dog, however, was a biochemical weapon, able to release a stench so strong it could bubble paint. My father-in-law fashioned a corner of the shed for her.&lt;br /&gt;&lt;br /&gt;We taught her &lt;a href="http://www.lifeprint.com/"&gt;American Sign Language&lt;/a&gt;= signs for come/dog, go, sit, stay, lay down, stand up, potty, out, toy/play, eat, speak and no. It was easier to teach her these signs than I would have thought, and it made communicating with her straightforward. &lt;br /&gt;&lt;br /&gt;An outside dog, she always wanted to see her people. "She just wants to be part of it," we said.&lt;br /&gt;&lt;br /&gt;She loved to run in her yard, and wore paths in the grass around the perimeter, and later, between the trees as they grew. All summer long, she would run a lap or two at top speed, then collapse into her kiddie pool, lapping at the water as she lay in it. Cooling off, the process would repeat until, her pool empty, she would find someplace cool for a nap. &lt;br /&gt;&lt;br /&gt;She chased a squirrel into the neighbor's yard one day, so I walked the perimeter of her yard with her, telling her "No" and pounding on the ground around her boundary. As a result, I lost my wedding ring, which was a lesson for me. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="float: right; clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-FmOtKcVPaO8/Tvn4O_LdIbI/AAAAAAAADRg/q5GB-GzU3uk/w402/11+-+1" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="179" src="http://4.bp.blogspot.com/-FmOtKcVPaO8/Tvn4O_LdIbI/AAAAAAAADRg/q5GB-GzU3uk/w402/11+-+1" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;She has always been there, in good times and bad, quietly filling the niche between living accessory and trusted friend.&lt;br /&gt;&lt;br /&gt;Over the last year she's developed an intermittent cough that the veterinarians could not diagnose. After a summer filled with her usual routine, this fall she developed a limp, and lost her appetite for the brand of dog food she's enjoyed for years. We thought it was old age, and began adding liquid to her food.&lt;br /&gt;&lt;br /&gt;The limp worsened and it was hard to watch her walk. A blood test revealed the likely culprit. She has cancer.&lt;br /&gt;&lt;br /&gt;The poor old girl isn't eating much now, and spends most of her time sleeping. Though her eyes have dimmed, she still wants to see her people, to be part of it again for just a little while.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-5599428642875897626?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/5599428642875897626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=5599428642875897626' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/5599428642875897626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/5599428642875897626'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2011/12/dog-was-part-of-it.html' title='The Dog Was Part of It'/><author><name>Loren Heal</name><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-13220950.post-5032752795370147449</id><published>2011-10-24T05:08:00.002-05:00</published><updated>2011-10-24T06:12:29.035-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='insomnia'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='sleep'/><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><title type='text'>How Do I Get To Sleep</title><content type='html'>Getting to sleep is easy for some people, but for many of us it can be very difficult. No matter how tired or if -- and perhaps especially -- we have a need to be rested in the morning, sleep is elusive.&lt;br /&gt;&lt;br /&gt;What follows is a direct method for getting to sleep.  But first, you need to understand why you can't sleep.&lt;br /&gt;&lt;br /&gt;If you're in physical pain and can't get comfortable, get medical advice.&lt;br /&gt;&lt;br /&gt;If you drink coffee or caffeinated beverages during the day and can't sleep at night, stop it or cut back.&lt;br /&gt;&lt;br /&gt;Avoid eating to excess at night, and desserts. The increase in blood sugar will keep you awake like nothing else.&lt;br /&gt;&lt;br /&gt;Try not to use alcohol as a sleep aid. It may help you get to sleep, but you will probably wake up in a couple of hours as your body deals with its effect on your blood sugar.&lt;br /&gt;&lt;br /&gt;With all of that, here is my direct method. It will work:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Exercise&lt;/span&gt;. Some people claim that exercise at night keeps them awake, but I have found that mild exercise before bed helps me sleep. There is a balance you have to make between burning off excess blood sugar and generating too much in the way of endorphins.  If you can exercise during the day, it will help your sleep.  Consider calisthenics or isometrics near bed time.&lt;br /&gt;&lt;br /&gt;In any case: &lt;span style="font-weight: bold;"&gt;stretch&lt;/span&gt; before bed. It helps to relax muscles and other soft tissue, and takes the edge off of excess energy.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Make a list&lt;/span&gt;. List all of the things you need to do tomorrow, and all of the things you are thinking about that are keeping you awake.  Do not fear them; write them down. You will deal with them in the morning, when you are rested and &lt;span style="font-style: italic;"&gt;they&lt;/span&gt; have been up all night worrying about &lt;span style="font-style: italic;"&gt;you&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Unplug&lt;/span&gt;. While of course you have to read the rest of this, you should put away your book, disconnect from &lt;a href="http://twitter.com/lheal"&gt;Twitter&lt;/a&gt;, shut off your computer, phone, television, or other device (assuming you aren't some reader in the future who has only one device for all information sharing).  These distractions are not helping you get tired to sleep, they are your excuse not to do so.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; &lt;span style="font-weight: bold;"&gt;Get comfortable&lt;/span&gt;. This usually means getting into bed with your own personal combination of pillows, covers, stuffed animals, or whatever. For some people this is a big deal, but for others it isn't. I don't care -- I'm just here to tell you how to sleep. I any case, you should not have to exert any effort to remain in position.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Close your eyes&lt;/span&gt;. This seems silly, but how many times do people describe inability to sleep as "staring at the ceiling"? When I hear that, I always think "You're doing it wrong."&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Relax&lt;/span&gt;. Concentrate on your toes (individually) to make sure each one is relaxed, then your feet, ankles, and so on. Go over in your mind in whatever detail you need to make sure each part of your body is relaxed. Pay special attention to the neck and shoulders.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Count backward&lt;/span&gt;. Starting at 10,000 or so, silently count slowly backward. After a while, your breathing will probably be in sync with your counting.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;You will sleep&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-5032752795370147449?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/5032752795370147449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=5032752795370147449' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/5032752795370147449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/5032752795370147449'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2011/10/how-do-i-get-to-sleep.html' title='How Do I Get To Sleep'/><author><name>Loren Heal</name><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-13220950.post-1644531020923093235</id><published>2009-05-18T10:19:00.003-05:00</published><updated>2009-05-18T10:29:20.393-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='information assurance'/><category scheme='http://www.blogger.com/atom/ns#' term='RealID'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>RealID: Not a Real ID</title><content type='html'>At TechRepublic, there is an article entitled &lt;a href="http://techrepublic.com.com/5208-12846-0.html?forumID=102&amp;threadID=309065&amp;start=0"&gt;Why REAL ID is not Secure ID&lt;/a&gt;.  I commented there:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;I am of two minds on the utility of a national ID card.  As a nationalist, I like the idea of distinguishing citizen from non-citizen.  But as a lover of liberty, I despise anything that extends power to the federal government.  I go back and forth on this one.&lt;br /&gt;&lt;br /&gt;But a big problem with RealID is that to obtain one a person need only supply less-secure items such as a Social Security card or State driver's license (which are often based in turn on a birth certificate plus a utility bill or two).  It turns items that are easier to forge into a token that is harder to forge, and which will confer on its bearer rights he or she should not have.  In security terms, it attenuates trust.&lt;br /&gt;&lt;br /&gt;Far from combating identity theft, RealID would make it easier.&lt;br /&gt;&lt;br /&gt;It's typical of the pattern we find for the introduction of a new product or service: make it easy to use, to spur adoption, and then play security whack-a-mole as problems are discovered.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;While having a national ID card would make it easier for law enforcement officials to distinguish illegal aliens and terrorists from ordinary folks, it would not be a sufficient mechanism for doing so.  Further, there is no guarantee that an ID card would be used for that purpose.&lt;br /&gt;&lt;br /&gt;The potential for abuse, both by people obtaining false cards and by law enforcement, is staggering.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-1644531020923093235?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/1644531020923093235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=1644531020923093235' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/1644531020923093235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/1644531020923093235'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2009/05/realid-not-real-id.html' title='RealID: Not a Real ID'/><author><name>Loren Heal</name><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-13220950.post-4918573425146746008</id><published>2009-02-26T12:18:00.000-06:00</published><updated>2009-02-26T12:18:01.278-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reviews'/><title type='text'>Neal Tire and Auto of Mattoon, Illinois: Frantic Wave-Off</title><content type='html'>I bought a set of tires from &lt;a href="http://www.nealtire.com/index.htm"&gt;Neal Tire and Auto Service in Mattoon, Illinois&lt;/a&gt;.  I needed tires in a hurry, and after calling around this was the place with the best price on the tires I needed.   An acquaintance, an elderly widow,  had trouble with them not replacing her oil drain plug after an oil change.  They had made good on that mistake somehow, I told myself.  Hey, mistakes happen.&lt;br /&gt;&lt;br /&gt;So it was time to get the tires rotated and oil changed.   &lt;a href="http://www.nealtire.com/index.htm"&gt;Neil Tire and Auto Service in Mattoon, Illinois&lt;/a&gt; assured me at the time I bought the tires that they would use the &lt;a href="http://www.mobiloil.com/USA-English/MotorOil/Oils/Mobil_1_0W-40.aspx"&gt;Mobil 1 full synthetic oil&lt;/a&gt; in my diesel Jetta.  I had noticed what felt like tire balance issues at highway speed.  I made an appointment for 2pm, allowing 3 hours before my next schedule item at 5pm.  I thought I could get home for a while after the oil change.  I mean, three hours?&lt;br /&gt;&lt;br /&gt;So I took my lunch in to the waiting area.  An older lady, well-dressed and hair coiffured, sat reading the newspaper.&lt;br /&gt;&lt;br /&gt;Two hours in, they told me they were having trouble getting the lug nuts off.  I could hear the pneumatic wrench grinding away.  I wondered if I should have brought a cot.  I also wondered how well they would balance the tires, since closing time was coming up and there were people waiting.&lt;br /&gt;&lt;br /&gt;The old woman was snoring quietly in the waiting room. &lt;br /&gt;&lt;br /&gt;After it was done, with 45 minutes left before 5pm, they told me the price, and it was $30 less than I expected.  I asked what kind of oil they used.  They told me they'd used Rotella.  Why didn't they use synthetic? Blank look.  "We always use Rotella on diesels."  Realizing that the engine had had full synthetic in it since it rolled off the lot, I dropped the F-bomb.  Why didn't they use &lt;a href="http://www.mobiloil.com/USA-English/MotorOil/Oils/Mobil_1_0W-40.aspx"&gt;Mobil 1&lt;/a&gt;? The clerk was polite, despite my obvious anger. Same blank look. "We always use Rotella on diesels. "&lt;br /&gt;&lt;br /&gt;Every other place I've taken my Jetta to have the oil changed has warned me to use full synthetic.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mobiloil.com/USA-English/MotorOil/Oils/Mobil_1_0W-40.aspx"&gt;Mobil 1&lt;/a&gt; is listed on their&lt;a href="http://www.nealtire.com/oil.htm"&gt; in-store advertising&lt;/a&gt;, but Rotella is not.&lt;br /&gt;&lt;br /&gt;After consultation with my wife, who's a lot tougher about stuff like this than I am, I said I wanted them to replace the oil with &lt;a href="http://www.mobiloil.com/USA-English/MotorOil/Oils/Mobil_1_0W-40.aspx"&gt;Mobil 1&lt;/a&gt;, and no, I wasn't going to pay the difference. "We always use Rotella -- I think that's good enough", he repeated with a shrug.    Still, they went ahead and changed it, and didn't charge me extra.&lt;br /&gt;&lt;br /&gt;That's the last time I get my oil changed there.  I will even pay to have someone else rotate the tires I bought from &lt;a href="http://www.nealtire.com/index.htm"&gt;Neil Tire and Auto Service in Mattoon, Illinois&lt;/a&gt;, because I think they're nice, but  incompetent.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-4918573425146746008?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/4918573425146746008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=4918573425146746008' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/4918573425146746008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/4918573425146746008'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2009/02/neal-tire-and-auto-of-mattoon-illinois.html' title='Neal Tire and Auto of Mattoon, Illinois: Frantic Wave-Off'/><author><name>Loren Heal</name><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-13220950.post-729310807416155272</id><published>2008-07-12T07:43:00.006-05:00</published><updated>2008-07-24T10:34:38.242-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='comics'/><title type='text'>I'm Selling My Comic Books</title><content type='html'>I've got something over 1,000 Marvel comics from the 1970's and 1980's,&lt;br /&gt;and have decided to sell them.&lt;br /&gt;&lt;br /&gt;[I'll be updating this page regularly with listing additions and sales.&lt;br /&gt;&lt;br /&gt;Note also the RSS feed of my eBay listings!&lt;br /&gt;]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You'll be able to see which ones I have for sale at &lt;a href="http://search.ebay.com/_W0QQsassZlheal1999QQfrppZ50QQfsopZ32QQfsooZ2QQrdZ0"&gt;eBay&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;All covers and other images are at &lt;a href="http://picasaweb.google.com/loren.heal"&gt;my Picasa page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-weight: bold;" href="http://cgi.ebay.com/Marvel-Two-In-One-1970s-48-books-from-3-to-69_W0QQitemZ260265709042QQihZ016QQcategoryZ33813QQssPageNameZWDVWQQrdZ1QQcmdZViewItem"&gt;Marvel Two-In-One (1970s) 48 books from 3-69&lt;/a&gt; (ends 5:40pm CDT, July 26, 2008)&lt;br /&gt;&lt;br /&gt;&lt;a style="font-weight: bold;" href="http://cgi.ebay.com/Iron-Fist-15-X-Men-1977-FN-VF_W0QQitemZ260266473728QQihZ016QQcategoryZ33826QQssPageNameZWDVWQQrdZ1QQcmdZViewItem"&gt;Iron Fist #15 X-Men (1977) FN/VF  &lt;/a&gt; (&lt;nobr&gt;ends Jul-28-08 15:44:48 CDT&lt;/nobr&gt;)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cgi.ebay.com/Power-Man-and-Iron-Fist-1970s-29-books-from-20-124_W0QQitemZ260266490664QQihZ016QQcategoryZ155285QQssPageNameZWDVWQQrdZ1QQcmdZViewItem"&gt;&lt;span style="font-weight: bold;"&gt;Power Man and Iron Fist (1970s) 29 books from 20-124&lt;/span&gt;&lt;/a&gt; (&lt;nobr&gt;Jul-28-08 16:25:54 CDT&lt;/nobr&gt;)&lt;br /&gt;&lt;br /&gt;&lt;a style="font-weight: bold;" href="http://cgi.ebay.com/Captain-America-1970s-68-books-from-178-326_W0QQitemZ260266502420QQihZ016QQcategoryZ33810QQssPageNameZWDVWQQrdZ1QQcmdZViewItem"&gt;Captain America (1970s) 68 books from 178-326&lt;/a&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;(ends Jul-30-08 17:02:31 CDT)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-729310807416155272?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/729310807416155272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=729310807416155272' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/729310807416155272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/729310807416155272'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2008/07/im-selling-my-comic-books.html' title='I&apos;m Selling My Comic Books'/><author><name>Loren Heal</name><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-13220950.post-7561785630968230168</id><published>2008-03-26T10:30:00.000-05:00</published><updated>2008-03-27T10:33:56.735-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='regular expression'/><category scheme='http://www.blogger.com/atom/ns#' term='unix shell'/><category scheme='http://www.blogger.com/atom/ns#' term='cygwin'/><category scheme='http://www.blogger.com/atom/ns#' term='sed'/><title type='text'>Cygwin: Unix filenames from Windows filenames</title><content type='html'>Here's a bash script that will help Cygwin reference Windows filenames.  It could work under /bin/sh, but I wrote is as part of a bash .profile, so I've only tested it there.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;#&lt;br /&gt;# sanify - turn a Windows path name into a Unix name&lt;br /&gt;#  - turns drive letters into /cygdrive/drive,&lt;br /&gt;#  - flips slashes, removes enclosing quotes,&lt;br /&gt;#  - replaces unusual characters with '?'&lt;br /&gt;&lt;br /&gt;function usage() { cat &lt;&lt;"EOF"&lt;br /&gt;  Usage:    $1 'Windows filename'&lt;br /&gt;  ... where 'Windows filename' only has to be in quotes if&lt;br /&gt;  it has special characters, such as backslashes or spaces. &lt;br /&gt;  This is free.&lt;br /&gt;EOF&lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;function sanify() {                       &lt;br /&gt;    echo  ${@} | sed \&lt;br /&gt;                -e 's,^[A-Za-z]:,/cygdrive/&amp;amp;,'\&lt;br /&gt;                -e 's,:,,g' \&lt;br /&gt;                -e 's,\\,/,g' \&lt;br /&gt;                -e 's,^\",,g' \&lt;br /&gt;                -e 's,\"$,,g' \&lt;br /&gt;                -e 's,[^A-Za-z0-9_\.-],\?,g'        &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if [ -t ] ; then&lt;br /&gt;   [ -z "$@" ] &amp;amp;&amp;amp; { usage "$0" }  &lt;br /&gt;   sanify "${@}" else&lt;br /&gt;   for name in `cat` ; do&lt;br /&gt;        sanify "${name}"  &lt;br /&gt;   done&lt;br /&gt;fi  &lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-7561785630968230168?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/7561785630968230168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=7561785630968230168' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/7561785630968230168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/7561785630968230168'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/03/cygwin-unix-filenames-from-windows.html' title='Cygwin: Unix filenames from Windows filenames'/><author><name>Loren Heal</name><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-13220950.post-3926425126707425394</id><published>2008-02-26T14:11:00.002-06:00</published><updated>2008-02-26T14:41:31.875-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spam'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>A new security arms race</title><content type='html'>According the &lt;a href="http://www.theregister.co.uk/2008/02/25/gmail_captcha_crack/print.html"&gt;&lt;span style="font-style: italic;"&gt;The Register (UK)&lt;/span&gt;&lt;/a&gt;, Spammers have developed an "mailbot" that can break through &lt;a href="http://www.websense.com/securitylabs/blog/blog.php?BlogID=174"&gt;Google's CAPTCHA&lt;/a&gt; (Completely Automated Public Turing test to tell Computers and Humans Apart) system.  That's Google's version of the thing that makes you read  distorted characters to sign up for email and other online services, including some online banking services.&lt;br /&gt;&lt;br /&gt;It won't be long before a robot will be able defeat any current Captcha system, so those with such systems deployed should make sure they A) are using multi-factor schemes for securely adding and identifying their users and B) have the latest versions of the Captcha program installed. &lt;br /&gt;&lt;br /&gt;Since the robots are currently successful against Google only 20% of the time, there is still some time for software developers and users to stay ahead by improving Captcha and combining it with other techniques for telling humans from programs.  For instance, several Captcha images could be displayed, and the user asked to identify which of them are alike, or which of them match a given pattern (also displayed via Captcha).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-3926425126707425394?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/3926425126707425394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=3926425126707425394' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/3926425126707425394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/3926425126707425394'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2008/02/new-security-arms-race.html' title='A new security arms race'/><author><name>Loren Heal</name><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-13220950.post-114295825994104870</id><published>2007-12-11T12:10:00.000-06:00</published><updated>2007-12-11T12:39:58.578-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reviews'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><title type='text'>How to win on Deal or No Deal</title><content type='html'>[Originally blogged 2006-03-26, updated 2007-12-11  (&lt;a href="#Update_20071211"&gt;see below&lt;/a&gt;)]&lt;br /&gt;&lt;br /&gt;NBC's vapid, but fun,  game show &lt;a href="http://www.nbc.com/Deal_or_No_Deal/"&gt;Deal or No Deal &lt;/a&gt;seems simple enough.  I doubt it will be the next Wheel of Fortune, or even the next &lt;a href="http://www.bbc.co.uk/weakestlink/"&gt;Weakest Link&lt;/a&gt;, but stranger things have happened.&lt;br /&gt;&lt;br /&gt;The contestant picks a suitcase out of 26 held up by scantily clad models.  A board shows amounts, from 1 penny up to ONE MILLION DOLLARS (-oooh-). The contestant gets to pick some more, revealing the amounts held in them -- will it be ONE MILLION DOLLARS (-oooh-)? The contestant is given the choice to  keep the suitcase he has, and win its contents, or go on picking others.&lt;br /&gt;&lt;br /&gt;How to decide?&lt;br /&gt;&lt;br /&gt;The answer is with &lt;a href="http://en.wikipedia.org/wiki/Expected_value"&gt;expected value&lt;/a&gt;, a principle of mathematics that sounds fancy but in this case requires only simple arithmetic.&lt;br /&gt;&lt;br /&gt;Expected value normally means finding the sum of all possible outcomes multiplied by their individual probability.  It can get unwieldy, but in this simple case the odds of the outcomes are all the same, 1/N, where N is the number of values left on the board.&lt;br /&gt;&lt;br /&gt;At any given step, add the total amount left on the board, and divide by the number of entries left.  Since each amount left has equal chance of being in any of the suitcases, including your own, the expected value for a given suitcase is just the average.&lt;br /&gt;&lt;br /&gt;When the banker calls, if your expected value if you remain in the game is higher than his offer, reject it.  If his offer is higher or the same as the expected value, take it.&lt;br /&gt;&lt;br /&gt;For instance, suppose you have entries on the board (three suitcases and your own).  The amounts are $100,000,  $50,000, $10, and $.01.  The penny looks scary, but the $100k looks tempting.  What to do?&lt;br /&gt;&lt;br /&gt;The total is $150,010.01, which you round to $150k for an average of &lt;span style="font-weight: bold;"&gt;about&lt;/span&gt; $37,500. If the banker calls with an offer:  $35,000, you should reject the offer. If the  offer is $38,000, take it.&lt;br /&gt;&lt;br /&gt;The reason this is the best strategy is that if you played the game many, many times, on average you'd win the expected value of what's left.&lt;br /&gt;&lt;br /&gt;[&lt;a name="Update_20071211"&gt;Update&lt;/a&gt;: After watching this show off and on for a few months, I realized two things.  First, the show did become the next Weakest Link. Secondly, simply math wasn't enough to provide a winning strategy, and in fact isn't really needed.&lt;br /&gt;&lt;br /&gt;To win, you have to define "winning".  There are two kinds of winning: winning lottery-big (a life-altering amount), and walking out with a respectable prize, one that will solve some immediate problems for you: let you open a business, buy/pay off the house, take a less stressful job, whatever.&lt;br /&gt;&lt;br /&gt;So that gives us three kinds of numbers the cases can hold:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Small&lt;/span&gt;: lower than your "respectable" win&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Respectable&lt;/span&gt;: At or higher than your "respectable" expectation&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Lottery&lt;/span&gt;: A number big enough to make your &lt;span style="font-weight: bold;"&gt;offer&lt;/span&gt; close to respectable.&lt;/li&gt;&lt;/ul&gt;The key to the winning strategy is to decide on the respectable take-home payout you're after, and Accept the Deal when you have only one &lt;span style="font-style: italic;"&gt;lottery&lt;/span&gt; prize left on the board.  As long as you have two big prizes left, you can open another case and still have a reasonable offer.&lt;br /&gt;&lt;br /&gt;Think about the end game:  you have some small prizes and two big ones, $100,000 and $400,000.  If you open a case with a small number, your offer will go up; keep going. Even if you open the $100,000 case, your offer will still not go down that much, and you can accept it with glee.  Only if you choose the highest of the lottery amounts will your offer go down significantly, and you walk away with a nice paycheck.&lt;br /&gt;&lt;br /&gt;If you reject the offer when you have only one &lt;span style="font-style: italic;"&gt;lottery&lt;/span&gt; prize left, you risk coming away with nothing when you have a very easy way (at that point) to solve some problems for yourself.  If you only have one big amount left on the board, make the Deal.&lt;br /&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-114295825994104870?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/114295825994104870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=114295825994104870' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/114295825994104870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/114295825994104870'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2006/03/how-to-win-on-deal-or-no-deal.html' title='How to win on Deal or No Deal'/><author><name>Loren Heal</name><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>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13220950.post-181055522550036997</id><published>2007-10-24T19:03:00.000-05:00</published><updated>2007-10-26T22:28:42.398-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Unix'/><category scheme='http://www.blogger.com/atom/ns#' term='unix shell'/><category scheme='http://www.blogger.com/atom/ns#' term='sed'/><title type='text'>Exceed, Cygwin, and Terminal Server</title><content type='html'>... or "How to waste an afternoon"&lt;br /&gt;&lt;br /&gt;I've been having trouble getting the combination of MS Terminal Server 2003, Hummingbird Exceed 2006, and Cygwin to work together.&lt;br /&gt;&lt;br /&gt;Cygwin's Xfree86 doesn't work well for Terminal Server, since Cygwin's X has one global X.log file that is owned by and read-only for only one user at a time. So we use Hummingbird Exceed on the Terminal Server.&lt;br /&gt;&lt;br /&gt;But Exceed doesn't come with xterm, ssh, etc. They expect you to use rsh, rexec, or a program you configure with their proprietary goo to connect to your remote systems.  Not my style.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Background&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;X programs running on a remote host can display on your computer through the use of a lot of complicated technology, much of which depends on a properly set environment variable named DISPLAY.  It's format is&lt;br /&gt;&lt;ecode&gt;&lt;br /&gt;DISPLAY=your.hostname:N.m&lt;br /&gt;&lt;/ecode&gt;&lt;br /&gt;where "your.hostname" is either the domain name your ISP gives you, an IP address, or the special name "localhost".  All computers on the Internet believe that they themselves are "localhost".&lt;br /&gt;&lt;br /&gt;Ssh programs (either the proprietary ones from SSh, Inc., or free versions such as openssh or putty) have a wonderful feature: they can hijack data to be sent to your local computer, encrypt it, send it over their secure connection, and deliver it to your local computer for display.  They do this by setting the remote DISPLAY variable to (for example) "localhost:10.0".  Remote programs you run send their output to remote display 10, screen 0.  Ssh receives the data, encrypts, delivers, decrypts, and sends to whatever your local DISPLAY variable says.&lt;br /&gt;&lt;br /&gt;But I've not been able to find a Windows-based Ssh program that is able to tunnel X11 connections with remote hosts to Exceed.  In the past, I've just looked at the display number in the Exceed taskbar button and set DISPLAY manually, losing the benefits of tunneling.&lt;br /&gt;&lt;br /&gt;A little digging turned up some &lt;a href="http://mimage.hummingbird.com/alt_content/binary/pdf/support/nc/Exceed_2008_TSE.pdf"&gt;documentation (pdf)&lt;/a&gt;, which says:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;While Exceed sessions are running, the display numbers are tracked through a dynamic file called Display Snapshot.HumTable. This is located in&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;C:\Documents and Settings\All Users\Application Data\Hummingbird\Connectivity\11.00\Global\Exceed\Display Snapshot.HumTable&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;As this is dynamic, it should not be edited manually.&lt;br /&gt;&lt;/blockquote&gt;Ok, now I know what to do.  I can grab the DISPLAY number from that file, which by the grace of Hummingbird is a text file and not more proprietary goo.  Unfortunately, it's a Windows file, with an ugly filename with spaces in it. So I need a script to turn that into a Cygwin name:&lt;br /&gt;&lt;br /&gt;In /etc/profile on your Terminal Server, put the following:&lt;br /&gt;&lt;pre style="background: light-grey;"&gt;&lt;br /&gt;&lt;br /&gt;HUMTABLE="C:\Documents and Settings\All Users\Application \&lt;br /&gt;\Data\Hummingbird\Connectivity\11.00\Global\Exceed\Display Snapshot.HumTable"&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# sanify - turn a Windows directory name into a Unix name&lt;br /&gt;#  - turns drive letters into /cygdrive/drive,&lt;br /&gt;#  - flips slashes, removes enclosing quotes,&lt;br /&gt;#  - replaces unusual characters with '?'&lt;br /&gt;function sanify() {&lt;br /&gt;     echo ${@} | sed \&lt;br /&gt;             -e 's,^[A-Za-z]:,/cygdrive/&amp;amp;,'\&lt;br /&gt;             -e 's,:,,g' \&lt;br /&gt;             -e 's,\\,/,g' \&lt;br /&gt;             -e 's,^\",,g' \&lt;br /&gt;             -e 's,\"$,,g' \&lt;br /&gt;             -e 's,[^A-Za-z0-9_\.-],\?,g'&lt;br /&gt;     }&lt;br /&gt;# disp() grabs the information from the Humtable file&lt;br /&gt;# and puts it in the right format.&lt;br /&gt;&lt;br /&gt;DOMAIN=your_windows_domain&lt;br /&gt;&lt;br /&gt;function disp() {&lt;br /&gt;    EX_LF="`sanify ${HUMTABLE}`"&lt;br /&gt;    [ -r $EX_LF ] &amp;amp;&amp;amp; {&lt;br /&gt;          cat $EX_LF | awk -v d=$DOMAIN u=${USERNAME} \&lt;br /&gt;             'BEGIN {FS=","}\&lt;br /&gt;              $3 ~ d "." u {print "localhost:" $4 ".0";}'&lt;br /&gt;            }&lt;br /&gt;    }&lt;br /&gt;export DISPLAY=`disp`&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;[Updated 20071026 to touch the script a bit]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-181055522550036997?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/181055522550036997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=181055522550036997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/181055522550036997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/181055522550036997'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/10/exceed-cygwin-and-terminal-server.html' title='Exceed, Cygwin, and Terminal Server'/><author><name>Loren Heal</name><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-13220950.post-1963734334879602869</id><published>2007-10-04T00:17:00.000-05:00</published><updated>2007-10-04T00:18:44.638-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='1000 Words'/><title type='text'>Southern Illinois</title><content type='html'>&lt;a href="http://picasaweb.google.com/loren.heal/Shawnee/photo#5117345164590017282"&gt;&lt;img src="http://lh4.google.com/loren.heal/RwR2UHhzawI/AAAAAAAAADk/g5ZGlcl4hxA/s144/tunnel_hilltrestle12.jpg" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-1963734334879602869?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/1963734334879602869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=1963734334879602869' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/1963734334879602869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/1963734334879602869'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/10/southern-illinois.html' title='Southern Illinois'/><author><name>Loren Heal</name><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-13220950.post-7748473994387962919</id><published>2007-09-25T18:03:00.001-05:00</published><updated>2008-07-22T09:34:06.993-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='unix shell'/><title type='text'>Script for OpenSSL Certificate Signing Request</title><content type='html'>[Updated for bugfix 20080722] If you're like me, you need a new SSL Certificate about once a year.  You know what to do:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Generate a "Certificate Signing Request" and a key &lt;/li&gt;&lt;li&gt;Send the CSR to your Certificate Authority for signing&lt;/li&gt;&lt;li&gt;Wait for the signed Certificate to come back from the CA&lt;/li&gt;&lt;li&gt;Put the key and the Certificate where your web, email, or other server can find them&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt; I always have to &lt;a href="http://security.ncsa.uiuc.edu/research/grid-howtos/usefulopenssl.php"&gt;look up&lt;/a&gt; the right openssl(1) &lt;a href="http://slacksite.com/apache/certificate.html"&gt;command line arguments&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This year, I decided to make a script.  This script takes an optional argument, the host for which you're making the certificate.  I suggest generating the Certificate on the target host, but if you feel bold you can make a CSR for any host you want.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;#&lt;br /&gt;#############################&lt;br /&gt;#&lt;br /&gt;# Shell script to automate making&lt;br /&gt;# Certificate Signing Requests (CSR)&lt;br /&gt;# with openssl&lt;br /&gt;#&lt;br /&gt;# tested on v 0.9.8e&lt;br /&gt;# Loren Heal&lt;br /&gt;#&lt;br /&gt;#############################&lt;br /&gt;&lt;br /&gt;echodo() {&lt;br /&gt;     echo "${@}"&lt;br /&gt;     (${@})&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;yearmon() {&lt;br /&gt;     date '+%Y%m%d'&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;fqdn() {&lt;br /&gt;     (nslookup ${1} 2&amp;gt;&amp;amp;1 || echo Name ${1}) \&lt;br /&gt;             | tail -3 | grep Name| sed -e 's,.*e:[ \t]*,,' &lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;C=Your_Country_Abbreviation&lt;br /&gt;ST=Your_State_Spelled_Out&lt;br /&gt;L=Your_City&lt;br /&gt;O="Your Company or Whatever"&lt;br /&gt;OU="Your Office or Department or Whatever"&lt;br /&gt;HOST=${1:-`hostname`}&lt;br /&gt;DATE=`yearmon`&lt;br /&gt;CN=`fqdn $HOST`&lt;br /&gt;&lt;br /&gt;csr="${HOST}-${DATE}-csr.pem"&lt;br /&gt;key="${HOST}-${DATE}-key.pem"&lt;br /&gt;&lt;br /&gt;openssl req -new -newkey rsa:1024 -keyout $key \&lt;br /&gt;     -nodes -out $csr &amp;lt;&amp;lt;EOF&lt;br /&gt;${C}&lt;br /&gt;${ST}&lt;br /&gt;${L}&lt;br /&gt;${O}&lt;br /&gt;${OU}&lt;br /&gt;${CN}&lt;br /&gt;$USER@${CN}&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;EOF&lt;br /&gt;echo ""&lt;br /&gt;&lt;br /&gt;[ -f ${csr} ] &amp;amp;&amp;amp; echodo openssl req -text -noout -in ${csr}&lt;br /&gt;echo ""&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-7748473994387962919?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/7748473994387962919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=7748473994387962919' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/7748473994387962919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/7748473994387962919'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/09/script-for-openssl-certificate-signing.html' title='Script for OpenSSL Certificate Signing Request'/><author><name>Loren Heal</name><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-13220950.post-5788405785896238825</id><published>2007-09-20T05:00:00.000-05:00</published><updated>2007-09-20T05:03:15.986-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reviews'/><title type='text'>Why not to buy an LCD TV</title><content type='html'>When the &lt;a href="http://www.microvision.com/pico_projector_displays/index.html"&gt;Microvision Pico Projector&lt;/a&gt; technology spreads and stabilizes, you won't need a screen, just a white wall.&lt;br /&gt;&lt;br /&gt;Though I'm told they do it all with mirrors.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-5788405785896238825?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/5788405785896238825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=5788405785896238825' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/5788405785896238825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/5788405785896238825'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/09/why-not-to-buy-lcd-tv.html' title='Why not to buy an LCD TV'/><author><name>Loren Heal</name><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-13220950.post-8665479533777203408</id><published>2007-09-18T10:17:00.000-05:00</published><updated>2007-09-18T11:31:06.204-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reviews'/><category scheme='http://www.blogger.com/atom/ns#' term='information assurance'/><category scheme='http://www.blogger.com/atom/ns#' term='voting'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='FUD'/><title type='text'>Paperless Voting Logic Errors</title><content type='html'>The Information Technology &amp;amp; Innovation Institute has published their &lt;a href="http://www.innovationpolicy.org/index.php?id=79"&gt;report&lt;/a&gt; (&lt;a href="http://www.innovationpolicy.org/files/evoting.pdf"&gt;pdf&lt;/a&gt;) on electronic voting, and as advertised in their press release &lt;a href="http://sourcery.blogspot.com/2007/09/poisoning-well-on-electronic-voting.html"&gt;last week&lt;/a&gt;, they think a paper trail is unneeded and even harmful.  To this end their report employs a series of logical fallacies, hinting that their research began with a premise and attempted to validate it, rather than simply seeking the facts.&lt;br /&gt;&lt;br /&gt;The biggest mistake the report makes is a result of the incorrect assumption that all-electronic voting is a worthwhile goal. It fails to think outside the box created by that assumption, which would have revealed a better solution.&lt;br /&gt;&lt;br /&gt;The report begins&lt;br /&gt;&lt;blockquote&gt;Americans trust computers to run critical applications in fields such as banking, medicine, and aviation, but a growing technophobic movement believes that no computer can be trusted for electronic voting.&lt;/blockquote&gt;The report could have ended with its conclusion that a computer could be trusted for electronic voting, and saved us all the trouble, but unfortunately it did not.&lt;br /&gt;&lt;br /&gt;The fallacies fly beginning with the opening three words: "Americans trust computers" relies on an Appeal to Popularity, and Ambiguity in the words "trust" and "computers".  A report intending to provide technical background and subject-matter expertise should not rely on public opinion for its primary argument.  That Americans believe a certain thing does not make it true, unless we are talking about the definition of words or something else which is made true by popular acceptance.  While "trust" has a variety of meanings to politicians, it has a more specific meaning in the field of computer security and information assurance.  That something is trusted means only that its level of insecurity is acceptable, not that it is perfect. And the computers and most importantly the &lt;span style="font-style:italic;"&gt;ways they are connected&lt;/span&gt; in banking, medicine, and aviation are markedly different than voting machines. &lt;br /&gt;&lt;br /&gt;So the report begins by asserting that the paper trail debate is only about trusting computers, even unleashing against those who want a paper trail the &lt;span style="font-style:italic;"&gt;ad hominem&lt;/span&gt; "technophobic", when in fact there is far more to it than trusting computers.  It is about designing a process that doesn't require trusting computers. Many of us seeing the need for a paper trail are among the least technophobic people there are, knowing exactly when to trust a computer and when not to do so. &lt;br /&gt;&lt;br /&gt;Most of the report sets up paper-only ballots as a sinister straw man, bringing up the history of paper ballots (e.g., with the sidebar: "How LBJ Stole and Election with Paper Ballots") and insisting that anyone opposed to direct-record electronic (DRE) voting machines must be for that kind of corruption and inefficiency.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Unfortunately, paper-based auditing trails such as these do not allow the voter to verify that the results of an election are accurate. A DRE voting machine can provide up to three different guarantees to a voter: first, that the vote was cast as intended; second, that the vote was recorded as cast; and third, that the vote was tallied as recorded.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Despite the imprecise terminology (misusing the word "vote" for "ballot"), the electronic "guarantees" provided to the voter are not worth the paper they aren't printed on.  The guarantees all require trusting the system, which is exactly what we are trying to establish.  This is known  as "begging the question".&lt;br /&gt;&lt;br /&gt;The report goes even further, however, and makes a misstatement of fact, saying "The third property, that the vote was tallied as recorded, is not provided by voter-verified paper audit trails."  In fact it is precisely this property which a &lt;a href="http://sourcery.blogspot.com/2007/05/acceptable-electronic-voting.html"&gt;paper trail provides&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;An machine which prints the official ballot and sends an electronic copy to a central location can be far more secure and trustworthy than an all-electronic one.  If each voter, or a statistically important sample of them, inspects his paper ballot, then the tally of the paper ballots had better match the electronic one.  The reason is this: the ballot box could be compromised, and the electronic data could be compromised, but the task of compromising them both in the same way is exceedingly difficult, equivalent to compromising everyone and everything involved. DRE systems as recommended by this report are incapable of that level of assurance.&lt;br /&gt;&lt;br /&gt;All-electronic voting can never be as secure, and especially not as robust, possibly even as paper-only but especially not a hybrid of both.  This report may have concluded that if it had not begun with its conclusion already fixed in place.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-8665479533777203408?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/8665479533777203408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=8665479533777203408' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/8665479533777203408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/8665479533777203408'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/09/paperless-voting-logic-errors.html' title='Paperless Voting Logic Errors'/><author><name>Loren Heal</name><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-13220950.post-408256869865613353</id><published>2007-09-14T17:43:00.000-05:00</published><updated>2007-09-14T18:10:03.930-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='information assurance'/><category scheme='http://www.blogger.com/atom/ns#' term='voting'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='FUD'/><title type='text'>Poisoning the Well on Electronic Voting</title><content type='html'>A "think tank" called the &lt;a href="http://www.innovationpolicy.org/index.php"&gt;Information Technology and Innovation Foundation&lt;/a&gt; is due to release a report on Tuesday, September 18, with the counterintuitive conclusion that a paper trail does not add to the security of electronic voting systems. They're holding a briefing, at which the following will explain their conclusion:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.congress.org/congressorg/bio/?id=315"&gt;Rep. Vernon Ehlers&lt;/a&gt; (R-MI)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.innovationpolicy.org/index.php?s=staff#one"&gt;Robert Atkinson&lt;/a&gt;, President of ITIF&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.innovationpolicy.org/index.php?s=staff#three"&gt;Daniel Castro&lt;/a&gt;,  Senior Analyst with ITIF&lt;br /&gt;&lt;br /&gt;They've got a heavy burden of proof to lift, since it's apparent to anyone who thinks about this subject that an all-electronic system can never be trusted.  &lt;br /&gt;&lt;br /&gt;They also have to show that they were not funded, commissioned, or beholden to someone with a motivation for making electronic voting paperless. Rep. Ehlers fails that burden immediately, because as a sitting member of Congress his insight into secure electronic voting is suspect.&lt;br /&gt;&lt;br /&gt;They may say a paper trail doesn't in itself add security, which only applies if the paper trail is done poorly.  &lt;br /&gt;&lt;br /&gt;With the long development and approval cycle of election systems, there is a gaping hole in any all-electronic system: fault exploits are developed quickly, while the systems have great inertia.  An unfixable design flaw may be widely known on election day, and yet the vulneralble system will be deployed because that's how the government works.&lt;br /&gt;&lt;br /&gt;I'll have more when they release the report.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-408256869865613353?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/408256869865613353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=408256869865613353' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/408256869865613353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/408256869865613353'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/09/poisoning-well-on-electronic-voting.html' title='Poisoning the Well on Electronic Voting'/><author><name>Loren Heal</name><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-13220950.post-7777001461027465407</id><published>2007-08-22T15:40:00.001-05:00</published><updated>2007-08-24T00:24:33.808-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='unix shell'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Programs I Want to Write</title><content type='html'>A Shell script compiler&lt;br /&gt;&lt;br /&gt;A To Do / Project manager&lt;br /&gt;&lt;br /&gt;A better (robust, complete, elegant) compiler language&lt;br /&gt;&lt;br /&gt;A March Madness tournament picker&lt;br /&gt;&lt;br /&gt;A GUI for script writing&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-7777001461027465407?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/7777001461027465407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=7777001461027465407' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/7777001461027465407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/7777001461027465407'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/08/programs-i-want-to-write.html' title='Programs I Want to Write'/><author><name>Loren Heal</name><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-13220950.post-1595913972843882945</id><published>2007-08-06T12:34:00.000-05:00</published><updated>2007-08-06T12:45:44.484-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='information assurance'/><category scheme='http://www.blogger.com/atom/ns#' term='copyright'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>Keeping Safe Online</title><content type='html'>&lt;p&gt;(Reposted by permission from &lt;a href="http://it.slashdot.org/comments.pl?sid=262235&amp;cid=20131919"&gt;Slashdot&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;There is a tendency to want the government to do something about every problem, and the hassle of online scumbaggery is no exception. Individuals (and their guardians) need to take responsibility for their own protection, and not expect either the government to protect them (which it cannot) or for faceless strangers to be kind to them, which a tiny but significant portion will not. &lt;/p&gt; &lt;p&gt; Each of these steps solves roughly half of the remaining problems not solved by the previous ones. &lt;/p&gt;&lt;ol&gt;&lt;li&gt;A fool and his unarchived data are soon parted.  If you want it, make an offline copy of it. &lt;/li&gt;&lt;li&gt;Switch to Linux, a Mac, or Anything But Windows.  Most of the following only apply if this one won't work for you. &lt;/li&gt;&lt;li&gt;Switch to &lt;a href="http://www.mozilla.com/" title="mozilla.com"&gt;Mozilla Firefox&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Buy and install a firewall box. These are very easy to set up, and will save you a ton of trouble.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Buy and install a virus scanner. &lt;/li&gt;&lt;li&gt;Download and install &lt;a href="http://lavasoft.com/" title="lavasoft.com"&gt;Lavasoft Ad-Aware&lt;/a&gt; or similar spyware detector, even if your virus scanner says it provides that protection. &lt;/li&gt;&lt;li&gt;Don't open email with attachments you aren't expecting, or respond to spam with so much as a single click.  You have been warned. &lt;/li&gt;&lt;li&gt;Stay away from porn sites. They're bad for your computer. &lt;/li&gt;&lt;li&gt;Stay away from online games except those you know to be crap-free. &lt;/li&gt;&lt;li&gt;You don't know that any of them are crap-free. &lt;/li&gt;&lt;li&gt;Don't download commercial music except from commercial vendors to whom you pay a fee. Yeah, sucks to be us. But you get what you deserve, and if you're trying to get something for nothing, you'll give something for nothing in return. &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;So what do you do if your kids download some game, P2P app, or other crapware-laden piece of stupidity? Take away the computer. What if you have several kids, and you don't know who did it? Enlist their aid and hold them all accountable. Tell them that if any of them downloads crapware and the guilty party won't come forward, they all do their homework at the library (for a week or month or whatever). &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-1595913972843882945?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/1595913972843882945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=1595913972843882945' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/1595913972843882945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/1595913972843882945'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/08/keeping-safe-online.html' title='Keeping Safe Online'/><author><name>Loren Heal</name><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-13220950.post-4174264115117239163</id><published>2007-08-04T20:24:00.000-05:00</published><updated>2008-12-10T03:06:53.367-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='1000 Words'/><category scheme='http://www.blogger.com/atom/ns#' term='stupid'/><title type='text'>A.Rod's Big Day</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ajz-qim2Ujw/RrUnD3vhdtI/AAAAAAAAABk/ca85uH_LFn4/s1600-h/arodsbigday.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_Ajz-qim2Ujw/RrUnD3vhdtI/AAAAAAAAABk/ca85uH_LFn4/s320/arodsbigday.png" alt="" id="BLOGGER_PHOTO_ID_5095021500895950546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;"The Yankees' Alex Rodriguez became the youngest player to reach 500 home runs on Saturday."&lt;br /&gt;&lt;br /&gt;Now, I know it's not really ambiguous, since hitting 500 home runs over the course of a career is still fairly rare. &lt;br /&gt;&lt;br /&gt;Just saying.&lt;br /&gt;&lt;br /&gt;Oh, and congrats Alex.  Maybe now you can get a decent contract and start making some real money.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-4174264115117239163?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/4174264115117239163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=4174264115117239163' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/4174264115117239163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/4174264115117239163'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/08/arods-big-day.html' title='A.Rod&apos;s Big Day'/><author><name>Loren Heal</name><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/_Ajz-qim2Ujw/RrUnD3vhdtI/AAAAAAAAABk/ca85uH_LFn4/s72-c/arodsbigday.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13220950.post-2636552222300324097</id><published>2007-08-03T08:44:00.000-05:00</published><updated>2007-08-06T11:02:45.106-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='robust'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Making Strings Out of Numbers in C</title><content type='html'>A while back I was writing a C program and found I needed to convert numbers (integers) into strings.  The language has no built-in facility for this.  While sprintf() can be used, it has some drawbacks. Sprintf() only works with binary, octal, or hexadecimal bases, and the calling function has to calculate how much space each number needs. In any case, it didn't fit the bill at the time.&lt;br /&gt;&lt;br /&gt;So I wrote &lt;a href="http://www.healconsulting.com/files/.itoa.txt"&gt;itoa.c&lt;/a&gt;, which does the job.  The file also contains a test wrapper with a main() function which may be useful in its own right.  It will convert a decimal number on the command line to its representation in any base from 2 to 62.&lt;br /&gt;&lt;br /&gt;One feature you may like or dislike is itoa's use of malloc() to get space for the resulting string.  Itoa figures out how much space to allocate, which makes for twice the work for it but may save a large hassle in the calling function.  I think that's an example of &lt;a href="http://sourcery.blogspot.com/search/label/robust"&gt;robustness&lt;/a&gt;, since it works correctly for any base, but your mileage, etc.&lt;br /&gt;&lt;br /&gt;How do I know it works correctly for any base from 2 to 62?  By&lt;a href="http://www.purplemath.com/modules/inductn.htm"&gt; inductive proof&lt;/a&gt;&lt;a href="http://logicwizard.blogspot.com/search?q=proof+by+induction"&gt;&lt;/a&gt;.  The length for a string whose value is less than its base is 1 plus a null char for C, so the length is 2.  So suppose the algorithm works for some base k. Since the same work is being done* when actually filling in the string with ritoa(), we see that working for base k means it works for base k+1. The boundary at 62 also works, so the algorithm is correct.&lt;br /&gt;&lt;br /&gt;As always with C, be sure to garbage collect with free() when you no longer need the string.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;/*&lt;br /&gt;* Itoa.c&lt;br /&gt;* Copyright 2004, Heal Consulting&lt;br /&gt;* Published under the General Public License. See it at http://gnu.org&lt;br /&gt;*/&lt;br /&gt;/*&lt;br /&gt;A sleeker version is available at:&lt;br /&gt;http://www.cs.princeton.edu/courses/archive/fall96/cs126/examples/itoa.c&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;#include &lt;stdio.h&gt; /* only needed for main, fprintf error*/&lt;br /&gt;&lt;br /&gt;static char *ItoaDigits = &lt;br /&gt;"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;* ritoa&lt;br /&gt;* recursive itoa&lt;br /&gt;*/&lt;br /&gt;long int &lt;br /&gt;ritoa(long int val, long int topval, char *s, int base)&lt;br /&gt; {&lt;br /&gt; long int n = val / base;&lt;br /&gt; if (n &gt; 0)&lt;br /&gt;  topval = ritoa(n, topval, s+1, base);&lt;br /&gt; else&lt;br /&gt;  *(s+1) = '\0';&lt;br /&gt; *s = ItoaDigits[ topval % base ];&lt;br /&gt; return(topval / base);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;* itoa&lt;br /&gt;* - mallocs a string of the right length&lt;br /&gt;* - calls ritoa to fill in the string for a given base&lt;br /&gt;*/&lt;br /&gt;char * itoa(long int val, int base)&lt;br /&gt; {&lt;br /&gt; int len;&lt;br /&gt; char *s,*buf; &lt;br /&gt; long int t = val;&lt;br /&gt; for (len=2; t; t /= base) len++ ; /* quickie log_base */&lt;br /&gt;/* printf("len; %d\n", len); */&lt;br /&gt;&lt;br /&gt; if((buf = (char *) malloc(len)) == NULL)&lt;br /&gt;  {fprintf(stderr,"out of memory in itoa\n"); exit(1);}&lt;br /&gt; s = buf;&lt;br /&gt; if (val &lt; 0)&lt;br /&gt;  {&lt;br /&gt;  *s++ = '-'; &lt;br /&gt;  val = -val;&lt;br /&gt;  };&lt;br /&gt; len = (int) ritoa(val, val, s, base); &lt;br /&gt; return(buf);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;* The test program may actually be useful.&lt;br /&gt;* Converts a decimal number (long int) to a base you supply.&lt;br /&gt;*/&lt;br /&gt;int&lt;br /&gt;main(int argc, char *argv[])&lt;br /&gt; {&lt;br /&gt; long int num = 0;&lt;br /&gt; char *s;&lt;br /&gt; int base = 10;&lt;br /&gt; int maxlen = strlen(ItoaDigits);&lt;br /&gt;&lt;br /&gt; if (argc &gt;2) { base = atoi(argv[2]); }; &lt;br /&gt; if (argc &gt;1) { num = atol(argv[1]); }; &lt;br /&gt; if ((argc &lt;= 1) || (base &gt; maxlen ) || (base &lt; 2))&lt;br /&gt;  {&lt;br /&gt;  printf("Usage:\n\n%s [number [base]]\n", argv[0]);&lt;br /&gt;  printf("where number is in decimal and 2 &lt;= base &lt;= %d\n", maxlen);&lt;br /&gt;  exit(1);&lt;br /&gt;  }&lt;br /&gt; s = itoa(num, base); &lt;br /&gt; puts(s); &lt;br /&gt; return(0); &lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;After I wrote it, I found a slightly sleeker (base 2 through 16 only) version &lt;a href="http://www.cs.princeton.edu/courses/archive/fall96/cs126/examples/itoa.c"&gt;from an old Princeton CS class&lt;/a&gt;*.&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;* No, I didn't go to Princeton.  That's why I waved my hands in the proof.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-2636552222300324097?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/2636552222300324097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=2636552222300324097' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/2636552222300324097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/2636552222300324097'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/08/making-strings-out-of-numbers-in-c.html' title='Making Strings Out of Numbers in C'/><author><name>Loren Heal</name><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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13220950.post-7343496351098127464</id><published>2007-07-31T12:21:00.000-05:00</published><updated>2007-07-31T12:21:41.541-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reuse'/><category scheme='http://www.blogger.com/atom/ns#' term='What To Do With...'/><category scheme='http://www.blogger.com/atom/ns#' term='household tips'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><title type='text'>What To Do With Old Mesh Fruit Bags</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://wolfram.org/images/orange_bag.jpg"&gt;&lt;img style="margin: 0pt 0pt 5px 5px; float: right; cursor: pointer;" src="http://wolfram.org/images/orange_bag.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pond filter intake cover&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you have a small garden pond with a filter and pump, a mesh bag over they intake will keep leaves, worms, and minnows out of the filter.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Wash rocks&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you have to clean decorative rocks or gravel, a mesh bag can allow you to spray a hose at the rocks without scattering them.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Big scouring pad&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Fill a mesh bag with cotton rags and use as a scouring pad for a boat hull, RV, wood deck, or house exterior.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Recycling container&lt;/span&gt;, especially for&lt;br /&gt;&lt;ul&gt;&lt;li&gt;aluminum cans &lt;/li&gt;&lt;li&gt;glass&lt;/li&gt;&lt;li&gt;tin cans&lt;/li&gt;&lt;/ul&gt;Some vegetables come in a looser mesh with very soft strands. These can be used&lt;br /&gt;&lt;ul&gt;&lt;li&gt;As dust rags&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In paint preparation, to remove steel wool fibers or wood dust&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://wolfram.org/writing/howto/1.html"&gt;Eric Wolfram&lt;/a&gt;, whence I stole the images here, lists several uses, including:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Giving away at farmer's market&lt;/li&gt;&lt;li&gt;Holding batteries, cables, and other electronic gear&lt;/li&gt;&lt;li&gt;Carrying loose change to the bank&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Beach bag&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Not As A Bird Feeder&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/url?sa=t&amp;ct=res&amp;amp;cd=4&amp;url=http%3A%2F%2Fwww.sialis.org%2Fsuet.htm&amp;amp;ei=J2WvRrqkM5SmoAT-kLiGBg&amp;usg=AFQjCNFBJWzRiZ7tbJWEdDZ40xFwoz9Qdw&amp;amp;sig2=7SEPTl1TplBBlSqaop8YVg"&gt;Apparently&lt;/a&gt; birds get their feet caught in the modern mesh bags. Make a cube out of hardware cloth (wide-mesh heavy gauge screen) instead.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Air Clamp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Some objects that need to be clamped together for gluing cannot stand the stress of a regular clamp. You can combine a mesh bag with something like a plastic bread bag, garbage bag, or folded over piece of plastic sheeting, depending on the size, shape and strength of the objects, to make a clamp to glue them together.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Glue the objects together&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Put the objects inside a mesh bag &lt;/li&gt;&lt;li&gt;Put the mesh bag inside your air-tight container bag&lt;/li&gt;&lt;li&gt;Use an aquarium air pump (or preferably something stronger) to take the air out of the bag&lt;/li&gt;&lt;li&gt;Depending on the pump you have, you may either seal the bag or let it continue to try evacuating the bag. &lt;/li&gt;&lt;/ol&gt;Since atmospheric air pressure is  about 14 &lt;span style="font-size:85%;"&gt;lb/in&lt;/span&gt;&lt;sup&gt;2&lt;/sup&gt;, removing air from inside the bag puts a very strong force uniformly all around the items to be glued, while also helping extrude the glue in a uniform way (for the right kinds of glue).  Professionals use specially designed pumps which can maintain a given vacuum pressure, but a DIY alternative is to use a food preservation vacuum sealer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-7343496351098127464?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/7343496351098127464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=7343496351098127464' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/7343496351098127464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/7343496351098127464'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/07/what-to-do-with-old-mesh-fruit-bags.html' title='What To Do With Old Mesh Fruit Bags'/><author><name>Loren Heal</name><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-13220950.post-8847751588327403275</id><published>2007-07-30T13:07:00.000-05:00</published><updated>2007-07-30T13:03:30.600-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dog'/><category scheme='http://www.blogger.com/atom/ns#' term='inventions'/><category scheme='http://www.blogger.com/atom/ns#' term='What To Do With...'/><category scheme='http://www.blogger.com/atom/ns#' term='household tips'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><title type='text'>What To Do With Old Toothbrushes</title><content type='html'>A toothbrush should be changed &lt;a href="http://dentistry.about.com/od/dentalfactsfaqs/f/toothbrush.htm"&gt;every three months&lt;/a&gt;, we're told. But what should be done with the old ones?  Throwing them away seems awfully wasteful to me, so I keep them around and inevitably find uses for them.&lt;br /&gt;&lt;br /&gt;One nice feature of the humble toothbrush is that the plastic handle can be broken, either to remove the head to use just the handle, or to make the handle shorter.  With gentle pressure and even low heat, the handle can  also be bent into a more convenient shape. The bristles can be trimmed to form a stiffer brush or even removed entirely.&lt;br /&gt;&lt;br /&gt;Break the handle to about 3" and use as a fingernail cleaner.&lt;br /&gt;&lt;br /&gt;Hang in the shower for scrubbing nails and feet.  Make sure to clean (and disinfect) it between uses, or various nastiness can grow on it.&lt;br /&gt;&lt;br /&gt;If the bristles are cut off, a toothbrush can be filed down with concrete and sandpaper to a surprisingly sharp point or blade, to make an awl or a scraping tool. An old toothbrush can really come in handy in a variety of settings:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;In the garage&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;General cleaner &lt;/li&gt;&lt;li&gt;Clean grease, oil and tar from car parts&lt;/li&gt;&lt;li&gt;Clean dirt from garden tools and apply &lt;a href="http://sourcery.blogspot.com/search?q=used+motor+oil"&gt;used motor oil&lt;/a&gt; as protectant&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Clean rusty items&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Car detailing: either inside or out&lt;/li&gt;&lt;li&gt;Bike chain and gear cleaner&lt;/li&gt;&lt;li&gt;Clean power tools such as jigsaws and Sawzalls™&lt;/li&gt;&lt;li&gt;Brush the dust and debris from shop vacuum cleaners&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Use as applicator for pipe thread sealant&lt;/li&gt;&lt;li&gt;Spread wood glue&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Glue sand to bristles, use as wire brush&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;In the kitchen&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Break and bend the handle away from the bristles to better scrub permanent coffee filters or the coffee filter basket&lt;br /&gt;&lt;/li&gt;&lt;li&gt;    Use with baking soda for general cleaning, and also the grooves in a George Foreman grill&lt;/li&gt;&lt;li&gt;Clean fruits and vegetables from the garden or grocery&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Around the house&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Painting and paint preparation&lt;/li&gt;&lt;li&gt;Ceiling fan duster&lt;/li&gt;&lt;li&gt;Laundry stain scrubber&lt;/li&gt;&lt;li&gt;Grout scrubber&lt;/li&gt;&lt;li&gt;Doggy toothbrush&lt;/li&gt;&lt;li&gt; Handle for steel wool, cotton ball, cloth&lt;/li&gt;&lt;/ul&gt;At &lt;a href="http://www.thriftyfun.com/tf713740.tip.html"&gt;ThriftyTips&lt;/a&gt;, some other uses came out:&lt;br /&gt;&lt;blockquote&gt;Cleaning combs and brushes, bottles, jewelry, shoes, sliding door tracks, toys, window crevices, screens, toilets, faucets, etc. [using different brushes, obviously]. Use as an eyebrow brush.&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-8847751588327403275?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/8847751588327403275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=8847751588327403275' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/8847751588327403275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/8847751588327403275'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/07/what-to-do-with-old-toothbrushes.html' title='What To Do With Old Toothbrushes'/><author><name>Loren Heal</name><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-13220950.post-7754519181516971194</id><published>2007-07-28T08:00:00.000-05:00</published><updated>2007-07-28T11:36:10.505-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='What To Do With...'/><category scheme='http://www.blogger.com/atom/ns#' term='household tips'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><title type='text'>What To Do With Used Motor Oil</title><content type='html'>[Originally posted 20070722, updated 20070728 with orst.edu link]&lt;br /&gt;&lt;br /&gt;Most places &lt;a href="http://www.p2pays.org/ref/01/00015.htm"&gt;have laws&lt;/a&gt; about what you can do with used &lt;a href="http://www.calsci.com/motorcycleinfo/Oils1.html"&gt;motor oil&lt;/a&gt;, such as mandating that it be recyeled* by a licensed facility.   In fact, while writing this it was initially difficult to find any information on used motor oil other than pleas to recyele it. Used motor oil is a known carcinogen, so wear gloves and don't eat it.&lt;br /&gt;&lt;br /&gt;A lot of the pages on the net that talk about used motor oil take the amount of oil bought and subtract the amount recycled, concluding that this amount is dumped down storm sewers or into lakes and streams.  But the thing is, most people don't live near a lake or a stream, and very few people would actually dump used motor oil down the storm sewer, much less their own drain.  At least, not twice.&lt;br /&gt;&lt;br /&gt;So what do people do with used motor oil if they don't recyele it?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Paint the bottom of wooden posts, or anything else that will be in ground contact.  If you're really serious, heat the oil to above the boiling point for water and immerse your object in it.  The water in the object will boil away, to be replaced by oil and contaminants. Oiled wooden fence posts that are mostly or entirely encased in concrete will not harm the environment.  Don't use such posts in standing water or marsh, because the oil will leech into the water.&lt;br /&gt;&lt;br /&gt;[&lt;span style="font-weight: bold;"&gt;Update: &lt;/span&gt;I found this research report from &lt;span style="font-size:100%;"&gt;Donald J. Miller of &lt;/span&gt;Oregon State University, &lt;a href="http://juniper.orst.edu/post-farm.htm"&gt;Service Life of Treated and Untreated Fence Posts: 1985 Post-Farm Report.&lt;/a&gt;&lt;b&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;/b&gt;   "Post-Farm" refers to a farm full of posts, not a report after the farm.&lt;br /&gt;&lt;br /&gt;He recommends used motor oil or crankcase oil only as a carrier for creosote, presumably because the oil only increases the useful life of posts by a short amount of time compared to its toxicity (and tendency to soften untreated wood).  Using oil to carry creosote proved among the most effective treatments.  In a residential or non-farm application, applied to already treated wood, plain appears to help a lot.  /&lt;span style="font-weight: bold;"&gt;Update&lt;/span&gt; 20070728]&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Soak hard-to-burn things like damp wood before lighting (don't breathe the smoke)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Paint concrete (again, not for aquatic use).&lt;/li&gt;&lt;li&gt;Paint concrete forms so they can be removed more easily taken off and reused&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Paint a brick foundation, especially the chalky mortar as a way to postpone tuck pointing. This iwill make your eventual tuck pointing job more difficult, since the new mortar will not stick as well with the oil present.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Before paving asphalt (or asphalt over concrete), apply a coat of motor oil and allow to soak in overnight (unless rain is expected).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Mix with staining colorants, or with old oil-based wood stain or paint. A lot of times there are things that need to be painted that will never show -- you're just painting them to protect them (why else use an oil-based paint?).  So combine your leftover stain, paint, varnish, and used motor oil in a paint can and mix well.  It probably won't stick to metal, but will last a long time on wood, concrete, or stone. For an effective finish, apply several coats until it is no longer absorbed.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Use as chain saw chain oil (a very good use, but watch the splatter)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Lubricate a bicycle chain (this is not optimal, because the thick oil tends to collect dirt)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Clean rusty metal (paired with an abrasive such as steel wool)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Coat outdoor tools such as axes, shovels, and clippers to keep them from rusting&lt;/li&gt;&lt;li&gt;Clean road tar off vehicles (take care not to mar finish)&lt;/li&gt;&lt;li&gt;Clean old engines such as on lawnmowers&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Lubricate hinges, latches, and other rough exterior hardware&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Coat nails to make them drive easier and stay rust-free&lt;/li&gt;&lt;li&gt;Mix in 1 part oil with 20 parts diesel fuel and &lt;a href="http://www.google.com/url?sa=t&amp;ct=res&amp;amp;cd=38&amp;url=http%3A%2F%2Fwww.goldenfuelsystems.com%2Fresources_faq_systems.php&amp;amp;ei=1BKPRvH4LKCajgHv4rzOBg&amp;usg=AFQjCNGOTuZvHtBHABBPVKoVBgzHxdZ6vQ&amp;amp;sig2=dbkC6E-dbsga6LZsjK-rQA"&gt;drive around&lt;/a&gt; &lt;a href="http://www.blogger.com/post-edit.g?blogID=13220950&amp;postID=7754519181516971194#oildag1"&gt;†&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Oil leather (makes a dull, unattractive finish, but functions well) (do not used next to skin)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;There is a &lt;a href="http://www.patentstorm.us/patents/5364996-claims.html"&gt;patented process&lt;/a&gt; for cooking used rubber tires with used motor oil, producing a variety of hydrocarbons and chemicals.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Another  (&lt;a href="http://www.google.com/url?sa=t&amp;amp;ct=res&amp;cd=19&amp;amp;url=http%3A%2F%2Fwww.patentstorm.us%2Fpatents%2F6395166.html&amp;ei=FRGPRvfsN6K4iwGD2pSWBg&amp;amp;usg=AFQjCNFWALVDCBIczhgay5EDq_epNEkUyQ&amp;sig2=IeYQB5fTUdf97A4MD8ZKvA"&gt;patented&lt;/a&gt;) process purifies used oil with acetone and ketone&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Use a centrifuge to separate impurities&lt;a href="http://sourcery.blogspot.com/2007/07/what-to-do-with-used-motor-oil.html"&gt; &lt;/a&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=13220950&amp;amp;postID=7754519181516971194#oildag1"&gt;†&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Burn in an oil heater designed for used oil&lt;a href="http://www.blogger.com/post-edit.g?blogID=13220950&amp;postID=7754519181516971194#oildag1"&gt;†&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Burn it in an oil lamp&lt;a href="http://www.blogger.com/post-edit.g?blogID=13220950&amp;amp;postID=7754519181516971194#oildag1"&gt;†&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;What&lt;span style="font-weight: bold;"&gt; not&lt;/span&gt; to do with used oil:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Spread it on the ground to inhibit dust or weed growth, as this makes a nasty runoff when it eventually rains.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ingest it or let it contact your eyes or other such areas.  &lt;/li&gt;&lt;li&gt;Dump it down the drain, as this will clog your drain and mess up the sewer system&lt;/li&gt;&lt;li&gt;Put it in a landfill, as this is dangerous and harmful in about six ways.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;* I have left the spelling as "recyeled" to allow searchers to find this post by excluding the correctly spelled word.&lt;br /&gt;&lt;a name="#oildag"&gt;&lt;/a&gt;&lt;a href="http://sourcery.blogspot.com/2007/07/what-to-do-with-used-motor-oil.html"&gt;† ←&lt;/a&gt; I've never tried these, but they should be interesting&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-7754519181516971194?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/7754519181516971194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=7754519181516971194' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/7754519181516971194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/7754519181516971194'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/07/what-to-do-with-used-motor-oil.html' title='What To Do With Used Motor Oil'/><author><name>Loren Heal</name><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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13220950.post-4364264673539305280</id><published>2007-07-25T19:22:00.000-05:00</published><updated>2007-07-25T20:41:57.734-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><category scheme='http://www.blogger.com/atom/ns#' term='knots'/><title type='text'>How to Pull Cables with String</title><content type='html'>The knot to use is called a "stitch", and it is the same technique &lt;a href="http://www.dairiki.org/hammond/cable-lacing-howto/"&gt;used in data centers&lt;/a&gt; to secure bunches of cables without all of that Velcro mess.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dairiki.org/hammond/cable-lacing-howto/fig7-12.5.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 50%;" src="http://www.dairiki.org/hammond/cable-lacing-howto/fig7-12.5.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dairiki.org/hammond/cable-lacing-howto/fig7-12.6.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 50%;" src="http://www.dairiki.org/hammond/cable-lacing-howto/fig7-12.6.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Either the "Right" or "Wrong" style will work, and I describe the "Wrong" method below. This works for Ethernet cable, Romex®, and similar cabling.  It's a great technique to use with &lt;a href="http://cableorganizer.com/greenlee/steel-fish-tapes/"&gt;fish tape&lt;/a&gt;, the metallic band on a reel used to fish inside of walls.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Make two loops in the string.&lt;/li&gt;&lt;li&gt;Turn one around.  &lt;/li&gt;&lt;li&gt;Stick the cable through the loops.  &lt;/li&gt;&lt;li&gt;Pull on the string to tighten (it's OK for the loops to separate).  If done properly, the harder you pull on the string, the tighter the knot gets. If done wrong ... just do it again.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Wrap with as little electrical or duct tape as possible to secure the loose end of the string, protect your cable end, and to keep the end of the cable attached to the string so it doesn't wedge as you pull it. Too much tape will snag as you pull it through.    &lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;For fish tape, you typically fish the tape from where you want to go to where the cable is. Attach the string to the hole in the end of the tape. The other end of the string gets the procedure above.&lt;br /&gt;&lt;br /&gt;Sometimes your intended run is such that you can't get yourself or the fish tape reel to the destination.  If you have an open space between two holes, sometimes the fish tape flops around. In those cases, attach the string to the fish tape before fishing it through, so that you can control the tape a bit with tension on the string.  You will then  have string all the way through the run.&lt;br /&gt;&lt;br /&gt;I've used this knot (doubled) for connecting two ropes, since other knots form a point of weakness and this one doesn't (when doubled).  Knot the loose ends in a square knot rather than with tape.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-4364264673539305280?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/4364264673539305280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=4364264673539305280' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/4364264673539305280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/4364264673539305280'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/07/how-to-pull-cables-with-string.html' title='How to Pull Cables with String'/><author><name>Loren Heal</name><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-13220950.post-6570794763662848066</id><published>2007-07-25T12:15:00.000-05:00</published><updated>2007-07-25T12:11:07.610-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reuse'/><category scheme='http://www.blogger.com/atom/ns#' term='What To Do With...'/><category scheme='http://www.blogger.com/atom/ns#' term='household tips'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><category scheme='http://www.blogger.com/atom/ns#' term='knots'/><title type='text'>What To Do With Old Wire and Cables</title><content type='html'>This is about copper cable, such as old 2-,4-,or even 50-pair telephone cable, cat-3 or cat-5 Ethernet cable,  non-metallic electrical cables (Romex®), or anything similar.  Whether you choose to reuse or recycle it, the stuff is getting too expensive just to throw away. This page describes how to use it for audio speaker wire, make rope from it, or even how to use it for some really environmentally awful fun.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Copper cable can be recycled, but finding a recycler nearby who deals with it may be difficult.  Luckily, &lt;a href="http://earth911.org/"&gt;Earth911.org&lt;/a&gt; provides a recycler locater search box.&lt;/li&gt;&lt;li&gt;Use old &lt;a href="http://www.bitzenbytes.com/Content-Arcanum-18-1-30.html"&gt;RG58 Ethernet&lt;/a&gt; cables with BNC ends as speaker cables, with BNC jacks in wall plates as needed.  This type of cable is designed to carry radio frequency signals, and works even better at lower audio frequencies where impedance is negligible. It's easy to use, way cheaper (if you've got it already) than doing what &lt;a href="http://www.laventure.net/tourist/cables.htm"&gt;this guy recommends&lt;/a&gt;. The sound is the same.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Old twisted-pair (Cat-3 or Cat-5) Ethernet cable works great as a source for color-coded twist ties.     Leave the vinyl jacket on until use, then strip off as much as you need. Or you can cut it all up and stand it in a jar.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Rope: braid a strand of copper cable with two strands of other cord, of either synthetic or natural fibers.  This makes a rope that is stronger than the individual cords and that will never rust.&lt;/li&gt;&lt;li&gt;Rope 2: Braid twisted sets of copper wire with strands of cotton or synthetic string of similar thickness, again making a rope. Use as many individual strands as you want, up to a practical limit. You can make the twisted sets of copper wire by attaching one end of a set of wires to an electric drill and the other to something fixed in place.  Twist one set of wires clockwise, the other counterclockwise.  This can be done in stages without cutting the wires. Twist each section the same amount and as tightly as desired, but avoid knotting. Braid the three (or more) pieces of cable or cord together, taking care to balance the twisting directions (so the resulting cable will tend to kink less).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Romex makes a nice pipe hanger for plumbing work, since it's flexible but stays in shape.  The individual strands (solid wire only) also make excellent heavy-duty twist ties.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;PVC-coated copper makes a pretty, multicolored flame when it burns on a campfire. The smoke is toxic, of course, and so not really good for the air, but still, it's pretty. &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/13220950-6570794763662848066?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/6570794763662848066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=6570794763662848066' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/6570794763662848066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/6570794763662848066'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/07/what-to-do-with-old-wire-and-cables.html' title='What To Do With Old Wire and Cables'/><author><name>Loren Heal</name><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-13220950.post-8212786343816791388</id><published>2007-07-24T22:20:00.000-05:00</published><updated>2008-12-10T03:06:53.617-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dog'/><category scheme='http://www.blogger.com/atom/ns#' term='What To Do With...'/><category scheme='http://www.blogger.com/atom/ns#' term='household tips'/><category scheme='http://www.blogger.com/atom/ns#' term='pets'/><title type='text'>What To Do With Old Wooden Pallets</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ajz-qim2Ujw/Rqa4iHvhdsI/AAAAAAAAABY/JRdH7U3ZtYI/s1600-h/compost-bin.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_Ajz-qim2Ujw/Rqa4iHvhdsI/AAAAAAAAABY/JRdH7U3ZtYI/s320/compost-bin.jpg" alt="" id="BLOGGER_PHOTO_ID_5090959325122361026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;If you ever take a bulk delivery on materials, you may find yourself with several wooden pallets, and not know what to do with them beside burning them or begging the garbage man to take them away.   &lt;a href="http://en.wikipedia.org/wiki/Pallet_crafts"&gt;Wikipedia&lt;/a&gt; suggests they can be used for a number of really clever things. Here are some not-so-clever but very easily completed projects for anyone with a hammer and nails. All of these work very well because &lt;a href="http://www.nwpca.com/TechTalk/PalletSpecs.asp?Page=TechTalk/PalletSpecs.asp"&gt;wooden pallets&lt;/a&gt; are made not to come apart.&lt;br /&gt;&lt;br /&gt;Note: most inexpensive pallets are made from untreated pine or other softwood, which will ensure that the part of the pallet exposed to the ground will begin to rot soon.  Rarely, you may find a pallet made from treated pine.  (If you burn it, don't breathe the smoke.) It will take a few years before the compost bin falls apart, which gives you plenty of time to find more pallets.  Hardwood pallets may last longer, but are often subject to a deposit.&lt;ul&gt;&lt;li&gt;Make a workbench&lt;br /&gt;I did it a few years ago.  I had to cut one of the pallets in half for some reason, but I don't remember why.  I ended up using a scrap 2x4 as a support on the back, and some masonite or  fiberboard as the top.  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.nwpca.com/images/pallet4.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://www.nwpca.com/images/pallet4.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Make a compost bin&lt;br /&gt;&lt;br /&gt;Just nail three pallets together in a 'C', with the deck boards facing in.  They don't have to be vertical, but it makes the composting part work better.    Nail in a couple of diagonal supports on top if it won't stay rigid.  Just face the back toward the neighbors and fill.  You'll never have to burn leaves or buy fertilizer again.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;(Image from the National Wood Pallet &amp;amp; Container Association, under fair use)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Build a dog house&lt;br /&gt;If you have a dog, even one that mostly lives inside, using three or four pallets you can make a nice, sturdy spot for your little wolf.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Lay a pallet on the ground&lt;/li&gt;&lt;li&gt;Lean two more pallets together on top of the first one, with the bottom edges of the top two resting between two deck boards.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Nail the roof-walls together, optionally using a couple of boards to make cross-pieces at the open ends.&lt;/li&gt;&lt;li&gt;Secure the roof-walls to the bottom, either by nailing them directly together or by some means left to your creativity to devise&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Cover it with plywood, shingles, or any other weatherproof material so that Fido has a spot out of the rain and sun and off the ground.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Throw in a piece of old carpet or welcome mat for that homey touch.&lt;br /&gt;&lt;/li&gt;&lt;/ol&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/13220950-8212786343816791388?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/8212786343816791388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=8212786343816791388' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/8212786343816791388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/8212786343816791388'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/07/what-to-do-with-old-wooden-pallets.html' title='What To Do With Old Wooden Pallets'/><author><name>Loren Heal</name><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/_Ajz-qim2Ujw/Rqa4iHvhdsI/AAAAAAAAABY/JRdH7U3ZtYI/s72-c/compost-bin.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13220950.post-8846283610127772267</id><published>2007-07-23T08:50:00.000-05:00</published><updated>2007-07-23T09:43:41.630-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unix shell'/><title type='text'>Troublesome Filenames</title><content type='html'>&lt;b&gt;smith:&lt;/b&gt; In my public_html directory there are subdirectories called "~backup" and "~smith".  "Backup" is the name we use for file archival of old work. When I cd to them I'm taken to some home directory.  What's going on?  &lt;p&gt; &lt;b&gt;me:&lt;/b&gt; That looked funny at first, but I think it's ok. &lt;/p&gt;  &lt;p&gt;A ~ (tilde) character is shell-ese for a home directory, either your own by itself or that of a given user with "~username". So when you entered "cd ~smith", it actually took you to your home directory. The &lt;span style="font-family: courier new;"&gt;/public_html/~smith&lt;/span&gt; thing is a real directory with a tilde as the first character of the name. You can create a directory with that name by typing &lt;/p&gt;&lt;pre&gt;        &lt;b&gt;mkdir public_html/~smith&lt;/b&gt;&lt;/pre&gt; The tilde is only interpreted as a home directory when it's the first character of a directory name, and only by csh/tcsh/zsh/ksh. Shell scripts are typically interpreted by the Bourne shell (/bin/sh), which doesn't know what "~smith" means, so sometimes shell scripts will create files named like that. &lt;p&gt;Entering &lt;/p&gt;&lt;pre&gt;        &lt;b&gt;cd ~smith/public_html/~smith&lt;/b&gt;&lt;/pre&gt;took  me to a directory that didn't look like your home directory. I renamed&lt;span style="font-family:courier new;"&gt; public_html/~backup &lt;/span&gt;to &lt;span style="font-family:courier new;"&gt;public_html/backup&lt;/span&gt; and&lt;span style="font-family:courier new;"&gt; public_html/~smith &lt;/span&gt;to &lt;span style="font-family:courier new;"&gt;public_html/smith.&lt;/span&gt;&lt;br /&gt;&lt;p&gt;There are other misbehaving filenames. Usually they come about the same way the "public_html/~smith did: UNIX file systems allows filenames to contain characters that are special to some command interpreters. For example, a mistaken cut-and-paste operation can generate several spurious commands, perhaps creating files with random names. Misbehaved filenames may make it hard to work with files, even in the newer shell programs. &lt;/p&gt;&lt;p&gt;For instance, files beginning with a hyphen ("-") will confound some commands. If you have a file named "-h" and try to do anything to it, the usual commands such as mv, cp, or rm will interpret the name as a command line switch and tell you you're typing the command incorrectly: &lt;/p&gt;&lt;pre&gt;~/temp me@server 8:48&gt; ls -l&lt;br /&gt;     total 0&lt;br /&gt;     -rw-r--r--   1 me    mygroup        0 Feb 20 08:46 &lt;b&gt;--help&lt;br /&gt;&lt;/b&gt;      -rw-r--r--   1 me    mygroup        0 Feb 20 08:46 &lt;b&gt;-h&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;~/temp me@server 8:48&gt; &lt;b&gt;rm -h &lt;/b&gt;&lt;br /&gt;     rm: illegal option -- h&lt;br /&gt;     usage: rm [-fiRr] file ...&lt;br /&gt;     zsh: exit 2     rm -h&lt;br /&gt;&lt;br /&gt;~/temp me@server 8:48&gt; &lt;b&gt;mv -h goodname   &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;     mv: illegal option -- h&lt;br /&gt;     mv: Insufficient arguments (1)&lt;br /&gt;     Usage: mv [-f] [-i] f1 f2&lt;br /&gt;            mv [-f] [-i] f1 ... fn d1&lt;br /&gt;            mv [-f] [-i] d1 d2&lt;br /&gt;     zsh: exit 2     mv -h goodname&lt;/pre&gt; The solution is to specify a path name for the file, either an absolute path as in &lt;span style="font-family:courier new;"&gt;/usr/local/bin/--badfile&lt;/span&gt;, or a relative path such as "&lt;span style="font-family:courier new;"&gt;./&lt;/span&gt;" (dot forward-slash, meaning the current directory). &lt;pre&gt;~/temp me@server 8:48&gt; &lt;b&gt;rm ./-h    &lt;/b&gt;&lt;br /&gt;~/temp me@server 8:48&gt; &lt;b&gt;mv ./--help goodname&lt;/b&gt;&lt;br /&gt;~/temp me@server 8:48&gt; ls -l&lt;br /&gt;     total 0&lt;br /&gt;     -rw-r--r--   1 me    mygroup        0 Feb 20 08:46 &lt;b&gt;goodname&lt;/b&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Other inconvenient filenames can require a "&lt;span style="font-family: courier new;font-family:courier new;" &gt;\&lt;/span&gt;" (backslash) to quote characters that are special to the shell, such as "&lt;span style="font-family:courier new;"&gt;-&lt;/span&gt;" (hyphen), "&lt;span style="font-family:courier new;"&gt;~&lt;/span&gt;" (tilde), "&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;" (space). The newer shells offering command-line completion will automatically quote the characters for you.&lt;br /&gt;&lt;br /&gt;Advanced users may wish to &lt;a href="http://sourcery.blogspot.com/2007/05/fun-with-find-sed-and-xargs.html"&gt;apply the stream editor sed&lt;/a&gt; to the problem.&lt;br /&gt;&lt;br /&gt;For a list of names of punctuation marks, I recommend the &lt;a href="http://en.wikipedia.org/wiki/Slash_%28punctuation%29"&gt;Wikipedia entry&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-8846283610127772267?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/8846283610127772267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=8846283610127772267' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/8846283610127772267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/8846283610127772267'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/07/troublesome-filenames.html' title='Troublesome Filenames'/><author><name>Loren Heal</name><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-13220950.post-6165941929567196562</id><published>2007-07-15T23:38:00.000-05:00</published><updated>2007-07-16T06:49:23.044-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reviews'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><title type='text'>Six Flags St. Louis</title><content type='html'>We went to &lt;a href="http://www.google.com/search?q=Six+Flags+St.+Louis"&gt;Six Flags St. Louis&lt;/a&gt; on a 90°F July Sunday.&lt;br /&gt;&lt;br /&gt;We got there at 9:30am, though the park opens at 10:30.  There were about 20 cars ahead of us at the gate, and by the time they opened the gate to let us in the parking lot, there were at least 100 cars waiting. We parked, showed our Internet tickets to the cashier, and then waited until 10:15 at the entrance turnstyles.  We made our way toward the first ride of the day, only to be stopped by park security.  They held everyone back from the attractions until 10:30.&lt;br /&gt;&lt;br /&gt;My take: either open, or don't open.  Don't do it halfway.  I guess it's their business, though.&lt;br /&gt;&lt;br /&gt;While waiting for security to stop their tyranny and allow us to ride the rides, we developed a plan.  Security had deputized a couple of pre-teen kids, signified with adhesive label badges.  We decided that unless word came soon that we could go into the rest of the park, we would point to the ground and say "Look!  A toy!",  dash past the distracted kids, and quickly take over the park, allowing us to be the first to ride the rides that day.  While demponstrating that move, I didn't realize that an older boy was watching me.  He looked for the toy.  This could work!&lt;br /&gt;&lt;br /&gt;But while we were still laughing at the older kid for actually falling for the trick, the guards relented from their oppression, and we dashed to the first ride.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mr. Freeze&lt;/span&gt;: thrilling, but too short.  On the other hand, I could sit and watch the takeoff and landing for hours. We rode it twice. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Batman&lt;/span&gt;: Good coaster, but even though you're upside down a lot, there's no weightlessness.  The line is always too long.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ninja&lt;/span&gt;: Great coaster.  No line, so we went through about 6 times.  We found it physically tiring, because this older coaster beats you up. Still, there's lots of air time.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Screamin' Eagle&lt;/span&gt;: I was surprised at how much I liked this 30+ year old wooden relic.  Once the biggest wooden coaster in the world, this thing is still great. The first time though, a dad was telling his 6- or 7-year-old that the boy was brave enough to ride the Screamin' Eagle. The boy wasn't sure, and whined about Mom not riding.  Dad encouraged, saying "You've already been on Ninja and Batman, you can do this one!"  I said if he'd been on those, this one would be a piece of cake.  I turned to my own son and whispered that I was a big liar, that this was going to kill him. Buuaaa-haah-haah.   Especially at the back, you get a lot of floating  air time, and the 4000-foot ride is long enough to enjoy.  Since it's old, it's not as popular as the newer ones, so we got to go through several times.&lt;br /&gt;&lt;br /&gt;(The dad and kid behind us both loved it.)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Boss&lt;/span&gt;: line too long, didn't ride it. Really long wooden coaster, people said it was pretty good.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tidal Wave&lt;/span&gt;: This is a short little water-car ride, the entire object of which is to make a big splash. Yes, you get wet, no matter where you sit.  To get really soaked, stand on the bridge overlooking the car as it splashes into the tidal pool.  I wrapped my wallet in a little park map, and  it stayed dry in my pocket.  Wish I'd brought a &lt;a href="http://www.google.com/search?q=Zip-lock+baggie"&gt;Zip-lock baggie&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A word about prices: they suck.  At Six Flags, everything costs way too much.  $7.50 for a turkey thigh seemed like a bargain compared to the $3 bottled water, the $10 32oz sports bottle, and the other overpriced fare.  And except for the turkey thigh, which I recommend, the rest of the food was crappy.&lt;br /&gt;&lt;br /&gt;We took a bit of a tour of their water park area.  Lines, crowds, and everything is $10.  Rent an inner tube (required for some attractions) for $10, a locker for $10.  At &lt;a href="http://www.google.com/search?q=Holiday%20World%20/%20Splashin%27%20Safari%20in%20Santa%20Claus%20Indiana"&gt;Holiday World / Splashin' Safari in Santa Claus, Indiana&lt;/a&gt;, the inner tubes are free.&lt;br /&gt;&lt;br /&gt;At Holiday World, the rides are maintained better, the staff is friendlier, and there is free soda all day, every day.  It makes for a nicer experience.&lt;br /&gt;&lt;br /&gt;Overall, Six Flags has some nice roller coasters, but Holiday World does, too.  Given the overall suckiness of Six Flags and their attitude about grabbing every last dime you have, I'll go to Holiday World next time.&lt;br /&gt;&lt;br /&gt;(No one paid me to write this, and I'm not affiliated with any theme park or similar competitor)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-6165941929567196562?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/6165941929567196562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=6165941929567196562' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/6165941929567196562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/6165941929567196562'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/07/six-flags-st-louis.html' title='Six Flags St. Louis'/><author><name>Loren Heal</name><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-13220950.post-1352954872697600815</id><published>2007-07-14T17:43:00.000-05:00</published><updated>2007-07-15T23:38:13.354-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stupid'/><title type='text'>The Transformers</title><content type='html'>This is the first ever, and perhaps only ever, Modern Sourcery Movie Review.  Spoiler-free.&lt;br /&gt;&lt;br /&gt;I took my son to see The Transformers, a big-budget motion picture version of the television cartoon version of the Hasbro toy figures that changed from trucks and planes into alien robots.&lt;br /&gt;&lt;br /&gt;Need I say more?&lt;br /&gt;&lt;br /&gt;How about: this was the funniest movie I've seen since Men In Black.  It was an amazing artististic success visually, perfectly cast, well-acted, well-directed (as far as I can tell) and hilarious in its overreach.  The robot dialogue managed to combine the chill of Darth Vader with the intellectual depth of &lt;a href="http://www.google.com/search?q=lawrence+tero%20a-team%20rocky"&gt;Mr. T&lt;/a&gt;. &lt;a href="http://www.google.com/search?q=toy%20story%20movie%20script"&gt;Buzz Lightyear&lt;/a&gt; meets &lt;a href="http://www.google.com/search?q=small%20soldiers%20movie%20script"&gt;Small Soldiers&lt;/a&gt;.  We both laughed hysterically.&lt;br /&gt;&lt;br /&gt;And I want to see it again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-1352954872697600815?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/1352954872697600815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=1352954872697600815' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/1352954872697600815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/1352954872697600815'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/07/transformers.html' title='The Transformers'/><author><name>Loren Heal</name><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-13220950.post-245023530453774950</id><published>2007-07-10T11:00:00.000-05:00</published><updated>2007-08-17T06:20:40.352-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reuse'/><category scheme='http://www.blogger.com/atom/ns#' term='What To Do With...'/><category scheme='http://www.blogger.com/atom/ns#' term='household tips'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><title type='text'>Make a Japanese Beetle Trap</title><content type='html'>Japanese Beetles are a nuisance for anyone &lt;a href="http://www.thepestdepot.com/japanesebeetle.html?gclid=CIH1y7ntkI0CFQQ3OAodEBD6oA"&gt;East of the Mississippi River&lt;/a&gt; trying to grow roses or other fragrant flowers.  They can kill a small rose bush in an afternoon, and they seem to be immune to any season-long insectides you'd want around roses.  While I suspect that the Japanese Beetle traps, like bug zappers, may draw as many bugs as they kill, I can't resist the temptation to rid the world of as many of these horrid little beasties as I can.&lt;br /&gt;&lt;br /&gt;Several companies sell excellent traps for the pests, including &lt;a href="http://www.rescue.com/Products/Japanese_Beetle_Trap.asp"&gt;Sterling&lt;/a&gt;, &lt;a href="http://www.thepestdepot.com/spstjabetr.html"&gt;SpringStar&lt;/a&gt;, and others.  And they charge $5 or so for refill bags. Of course, this drops down to 50&amp;cent; in the fall, on closeout, which you then have to store the bags all winter.  But you already have an endless supply of &lt;a href="http://sourcery.blogspot.com/search?q=PGB"&gt;Plastic Grocery Bags (PGBs)&lt;/a&gt;, so why should you buy more bags?&lt;br /&gt;&lt;br /&gt;By curling the handles and the opening of the PGB inward, you can hook the bag onto the Japanese Beetle trap made by one of the nice companies listed above.  Make a loop of a 6-inch piece of wire or twist-tie, girtling the bag with it to give about a 2-inch opening.  If you run out of attractant, put a drop of honey (or cut flowers if you have a lot of bees around) in the bottom of the bag.  The first bugs will find the nice-smelling honey, and after that the others will be attracted by the smell of other bugs.  When the bag gets full (or starts to smell bad), knot it closed and let it sit in the sun to kill all of the bugs.  &lt;br /&gt;&lt;br /&gt;A Q&amp;amp;A from &lt;a href="http://www.gardensalive.com/article.asp?ai=465&amp;bhcd2=1183653607"&gt;Gardens Alive&lt;/a&gt; doesn't speak highly of traps, but it has some great suggestions for dealing with Japanese Beetles, including ways to attract birds (who apparently eat them) and using beetle juice to repel the bugs.  I don't know.  We have about a dozen active bird houses around our house, and still every year I get to slaughter Japanese Beetles by the thousands. &lt;br /&gt;&lt;br /&gt;And that beetle juice sounds fun to make.&lt;br /&gt;[Update 20070810&lt;br /&gt;This year, I didn't put any traps out.  The difference is that the finches who live in our bird houses have found the rose bushes, and patrol them regularly.  Finches love to eat Japanese Beetles! Yay!&lt;br /&gt;&lt;br /&gt;Whether it's the finches, the lack of traps attracting them, or some downswing in the beetle population, our roses have not been hit by the beetles this year.&lt;br /&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-245023530453774950?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/245023530453774950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=245023530453774950' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/245023530453774950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/245023530453774950'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/07/make-japanese-beetle-trap.html' title='Make a Japanese Beetle Trap'/><author><name>Loren Heal</name><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-13220950.post-4700154020674342482</id><published>2007-07-06T23:35:00.000-05:00</published><updated>2007-07-06T23:55:01.059-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='inventions'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><title type='text'>Stupid Bugs No Match for Ceiling Fan</title><content type='html'>I just noticed something fun.  There's a hole in my window screen, which tomorrow I will fix.  But tonight there is a procession of beetles coming in, one every half hour or so, attracted by the ceiling fan light.  But they aren't just attracted by the light, but by its reflection in the fan blades. &lt;br /&gt;&lt;br /&gt;I suppose the reflection, which flashes about 10 times per second, looks to their pitiful little bug brains to be a really exciting flashy light.  It must be near a source for some beetle food, or a sexy beetle.  It's sort of a beetle disco ball.&lt;br /&gt;&lt;br /&gt;Unfortunately, the reflection also looks like it's on the ceiling, what with depth perception and mirrors and all that.  So the bugs ignore the real light bulb, a perfectly usable 60-watt  incandescent little number, and go for the reflection ... but they don't get there, as a fan blade knocks them to the floor, where I swat them like bugs, or squash them like bugs under the crushing force of my foam rubber  Birken-nots.&lt;br /&gt;&lt;br /&gt;Taken a step further,  by shielding the real light and only showing the reflection, a nice fan-powered bug killing system could be devised.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-4700154020674342482?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/4700154020674342482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=4700154020674342482' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/4700154020674342482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/4700154020674342482'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/07/stupid-bugs-no-match-for-ceiling-fan.html' title='Stupid Bugs No Match for Ceiling Fan'/><author><name>Loren Heal</name><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-13220950.post-8387295657209647528</id><published>2007-07-05T12:32:00.000-05:00</published><updated>2007-07-05T12:32:01.639-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reuse'/><category scheme='http://www.blogger.com/atom/ns#' term='compost'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='dog pets'/><category scheme='http://www.blogger.com/atom/ns#' term='What To Do With...'/><category scheme='http://www.blogger.com/atom/ns#' term='household tips'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><title type='text'>What To Do With Plastic Grocery Bags</title><content type='html'>Of course we all know about using plastic grocery bags (PGBs) to line small trash cans around the house, so that emptying the bathroom trash becomes child's play -- or child's chore, if you've got a kid needing a chore (which is somewhat redundant).  But there are many other uses:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Laundry bag - for smelly or damp articles such as gym clothes, as long as you don't leave them there long enough to mildew, which is about six hours, depending on dampness.  If you have a watertight bag, consider rinsing your clothes in the shower, and storing them in the bag soapy and wet (for a few hours). &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Camping in wet or snowy weather, spare socks will stay dry in the bag, and the wet pair can be stored in the same bag (use two bags if you have more than two pairs).&lt;/li&gt;&lt;li&gt;Boot liner - if you don't have good boots, put a pair of grocery bags (or bread bags) over your socks.  You will be amazed at how much warmer your feet stay. A drawback is that they tend to sweat.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Dog raincoat - If you have a stupid little dog that doesn't like cold or wet weather, rip a corner of a bag and stick the dog's head through.  Pull its front paws through one handle. It may be necessary to make a hole in the bag for the tail and hind legs, depending on the breed. Pull its back paws and tail through the other hole or handle,  tying the handles under the belly.   Be sure to leave room at the back for the place of business, should any deposits need to be made.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Japanese Beetle trap refill -- &lt;a href="http://sourcery.blogspot.com/search?q=Make+a+Japanese+Beetle+Trap-paint"&gt;see instructions&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Paint can cover -  before opening a can of paint, poke or cut a hole bigger than the size of your brush, but smaller than the opening of your can, in a PGB.  Open the can, put the bag over the top, and poke the edges of the hole you cut around inside and under the lip of the can.  Used with a brush, you will keep the paint out of the rim.   With practice and care, you can even pour the paint without getting any under the bag and into the rim of the can.  When finished or taking a break, use up any excess around the rim and put the top back on the can, with the bag still in place.  It will seal more easily and also open more easily.  Take care not to rip the bag with your can opener, but drying paint will seal small tears.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Paint tray liner and brush cover - (at least for latex paint) turn a PGB inside out (to avoid smearing the label) and cover over a paint tray. Wrap the handles around the feet of the tray at the higher end.  Pour the paint onto the bag, in the tray, and use with a brush, pad, or roller. It feels a little awkward and messy at first when used with a roller, but it works just fine.  The best part: between coats, or if you need to take a break, use up the excess paint and put the wet roller or brush in the painty part.  Take the bag off the tray, turning it right side out, and wrap the bag around the handle of your brush or roller.  It will keep even overnight if wrapped reasonably.  For longer storage, seal with a twist-tie and put it in the freezer, where it will last at least a week, and probably a lot longer.  When you're done, discard the bag, or even use the bag for a trash can liner for that "new house" smell.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Icing bag - put some icing in a PGB and poke a hole in one corner.  Squeeze out a bead of icing.  It's not Cordon Bleu, or even Betty Crocker, but you can write "Happy Birthday" on a cake.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Mortar/grout bag - use the same technique as for an icing bag ... but be sure to use a different bag.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Furniture leg cover - I guess people still shampoo carpets.  If you have furniture in the room, cover the legs with PGBs to keep the water and detergents from marring the finish.&lt;/li&gt;&lt;li&gt;Doggie Do recovery device - I guess city folk have to pick up after their dogs (out in the sticks we use a sand rake and tray to gather it up to put in the compost).  When walking the dog, use a PGB as a glove, picking up Fido's deposit off the sidewalk.  Twist the bag to seal in the freshness, and continue.  You can several bags for the same walk, or if bags are scarce, our Supertwist technology will allow multiple deposits to be recovered into the same bag.&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/13220950-8387295657209647528?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/8387295657209647528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=8387295657209647528' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/8387295657209647528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/8387295657209647528'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/07/what-to-do-with-plastic-grocery-bags.html' title='What To Do With Plastic Grocery Bags'/><author><name>Loren Heal</name><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-13220950.post-2564518613935283479</id><published>2007-06-27T17:38:00.000-05:00</published><updated>2007-06-27T17:41:00.144-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reuse'/><category scheme='http://www.blogger.com/atom/ns#' term='household tips'/><category scheme='http://www.blogger.com/atom/ns#' term='pets'/><title type='text'>What To Do With Old Carpet</title><content type='html'>Carpet is not used up once it is  no longer good for use in the parlor.  There are lots of uses (reuses) for old carpet.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Unless it smells like cat:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Insulate the dog house&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Make a cat scratch post&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Cut into strips and put it on the garden (&lt;span style="font-style: italic;"&gt;especially&lt;/span&gt; if it smells like cat)&lt;/li&gt;&lt;li&gt;Use it as a drop cloth for painting&lt;/li&gt;&lt;li&gt;Cover or separate furniture when moving&lt;/li&gt;&lt;li&gt;With bicycle hanger hooks, attach it to the eaves of a garage or shed, paint a target such as a baseball strike zone on it, and allow your aspiring young pitcher, golfer, or place kicker to practice in style. (Note: color choice may impact effectiveness.)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Pad or protect a pickup truck bed, sides, or rails, tailgate&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;div id="moreWaysToRecycle"&gt;     &lt;a href="http://www.recyclenow.com/what_more_can_i_do/can_it_be_recycled/carpets.html"&gt;Another site&lt;/a&gt; adds:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Cut up carpets for use  in cars as floor mats or to line the trunk.&lt;/li&gt;&lt;li&gt;Cut into small circles and place under the feet of heavy furniture.&lt;/li&gt;&lt;li&gt;Take camping for a doormat, or to put under sleeping bags&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Insulate your compost pile over the winter&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div id="moreWaysToRecycle"&gt;A commenter &lt;a href="http://www.recyclethis.co.uk/20060601/how-can-i-reuse-or-recycle-old-carpet#comment-153"&gt;at yet another&lt;/a&gt; site suggests using it in a greenhouse (which would go as well for any other indoor/outdoor area where function outweighs beauty, such as a garage or barn)&lt;br /&gt;  &lt;/div&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/13220950-2564518613935283479?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/2564518613935283479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=2564518613935283479' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/2564518613935283479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/2564518613935283479'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/06/what-to-do-with-old-carpet.html' title='What To Do With Old Carpet'/><author><name>Loren Heal</name><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-13220950.post-3436094520178155508</id><published>2007-06-22T01:49:00.000-05:00</published><updated>2007-06-21T23:13:28.493-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='completeness'/><title type='text'>How To Do Anything</title><content type='html'>As the title suggests, what follows is a strategy for accomplishing any goal, no matter how easy or how hard.   Some of the rules may not seem to apply to your goal. Some of it is age-old wisdom, while some is just stuff I've noticed. Which is which will almost certainly be obvious.&lt;br /&gt;&lt;br /&gt;I use the terms 'task' and 'project' interchangeably in what follows, except for the connotation that projects are more complex than tasks. A simple task, however, can reveal or become a huge project. A project can also serve as a metaphor for a lifelong dream. The process is recursive: treat each task in a project as a project.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-family:times new roman;" &gt;Think First, Do Second&lt;/span&gt;&lt;br /&gt;Planning is only necessary if you want to succeed. Before you start work on some project, learn about it.  While a novel approach sometimes strikes out of the blue, most of the time your 'novel' approach will be the first one that everyone else who ever tried to do what you're about to do thought of the first time, too.  When you are learning about a subject area, don't be too quick to come up with a plan, but let the new information percolate. Time spent thinking, drawing pictures, or asking around will save many multiples in wasted effort, or will avoid the same amount in the paralysis of procrastination.  It may also mean the difference between success and failure, or falling prey to threats for which you should have accounted. Periodically on the way to your goal, revisit your plan to make sure external events haven't changed your requirements, and to be sure you haven't gotten away from the plan.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-family:times new roman;" &gt;Read The Fine Manual&lt;/span&gt;&lt;br /&gt;A lot of things seem impossible until you know how to do them, but are easy once you do. If you don't know how to do something, perhaps someone else does. Few things are really new. In the modern era of search engines and instant communication, getting instructions has never been easier. No matter what the task, by the &lt;a href="http://sourcery.blogspot.com/search?q=Green%20Tennis%20Shoes%20Principle"&gt;Green Tennis Shoes Principle,&lt;/a&gt; someone probably has a web page describing how to do it — with a printable checklist and a flash movie of the tricky parts, and a forum of users with answers to questions you didn't even know enough to ask. The instructions will generally also tell you how to mitigate any risks.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-family:times new roman;" &gt;Ask For Help&lt;/span&gt;&lt;br /&gt;People don't know you need help. Ask. Sometimes just asking even someone who has no apparent skills at all to help you will be enough to make you realize what you have to do. There's nothing like teaching a thing to make you learn it. But you most often will be surprised at how a fresh perspective will confront a problem, making what seemed hard before much less so.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-family:times new roman;" &gt;Divide and Conquer&lt;/span&gt;&lt;br /&gt;Almost by definition, any task worthy of a plan will have component parts which can be handled separately. Take on the largest or most difficult portion you can reasonably achieve while leaving the rest for later.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-family:times new roman;" &gt;Know What You Have&lt;/span&gt;&lt;br /&gt;Every project has finite resources. Most often this is time, but there may be some other key finite resource such as a raw material, money, distance to be covered, or pounds to be lost, for which you need to account more closely than time. You also need to consider the helpers and groups who will be available to you, and any who may oppose you.  The opposition (even if that is only entropy) gets a vote, and so every part of every plan must account for as many kinds of failure as practical.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-family:times new roman;" &gt;Consider Dependencies Carefully&lt;/span&gt;&lt;br /&gt;One reason a project seems complicated is that one part may depend on other parts being done, or simply started, first.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-family:times new roman;" &gt;Set Deadlines&lt;/span&gt;&lt;br /&gt;Even if your project has no external deadlines, set them for yourself.   Think carefully about these dependencies, and set your deadlines accordingly.  Set milestones or benchmarks for each phase or portion of the project,&lt;span style="font-style: italic;"&gt; in terms of the  key finite resource&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-family:times new roman;" &gt;Do the Hard Part First&lt;br /&gt;&lt;/span&gt;If there are several independent parts to some project, you have the option to pick off some of the easier portions before tackling what you think will be the hard parts. Other things being equal, it's best to get the hard parts out of the way. This is especially true when "easy" and "hard" are actually euphemisms for "fun" and "not fun", or "rewarding" and "unrewarding".  The hard part typically will have the biggest uncertainty in terms of time and resource requirements; doing it first allows you the greatest control over your own deadlines.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-family:times new roman;" &gt;Measure Twice, Cut  Once&lt;br /&gt;&lt;/span&gt;After your plans are made, and you think you know what to do, go over those plans again. Start from what you are sure you know, such as a factory edge, a bank balance, or a spot on a map, and measure your key resource in a different way than you did before. Repeat this process until all measurements match.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-family:times new roman;" &gt;Do Something Next&lt;br /&gt;&lt;/span&gt;If you don't know what to do next, it usually means you haven't thought or planned enough.  But in the middle of a project, it may be inopportune to go back to the drawing board. To avoid indecision paralysis, just pick something. Sometimes it will be a suboptimal choice, but most of the time will be as good as any other, and only rarely will you choose a task order that is harmful.&lt;br /&gt;Sometimes, just do what you can do. &lt;span style="font-family: times new roman;"&gt;But beware of avoiding things you don't want to do.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-family:times new roman;" &gt;Don't Bang Your Head&lt;br /&gt;&lt;/span&gt;If you find yourself trying to do the same task repeatedly and having it not work, stop. If you are banging your head on a wall, it either means you need to look for a window, a door, a way around the wall, or you're working on the wrong wall.  Perhaps you're just doing it wrong, and need to ask for help. Take a step back and look at the overall project.  Is this wall even part of the plan?  Is there something else you can do first?  Sometimes nibbling at the edge of some other part of a project will make the whole thing easier in ways you didn't understand during initial planning.  But most of all, doing something else will allow you to come back at the head-banging problem fresh, perhaps after your subconscious has had a chance to solve the problem.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-family:times new roman;" &gt;Serialize Parallel Steps&lt;br /&gt;&lt;/span&gt;Some jobs require, or appear to require, doing several things at once.  Typically, however, it's possible to take those things one after another, repeatedly switching among them. For people who find it difficult to juggle many tasks at once, taking this serial approach to parallel tasks may make all the difference.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-family:times new roman;" &gt;Parallelize Serial Steps&lt;br /&gt;&lt;/span&gt;In Divide and Conquer, we saw that sometimes it's possible to accomplish parts of a task independently of one another.  If resources permit, taking up several of these independent tasks at the same time, rather than one after another, may make doing them all easier.  This is particularly true if there are helpers who can be working on the different pieces.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-family:times new roman;" &gt;Delegate the Repetitive&lt;br /&gt;&lt;/span&gt;Computers, robots, employees, and tools are &lt;span style="font-style: italic;"&gt;helpers&lt;/span&gt;. They give you the ability to parallelize, but require time for setup and maintenance, as well as for coordination and inspection of the finished work.  Many times a skilled or well-designed helper can perform a task better than you can.  Sometimes one of them, especially in the case of humans, really ought to be your boss. Confront (or ignore) such concerns and focus on the project. Delegate, and apply your own ability where it is best used.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-family:times new roman;" &gt;Invent A Tool&lt;br /&gt;&lt;/span&gt;If you are having difficulty with a particular task, and no one seems to know how to do it, and you've followed all of the other points here, it may be time to step back from the process of doing, and become a toolmaker. Even if you lack the skill to make the actual tool, sometimes you can envision a tool that someone more skilled never thought of making, or never thought to apply to your use. Don't be afraid to invent a tool you will discard after the job. Toolmaking helps especially if you are banging the wall, or if you know you need to delegate a parallel task but don't have any helpers. The hard part will seem easy when you have the right tool.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-family:times new roman;" &gt;Completeness&lt;br /&gt;&lt;/span&gt;Finish all of the parts, even the ones that don't show.  Dependencies lurk everywhere.  An incomplete or sloppy job at a minor task here, a corner cut there, and pretty soon you are wasting key resources on reworking tasks that you thought were done, introducing new dependencies and foiling all your plans. Do things right the first time, and do them &lt;a href="http://sourcery.blogspot.com/search?q=Completeness"&gt;completely&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Each of the above points could get an entire blog entry, and someday they may.  Each of them deserves examples and other justification.  Many deserve some scientific at least philosophical underpinning.  For all of that, brevity won out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-3436094520178155508?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/3436094520178155508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=3436094520178155508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/3436094520178155508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/3436094520178155508'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/06/how-to-do-anything.html' title='How To Do Anything'/><author><name>Loren Heal</name><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-13220950.post-430174481353630703</id><published>2007-06-20T13:54:00.000-05:00</published><updated>2007-06-20T13:56:00.020-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='regular expression'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Unix'/><category scheme='http://www.blogger.com/atom/ns#' term='unix shell'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><category scheme='http://www.blogger.com/atom/ns#' term='sed'/><title type='text'>More sed Tricks</title><content type='html'>Sometimes I think sed(1) is the reason I like Unix.  Well, it's one of the quintessentially Unix tools, anyway.&lt;br /&gt;&lt;br /&gt;One of my favorite uses for sed is to rename a whole bunch of files all at once.  Whether the problem is a spaces or other special characters in filenames, capitalization problems, or whatever, as long as you can see a pattern sed can probably fix it for you.&lt;br /&gt;&lt;br /&gt;For instance, I just had to make a whole bunch of symbolic links to some files&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;audit_user.dir&lt;br /&gt;auto_data.pag&lt;br /&gt;auto_master.dir&lt;br /&gt;exec_attr.pag&lt;br /&gt;....&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;so that the links had the names:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;audit.user.dir&lt;br /&gt;auto.data.pag&lt;br /&gt;auto.master.dir&lt;br /&gt;exec.attr.pag&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;and so on.  Sed to the rescue:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;for f in *_* ; do&lt;br /&gt;ln -s $f `echo $f | sed -e 's,_,.,'`&lt;br /&gt;done&lt;br /&gt;&lt;/pre&gt;(If you try something like that, put an "echo" before the "ln" to test it out)&lt;br /&gt;&lt;br /&gt;That's a fairly simple example, and in fact the Unix C-shell has that kind of search-replace built in.  I don't use C-shell, because the standard Bourne shell &lt;span style="font-family:courier new;"&gt;/bin/sh&lt;/span&gt;  and derivatives (such as the Bourne Again SHell &lt;span style="font-family:courier new;"&gt;/bin/bash&lt;/span&gt;) are better for scripting.&lt;br /&gt;&lt;br /&gt;But consider the problem of turning off some, but not all, of the "init scripts" under a particular runlevel in a typical SystemV-style system, such as Solaris or Linux.  &lt;a href="http://www.redhat.com/"&gt;Red Hat Linux&lt;/a&gt; solves this with the &lt;a href="http://www.linuxjournal.com/article/4445"&gt;&lt;span style="font-family:courier new;"&gt;chkconfig&lt;/span&gt;&lt;/a&gt; command, and Red Hat admins may like to use that handy facility.&lt;br /&gt;&lt;br /&gt;But for those of us who have heterogenous collections of systems to worry about, and even on Red Hat systems when digging under the hood, it would be nice to have a way to turn off (or on) several services at once.&lt;br /&gt;&lt;br /&gt;A "runlevel" is sort of like a system mode, and the levels are not standardized but generally follow a pattern of sorts.  The chkconfig link above gives a nice description of runlevels for Linux, but note that while under  Linux runlevel 5 means X Window operation, under Solaris it means  shut down.&lt;br /&gt;&lt;br /&gt;In a System V-style system, the init scripts themselves are stored in /etc/init.d, with some reasonable name like 'apache' for the Apache web server or 'autofs' for the file system automounter.&lt;br /&gt;&lt;br /&gt;Each runlevel has its own directory, /etc/rc&lt;span style="font-style: italic;"&gt;N&lt;/span&gt;.d, which contains symbolic links to the init scripts in /etc/init.d.  To control how a particular runlevel uses a given init script, the symbolic link is prepended with an "S" for Start, "K" for Kill, or sometimes another letter, which means to ignore. After the S or K is a number, like 01 or 25, used to sort the names.  The init(1) processing runs each S script in alphanumerical order, so that services should get higher numbers than the more basic services on which they depend.&lt;br /&gt;&lt;br /&gt;Renaming the files is a bit of a hassle, either from the command line or with a GUI, because each one must be done.  From the command line in particular, changing just the first letter requires typing the whole file name, with the numbers.&lt;br /&gt;&lt;br /&gt;So what has all of this to do with sed?&lt;br /&gt;&lt;br /&gt;This &lt;a href="http://www.healconsulting.com/files/s2k.txt"&gt;little script&lt;/a&gt; renames all the files matching a list of patterns you supply, either from S##name to K##name or the other way.  It preserves the numbers, without you having to type the whole name.&lt;br /&gt;&lt;pre&gt;#!/bin/sh&lt;br /&gt;#------------------------------&lt;br /&gt;# Script : s2k Copyright 2000,Loren Heal&lt;br /&gt;# Author : lheal&lt;br /&gt;# Created: 20010305&lt;br /&gt;# Known Bugs:&lt;br /&gt;# TODO: only operates on current directory.&lt;br /&gt;#(------------------------------&lt;br /&gt;FROM=S&lt;br /&gt;TO=K&lt;br /&gt;FORCE=""&lt;br /&gt;TEST=""&lt;br /&gt;&lt;br /&gt;usage()&lt;br /&gt;   {&lt;br /&gt;   echo "$1 [-on|-off|-force|-test] expression [...]"&lt;br /&gt;   echo ... where "expression" matches one or more of:&lt;br /&gt;   ls -F ${FROM}*&lt;br /&gt;   exit&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;[ -z ''"${@}" ] &amp;&amp;amp;  usage "${0}"&lt;br /&gt;&lt;br /&gt;while [ -n "$1" ] ; do&lt;br /&gt;   # echo "$1"&lt;br /&gt;   case ${1} in&lt;br /&gt;   "-on" )    FROM="K"; TO="S" ;;&lt;br /&gt;   "-off" )   FROM="S"; TO="K" ;;&lt;br /&gt;   "-force" ) FORCE="-f" ;;&lt;br /&gt;   "-test" )  TEST="echo" ;;&lt;br /&gt;   * ) for fname in `ls ${FROM}*${1}*` ; do&lt;br /&gt;           tname=`echo ${fname} | sed "s/^${FROM}/${TO}/"`&lt;br /&gt;           if [ -n "${tname}" -a -n "${fname}" -f ${fname} ] ; then&lt;br /&gt;  &amp;&amp;amp; ${TEST} mv ${FORCE} ${fname} ${tname}&lt;br /&gt;     fi&lt;br /&gt;       done&lt;br /&gt;       ;;&lt;br /&gt;   esac&lt;br /&gt;   shift&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-430174481353630703?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/430174481353630703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=430174481353630703' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/430174481353630703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/430174481353630703'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/06/more-sed-tricks.html' title='More sed Tricks'/><author><name>Loren Heal</name><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-13220950.post-7333746237919912489</id><published>2007-06-15T23:21:00.000-05:00</published><updated>2007-06-15T23:23:02.095-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='household tips'/><category scheme='http://www.blogger.com/atom/ns#' term='knots'/><title type='text'>Tying Shoelaces So They Stay Tied</title><content type='html'>The bow knot we use to tie our shoes has some good things going for it.  It's easy enough to learn, it's as quick as anything else to tie, and as importantly, it's very quick to untie.  The trouble is, it comes undone too easily. I use a slight variation on the bow knot, which looks like a nicely tied bow knot but &lt;span style="font-weight: bold;"&gt;never comes untied&lt;/span&gt; until you untie it.&lt;br /&gt;&lt;br /&gt;Athletes, children, even business people find it important to keep their shoes tied.  Whenever I see some collegiate or professional athlete calling time out so that millions of people can watch him tie his shoes, I think "There's a guy who doesn't know how to tie this shoes!"    And there are few things sillier than a man in a $1000 suit walking around with laces dangling from one $200 shoe.&lt;br /&gt;&lt;br /&gt;The usual solution, retying the loop ends, looks ugly, doesn't stay as well as it should, and worst of all makes the knot difficult to untie.&lt;br /&gt;&lt;br /&gt;Parents and coaches everywhere need to teach their kids the following simple little method.  Once it becomes a habit, it's one less worry in life, and one less thing to nag about.&lt;br /&gt;&lt;br /&gt;The problem is the ordinary bow knot we traditionally use to tie shoes.  I use a slight variation on the bow knot, which looks the same (but neater), and never comes untied.  I've used this knot with leather boots, dress shoes, and shoes used in running hundreds of miles.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Cross the strings over to make the usual base, cinching it as tight as desired.&lt;/li&gt;&lt;li&gt;Make a loop with one string.&lt;/li&gt;&lt;li&gt;Wrap the other string around that one TWICE, instead of just once.&lt;/li&gt;&lt;li&gt;Push the remainder of the wrapping string through two wrappings.&lt;/li&gt;&lt;li&gt;Tighten fully.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;This works with any shoe lace, whether cotton, synthetic, or leather.&lt;br /&gt;&lt;br /&gt;As I typed all of this in, I did a web search to find a picture of shoelaces.  It turns out that a guy has a whole site just about shoelaces.  The &lt;a href="http://sourcery.blogspot.com/2005/06/green-tennis-shoes-principle.html"&gt;Green Tennis Shoes Principle&lt;/a&gt; striketh.  His site has pictures of this method, called the &lt;a href="http://www.fieggen.com/shoelace/betterbowknot.htm"&gt;Better Bow Knot&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Why does this work?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As the two loops are pulled apart during the final tightening, notice that the two center wrappings cross over one another.  That forms a little sub-knot, so that in order for one wrap to slip, the other has to slip first.  As a result, neither one does.&lt;br /&gt;&lt;br /&gt;Untying is the same as with a standard bow knot.  Make sure the ends aren't pulled through the loops, and pull on the loose ends.&lt;br /&gt;&lt;br /&gt;I suspect, without any data whatsoever, that this method may even be easier to learn for first-timers.  The only hard part about tying a bow knot is in the wrap-and-tuck step.  Wrapping twice should make it more clear to young learner how it should be done. &lt;br /&gt;&lt;br /&gt;Or maybe knot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-7333746237919912489?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/7333746237919912489/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=7333746237919912489' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/7333746237919912489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/7333746237919912489'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/06/tying-shoelaces-so-they-stay-tied.html' title='Tying Shoelaces So They Stay Tied'/><author><name>Loren Heal</name><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-13220950.post-7668108275273490875</id><published>2007-06-14T00:25:00.000-05:00</published><updated>2007-06-14T00:32:28.784-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='information assurance'/><category scheme='http://www.blogger.com/atom/ns#' term='robust'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Robust Systems</title><content type='html'>Information systems should be &lt;a href="http://www.google.com/search?hl=en&amp;q=define%3Arobust+design"&gt;robust&lt;/a&gt;. A robust system is one which operates &lt;a href="http://en.wikipedia.org/wiki/Correctness"&gt;correctly&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Efficiency"&gt;efficiently&lt;/a&gt; under a wide range of conditions, even under conditions for which it was not specifically designed. In particular, a robust system resists attempts to make it operate incorrectly.  In other words, it is secure.&lt;br /&gt;&lt;br /&gt;While the above sounds simple enough, "correct", "efficient", and "secure" as used above are actually terms of art. An information system is a collection of devices or programs organized to change, transmit, or store data.    A system can be said to be correct when its output is provable for all given inputs, and efficient when it completes its job with an acceptable and predictable use of resources.&lt;br /&gt;&lt;br /&gt;Systems more complicated than shoelaces  should be designed in two or more stages. At each stage there is the potential for debugging. The optimal breakdown for the stages of the overall development process can be thought of as finding the maximum amount of progress toward completion that can be effectively debugged, while also maximizing the likelihood of catching a mistake before the next stage.&lt;br /&gt;&lt;br /&gt;Along with basic engineering practices, the principles that lead to robust operation are the same ones recognized by security experts:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Economy of Mechanism&lt;/span&gt; - this means to keep things simple.  Simpler processes are easier to understand and are generally more robust.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Fail Safe Design&lt;/span&gt; - Erroneous input should result in the least harmful action.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Open Design&lt;/span&gt; - The reliability of the system should not depend on keeping its workings hidden.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Complete Access Control&lt;/span&gt; - All access to assets should be allowed only to those authorized.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Least Privilege&lt;/span&gt; - Access to assets should be given only as required.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Separation of Privilege&lt;/span&gt; - Access to assets should be based on multiple independent criteria.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Least Common Mechanism&lt;/span&gt; - Shared means of operations should be minimized.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Psychological Acceptability&lt;/span&gt; - If the perceived inconvenience associated with system safeguards is higher than the perceived value they allow, users will tend either to circumvent the safeguards or not to use the system. Therefore, measures should be implemented only if:&lt;/li&gt;&lt;ol&gt;&lt;li&gt;They can be built in to the system such that following them will be no harder than avoiding them&lt;/li&gt;&lt;li&gt;They are more likely to mitigate a threat than to cause user frustration&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;Here are some principles to bear in mind when creating correct, robust systems.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Garbage In, Garbage Out&lt;/span&gt;: Input should be validated before it is used&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Efficiency&lt;/span&gt;: when possible, the resources used by a process should not grow faster than the size of the input.  Typically the resource use should be bounded by a function of the size of the input, and for robustness,&lt;span style="font-style: italic;"&gt; resource use should not depend on the particular input given&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Correctness&lt;/span&gt;: a process cannot be known to be efficient unless it is known to be correct. If some inputs yield spurious results, that is not robust.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Special Cases&lt;/span&gt;: the allowance for special cases signals that a design can be improved&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Hope is the Enemy of Know&lt;/span&gt;: The result doesn't care what you hoped it would be&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Expect Failure&lt;/span&gt;: Component failure should be an expected part of operation.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Capacity: &lt;/span&gt;rooted in efficiency, capacity is a vital part of robustness. &lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;So enough of these generalities.  What are some examples of robust system?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Handicapped stalls&lt;br /&gt;Whenever possible, if I have to use a public restroom I use the handicapped stall.  These stalls are roomier, and generally better lit.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Automatic doors&lt;br /&gt;Grocery stores have long used automatic doors, which sense the presence of a customer and open without anyone touching them.  That works for anyone from small children to the elderly. It also works equally well for anyone, one of the hallmarks of a robust design.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;36-inch doors and accessible homes&lt;br /&gt;Similarly, while 36-inch doors make rooms accessible to those in wheelchairs, they also facilitate moving furniture.&lt;/li&gt;&lt;/ul&gt;Robustness is not just a matter of handling lots of volume.  It's a question of design. A robust system is designed to handle all cases equally well, because it doesn't play favorites.  The same algorithm, method, or formula used to handle the most common case handles the unusual ones.  That gives the best chance for handling cases we don't even expect to encounter with the same aplomb that we handle the ones we do expect.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-7668108275273490875?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/7668108275273490875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=7668108275273490875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/7668108275273490875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/7668108275273490875'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/06/robust-systems.html' title='Robust Systems'/><author><name>Loren Heal</name><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-13220950.post-1277001723679170039</id><published>2007-06-06T10:45:00.000-05:00</published><updated>2007-06-06T11:26:21.046-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='copyright'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google Books and the Big Ten</title><content type='html'>&lt;p&gt;&lt;a href="http://books.google.com/bkshp?tab=mp"&gt;Google Books&lt;/a&gt; and the &lt;a href="http://www.cic.uiuc.edu/programs/CenterForLibraryInitiatives/Archive/PressRelease/LibraryDigitization/index.shtml"&gt;Committee on Institutional Cooperation (CIC)&lt;/a&gt;, comprising the Big Ten and the University of Chicago, have announced an agreement with Google to digitize works from its member libraries as part of the Google Book Search project.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;In the CIC are 6 of the nation's &lt;a href="http://www.ala.org/ala/alalibrary/libraryfactsheet/alalibraryfactsheet22.cfm"&gt;largest 20 libraries&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;In a multi-year project, Google will scan for search millions of public domain and copyrighted items, under Fair Use or by agreement with copyright holders.  According to a CIC release,&lt;br /&gt;&lt;blockquote&gt;Public domain materials can be viewed, searched and downloaded in their entirety.  For books under copyright protection, a search will result in basic information (such as the book's title and the author's name), and a snippet of text surrounding the search term.  Users seeking further information from the text will be directed to avenues for purchase or library access. &lt;/blockquote&gt; &lt;br /&gt;The CIC plans to implement a digital archive of research and other content, both for preservation and to enable academic study and collaboration.&lt;br /&gt;&lt;blockquote&gt;This partnership with Google will enable the CIC universities to digitize library content at a scale and scope not possible with the limited means available to individual institutions.  And now, with the future promise of a shared digital repository, our universities will enter into an ambitious, groundbreaking collaboration to collectively archive digital public domain materials previously housed within the bricks and mortar of individual libraries.&lt;/blockquote&gt;&lt;br /&gt;See the CIC site  &lt;a href="http://www.cic.uiuc.edu/digitalbooks"&gt;more information on the CIC&lt;/a&gt; and the Google partnership.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-1277001723679170039?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/1277001723679170039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=1277001723679170039' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/1277001723679170039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/1277001723679170039'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/06/google-books-and-big-ten.html' title='Google Books and the Big Ten'/><author><name>Loren Heal</name><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-13220950.post-2067578496821541258</id><published>2007-06-06T10:01:00.000-05:00</published><updated>2007-06-06T12:21:39.208-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='copyright'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google / CIC Release</title><content type='html'>Email release from University of Illinois Provost Linda Katehi:&lt;br /&gt;&lt;div class="moz-text-plain" wrap="true" quote="true" style="font-family: courier new; font-size: 13px;" lang="x-western"&gt;&lt;pre wrap=""&gt;&lt;br /&gt;Today the Committee on Institutional Cooperation (CIC), a consortium of 12 world-class research universities, advancing their missions by sharing expertise, leveraging campus resources and collaborating on innovative programs, is announcing an agreement with Google to digitize distinctive collections across all its libraries as part of the Google Book Search project.  As a member of the consortium, our university is part of this important initiative.&lt;br /&gt;&lt;br /&gt;Over the next several years, Google will scan and make searchable up to 10 million public domain and in-copyright volumes in a way that is consistent with copyright law.  Public domain materials can be viewed, searched and downloaded in their entirety.  For books under copyright protection, a search will result in basic information (such as the book's title and the author's name), and a snippet of text surrounding the search term.  Users seeking further information from the text will be directed to avenues for purchase or library access.&lt;br /&gt;&lt;br /&gt;Also, this agreement anticipates the CIC's intention to create a shared digital repository, so that each university can "deposit" its digitized public domain files into a commonly funded and managed data storage system.  Over time, the shared digital repository will enable our librarians to archive and organize content collectively for scholarly activity, as well as design services such as customized searches for the academic community. When implemented, students and faculty will have convenient, desktop access to a vast array of public domain materials from across our 12 institutions.&lt;br /&gt;&lt;br /&gt;The role of archiving and preserving the vast spectrum of written materials is a critical one for university libraries. Many works become out of print, or deteriorate with age, or are threatened by natural disasters or societal upheavals through the centuries. And as we move to a completely technological and digital environment, materials not available in a digital format will become less and less discoverable.  Digitization enables us to preserve our historical collections for all time.&lt;br /&gt;&lt;br /&gt;This partnership with Google will enable the CIC universities to digitize library content at a scale and scope not possible with the limited means available to individual institutions.  And now, with the future promise of a shared digital repository, our universities will enter into an&lt;br /&gt;ambitious, groundbreaking collaboration to collectively archive digital public domain materials previously housed within the bricks and mortar of individual libraries.&lt;br /&gt;&lt;br /&gt;For more information on the CIC and today's announcement, visit:&lt;br /&gt;&lt;a class="moz-txt-link-freetext" href="http://www.cic.uiuc.edu/digitalbooks"&gt;http://www.cic.uiuc.edu/digitalbooks&lt;/a&gt;.&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-2067578496821541258?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/2067578496821541258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=2067578496821541258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/2067578496821541258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/2067578496821541258'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/06/google-cic-release.html' title='Google / CIC Release'/><author><name>Loren Heal</name><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-13220950.post-3429828436183273052</id><published>2007-06-01T18:33:00.000-05:00</published><updated>2007-06-01T18:38:34.346-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='1000 Words'/><category scheme='http://www.blogger.com/atom/ns#' term='stupid'/><title type='text'>How About Employing an Editor?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.news.com.au/common/imagedata/0,,5507832,00.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px;" src="http://www.news.com.au/common/imagedata/0,,5507832,00.jpg" alt="" border="0" /&gt;&lt;/a&gt;If you can't see anything wrong, &lt;a href="http://www.google.com/search?btnI=I%27m%20Feeling%20Lucky&amp;q=define:tommorrow"&gt;click here&lt;/a&gt; for an explanation.&lt;br /&gt;&lt;br /&gt;ht:  &lt;a href="http://www.news.com.au/dailytelegraph/story/0,22049,21831498-5001021,00.html?from=public_rss"&gt;Daily Telegraph&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-3429828436183273052?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/3429828436183273052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=3429828436183273052' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/3429828436183273052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/3429828436183273052'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/06/how-about-employing-editor.html' title='How About Employing an Editor?'/><author><name>Loren Heal</name><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-13220950.post-3704786449942284050</id><published>2007-05-29T10:11:00.000-05:00</published><updated>2007-06-06T15:37:14.899-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>The Network Should Never Be Down</title><content type='html'>That a &lt;a href="http://asert.arbornetworks.com/2007/05/estonian-ddos-attacks-a-summary-to-date/"&gt;whole country could be DOS'd&lt;/a&gt; is evidence of someone doing a bad network install. The network should never be down.&lt;br /&gt;&lt;br /&gt;Lots of companies have a root-and-branches approach to Internet connectivity, too, thinking that each site (or the whole corporate intranet) needs only one gateway to the outside. It leverages a small investment in Internet connectivity for an entire organization.  Put all your eggs in one basket, and watch the basket. For the family baked bean recipe confidentiality that's good, but for availability that's bad.&lt;br /&gt;&lt;br /&gt;It takes a lot of effort to protect a single address against a distributed Denial of Service attack, in which thousands of virus-infected machines send relatively small amounts of traffic against a target.  When that target is a single gateway for an organization, the connection leverage is used in reverse, causing a lot of disruption for a little effort.&lt;br /&gt;&lt;br /&gt;The "right" way to do it is to have multiple redundant shared trunks with neighbors. That word "shared" is scary to network administrators (or rather, to their pencil-pushing mentors). It means they'll have to carry outside traffic on their pipes (that's a metaphor, Senator), and that has risks: it costs money, and it has the potential to allow someone to see inside the network.&lt;br /&gt;&lt;br /&gt;It takes a lot more effort on the part of the bad guys to attack multiple addresses, and with a multi-trunked network, keeping one or two gateways up can keep the whole network working.&lt;br /&gt;&lt;br /&gt;The rewards for sharing bandwidth are enormous: multiple ISPs mean allowing TCP/IP to do its job, routing traffic to avoid disasters like DOS attacks, hurricanes, and nuclear bombs. The ISPs and other bandwidth partners know they have an interest in helping to protect your network. The technical risks can be mitigated simply by routing and tunneling.&lt;br /&gt;&lt;br /&gt;Is the above realistic? Nope. Not in a corporate environment, anyway. I'd be really surprised if anyone outside academia or pure ISP does shared trunking anymore.&lt;br /&gt;&lt;br /&gt;But it can also happen at the leaf nodes: you and your neighbors share cable broadband and DSL connections, routing through wifi. That violates most subscriber agreements, but it's the way the protocols were designed to work. Your network should never be down.&lt;br /&gt;&lt;br /&gt;Never.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-3704786449942284050?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/3704786449942284050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=3704786449942284050' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/3704786449942284050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/3704786449942284050'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/05/network-should-never-be-down.html' title='The Network Should Never Be Down'/><author><name>Loren Heal</name><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-13220950.post-4556305786221114597</id><published>2007-05-19T14:15:00.000-05:00</published><updated>2008-12-10T03:06:54.000-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='commercials'/><category scheme='http://www.blogger.com/atom/ns#' term='adblock'/><title type='text'>Adblock List</title><content type='html'>The &lt;a href="http://www.google.com/search?q=Adblock"&gt;Adblock&lt;/a&gt; extension  is a wonderful little add-on to keep unwanted ads from showing up in to the open source &lt;a title="Get Mozilla Firefox" href="http://www.mozilla.com/firefox"&gt;Firefox&lt;/a&gt; web browser.   Another nice thing about Adblock is that pages load more quickly without the ads, since Firefox never even tries to read the blocked images or access the sites that host them. Blocking ads allows Firefox to get on with loading the rest of the page, which is especially helpful when the site where ads are located is slow or down.&lt;br /&gt;&lt;br /&gt;I don't bother to block text-only or small, unobtrusive ads, just the annoying popup, flashy banner, or other annoying disruptions to my online experience.&lt;br /&gt;&lt;br /&gt;Sometimes I'll be browsing along and an explicit adult ad will show up.  Adblock to the rescue!&lt;br /&gt;&lt;br /&gt;You can export and import your Adblock list to or from a text file, to keep your list synchronized from computer to computer, or to import the filters to several computers, such as for a client installation.&lt;br /&gt;&lt;br /&gt;You can also add someone else's filters to your own.  For example, below is my Adblock filter list, which you can either cut and paste to a text file of your choice, or &lt;a href="http://healconsulting.com/files/adblock.txt"&gt;right-click this link to download.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In Firefox, choose Tools -&gt;Adblock -&gt;[Preferences]&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ajz-qim2Ujw/Rk8xV0HNv0I/AAAAAAAAABI/kvX5WUY67q4/s1600-h/adblock1.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_Ajz-qim2Ujw/Rk8xV0HNv0I/AAAAAAAAABI/kvX5WUY67q4/s200/adblock1.png" alt="" id="BLOGGER_PHOTO_ID_5066322356651016002" border="0" /&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;After you have downloaded or created the filter file, from the Adblock Preferences box, choose Adblock Options -&gt;Import, which will bring up a standard File Open box for your system.  Select the file, and the filters will be added to your own.&lt;br /&gt;&lt;br /&gt;[Adblock]&lt;br /&gt;http://*.adbrite.com/*&lt;br /&gt;http://*.atdmt.com/*&lt;br /&gt;http://*.bfast.com/*&lt;br /&gt;http://*.blogads.com/*&lt;br /&gt;http://*.com.com/*&lt;br /&gt;http://*.doubleclick.net/*&lt;br /&gt;http://*.falkag.net/*&lt;br /&gt;http://*.fastclick.net/*&lt;br /&gt;http://*.liveperson.net/*&lt;br /&gt;http://*.mediaplex.com/*&lt;br /&gt;http://*.mspaceads.com/*&lt;br /&gt;http://*.pointroll.com/*&lt;br /&gt;http://*.questionmarket.com/*&lt;br /&gt;http://*.ru4.com/*&lt;br /&gt;http://*.speedera.net/*&lt;br /&gt;http://*.spyderbyte.com/*&lt;br /&gt;http://*.trafficmp.com/*&lt;br /&gt;http://*.tribalfusion.com/*&lt;br /&gt;http://*.valueclick.net/*&lt;br /&gt;http://*.zedo.com/*&lt;br /&gt;http://adlog.com.com/*&lt;br /&gt;http://ads.ft.com/*&lt;br /&gt;http://ads.osdn.com/*&lt;br /&gt;http://adt.m7z.net*&lt;br /&gt;http://creative.myspace.com/*&lt;br /&gt;http://*.content.ru4.com/images/*&lt;br /&gt;http://i.timeinc.net/*&lt;br /&gt;http://images.radcity.net/*&lt;br /&gt;http://rcm-images.amazon.com/*&lt;br /&gt;http://rcm.amazon.com/*&lt;br /&gt;http://us.a1.yimg.com/us.yimg.com/a/*&lt;br /&gt;http://us.a1.yimg.com/us.yimg.com/us.yimg.com/a/ya/*&lt;br /&gt;http://us.ard.yahoo.com/*&lt;br /&gt;http://www.assoc-amazon.com/s/ads-common.js&lt;br /&gt;http://www.assoc-amazon.com/s/ads.js&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-4556305786221114597?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/4556305786221114597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/4556305786221114597'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/05/adblock-list.html' title='Adblock List'/><author><name>Loren Heal</name><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/_Ajz-qim2Ujw/Rk8xV0HNv0I/AAAAAAAAABI/kvX5WUY67q4/s72-c/adblock1.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-13220950.post-4286168791401747772</id><published>2007-05-17T15:19:00.000-05:00</published><updated>2007-05-17T14:51:10.572-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='household tips'/><title type='text'>Cleaning Computer Keyboards</title><content type='html'>I regularly clean the keyboards of computers that come to me for various fixes.  I started doing it because some keyboards are so foul that I don't want to touch them without some kind of powerful cleaning agent nearby.&lt;br /&gt;&lt;br /&gt;I have several different cleaning solutions and tools, depending on the type of grime in question.  Apply the cleaning solution to the cloth or swab, not on the keyboard. Usually it works best to apply the cleaning solution to a set of keys, then come back along to clean that set of keys thoroughly.&lt;br /&gt;&lt;ul style="list-style-type: square;"&gt; &lt;li&gt;For typical grimy college student keyboards (when the keyboards are grimy, not the college or student), I use a vacuum cleaner followed by &lt;a href="http://www.google.com/search?q=windex+window+cleaner"&gt;Windex&lt;/a&gt; and a cotton or &lt;a href="http://www.google.com/search?q=microfiber+cloth"&gt;microfiber cloth&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt; &lt;li&gt;For tobacco stains and other unfettered nastiness, I use a solution of alcohol (70% isopropyl) and "&lt;a href="http://www.google.com/search?q=Arm+%26+Hammer+Baking+Soda+Washing+Powder"&gt;Arm &amp; Hammer Baking Soda Washing Powder&lt;/a&gt;" on cotton swabs. You can substitute a mixture of any laundry soap and either baking soda (sodium bicarbonate) or washing soda (sodium carbonate).  Use about a teaspoon of the powder for a half liter of the alcohol.  The washing powder dissolves in the water rather than the alcohol, so it may be necessary to dilute with more water. The soda also has a mechanical cleaning feature if it isn't fully dissolved, but the trade off is more residue.  Be sure to wipe thoroughly to remove any residue.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt; &lt;li&gt;I've also used &lt;a href="http://www.google.com/search?q=Scope+mouthwash"&gt;Scope&lt;/a&gt; (20% alcohol with menthol and eucalyptus, I think) or &lt;a href="http://www.pfizerch.com/faq.aspx?brand=298"&gt;Listerine&lt;/a&gt; (27% alcohol) instead of rubbing alcohol.  The washing powder dissolves better, but there's not as much alcohol in the mix when mouthwash is used.  This method leaves a clean, fresh scent.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt; &lt;li&gt;For some other icky types of pernicious goo, the pumice + citrus hand cleaners work great (but tend to wear away at the paint on the keycaps).  Follow this with Windex, alcohol, or water to remove any residue.&lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;Denatured alcohol works almost as well as the baking soda mixture, depending on the type of disgusting adornment your keyboard has gathered.  It also leaves no residue.  You can get 91% alcohol from most drug stores, usually including &lt;a href="http://www.walgreens.com/"&gt;Walgreen's&lt;/a&gt; or &lt;a href="http://www.walmart.com/"&gt;Wal-Mart&lt;/a&gt;. &lt;span style="font-weight: bold;"&gt;Do not mix detergents or baking soda with 90% or stronger alcohol&lt;/span&gt;, as it just makes a gooey mess.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Another approach is to flood the bottom of a shallow baking pan with some mild cleaning solution (so that only the tops of the keys on the keyboard will get wet) and carefully put the keyboard face down into it.  After a few minutes, while keeping the keyboard face down, raise it out of the pan, shake it lightly and let it drain until drops stop falling, and pat out any excess cleaning solution using something absorbent, such as a cloth or damp sponge.  Proceed as above, though your work should be easier.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-4286168791401747772?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/4286168791401747772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=4286168791401747772' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/4286168791401747772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/4286168791401747772'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/05/cleaning-computer-keyboards.html' title='Cleaning Computer Keyboards'/><author><name>Loren Heal</name><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-13220950.post-7127164270109016507</id><published>2007-05-15T10:11:00.000-05:00</published><updated>2007-05-15T10:44:38.884-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='profit'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenOffice'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='FUD'/><title type='text'>FUDzilla</title><content type='html'>Once &lt;a href="http://www.google.com/url?sa=t&amp;ct=res&amp;amp;cd=4&amp;url=http%3A%2F%2Fwww.businessreviewonline.com%2Fos%2Farchives%2F2006%2F11%2Fmicrosoft_linux.html&amp;amp;ei=us9JRq6NMKOKjAGvnOGaBQ&amp;usg=AFrqEzck48D7UPyoBsYWttRcpmv87JjGxg&amp;amp;sig2=dXCJi00Zyfjp6la_8yO00Q"&gt;again&lt;/a&gt;, Microsoft  is using &lt;a href="http://www.togaware.com/linux/survivor/Fear_Uncertainty.html"&gt;Fear, Uncertainty, and Doubt&lt;/a&gt; as a&lt;a href="http://yro.slashdot.org/article.pl?sid=07/05/15/1348209"&gt; marketing ploy&lt;/a&gt;.  &lt;a href="http://www.marketwatch.com/news/story/state-state-microsoft-responds-assault/story.aspx?guid=%7BC0D943C4%2D4ADC%2D471C%2D8F87%2D9181A4EC3E7B%7D&amp;siteid=yhoof"&gt;Unable to maintain&lt;/a&gt; their accustomed &lt;a href="http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm"&gt;monopoly position&lt;/a&gt; with the &lt;a href="http://sourcery.blogspot.com/2007/02/vista-ie-and-bored-watchdog-problem.html"&gt;unacceptable products&lt;/a&gt; they are currently able to develop, the company has turned to &lt;a href="http://hosted.ap.org/dynamic/stories/M/MICROSOFT_OPEN_SOURCE?SITE=AZMES&amp;amp;SECTION=HOME&amp;TEMPLATE=DEFAULT"&gt;bogus threats&lt;/a&gt; of patent infringement against &lt;a href="http://applications.linux.com/applications/07/05/15/1455258.shtml?tid=51"&gt;Linux&lt;/a&gt; and &lt;a href="http://www.newsforge.com/article.pl?sid=04/03/27/0134204"&gt;Open Office&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Why not just make products that work better?&lt;br /&gt;&lt;br /&gt;Microsoft is a monster, the undrowned spawn of all that is wrong with Wall Street and all that is bad about commercial software development.  Microsoft is forced by their ego-driven culture and the pressing expectations of unrealistic investors to deliver products that will sell for the highest profit rather than those which will operate the best.&lt;br /&gt;&lt;br /&gt;I'm not against profit, even obscene profit. I think it's fine to develop software and sell it.  But I don't like legal maneuvering to achieve the former because of a poor effort at the latter.&lt;br /&gt;&lt;br /&gt;As fans of horror movies know, sooner or later, the monster always dies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-7127164270109016507?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/7127164270109016507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=7127164270109016507' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/7127164270109016507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/7127164270109016507'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/05/fudzilla.html' title='FUDzilla'/><author><name>Loren Heal</name><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-13220950.post-1960368103061364680</id><published>2007-05-14T16:14:00.000-05:00</published><updated>2007-05-14T16:16:47.198-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='information assurance'/><category scheme='http://www.blogger.com/atom/ns#' term='robust'/><category scheme='http://www.blogger.com/atom/ns#' term='voting'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Acceptable Electronic Voting</title><content type='html'>H.R. 811, the Voter Confidence and Increased Accessibility Act (&lt;a href="http://cha.house.gov/images/stories/Documents/hr_811_rep_lofgren_substitue.pdf"&gt;pdf&lt;/a&gt;), would &lt;a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;articleId=9019024&amp;amp;source=rss_topic17"&gt;mandate a "paper trail"&lt;/a&gt; for electronic voting machines and provide for public access to the source code for programs that control voting machines.  I am withholding endorsement of HR811, because I want to be sure that the wording of the Act doesn't cause more problems than it solves, but on the surface the steps look positive.&lt;br /&gt;&lt;br /&gt;This is a fairly long treatment of the subject for a blog post, but is far from a complete one. First I will give some background on information systems and security, followed by some specific principles that affect electronic voting.  I'll give what should be non-controversial, or at least apolitical, policy statements, and then combine all of that together to show what an acceptable voting system would look like.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Background&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To see why the things the bill addresses are important, we need to explore the basics of information security, as it applies to electronic voting.  My goal is to introduce the topic to people who understand voting from a political or legal perspective, or that of a citizen, but who may have very little exposure to the technology at issue.&lt;br /&gt;&lt;br /&gt;Electronic voting is an&lt;a href="http://www.google.com/url?sa=X&amp;start=2&amp;amp;oi=define&amp;ei=92pIRs21G5b0iAGljLBA&amp;amp;sig2=m9KOQrP0srGMQqdzK4COEg&amp;q=http://www.gao.gov/policy/itguide/glossary.htm&amp;amp;usg=AFrqEzekvHtpY1YQ0J3vfl-WsC_ysleOvw"&gt; &lt;span style="font-style: italic;"&gt;information system&lt;/span&gt;&lt;/a&gt;, a collection of processes arranged to transform, transmit, or store data.  Information systems should be &lt;span style="font-style: italic;"&gt;&lt;a href="http://www.google.com/search?hl=en&amp;q=define%3Arobust+design"&gt;robust&lt;/a&gt;&lt;/span&gt;.  A robust system is one which operates &lt;a href="http://en.wikipedia.org/wiki/Correctness"&gt;&lt;span style="font-style: italic;"&gt;correctly&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Algorithmic_efficiency"&gt;&lt;span style="font-style: italic;"&gt;efficiently&lt;/span&gt;&lt;/a&gt; under a wide range of conditions, even under conditions for which it was not specifically designed. In particular, a robust system resists attempts to make it operate incorrectly.&lt;br /&gt;&lt;br /&gt;In the subfield of information security, several principles are acknowledged by experts to help achieve robust and "secure" operation.  "Secure" is in quotes there because it must be defined for each system. It has been noted that&lt;a name="ref1"&gt;&lt;/a&gt; &lt;a href="http://www.healconsulting.com/Documentation/security.html"&gt;security is an emotion&lt;/a&gt;(&lt;a href="http://www.blogger.com/post-edit.g?blogID=26538178&amp;postID=116490950989887420#note1"&gt;†&lt;/a&gt;), which is an attribute of people, not of systems, but the feeling of security is engendered by some practices and endangered by others, and those practices can usually be analyzed without regard to why a certain result is desirable. A secure system is one about which the designers, implementers, and users feel confidence in its protection of their assets, within acceptable margins of risk.  As in any risk analysis, the likelihood of a particular attack or failure must be balanced against the value of a given asset. It is meaningless to label a system secure without specifying the expected level and type of risk, and the assets to be protected against those risks.&lt;br /&gt;&lt;br /&gt;While there is no perfect system, there are practices and principles which lead to secure operation. We try to anticipate problems and design to eliminate, or at least mitigate them.  I'm going to get to the voting part soon, I promise.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;The Principles&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The hallmarks of secure operation are generally recognizable by anyone familiar with the concepts:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Economy of Mechanism&lt;/span&gt; - this means to keep things simple.  Simpler processes are easier to understand and generally more robust.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Fail Safe Design&lt;/span&gt; - Erroneous input should result in the least harmful action.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Open Design&lt;/span&gt; - The reliability of the system should not depend on keeping its workings hidden.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Complete Access Control (Mediation)&lt;/span&gt; - Access to assets should be allowed only to those authorized to access those assets.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Least Privilege&lt;/span&gt; - Access to assets should be given only as required.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Separation of Privilege&lt;/span&gt; - Access to assets should be based on multiple independent criteria.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Least Common Mechanism&lt;/span&gt; - Shared means of operations should be minimized.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Psychological Acceptability&lt;/span&gt; - If the perceived inconvenience associated with system safeguards is higher than the perceived value they allow, users will tend either to circumvent the safeguards or to bypass the system altogether, and use something less effective but more accessible.&lt;/li&gt;&lt;/ol&gt;There are some principles to bear in mind when creating correct, robust systems:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Input should be validated before it is used.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Efficiency: when possible, the resources (typically time and space) used by a process should not grow faster than the size of the input.&lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Special cases signal that a design can be improved.&lt;/li&gt;&lt;li&gt;&lt;a href="http://socratesbox.blogspot.com/2006/12/defeating-hope.html"&gt;Hope&lt;/a&gt; is the enemy of "is".&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:130%;"&gt;OK, Now the Voting Part&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There are two fundamental resources in voting, the physical ballot and the information contained on the ballot, the votes.  The ballot is important as a physical record of the intention of the voter, but the information on the ballot is far more important to the process. A ballot may contain several votes, one per contest (except for multiple-choice board races, ballot initiatives, etc.).&lt;br /&gt;&lt;br /&gt;Voting must be done in secret, or maintaining &lt;a style="font-style: italic;" href="http://www.google.com/search?q=define%3Aconfidentiality"&gt;confidentiality&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Voting must be done with assured information  &lt;a style="font-style: italic;" href="http://www.google.com/search?q=define%3Ainformation+integrity"&gt;integrity&lt;/a&gt;, so that no one can alter data or exert influence over the process itself in order to alter the outcome.&lt;br /&gt;&lt;br /&gt;Voting must work, or be &lt;a href="http://www.yourwindow.to/information-security/gl_confidentialityintegrityandavailabili.htm"&gt;&lt;span style="font-style: italic;"&gt;available&lt;/span&gt;&lt;/a&gt;.  It is unacceptable for voters to be delayed longer by process failure as they are waiting to vote than it takes them to cast their ballots.  Preliminary results must be known soon after the polls close in the last polling place (e.g., Hawaii).&lt;br /&gt;&lt;br /&gt;Counting all votes should be a feature of any system, but there are several ways in which votes could fail to be counted properly:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Individual ballots could be mangled, rejected, or lost by the voter or by the system&lt;/li&gt;&lt;li&gt;Blocs of ballots could be mangled, rejected, or lost by the system&lt;/li&gt;&lt;li&gt;Individual or blocs of votes could be unused or used multiple times by the system&lt;/li&gt;&lt;/ul&gt;Let's take the general principles in order, produce some policy statements, and then wrap those policy statements into a high-level outline of a system.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Fail Safe Design&lt;/span&gt; - All legal votes should be counted.  It should be difficult to present erroneous input.  It should be impossible to make one ballot choice that is counted for another ballot choice.  Input on one ballot choice should not affect other choices.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Complete Access Control&lt;/span&gt; - Only the voter should know what choices he made in the voting booth. The system should allow authorized voters to vote one time per election.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Least Privilege&lt;/span&gt; - Individuals should be given only the access to ballots their role requires. For instance, those counting votes do not need to know which election they are counting.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Separation of Privilege&lt;/span&gt; - Access to ballots, vote tallies, and control data should be based on multiple independent criteria.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Least Common Mechanism&lt;/span&gt; - Votes and ballots should be separated as soon as possible.  That is, the transmission of votes must not rely on shipping physical ballots.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Economy of Mechanism&lt;/span&gt; - We should use the simplest system satisfying all of the requirements&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Open Design&lt;/span&gt; -  A standard for voting machines should be produced, so that a machine from any manufacturer could be put through exact, reproducible tests. Security should not be used to justify hiding the operation of the system. The overall system must be documented clearly and simply enough for anyone to understand.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Psychological Acceptability&lt;/span&gt; - The voting process should change as little as possible from the voter's perspective.  The voting process should also be understandable to all voters, or at least should present no obstacle between the voter and voting. Safeguards should not appear to prospective  legitimate voters to be more trouble than they are worth.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Now For The Tricky Part&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;With policy statements in hand, we can now see what sort of system would meet the requirements of those policies.&lt;br /&gt;&lt;br /&gt;If voting is seen to be difficult because of the security measures, the measures will be worked around, or people will simply not vote.&lt;br /&gt;&lt;br /&gt;Only those authorized to access ballots that have been cast should be able to do so. There really should not be an argument against this, but some have demagogued this issue saying that identification is an attempt to exclude poor or minority voters, or that it is psychologically unacceptable as a security measure.  As long as the difficulty of obtaining identification for purposes of voting is low, and the identification of who voted does not show how they voted, vote suppression is a red herring.&lt;br /&gt;&lt;br /&gt;As quickly as possible, the information on the ballot should be copied from the physical ballot, or a physical ballot ("paper trail") created from an electronic ballot, and if possible the voter should verify a correct copy. Both the physical ballot and the electronic ballot should be transmitted to their secure destinations, by separate means. In no case should the public Internet be used as a means of transmitting official ballots, because this introduces too much shared mechanism: an Internet denial of service would jeopardize voting availability.&lt;br /&gt;&lt;br /&gt;While some would step away from anonymous ballots or even away from the secret ballot altogether, the problem of voter intimidation is still a bigger enemy of democracy than voter anonymity.  That is, balanced against the ability for others to punish or reward a particular vote, the secret ballot allows the potential of multiple votes per voter or ineligible people voting.  Non-secret voting does not completely cure these problems, and introduces many others, besides.  The secret ballot follows the principle of Least Privilege: no one but the voter knows how he voted.&lt;br /&gt;&lt;br /&gt;The source code (what the programmers edit) for a voting machine really should be available for everyone to see. But companies are wedded to the idea that keeping their code hidden gives them a business advantage, and we must rely on businesses to produce the machines, or rely on the government to make them, a truly intolerable situation. H.R.811 addresses these concerns by mandating that source code be given to election officials, but it is not clear whether citizens "inspecting" the source code would be allowed to do anything useful with it, or merely inspect it visually on paper. Inspecting the code without being able to execute it in a debugging environment is an unacceptable half measure.&lt;br /&gt;&lt;br /&gt;The principle of Open Design does not &lt;span style="font-style: italic;"&gt;require&lt;/span&gt; that the source code be revealed, however.   While hiding the source code makes the attacker's job more difficult, it also lowers overall confidence in the system.  If the attacker cannot force the system to behave in an unauthorized way even with the source code, the system can be assumed to be more secure than an equivalent system with hidden code.  Hiding the source therefore  should not be relied upon &lt;span style="font-style: italic;"&gt;as a security measure&lt;/span&gt;.  Companies who hide their source code should assume that the attackers have somehow obtained it, and design their countermeasures accordingly.&lt;br /&gt;&lt;br /&gt;An electronic voting system should validate entries before a physical ballot is created, to catch the error early and allow for a good ballot to be taken.  Processing two votes should take only twice as long as one vote takes.  There should be no special handling required for the elderly or those for whom typical voting procedures are physically difficult: it should be easy for everyone.&lt;br /&gt;&lt;br /&gt;The above can be accomplished in two basic ways, each of which has advantages and disadvantages:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Scanned Ballot&lt;/span&gt;: A voter fills out a human-readable form and drops it into a scanner.  The scanning process can optionally allow the voter to confirm the ballot, or it can simply acknowledge that the ballot was read properly. The scanner tallies and transmits the votes.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Printed Ballot&lt;/span&gt;: The voter interacts with a machine to make his ballot choices.  The machine prints out the ballot for the voter's inspection.  The voter confirms his choices for the machine, and then drops the ballot into the ballot box.  The machine tallies and transmits the votes.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;In either case,  Votes are tallied, batched, and the &lt;span style="font-style: italic;"&gt;unofficial&lt;/span&gt; electronic results are transmitted automatically when the polls close.  The physical ballots in the ballot box are counted when the polling places close, and the &lt;span style="font-style: italic;"&gt;official &lt;/span&gt;results transmitted by a different means than the unofficial electronic ones were. The physical ballots are retained indefinitely, for recounts and academic analysis.&lt;br /&gt;&lt;br /&gt;The Scanned Ballot method is simpler and more familiar to voters, and can be mimicked with a purely manual method and minimal communication infrastructure.  The Printed Ballot method has better error detection and correction, and removes any doubt about what a ballot actually says, which is sometimes a problem in recounts.&lt;br /&gt;&lt;br /&gt;In either case if there is a serious discrepancy between the official and unofficial results, an audit can be performed to uncover the problem, but the physical ballots should be considered authoritative unless there is sufficient evidence of tampering. By gathering and transmitting the unofficial and official results separately, errors (whether accidental or intentional) become very unlikely to affect the result of the election.&lt;br /&gt;&lt;br /&gt;Thanks for reading. Those wanting to know more could do worse than to start with &lt;a href="http://www.schneier.com/blog/archives/2004/11/the_problem_wit.html"&gt;Bruce Schneier&lt;/a&gt;, who also &lt;a href="http://www.schneier.com/blog/"&gt;blogs&lt;/a&gt; about squid on Fridays.&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;a name="note1"&gt;&lt;/a&gt;(&lt;a href="http://www.blogger.com/post-edit.g?blogID=26538178&amp;amp;postID=116490950989887420#ref1"&gt;†&lt;/a&gt;)I first heard that thought expressed at SANS'99 by a presenter from gnu.org, and I'm sorry I don't have a better cite than that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-1960368103061364680?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://socratesbox.blogspot.com/2007/05/acceptable-electronic-voting.html' title='Acceptable Electronic Voting'/><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/1960368103061364680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=1960368103061364680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/1960368103061364680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/1960368103061364680'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/05/acceptable-electronic-voting.html' title='Acceptable Electronic Voting'/><author><name>Loren Heal</name><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-13220950.post-6815203761785791148</id><published>2007-05-14T12:38:00.000-05:00</published><updated>2007-08-07T20:32:04.623-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xargs'/><category scheme='http://www.blogger.com/atom/ns#' term='regular expression'/><category scheme='http://www.blogger.com/atom/ns#' term='Unix'/><category scheme='http://www.blogger.com/atom/ns#' term='unix shell'/><category scheme='http://www.blogger.com/atom/ns#' term='sed'/><title type='text'>Fun with find, sed and xargs</title><content type='html'>[See below for update 20070807]&lt;br /&gt;Common tasks for Unix system administrators often require working with all of the files in a directory tree and selectively doing something with some of them: copying, deleting, renaming, or moving them, or simply getting a list of files matching certain characteristics.&lt;br /&gt;&lt;br /&gt;Sometimes we want to do something from the Unix command line with files that have spaces in their names. Let's see what we can do with our friends &lt;a href="http://www.google.com/url?sa=t&amp;ct=res&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;cd=1&amp;url=http%3A%2F%2Funixhelp.ed.ac.uk%2FCGI%2Fman-cgi%3Ffind&amp;amp;ei=maVERvuyNqDYigHArbXJDw&amp;usg=AFrqEzewgGAdbyQ1mFEODgPT4T6qF_OUSg&amp;amp;sig2=884OI61IdjUaXWbOeaoEeg"&gt;find(1)&lt;/a&gt;, &lt;a href="http://www.google.com/url?sa=t&amp;ct=res&amp;amp;cd=1&amp;url=http%3A%2F%2Funixhelp.ed.ac.uk%2FCGI%2Fman-cgi%3Fsed&amp;amp;ei=t6VERoyeHIu4iwG824hA&amp;usg=AFrqEzdIWBS2p8YtfSejqLeuqYFLz_OryQ&amp;amp;sig2=MVag-q-_qfjp--Mmo4ICVw"&gt;sed(1)&lt;/a&gt;, and &lt;a href="http://www.google.com/url?sa=t&amp;ct=res&amp;amp;cd=1&amp;url=http%3A%2F%2Funixhelp.ed.ac.uk%2FCGI%2Fman-cgi%3Fxargs&amp;amp;ei=16VERp3tA73IiwHSrqA_&amp;usg=AFrqEzcFF0qGH7z7LVyb3N0bVBpFBVbphw&amp;amp;sig2=R8dhjp-aJLg1mcS9VfiDeg"&gt;xargs(1)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Find looks for entries in some directory matching its arguments, typically sending a list of them to the standard output.  Sed is the Stream EDitor, and applies a series of commands to transform its input into its output. Xargs supplies its input to the command line of any program.&lt;br /&gt;&lt;br /&gt;First, let's set up our little foobox:&lt;br /&gt;&lt;pre&gt;$ cd /tmp&lt;br /&gt;$ mkdir foo&lt;br /&gt;$ touch 'foo/file with spaces'&lt;br /&gt;$ touch 'foo/bar'&lt;br /&gt;$ touch 'foo/another file with spaces'&lt;br /&gt;$ ls -1 foo&lt;br /&gt;another file with spaces&lt;br /&gt;bar                  &lt;br /&gt;file with spaces&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now lets's do a simple find:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;/tmp $ find foo -type f &lt;br /&gt;foo/file with spaces&lt;br /&gt;foo/bar&lt;br /&gt;foo/another file with spaces&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now let's do something with those files.  Let's just list them:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;/tmp $ find foo -type f | xargs ls&lt;br /&gt;foo/file: No such file or directory&lt;br /&gt;spaces: No such file or directory&lt;br /&gt;foo/another: No such file or directory&lt;br /&gt;file: No such file or directory&lt;br /&gt;with: No such file or directory&lt;br /&gt;spaces: No such file or directory&lt;br /&gt;foo/bar&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;What happened?  Xargs delivered its input to the command line of ls(1), which interpreted the spaces in the filenames as new filenames.  We need to escape the spaces inside the names for ls, but leave the spaces surrounding the filenames.  That's just the sort of thing sed likes to do:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;/tmp $ find foo -type f | sed 's, ,\\&amp;,g'| xargs ls -ltr&lt;br /&gt;-rw-r--r--   1 user group          0 May 11 12:12 foo/file with spaces&lt;br /&gt;-rw-r--r--   1 user group          0 May 11 12:12 foo/bar&lt;br /&gt;-rw-r--r--   1 user group          0 May 11 12:12 foo/another file with spaces&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;In the dorky sed command between the single quotes, the "s" means to substitute for the text matched by the pattern between the first and second delimiter the text between the second and third delimiters. I like to use commas as delimiters instead of slashes, though any character will do.  Slashes often appear in path names, and by habitually using commas I avoid errors when I fail to escape the slashes.&lt;br /&gt;&lt;br /&gt;The pattern, called a regular expression, in this case says to look for a space, and replace it with a backslash followed by the text we just found. This is sed-ese for "prepend a backlash".&lt;br /&gt;&lt;br /&gt;A slightly more general approach is to wrap each filename with single quotes. You still run into a problem with filenames which have single quotes in them, but you shouldn't put quotes in filenames:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ find foo -type f | sed -e "s,[^.],\'&amp;amp;," -e "s,\$,\',"&lt;br /&gt;&lt;br /&gt;'foo/file with spaces'&lt;br /&gt;'foo/bar'&lt;br /&gt;'foo/another file with spaces'&lt;br /&gt;&lt;br /&gt;$  find foo -type f | \&lt;br /&gt;    sed -e "s,[^.],\'&amp;amp;," \&lt;br /&gt;        -e "s,\$,\'," | \&lt;br /&gt;    xargs ls&lt;br /&gt;&lt;br /&gt;foo/another file with spaces&lt;br /&gt;foo/file with spaces&lt;br /&gt;foo/bar&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Sharp reader &lt;a href="http://www.blogger.com/profile/10997592855771627693"&gt;Nic Ivy&lt;/a&gt; has noted a far simpler way to deal with spaces in filenames for find(1) and xargs(1), which also deals with other special characters like quotes and greater-than or less-than symbols:  &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$  find foo -type f -print0 | xargs -0 ls&lt;br /&gt;&lt;br /&gt;foo/another file with spaces&lt;br /&gt;foo/file with spaces&lt;br /&gt;foo/bar&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;From the Unixhelp xargs(1) man page: &lt;br /&gt;&lt;pre&gt;&lt;br /&gt; --null, -0&lt;br /&gt;              Input items are terminated by a null  character  instead  of  by&lt;br /&gt;              whitespace,  and the quotes and backslash are not special (every&lt;br /&gt;              character is taken literally).  Disables the end of file string,&lt;br /&gt;              which  is  treated  like  any other argument.  Useful when input&lt;br /&gt;              items might contain white space, quote  marks,  or  backslashes.&lt;br /&gt;              The  GNU  find  -print0  option produces input suitable for this&lt;br /&gt;              mode.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Man pages courtesy &lt;a href="http://unixhelp.ed.ac.uk/index.html"&gt;UnixHelp&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-6815203761785791148?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/6815203761785791148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=6815203761785791148' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/6815203761785791148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/6815203761785791148'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/05/fun-with-find-sed-and-xargs.html' title='Fun with find, sed and xargs'/><author><name>Loren Heal</name><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-13220950.post-1798364177935858394</id><published>2007-05-08T13:46:00.000-05:00</published><updated>2007-05-08T13:46:10.978-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='Marine Corps'/><title type='text'>Completeness</title><content type='html'>What do housewives, Marines, and graduate students have in common with bloggers?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Completeness&lt;/span&gt; is more than thoroughly doing a job, it's doing the job so well that you know, without looking, that every part of it is done.  Completeness is examining and addressing the hidden and parts of a task and those which adjoin it  in order to know that all visible and assigned parts of the task are completed.&lt;br /&gt;&lt;br /&gt;US Marines learn "attention to detail" in &lt;a href="http://www.mcrdpi.usmc.mil/training/"&gt;boot camp&lt;/a&gt;, and then should practice it every moment of their lives thereafter.   For the Marine, that means acquiring the habit of going beyond what is merely necessary, and covering the parts of the mission or duty that do not show, whether that means removing old residue before swabbing a deck or checking the closets and attic when clearing a building of hostile combatants.&lt;br /&gt;&lt;br /&gt;Completeness is not just practicing a maneuver over and over again until everyone gets it right.  That's proficiency.  Completeness is knowing all of the roles that make up the mission, and being ready to take up the slack for a buddy who for whatever reason doesn't complete his part.  To the Marine, completeness means looking for trouble before it finds him. That's why he joined in the first place.&lt;br /&gt;&lt;br /&gt;For anyone who does household chores, completeness means moving all of the furniture to clean underneath it, so that there will be no surprises should a guest come calling, and no chance that pests or children will find dirt to put to the various uses they would put it.&lt;br /&gt;&lt;br /&gt;For a graduate student, completeness means studying things that are tangential to his field, and becoming proficient or even expert at things in his field which have become commodity knowledge.  For instance, a computer science doctoral conferee should:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Have basic scientific literacy&lt;/li&gt;&lt;li&gt;Understand basic electric wiring, and use it in his studies&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Have designed integrated circuits &lt;/li&gt;&lt;li&gt;Have designed electronic circuits using commodity chips&lt;/li&gt;&lt;li&gt;Assemble computers from commodity parts &lt;/li&gt;&lt;li&gt;Install and secure a variety of operating systems&lt;/li&gt;&lt;li&gt;Perform basic tasks using a variety of operating systems&lt;/li&gt;&lt;li&gt;Program in a variety of languages, including machine code&lt;/li&gt;&lt;/ul&gt; That is completeness on one level.  In addition, the doctoral student specializes in a tiny sub-area of his field, and must be aware of everything that impacts that sub-area.  To do that, he needs to examine all of the areas which surround his specialty, by looking in obscure outdated conference proceedings,the current popular press, and everywhere in between.  Only then can he be assured that he has studied his whole specialty and is contributing something new.&lt;br /&gt;&lt;br /&gt;Completeness for the blogger means approaching an argument with precision and depth, rather than simply to convince the convinced. The importance of sound logic cannot be overstressed. Citing sources for every fact and &lt;a href="http://socratesbox.blogspot.com/2007/02/rfc-for-ethical-blogger-pledge.html"&gt;attributing every quote&lt;/a&gt; is not enough; that is mere proficiency. Completeness means fact-checking all statements, and verifying the authority and authenticity of every source, and taking on the &lt;a href="http://socratesbox.blogspot.com/2007/01/inescapable-logic-of-global-warming.html"&gt;burden of proof&lt;/a&gt; for every assertion and unstated premise. By going beyond the visible to the hidden and adjoining places, the work is made stronger and less likely to fall apart in an embarrassing mess.&lt;br /&gt;&lt;br /&gt;I believe I have now  identified my basic failing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-1798364177935858394?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/1798364177935858394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=1798364177935858394' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/1798364177935858394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/1798364177935858394'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/05/completeness.html' title='Completeness'/><author><name>Loren Heal</name><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-13220950.post-2291808526271504765</id><published>2007-05-07T12:05:00.000-05:00</published><updated>2008-12-10T03:06:54.242-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ant-free'/><category scheme='http://www.blogger.com/atom/ns#' term='dog'/><category scheme='http://www.blogger.com/atom/ns#' term='dish'/><category scheme='http://www.blogger.com/atom/ns#' term='ants'/><category scheme='http://www.blogger.com/atom/ns#' term='pet food'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><category scheme='http://www.blogger.com/atom/ns#' term='pets'/><title type='text'>The Ant-Free Dog Dish</title><content type='html'>My dog lives outside.  During the winter, bugs ignore his food and pay attention to hibernation, or being an egg, or what have you.  But come spring, the ants, flies, and various bugs find the dog food.&lt;br /&gt;&lt;br /&gt;I bought a dog dish once that claimed to keep the ants out, but you had to place it just so, and it didn't keep the ants away.&lt;br /&gt;&lt;br /&gt;But the principle on which it claimed to work is good: ants won't go very far in the wrong direction.  We just have to make them think they're lost.&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ajz-qim2Ujw/Rj6xuzwnetI/AAAAAAAAAA0/rcFs_c74Uj8/s1600-h/no-ants-in-food.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_Ajz-qim2Ujw/Rj6xuzwnetI/AAAAAAAAAA0/rcFs_c74Uj8/s320/no-ants-in-food.png" alt="" id="BLOGGER_PHOTO_ID_5061678448937237202" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Parts:&lt;/span&gt;&lt;br /&gt;1 dog dish&lt;br /&gt;1 tin can, washed thoroughly&lt;br /&gt;1 dowel (round piece of wood) about half the diameter of the can, about two inches (5 cm) longer than the can.&lt;br /&gt;1 board or block of wood at least 1.5 inches (4cm) thick, and wider than the dog dish&lt;br /&gt;2 nails&lt;br /&gt;Epoxy or silicon glue&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tools:&lt;/span&gt;&lt;br /&gt;Power drill&lt;br /&gt;Hammer&lt;br /&gt;Pliers&lt;br /&gt;Leather Gloves&lt;br /&gt;Level&lt;br /&gt;&lt;br /&gt;A flat horizontal surface on which to place the project while the glue cures.&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Steps:&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Drill a hole about 1 inch deep into the center of one face of the block of wood just big enough to receive the dowel.&lt;/li&gt;&lt;li&gt;Put some glue into the bottom of the hole in the wood.   Insert the dowel into the hole.  Turn it over and pound one nail into the dowel rod through the block of wood.  Turn it back over, so that the dowel is pointing up. Apply glue, if needed, to make a watertight seal between the dowel and the block.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Round in the rim of the can, leaving the open end of the can bigger than the diameter of your dowel by several times the length of your local ants.&lt;/li&gt;&lt;li&gt;Cover the top of the dowel with glue. Put some glue in the can, in center of the bottom (use the dowel as an applicator).  Put the can on top of the dowel (insert the dowel into the can).&lt;/li&gt;&lt;li&gt;With the hammer and a nail, punch a hole in the center of the bottom of the can and into the center of the dowel. At this point, make sure the dowel is centered in the can, with an ant-proof air gap around the dowel.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Pound the nail in the rest of the way. You now have an Ant-Free Dog Dish Stand.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Place the dog dish upside down on the drying surface.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Apply glue liberally to the top of the can and the center of the bottom of the dog dish.  &lt;/li&gt;&lt;li&gt;Invert the Ant-Free Dog Dish Stand on top of the upside down dish, and level the stand.&lt;/li&gt;&lt;li&gt;Allow glue to dry and cure.&lt;/li&gt;&lt;/ol&gt;The Ant-Free Dog Dish has the advantage of raising the food up to a more comfortable eating height for larger dogs, which are typically the ones living outside.&lt;br /&gt;&lt;br /&gt;Options:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;To allow rainwater to drain out of the dog dish, drill one or more small holes into the bottom near the edge, where water tends to puddle&lt;/li&gt;&lt;li&gt;Use a beer or soft drink can, (requires cutting the top off of the can)&lt;/li&gt;&lt;li&gt;Use screws instead of nails&lt;/li&gt;&lt;li&gt;Use a carriage bolt running from the center of the dish through the dowel to the bottom of the base, countersinking a nut into the base; in this case, you can use rubber gaskets instead of glue&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Paint the can and wooden parts&lt;/li&gt;&lt;li&gt;Install feet on the wooden block, so ants don't make a colony under it&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Sprinkle borax on top of the base if you notice ants on it&lt;/li&gt;&lt;li&gt;Coat the inside walls of the can with used motor oil and dust with borax, or stuff a dryer sheet inside&lt;/li&gt;&lt;li&gt;Seek help -- you're starting to obsess&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The ants haven't found my dog's food yet, but let me know how it goes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-2291808526271504765?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/2291808526271504765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=2291808526271504765' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/2291808526271504765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/2291808526271504765'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/05/ant-free-dog-dish.html' title='The Ant-Free Dog Dish'/><author><name>Loren Heal</name><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/_Ajz-qim2Ujw/Rj6xuzwnetI/AAAAAAAAAA0/rcFs_c74Uj8/s72-c/no-ants-in-food.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13220950.post-336881113092079550</id><published>2007-04-30T18:35:00.000-05:00</published><updated>2007-04-30T18:36:30.812-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conspiracy'/><category scheme='http://www.blogger.com/atom/ns#' term='commercials'/><category scheme='http://www.blogger.com/atom/ns#' term='stupid'/><title type='text'>Lies, Damned Lies, and Commercials</title><content type='html'>Have you seen the commercial with the guy who's trying to quit saying:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:130%;"&gt;For me, it's more than a habit.&lt;/span&gt;&lt;/blockquote&gt;As if people need a patch to quit walking the dog or brushing their teeth a certain way.&lt;br /&gt;&lt;br /&gt;Of course smoking is more than a habit.  It's a drug addiction.  Saying that it's more than a habit "for me" implies that for someone else, it's just a bad habit, like chewing with their mouth open.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-336881113092079550?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/336881113092079550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=336881113092079550' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/336881113092079550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/336881113092079550'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/04/lies-damned-lies-and-commercials.html' title='Lies, Damned Lies, and Commercials'/><author><name>Loren Heal</name><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-13220950.post-5018265829462767944</id><published>2007-04-28T08:36:00.000-05:00</published><updated>2007-04-28T08:45:15.659-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='1000 Words'/><title type='text'></title><content type='html'>&lt;a href="http://www.yorkdispatch.com/local/ci_5746945"&gt;Hero.&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://extras.mnginteractive.com/live/media/site138/2007/0425/20070425_095806_070425%20Travis%20VanKuren%201_VIEWER.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px;" src="http://extras.mnginteractive.com/live/media/site138/2007/0425/20070425_095806_070425%20Travis%20VanKuren%201_VIEWER.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"She looked over at me and started screaming for help," VanKuren said. The woman also screamed "help" at two other people in the parking lot who looked at her and walked away.&lt;br /&gt;&lt;br /&gt;VanKuren didn't.&lt;/blockquote&gt;&lt;br /&gt;(&lt;a href="http://bamapachyderm.com/archives/2007/04/27/5859/"&gt;h/t MVRWC (bamapachyderm)&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-5018265829462767944?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/5018265829462767944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=5018265829462767944' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/5018265829462767944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/5018265829462767944'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/04/hero.html' title=''/><author><name>Loren Heal</name><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-13220950.post-6924556838809232403</id><published>2007-04-24T16:03:00.000-05:00</published><updated>2007-04-24T17:04:01.001-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='1000 Words'/><title type='text'>The Story Is:</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.classicalvalues.com/Learn2Drive.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 400px;" src="http://www.classicalvalues.com/Learn2Drive.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:180%;"&gt;&lt;br /&gt;"Wha? Na, see ossifer, I was just on my way to &lt;span style="font-style: italic;"&gt;get&lt;/span&gt;&lt;/span&gt; &lt;span style="font-size:180%;"&gt;my drivers license when dis odder guy here stuck his truck bed inta my lane."&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;(via &lt;a href="http://www.classicalvalues.com/archives/2007/04/post_309.html"&gt;Classical Values&lt;/a&gt;)&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/13220950-6924556838809232403?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/6924556838809232403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=6924556838809232403' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/6924556838809232403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/6924556838809232403'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/04/story-is.html' title='The Story Is:'/><author><name>Loren Heal</name><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-13220950.post-2307852508985915015</id><published>2007-04-24T12:16:00.000-05:00</published><updated>2007-04-24T13:22:10.676-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Global Warming'/><title type='text'>Fossil Find Raises Global Cooling Fears</title><content type='html'>The area around Illinois was once a tropical swamp, according to a new &lt;a href="http://news.nationalgeographic.com/news/2007/04/070424-forest-fossils.html"&gt;fossil find&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;The climate was ever wet, hot, and humid," said Scott D. Elrick, geologist with the Illinois State Geological Survey (ISGS).  &lt;p&gt;  "The modern-day equivalent would be some of the peat swamps of &lt;a href="http://www3.nationalgeographic.com/places/countries/country_indonesia.html"&gt;Indonesia&lt;/a&gt;."&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Could this mean the Earth is growing colder, and will soon be too cold to inhabit?  Why can't the government do something? We've only got a few million years before The End.&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;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-2307852508985915015?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/2307852508985915015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=2307852508985915015' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/2307852508985915015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/2307852508985915015'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/04/fossil-find-raises-global-cooling-fears.html' title='Fossil Find Raises Global Cooling Fears'/><author><name>Loren Heal</name><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-13220950.post-6480889742734783167</id><published>2007-02-24T07:16:00.000-06:00</published><updated>2007-02-24T07:30:44.386-06:00</updated><title type='text'>Vista, IE, and the Bored Watchdog Problem</title><content type='html'>&lt;div style=""&gt;Windows Vista is pretty annoying, out of the box.  But first, a word about Internet Explorer (IE).&lt;br /&gt;&lt;p&gt;Internet Explorer is suboptimal in design (and by that I mean: &lt;i&gt;bad&lt;/i&gt;) because it is integrated into the operating system. Large chunks of code are shared by Windows and IE, which means that IE loads faster and is marginally faster in operation and 2) it violates the security principle we call "Least Common Mechanism". &lt;/p&gt; &lt;p&gt;Integrating IE into Windows means that when Windows is booting up (being loaded from disk into memory), it is also loading into memory much of the IE browser program. When the user clicks on the blue "e", the browser appears to load faster because much of it is preloaded. This incidentally makes IE look better compared to other browsers, so users tend to use it. Microsoft has to make money somehow.&lt;br /&gt;&lt;/p&gt; &lt;p&gt;By integrating with Windows, IE has a more direct path to get to operating system services, such as scrolling the page and reading from the network and the disk. Other programs have to contend with interface layers that the IE programmers can ignore, because it is optimized for use under Windows. There are other advantages, as well, but I don't know how much speed advantage any of this provides IE.&lt;/p&gt; &lt;p&gt;Least Common Mechanism means that in designing a system, it is desirable that shared means of operation between different parts of the system be minimized. I realize that's pretty jargony. In a car, for instance, if horn and the airbags are both on the same circuit, and the fuse for that circuit blows, not only can you not blow your horn to avoid the accident, but your airbags don't deploy.&lt;/p&gt;&lt;p&gt;A browser, being the program (apart from the virus removal tool) that gets used most in Windows, should be insulated from the operating system, so that failures in the browser do not crash the entire system.&lt;br /&gt;&lt;/p&gt; &lt;p&gt;Vista is designed to perform in a way that causes the Bored Watchdog Problem. Just as a watchdog tends to get used to cars passing in the street, too many popup windows asking for confirmation make the user tend to ignore such questions.&lt;/p&gt;&lt;p&gt;I predict a patch to turn off that feature. &lt;br /&gt;&lt;/p&gt; &lt;p&gt;Finally, IE (like most Microsoft software) may violate the principle of Open Design. Now, Windows geeks will go crazy if they read this, so I want to be very clear. The principle of Open Design is that the security of the system should not depend on keeping its mechanism secret. That doesn't mean that keeping the mechanism secret in and of itself makes for less security, but &lt;i&gt;depending&lt;/i&gt; on hiding how it works does make for lower security.  &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-6480889742734783167?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/6480889742734783167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=6480889742734783167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/6480889742734783167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/6480889742734783167'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/02/vista-ie-and-bored-watchdog-problem.html' title='Vista, IE, and the Bored Watchdog Problem'/><author><name>Loren Heal</name><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-13220950.post-2420385404393744975</id><published>2007-01-16T11:44:00.000-06:00</published><updated>2007-04-24T19:27:04.702-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='1000 Words'/><category scheme='http://www.blogger.com/atom/ns#' term='Global Warming'/><title type='text'>No Swimming.</title><content type='html'>Violators will be prosecuted (posthumously, as needed).&lt;br /&gt;&lt;br /&gt;&lt;img src="http://farm1.static.flickr.com/136/352186628_8ad111ef9a.jpg?v=0" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-2420385404393744975?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/2420385404393744975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=2420385404393744975' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/2420385404393744975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/2420385404393744975'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2007/01/no-swimming.html' title='No Swimming.'/><author><name>Loren Heal</name><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-13220950.post-6909941691132482321</id><published>2006-12-28T11:54:00.000-06:00</published><updated>2006-12-28T12:01:32.860-06:00</updated><title type='text'>Why Nuclear Physics is So Hard</title><content type='html'>&lt;p&gt;I'm not a physicist, and barely remember the difference between protons and neutrons.  Really.  Probably it's the way they choose the names, having nothing to do with the physical properties of the elements, and not even sounding cool.  I mean, Uranium, Plutonium, Titanium have cool names.  Krypton -- cool name.  "Carbon" is at least descriptive, deriving from the Latin for burning. I've always thought "Gold", "Iron", and "Lead" were onomatopoeic.  And everyone knows that "Sodium" is Greek for "soda pop". Good names, all, and they don't sound phake and made up.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;But "&lt;a href="http://www.apsidium.com/elements/108.htm"&gt;Hassium&lt;/a&gt;"? "Bohrium"?  Not cool, not descriptive.  These are vanity names, like getting your name in a phony star registry, or some weak license plate, except it goes in the encyclopedia.  Yes, I know there's this tradition for naming the radioactive ones after people, but that kind of thing ought to be left to the &lt;a href="http://www.uwyo.edu/news/show.asp?id=1142"&gt;entomologists&lt;/a&gt;, hadn't it?  I mean, what if there's a disaster, and Jonesium kills a bunch of people and gives the rest weird cancers?  How will ol' Doc Jones feel about his legacy then, hmm? Ok, how are his great grandkids going to take it?  Better to be devoured by wasp larvae, I say.  So clearly, we need better, less risky names for these elements.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Let's see, an element that sticks around for 30 seconds and then goes away.  I believe I can come up with a few right here, even without some fancy-shmancy degree:&lt;br /&gt;&lt;/p&gt;&lt;ul style=""&gt;&lt;li&gt;&lt;a href="http://www.3m.com/us/office/postit/"&gt;Postite&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.urbandictionary.com/define.php?term=Blog+Troll"&gt;BlogTrollium&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Byjovewevedoneitohnowehaventium (or Heyyallcheckuhnevermindium)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.google.com/search?q=viagra&amp;amp;start=0"&gt;Anaviagrium&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.tv.com/blind-date/show/7595/summary.html"&gt;Blinddatium&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;It's a wonder they don't put me in charge of much here at the gas station.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-6909941691132482321?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/6909941691132482321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=6909941691132482321' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/6909941691132482321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/6909941691132482321'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2006/12/why-nuclear-physics-is-so-hard.html' title='Why Nuclear Physics is So Hard'/><author><name>Loren Heal</name><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-13220950.post-115799126799095409</id><published>2006-09-11T09:43:00.000-05:00</published><updated>2006-09-11T11:15:07.136-05:00</updated><title type='text'>La-la-la-la...</title><content type='html'>&lt;p&gt;That's the answer.&lt;/p&gt; &lt;p&gt;The question:  What does the leftist blogosphere say about terrorism?&lt;/p&gt; &lt;p&gt;The &lt;a href="http://thinkprogress.org/2006/09/06/bush-official-blasts-abc/"&gt;furor&lt;/a&gt; over ABC's &lt;a href="http://abc.go.com/movies/thepathto911/index.html"&gt;&lt;u&gt;Path to 9/11&lt;/u&gt;&lt;/a&gt; has surrounded a few scenes depicting various Clinton officials in a negative way. The horror! The disaster to civilization, should the Clinton administration get any bad press. &lt;/p&gt; &lt;p&gt;As a side note, I'd like to work in the phrase "sleeping around on duty" in reference to der schlickmeister, but I can't find a way to do it. Oh, I guess I just did, didn't I.&lt;/p&gt; &lt;p&gt;But the kerfuffle reminds me of nothing more than someone who doesn't want to hear a distasteful remark, and so puts hands to ears and says "La-la-la-la..." when the danger begins. &lt;/p&gt; &lt;p&gt;The real point of ABC's show is this: &lt;b&gt;It's a war.&lt;/b&gt; Quit blaming each other, because we all have made mistakes in this war, most of us by underestimating our enemy. We all botched it. We deluded ourselves. We can no longer do that. It's a war, and the sooner we get over the silly idea that we should treat Islamic terrorism in the same way we treat ordinary criminal activity, the sooner we can start to win.&lt;/p&gt; &lt;p&gt;ABC/Disney is, like all major media organizations, staffed and run by liberals.  And yet, they are serious enough people to know a real threat to civilization when they see it.  They know that many liberals do not see Islamic terrorism as such a threat.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;ABC apparently aimed their show at liberals, I presume with the intent to bring sanity to the far left's view. While the &lt;a href="http://www.dailykos.com/storyonly/2006/8/28/1469/21819"&gt;moonbats&lt;/a&gt; are reacting with &lt;a href="http://stellans.wordpress.com/2006/09/09/the-real-path-to-911-read-it-and-weep-gopabc/"&gt;denial&lt;/a&gt;, perhaps some others will understand the nature of our foe and what it will take to destroy it.&lt;/p&gt; &lt;p&gt;And the answer to destroying the enemies of civilization is not working oneself into a lather in the foolish attempt to prove the tautology that a docudrama contains inaccuracies.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-115799126799095409?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/115799126799095409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=115799126799095409' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/115799126799095409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/115799126799095409'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2006/09/la-la-la-la.html' title='La-la-la-la...'/><author><name>Loren Heal</name><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-13220950.post-114913348635311399</id><published>2006-05-31T22:43:00.000-05:00</published><updated>2006-05-31T22:44:46.370-05:00</updated><title type='text'>Cure Poison Ivy</title><content type='html'>Calomine lotion is useless. However, while I am not a doctor, poison ivy rash is simple to cure:&lt;br /&gt; &lt;ul&gt;&lt;li&gt; For best results, stay away from the stuff&lt;br /&gt;&lt;/li&gt;&lt;li&gt; If you can't stay away from poison ivied areas, learn to recognize it, wear garments that cover any areas of skin that will be exposed to it, and if you suspect contact, wash clothes and wash skin with soap and water immediately. &lt;br /&gt;&lt;/li&gt;&lt;li&gt; Carry a container of disposable baby-wipes, and wash hands immediately. &lt;br /&gt; &lt;/li&gt;&lt;/ul&gt; But &lt;strong&gt;if you catch the stuff&lt;/strong&gt;, so it itches and you break out in the little pustules:&lt;br /&gt; &lt;ol&gt;&lt;li value="1"&gt;Wash with soap and water&lt;br /&gt;&lt;/li&gt;&lt;li value="2"&gt;Scour skin with alcohol until the pustules break&lt;br /&gt;&lt;/li&gt;&lt;li value="3"&gt;Continue scouring until you see blood where the pustules were; scrub some more with fresh alcohol until it really stings badly.&lt;br /&gt;&lt;/li&gt;&lt;li value="4"&gt;You are cured.&lt;br /&gt; &lt;/li&gt;&lt;/ol&gt; If you don't want to go the rubbing alcohol direction, spend several hours in and out of a chlorinated swimming pool or salt water.  Do not apply UV protection to the affected areas beforehand.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-114913348635311399?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/114913348635311399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=114913348635311399' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/114913348635311399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/114913348635311399'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2006/05/cure-poison-ivy.html' title='Cure Poison Ivy'/><author><name>Loren Heal</name><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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13220950.post-114482286430025916</id><published>2006-04-25T15:19:00.000-05:00</published><updated>2006-04-27T16:19:38.526-05:00</updated><title type='text'>Unions, Minimum Wage, and Immigration</title><content type='html'>Brothers and sisters, as many of you know, I am a proponent of open immigration.  I don't like quotas, believing as I do in America as a sanctuary for the 'huddled masses, yearning to be free'. I am particularly loath to discuss immigration economic effects, since to me they are a necessary consequence of following our principles, while others are motivated by those effects into deigning to allow it. Also, I'm not an economist, having not even the learning to carry an economist's backpack.  This, then, will be a rare quench for those thirsting from the drought of my opinion on these matters.&lt;br /&gt;&lt;br /&gt;In the historically common phenomenon of &lt;a href="http://www.laborarts.org/exhibits/union/immigrants.cfm"&gt; labor unions supporting immigrant workers&lt;/a&gt;, a new low has been reached.  This time the labor unions are not nobly engaged in pursuit of better working conditions or higher wages per se for their members.  This time they're trying to obtain new members by creating new immigrants.&lt;br /&gt;&lt;br /&gt;It has become clear that the labor unions are &lt;a href="http://www.frontpagemag.com/Articles/Printable.asp?ID=21841"&gt;behind the recent protests&lt;/a&gt; by various immigrant groups across the country; equally clear is that their primary goal is citizenship for the illegal immigrants, as demonstrated in this fairly reasonable &lt;a href="http://www.ufcw.org/press_room/index.cfm?pressReleaseID=231"&gt;position paper&lt;/a&gt; from the United Food and Commercial Workers.&lt;br /&gt;&lt;br /&gt;In cities across the country in recent weeks, rallied by Spanish-language media, the Democratic Party, and union ringleaders, legal and illegal immigrants shuffled down urban streets alongside the organizers and various leftoverist copycats to demand "immigration reform", which is apparently the newest euphemism for a mass amnesty.&lt;br /&gt;&lt;br /&gt;They marched for dignity, with the full decorum of recess at a day-care center.  As could be expected from prospective citizens eager join society, they patriotically waved Mexican flags and signs declaring the imminent return to Mexico not of themselves, as would befit the legal status of many of them, but of California and other areas in the Southwestern US.  The &lt;a href="http://www.americanpatrol.com/ADS/ReconquistaReelectio970719.html"&gt; Reconquista&lt;/a&gt;, they call it.  Originally the term referred to the rechristianization of Spain and Portugal after Moorish occupation in the period between  AD 718 and 1500. Mexican writers Carlos Fuentes and Elena Poniatowska saw a parallel with the growing Hispanic population in the U.S., and the term was picked up by &lt;a href="http://www.panam.edu/orgs/mecha/nat.html"&gt;radical elements&lt;/a&gt; who desired a Mexican California.  Reconquista is supported by over &lt;a href="http://jcdurbant.blog.lemonde.fr/jcdurbant/2006/04/welcome_to_reco.html"&gt;58% of Mexicans&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Like most other irredentist movements, it has somewhat less support in the target population, in this case those of us North of the border. This odd patriotism may partly explain the backlash against the first weekend of marches.&lt;br /&gt;&lt;br /&gt;When union leaders and Democratic Party strategists learned that Americans were shocked and outraged by media images of what they were to assume were Mexican citizens carrying Mexican flags and showing disrespect for the American flag, they planned a response.&lt;br /&gt;&lt;br /&gt;At the rallies on Monday of the next week, marchers had been told to &lt;a href="http://www.frontpagemag.com/Articles/Printable.asp?ID=22038"&gt;leave their Mexican flags at home.&lt;/a&gt;  Organizers reportedly had barrels full of American flags to &lt;a href="http://www.signonsandiego.com/news/metro/20060409-1531-bn09bigmarch.html"&gt;hand out&lt;/a&gt;, and would collect the Mexican flags to keep them out of sight of the cameras.  Of course, it wasn't long before a marcher literally wrapped himself in the American flag, wearing it as a garment, not realizing that he was again sending the wrong signal to those who understand flag etiquette.&lt;br /&gt;&lt;br /&gt;So what is the point of citizenship for illegal immigrants?  As citizens, they could join U.S. labor unions.  Since union membership &lt;a href="http://www.trinity.edu/bhirsch/unionstats/All%20Wage%20and%20Salary%20Workers.htm"&gt;has been dropping&lt;/a&gt;, both as a percentage of the work force and &lt;span style="font-style: italic;"&gt;in real terms&lt;/span&gt; since about 1980, unions have to add to their numbers or be marginalized as a political force.  This is their chance.&lt;br /&gt;&lt;br /&gt;For American citizen workers, the minimum wage and OSHA rules have obviated the need for a union.  For most people, a union adds a layer of protection they don't need, and would artificially impede their progress toward bettering their own situation. What prospective union organizers attribute to fear of retribution is in reality more often simple reasoned self-interest.&lt;br /&gt;&lt;br /&gt;I'd like to take a little side-trip and discuss the minimum wage and its analog, union wages.  In both cases, a minimum wage is set to assure that anyone working (either in the union or in the entire workforce in the case of the minimum wage) is paid above a certain level.  Both union wages and minimum wage have the effect of decreasing the number of workers an employer can hire.  There are many people standing on Americas street corners because the minimum wage or a union minimum keeps them there.&lt;br /&gt;&lt;br /&gt;A common syllogism broached by unionizers, minimum wage whiners, and the like, goes something like this:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A. The pay scale for everyone has remained the same for a long time.&lt;/li&gt;&lt;li&gt;B. Everyone needs a raise because of inflation and because we just deserve it.&lt;/li&gt;&lt;li&gt;C. The pay scale must be raised for everyone!&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Missing is the part where an individual moves up the pay scale from bottle washer to chief cook.  In other words, the scale can stay the same forever if individuals ascend it.&lt;br /&gt;&lt;br /&gt;Union wages also force the companies that employ union labor to limit the number of workers. Unions trade higher pay for members for the jobs of those unable to work alongside them.&lt;br /&gt;&lt;br /&gt;While the Federal minimum wage [&lt;a href="http://www.dol.gov/esa/minwage/chart.htm"&gt;3&lt;/a&gt;] has been kept at $5.15 since 1997, state and local minima have been adjusted above that level.  The city of Santa Fe, New Mexico has a local minimum wage of over $9.  It seems appropriate to account for regional costs of living and job markets by allowing a State to effectively set its own minimum.&lt;br /&gt;&lt;br /&gt;Back to our story.  The labor unions know that they are obsolete.  The functions they performed have been subsumed by the government.  They have nothing to offer immigrants -- except citizenship, which will make the immigrants eligible for all the benefits offered to citizens.  And the grateful immigrants would support the union, with its every-higher wage demands, until the day when they will be the Americans who won't do the jobs which some new group of immigrants will.&lt;br /&gt;&lt;br /&gt;The phrase 'jobs Americans won't do' dresses up a glaring falsehood.  It is not the case that there is a single job that Americans will not do -- given the proper compensation.  What those using the phrase really mean is that there are employment situations Americans won't accept, and for those jobs we need to find someone who is more desperate for work. Unwilling to pay what the minimum and union wages have set as the scale, employers are reaching out across the border to those who in their desperation will work harder, and for less.&lt;br /&gt;Is that not a direct consequence of the minimum wage and its union counterpart?&lt;br /&gt;&lt;br /&gt;Since we appear to be stuck with this foolish minimum wage, let us at least keep the Federal minimum where it is, if it can't be lowered, and allow States to set their own minima.&lt;br /&gt;&lt;br /&gt;Supporters of the minimum wage will no doubt label this entire post to be right-wing extremism.  It is rather a simple recognition of the reality that if there is a minimum wage, there will always be jobs which disappear, or which employers are forced by simple economic necessity to give to the foreigner sojourning among us.&lt;br /&gt;&lt;br /&gt;As I said, I'm all for immigration.  I just want the people who come here to want to be Americans, not simply workers -- or a source of dues.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-114482286430025916?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/114482286430025916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=114482286430025916' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/114482286430025916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/114482286430025916'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2006/04/unions-minimum-wage-and-immigration.html' title='Unions, Minimum Wage, and Immigration'/><author><name>Loren Heal</name><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-13220950.post-114308392474105164</id><published>2006-03-22T21:18:00.000-06:00</published><updated>2006-04-03T12:58:00.693-05:00</updated><title type='text'>War in the Extranational Age</title><content type='html'>The Global War on Terror is not just a war against Usama bin Laden, al-Qa'ida, or anyone else.  It's a war against an idea: the idea that one may use the threat of sabotage and fear against civilian targets to achieve a political advantage.  That idea has no nation to call its own; the tools needed to fight it will at times have to ignore national boundaries and at others insist that those boundaries be observed.&lt;br /&gt;&lt;br /&gt;Likewise, the Global War on Terror is not simply about 9/11.  To say that it is would imply that the war is about petty vengeance, which would not justify the massive effort expended even thus far. It also is not merely about bringing those responsible to justice.  It is for nothing less than survival, and yet it is for more than that. The Global War on Terror is an  attempt to structure the shifting framework of geopolitics in a way that will allow civilization on our planet to continue.&lt;br /&gt;&lt;br /&gt;The  rise of satellite communications, the Internet, and the global economy are making changes that are fundamental to civilization.  Just as city-states replaced tribes and clans, and  nations replaced city-states, a new &lt;span style="font-style: italic;"&gt;extranationalism &lt;/span&gt;has begun. People of all kinds, enabled by rapid international communication, are &lt;a href="http://sourcery.blogspot.com/2005/06/green-tennis-shoes-principle.html"&gt;forming groups based on shared interests&lt;/a&gt; rather than geography or simple ethnicity.&lt;br /&gt;&lt;br /&gt;We must recognize that across the world, loyalty to a nation is being overshadowed by loyalty to ideologies, and that the rapid growth of extranational movements may soon cause their power to rival that of geography-based government.   At the same time, government is becoming more centralized and planetary.  The centralization may include the intermediate step of continental coalitions, but absent some reversal in the march of technology, a single world government looks inevitable. The future appears to be a constant battle between  geographical and special interest loyalties for the hearts and minds of the masses.&lt;br /&gt;&lt;br /&gt;The world over, mobs enraged alternatively by religious and political demagogues storm the streets, demanding their way. Jihadist, socialists, and affectist posers scream and destroy in an attempt to gain by force of tantrum what they cannot by force of reason attain.   Like petulant, undisciplined children demanding yet another piece of candy, these children in adult clothing surge forth insisting on their way.&lt;br /&gt;&lt;br /&gt;Their movements take on a will that is distinct from the reason possessed by individuals, for that is the nature of mobs.  Once set in motion, it will not alter its beliefs unless individuals, one by one, separate themselves from it by establishing their own identity or by identifying with another movement.&lt;br /&gt;&lt;br /&gt;The jihadist movement will not stop until it encompasses the world. If given what it wants now, it will not be satisfied but will want more. It will kill us, our children, our friends, their children, and anyone else who will not merely tolerate but adopt its narrow religious viewpoint and become one with it. It enforces on its adherents the belief that it is not merely their right, but their sacred duty to rid the world of anyone and anything that opposes its ideology.&lt;br /&gt;&lt;br /&gt;And the jidadist movement will, by definition, always believe that. The world is a real place, not the peaceful country herb garden in which some of us would like to spend our days, admiring each other's boldness in assigning ourselves blame. On our planet, men can convince themselves of all manner of things which seem right, but in the end lead to destruction.&lt;br /&gt;&lt;br /&gt;The socialist movement, also, will not stop until it rules the world. If we give it what it wants now, it will not be satisfied but will want more. It does not seek necessarily to kill, but merely to enslave us, our children, our friends, their children, and anyone else. The economic Ponzi scheme that is socialism requires it.&lt;br /&gt;&lt;br /&gt;And in that, we are not the same as they are. We do not wish to force them to accept our beliefs, except our ideal of tolerance. We do not ask that they change even their beliefs, only their actions. As Mr. Bush said, "America has no empire to extend or utopia to establish. We wish for others only what we wish for ourselves -- safety from violence, the rewards of liberty, and the hope for a better life."&lt;br /&gt;&lt;br /&gt;Given the foregoing as backdrop, the Global War on Terror can be seen as a first battle between nations and extranational interest groups.  An analogous, but hopefully less violent conflict is looming between multinational (ie, extranational) corporations, labor movements, and the nation-states that serve respectively as customers and a source of members for them.   Other movements, including environmentalism and more traditional ideologies such as political ideologies and religions will also play a role in weaving the fabric of future geopolitics as rapid communication continues to negate geography's advantage.&lt;br /&gt;&lt;br /&gt;So how does one fight an enemy that has no physical face? How does one do battle with an idea? The method chosen by U.S. President George W. Bush is to use the ephemeral nature of the enemy against it.  Since the members have to live somewhere, we use our common bond with the nation-state in which they reside as leverage. An extranational movement may not be rational, but a nation is more likely to be, at least by comparison. In that regard, our method of battling terror is not simply a case of seeing a nail because all we have is a hammer.&lt;br /&gt;&lt;br /&gt;As Wikipedia puts it in comparing the American stance in the Cold War with the Bush policy on terrorism, "the previous policy of deterrence assumes that a potential enemy is a coherent and rational state that would not launch an attack that would likely result in its own destruction...."&lt;br /&gt;&lt;br /&gt;The tenets of the  &lt;a href="http://en.wikipedia.org/wiki/Bush_doctrine"&gt;Bush Doctrine&lt;/a&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;There is no distinction between terrorists and those who harbor them&lt;/li&gt;&lt;li&gt;The U.S. will engage in preemptive warfare to prevent terrorist attacks&lt;/li&gt;&lt;li&gt;The U.S. will attempt to form alliances to fight terror, but will act unilaterally to defend its interests&lt;/li&gt;&lt;li&gt;The U.S. will attempt to keep its military power sufficient to achieve these ends&lt;/li&gt;&lt;/ul&gt;Those who support terrorists with financing, technology, or in similar ways are complicit in their crimes.  They must be stopped.&lt;br /&gt;&lt;br /&gt;We hope that it isn't necessary to wipe out our enemies. We hope that it's only necessary to show them that terror has consequences, and that those consequences are a net negative for their cause.  While ultimately the growth of rational and positive ideologies in extranational groups will be more effective, it is suicide not to fight the irrational and negative with whatever tools are available.&lt;br /&gt;&lt;br /&gt;The time-honored principle in international relations is to show and tell a nation what it can and cannot do, or rather what it can expect if it tries, and then let its internal politics adjust.  It can take decades, as with Germany in the past century.&lt;br /&gt;&lt;br /&gt;Enforced national self interest is the model by which the world has operated, by and large, since before our nation was founded.  The terrorist interest groups strain that model; in a transcendant stroke of genius, the Bush Doctrine brings it to bear.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-114308392474105164?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/114308392474105164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=114308392474105164' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/114308392474105164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/114308392474105164'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2006/03/war-in-extranational-age.html' title='War in the Extranational Age'/><author><name>Loren Heal</name><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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13220950.post-114298711015218147</id><published>2006-03-21T17:56:00.000-06:00</published><updated>2006-03-21T19:07:23.856-06:00</updated><title type='text'>The Tyrant</title><content type='html'>There is a Tyrant among us.  He lurks, growing his support in our nation's capitol, in the halls of academia, and in corner diners and shopping malls.&lt;br /&gt;&lt;br /&gt;He is waiting patiently for his chance to bypass the Constitution and rule by His Will alone.&lt;p&gt;&lt;/p&gt;&lt;p&gt;Who is this Evil One I oppose, this charming despot who will turn this once great nation into His plaything?&lt;/p&gt;You already know him.  His name is in the news every day.&lt;p&gt;He beams with pride whenever you hear, "the polls show that the American people ...."&lt;/p&gt;&lt;p&gt;When I hear those words, I brace myself for what's coming next.  When the press, politicians, or pundits preface a statement with what the polls show, it is almost always because they agree with the poll but can't justify their opinion with solid reasoning.  Popular opinion stands as an irrefutable argument.&lt;/p&gt;&lt;p&gt;Polling numbers have become the new dogma, an authority which cannot be questioned without opening oneself to the charge of autocracy.  "What, you don't care what the people think?"&lt;/p&gt;&lt;p&gt;It may come as a shock, but the majority is not always right.  No, I'm not so naive as to think the pollsters and their addicts really care what their polls say, because for the most part polls are designed to return a desired answer.&lt;/p&gt;&lt;p&gt;But popular opinion, if it can be guaged correctly, is as fickle as March weather. That is why our Constitution lays out layer after layer buffering the will of the majority from holding sway.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;span style="font-size:100%;"&gt;&lt;li&gt;We elect a Congress to argue amongst each other, and not just one house but two. Senators, whose task is to "deliberate" (ie, drag their feet), have &lt;em&gt;six years&lt;/em&gt; to let their constituents get over an unpopular action.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;We don't elect an executive directly, but instead our States do.  That's partly to keep small, populous urban areas from ruling over the vast countryside.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Nowhere in the Constitution is a  referendum prescribed.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/span&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;And yet our politicians govern by polls.  Our press and pundits love to use a poll as a handy club. Leave aside your opinion of the war on terror, the Iraqi part in it, and take, for instance, &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Tim_Russert"&gt; Tim Russert&lt;/a&gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;on NBC's &lt;em&gt;Meet The Press&lt;/em&gt; (Sunday, March 19, 2006).  General &lt;a href="http://en.wikipedia.org/wiki/George_Casey"&gt;George Casey&lt;/a&gt;, commander of coalition forces in Iraq, had just finished explaining that troop levels would continue a gradual decrease while the Iraqis continue to take on more and more responsibility for their own defense.  &lt;/span&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Showing polling numbers showing Americans thinking troop levels are too high and believing that we have little likelihood of eventual success, Russert asked General Casey, "&lt;/span&gt;Can you continue to conduct a war without the support of the American people?&lt;span style="font-size:100%;"&gt;"  The question, disingenous though it was, carried with it the weight of&lt;/span&gt;&lt;span style="font-size:100%;"&gt; alleged &lt;/span&gt;&lt;span style="font-size:100%;"&gt; popular opinion.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;There are those who label incorrectly the "tyranny of the majority" any action by the majority which the minority doesn't support.  That is mere self-serving hyperbole, however, meant to deny the duly elected majority its just authority to rule.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Tyranny is the mob in the street calling for the &lt;a href="http://confederateyankee.mu.nu/archives/163723.php"&gt;right to work badly&lt;/a&gt; or demanding that everyone adopt the mob's dogma or &lt;a href="http://photos1.blogger.com/blogger/5446/879/320/islam-beheading_004.0.jpg"&gt;forfeit&lt;/a&gt; life or limb.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;As John Stuart Mill &lt;a href="http://www.serendipity.li/jsmill/on_lib.html"&gt;wrote&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt;Society can and does execute its own mandates; and if it issues wrong mandates instead of right, or any mandates at all in things with which it ought not to meddle, it practices a social tyranny more formidable than many kinds of political oppression, since, though not usually upheld by such extreme penalties, it leaves fewer means of escape, penetrating much more deeply into the details of life, and enslaving the soul itself. Protection, therefore, against the tyranny of the magistrate is not enough; there needs protection also against the tyranny of the prevailing opinion and feeling, against the tendency of society to impose, by other means than civil penalties, its own ideas and practices as rules of conduct on those who dissent from them; to fetter the development and, if possible, prevent the formation of any individuality not in harmony with its ways, and compel all characters to fashion themselves upon the model of its own.  -- On Liberty&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;The answer to Russert's question, by the way, is that yes, General Casey can continue the war without popular approval.  He is not beholden to the Tyrant; his charge comes through the chain of command from the President, the Commander in Chief. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;And I am made glad that we live in a republic and not a democracy, that we are governed by those we deem wise and not by our own whims.  I am glad that our forebears knew not to construct a nation to be ruled by topical referenda.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;For the Tyrant, of course, is us.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-114298711015218147?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/114298711015218147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=114298711015218147' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/114298711015218147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/114298711015218147'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2006/03/tyrant.html' title='The Tyrant'/><author><name>Loren Heal</name><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-13220950.post-114295911939063844</id><published>2006-03-21T10:37:00.000-06:00</published><updated>2006-03-21T16:38:22.356-06:00</updated><title type='text'>Decision-making made easy</title><content type='html'>Well, sort of.&lt;br /&gt;&lt;br /&gt;A complex decision is a whole bunch of trade-offs, profit-and-loss variables. Each variable has a probability associated with it, and they can cascade together. I use a system of "expected value" summations, and it works pretty well.&lt;br /&gt;&lt;br /&gt;For instance, in buying a car there is the price (and the 100% likelihood that you'll have to pay it), a set of features, and a set of unknown costs (maintenance), and a set of emotional value points (prestige, convenience, dependability). Each of the costs has a probability that you'll incur it, and each of the values has a probability that you'll receive it. Some of them are related, and may need to be refactored to make the math work out for you.&lt;br /&gt;&lt;br /&gt;You multiply each of the costs and outcomes (positive and negative) with their value to you (on some scale of your choosing) and their probability of occurring, and sum them all up. That choice gets a score.&lt;br /&gt;&lt;br /&gt;Compare the score from all of the other choices you could make, and your decision is made.&lt;br /&gt;&lt;br /&gt;The nice thing about this system is that by breaking down the fuzzy-factor "value" for each outcome and pairing it with a probability, you see the real cost for each while simultaneously hiding the answer from yourself. Subconciously you will tend to favor the choice you want to make, but be careful that you don't fudge the probabilities.&lt;br /&gt;&lt;br /&gt;As a simple example, consider recreational sky-diving. The value you get from jumping -- a rush, some prestige, and maybe some sex out of it somehow -- compares with a (call it) 99% probability of landing safely and a (call it) 1% probability of landing with a splat.&lt;br /&gt;&lt;br /&gt;For me, I assign a pretty high value to keeping my skin intact.  How much would I pay someone not to flatten my skull?&lt;br /&gt;&lt;br /&gt;stay on ground = free + 0 (death from falling) + 0 (fun)&lt;br /&gt;       = 0&lt;br /&gt;skydiving = -$50 +&lt;div class="commentBody"&gt;&lt;nobr&gt; &lt;wbr&gt;&lt;/nobr&gt;.01 (death from falling) +&lt;nobr&gt; &lt;wbr&gt;&lt;/nobr&gt;.99 (fun)&lt;br /&gt;       =  -$50 - 1/100 (very big number) +&lt;nobr&gt; &lt;wbr&gt;&lt;/nobr&gt;.99 (small number)&lt;br /&gt;       = (probably something negative, and I have to pay 50 bucks).&lt;br /&gt;&lt;br /&gt;As a side note, you can see that the resultant costs of a decision and the cost to make it happen are just two labels for the same thing. That is, whether something is a cost or benefit is just the sign on the term.&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/13220950-114295911939063844?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/114295911939063844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=114295911939063844' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/114295911939063844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/114295911939063844'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2006/03/decision-making-made-easy.html' title='Decision-making made easy'/><author><name>Loren Heal</name><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-13220950.post-114274835648530643</id><published>2006-03-18T23:48:00.000-06:00</published><updated>2006-03-19T19:19:20.980-06:00</updated><title type='text'>I know my rights</title><content type='html'>Do you?&lt;br /&gt;&lt;br /&gt;I've been thinking lately about human rights.  You know, the kind for which men died at Normandy, at Lexington, and  Golgotha.&lt;br /&gt;&lt;br /&gt;That kind which stem not from the lifestyle to which you are accustomed, not from your power to secure them, nor from government largesse, but those which you have by virtue of your existence.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Warning&lt;/span&gt;: I have made no effort to keep the following suitable for the small-minded in general nor for Hate Crimes Commissioners in particular. Others may read freely on...&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;...&lt;a href="http://www.ushistory.org/declaration/document/index.htm"&gt;We hold&lt;/a&gt; these truths to be self-evident, that all men are created equal, that they are endowed by their Creator with certain unalienable Rights, that among these are &lt;b&gt;Life&lt;/b&gt;, &lt;b&gt;Liberty&lt;/b&gt; and the &lt;b&gt;pursuit of Happiness&lt;/b&gt;. — That to secure these rights, Governments are instituted among Men, deriving their just powers from the &lt;b&gt;consent of the governed&lt;/b&gt;....&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Those familiar words are the milk on which young American minds are weaned away from innocence and into the stark world of defiant individualism.  They tell us that there are universal truths, and that these truths are laid manifestly before the eyes of anyone who looks upon the human condition.&lt;br /&gt;&lt;br /&gt;Government, it is revealed, exists to keep men from violating each other's rights.&lt;br /&gt;&lt;br /&gt;But what are these rights?  The Declaration decries violations sufficient to motivate revolt, and the Constitution, as amended, gives some more examples that are explicitly protected. But the writers of those documents seemed to deny steadfastly the urge to make a complete list.  I believe they were wise in that denial, which has compelled each generation thereafter to lay claim to those which were not enumerated and by so doing to revalidate those which were.&lt;br /&gt;&lt;br /&gt;Rather than attempt an exhaustive list myself, I will attempt only those which are axiomatic. That is, which rights are the truly fundamental ones, without which the people are enslaved to tyrants?&lt;br /&gt;&lt;br /&gt;It seems to me that the Declaration's "life, liberty, and the pursuit of happiness" are categories of rights, rather than particular rights themselves. These categories are merely for convenience. The rights reinforce each other, each standing in the stead of the others when the wall of their protection is breeched.  All people everywhere, unless they yield them by due process or temporary emergency,  have the right to:&lt;br /&gt;&lt;br /&gt;Life ...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;to stay alive&lt;/li&gt;&lt;li&gt;to eat and drink&lt;/li&gt;&lt;li&gt;to breath air, and see the sky&lt;/li&gt;&lt;li&gt;to parental supply of food, shelter, and love&lt;br /&gt;&lt;/li&gt;&lt;li&gt;to practice their beliefs&lt;/li&gt;&lt;li&gt;to choose their own medical treatment&lt;br /&gt;&lt;/li&gt;&lt;li&gt;to mate and procreate&lt;/li&gt;&lt;li&gt;to raise children&lt;/li&gt;&lt;li&gt;to privacy&lt;/li&gt;&lt;/ul&gt; Liberty ...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;to travel&lt;/li&gt;&lt;li&gt;to use weapons&lt;/li&gt;&lt;li&gt;to participate in government&lt;/li&gt;&lt;li&gt;to due process&lt;/li&gt;&lt;li&gt;to equal treatment under the law&lt;br /&gt;&lt;/li&gt;&lt;li&gt;to speak and write, and to disseminate the results&lt;/li&gt;&lt;/ul&gt;and the Pursuit of Happiness&lt;br /&gt;&lt;ul&gt;&lt;li&gt;to choose and direct their education, vocation, and avocations&lt;/li&gt;&lt;li&gt;to own and use property&lt;/li&gt;&lt;li&gt;to take risks&lt;br /&gt;&lt;/li&gt;&lt;li&gt;to assemble&lt;/li&gt;&lt;/ul&gt;People have the right to stay alive, from the moment of conception to the moment they cease to function. Minor children have a right to nurture from their parents, or in absence of parents, from the nearest adult. Parents have a corresponding right to direct their children's upbringing and instruction in the ways of the world.&lt;br /&gt;&lt;br /&gt;Clean, breathable air is everyone's right.  So is dirtying it with smoke and other pollutants, to a certain extent. I'm not smart enough to say how to balance those.&lt;br /&gt;&lt;br /&gt;Assembly can be a powerful tool in the constant battle against overbearing government. Without Assembly, Speech loses much of its salinity and Belief may as well be lost.  I still place Assembly under Pursuit of Happiness, because it is not just political, but social and recreational as well.&lt;br /&gt;&lt;br /&gt;The right to privacy is the essence of a limited government, for if government can inspect us to any degree it desires then we are in its power to that same degree.  We are only as free as we are private.&lt;br /&gt;&lt;br /&gt;Similarly, the right to travel is as fundamental as the others.  If we are not free to go, then we are not free. Without a right to travel, we can't Assemble, and we can't Pursue Happiness.&lt;br /&gt;&lt;br /&gt;I'll conclude with one observation which I hope will serve to illustrate fully the point of the interdependence of the rights.  The freedoms of Speech and Press are one side of a coin that has as its opposite face the right to own and use weapons.  They are the Pen to its Sword; if government removes one, it will surely pay with the other.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-114274835648530643?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/114274835648530643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=114274835648530643' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/114274835648530643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/114274835648530643'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2006/03/i-know-my-rights.html' title='I know my rights'/><author><name>Loren Heal</name><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-13220950.post-114227049377869648</id><published>2006-03-13T10:36:00.000-06:00</published><updated>2006-03-13T12:10:21.590-06:00</updated><title type='text'>The Right to Keep and Bear Nuclear Arms</title><content type='html'>While I think trying to keep a lid on the Pandora's Box of nuclear technology is a worthy goal, I'd put its odds of success at about the same as someone living forever. Sooner or later, Chance will get you, and sooner or later, someone will make something so awful that it will wipe us all out.  And sooner or later, someone with malice in their heart will gain control of a nuclear weapon.&lt;br /&gt;&lt;br /&gt;What to do, what to do?&lt;br /&gt;&lt;br /&gt;A long time ago,  someone noticed that if  saltpeter,  charcoal, and sulfur were mixed together, it burned really well.  Others through the ages varied the mixture, discovering that if a 4:1:1 mixture were used, it exploded.  Very quickly, in historical terms, someone used the mixture in a weapon.  That made a gun, and the mixture came to be called gunpowder.&lt;br /&gt;&lt;br /&gt;The invention of a portable weapon that could fell an armored man on a horse changed the balance of power between government and the governed, and also among nations.  This new technology radically increased the leveraged power a person could wield, whether that person be a lone assassin, a ship's commander, or a king.&lt;br /&gt;&lt;br /&gt;The men who founded the United States believed in the enlightenment of mankind.  They believed that individuals could be trusted with their own governance, and moreover that they &lt;span style="font-style: italic;"&gt;must&lt;/span&gt; be so trusted.  It was the right and responsibility of each individual to leverage the best technology available, the gun, and so limit the abuse of that leverage that others around them would be willing or able to perform.  They reasoned that the threat of forces was meaningless unless it could be present when needed, and that meant allowing individuals to arm themselves.  To them, it was a necessary, though not sufficient, condition for civilization.&lt;br /&gt;&lt;br /&gt;Allowing individuals to become part of the mechanism of order is necessary if they are to be trusted with the rights we believe they inherit from Nature (or from the Creator).  There can be no right to self governance without a corresponding responsibility to come to the defense of a neighbor.&lt;br /&gt;&lt;br /&gt;Eventually, people found other explosives, and other ways to leverage their power.  Seeking a way to stop Japanese pilots from using the leverage of their airplanes to destroy ships many times their size, people created a weapon small enough to fit on a truck that could destroy a city.&lt;br /&gt;&lt;br /&gt;I grew up in a world in which the only question was which armageddon would get us first, nuclear or Biblical. Those questions went to the back burner for a while when the Berlin Wall came down, but now we have a whole range of new threats, any one of which could figuratively or literally explode on us.&lt;br /&gt;&lt;br /&gt;We now live in a world where the leverage a person can exert is enormous, and rapidly increasing. Nuclear bombs, jets full of people, microsubmarines, trains carrying thousands of tons steel and cars full of nasty chemical reagents, space vehicles, and the power grid are all powerful tools, especially in combination, and there are still others. The Internet and the extension of the voice network to cell and satellite phones make it possible to carry out action at a distance with these tools virtually anywhere on Earth.&lt;br /&gt;&lt;br /&gt;This exponential increase in leverage, from being able to bring down a charging knight to being able to derail a train from a cell phone in another hemisphere, is still only a difference in magnitude.  The principle remains that civilization requires  individuals to have access to the same technology that others have.  In particular, individuals must be able to defend themselves from tyrants, and a terrorist must believe that a swift, painful failure awaits those who abuse their leverage of technology.&lt;br /&gt;&lt;br /&gt;Nuclear non-proliferation is a reaction to the terrifying nature of that type of weapon.  The idea, of course, is to keep the technology in the hands of those responsible enough not to use it.  These weapons, it is thought, pass a  threshhold beyond which the principles of enlightened self-governance no longer apply.  People can't be trusted with that much leverage.&lt;br /&gt;&lt;br /&gt;However, there are many other tools available to those bent on abusing leverage.  Having abandoned the historical premise that individuals have a right to leverage, we are now paying the price.  We must police everyone, everywhere at once, while still trying to hold on to our own right not to be policed.  Something has to give.  If we continue to demand our freedoms without also demanding our responsibilites, we will eventually find ourselves with neither.&lt;br /&gt;&lt;br /&gt;I guess I don't advocate letting everyone have nukes.  But for a rogue nation or terrorist to get them is not the end of the world.  Sacrificing our ideals to stop them might be.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-114227049377869648?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/114227049377869648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=114227049377869648' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/114227049377869648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/114227049377869648'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2006/03/right-to-keep-and-bear-nuclear-arms.html' title='The Right to Keep and Bear Nuclear Arms'/><author><name>Loren Heal</name><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-13220950.post-114132152156601955</id><published>2006-03-02T11:25:00.000-06:00</published><updated>2006-03-02T11:45:21.596-06:00</updated><title type='text'>Parasuits</title><content type='html'>Maybe it's always been this way.  Maybe there have always been people whose sole function is to siphon resources away from their proper use.&lt;br /&gt;&lt;br /&gt;But along with the information economy there is developing a new species, that appears to have DNA sliced from the rat, the weasel, and the leech.  They infest the seamy underworld of our electronic ecosystem, finding ways to gain advantage by playing the system.&lt;br /&gt;&lt;br /&gt;I'm referring to those folks engaged in:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Search engine optimization&lt;/li&gt;&lt;li&gt;Targeted email marketing (spam, by any other name)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The spyware biz&lt;/li&gt;&lt;li&gt;Creation of web pages to plagiarize content&lt;/li&gt;&lt;li&gt;Selling or employing popup, flash,  and other annoying ads&lt;/li&gt;&lt;li&gt;Astroturfing and 'guerrilla marketing'&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Any other deceptive online marketing&lt;/li&gt;&lt;/ul&gt;They ruin my ability to find what I want online, they choke my email inbox with their filth and useless hype, try to use my computer against my will, and try to trick me into buying things I don't want.&lt;br /&gt;&lt;br /&gt;They have no other skill than the art of deception, using resources that aren't theirs to make money they don't deserve.  They are empty-suited parasites, "parasuits".&lt;br /&gt;&lt;br /&gt;And there's a special corner of Hades reserved for just for them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-114132152156601955?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/114132152156601955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=114132152156601955' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/114132152156601955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/114132152156601955'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2006/03/parasuits.html' title='Parasuits'/><author><name>Loren Heal</name><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-13220950.post-114123761284972544</id><published>2006-03-01T12:25:00.000-06:00</published><updated>2006-03-01T12:32:15.146-06:00</updated><title type='text'>The Religious Left and Activist Right</title><content type='html'>&lt;p&gt;For many people, political activism for their causes takes on a religious role in their lives. It gives their lives meaning and makes them feel part of a larger whole in the way that religion does.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;For other people, conformity to the values of their religion requires them to have certain political views, and to be active with them. Taking action displays their faith to themselves and others, because our values are shown by what we do.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Religious views become mixed up with political ones, to a greater or lesser extent. Religious values say that helping the poor is Good, that chastity is Good, or that being kind to other species is Good. Adherents then are prone to wanting those Good things put into law, or at least to have their government support their practice. And it is an affront to them for their government to fund things with which they disagree.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Like numbers brought to life, people see themselves as having a "right" or "left" sign. They belong to one side or the other, and think they have to conform to all of the beliefs associated with that side. The religious overtones for certain issues bring religious conformity to bear. It's peer pressure.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;And I think without the desire to be seen positively by our peers, only the greedy and power hungry would be active.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-114123761284972544?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/114123761284972544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=114123761284972544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/114123761284972544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/114123761284972544'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2006/03/religious-left-and-activist-right.html' title='The Religious Left and Activist Right'/><author><name>Loren Heal</name><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-13220950.post-113103514344679536</id><published>2005-11-03T10:18:00.000-06:00</published><updated>2005-11-03T10:25:43.463-06:00</updated><title type='text'>The Big Game</title><content type='html'>Open Source advocates often  miss the big picture in trying to advance the cause of Free Software and Open Source Software.  It's not about winning at all costs over Microsoft. That's their game. Our game is about "free"-dom: freedom of choice of OS, free beer, and freedom of choice in implementation.&lt;br /&gt;&lt;br /&gt;I don't care if 1%, 10%, 51%, or 100% of people choose Linux for their desktop. Sure, I'd rather have a sizeable market share, since that makes life easier in terms of support and finding documentation. But "winning" is not the goal. Improving the product is the goal.&lt;br /&gt;&lt;br /&gt;Improving the product requires putting out several forks (or competing versions based on a common ancestor) and seeing what works. I suspect that no single desktop will please everyone. No single package management system will please everyone. Case in point: I don't like rpms or debs. I like the &lt;a href="http://www.encap.org"&gt;Encap&lt;/a&gt; system. Why should I have to put up with something I don't like just because everyone else likes it?&lt;br /&gt;&lt;br /&gt;If it takes becoming Windows to "beat" Microsoft, then I don't want to beat Microsoft.  Improve the product. Don't copy an inferior one just because it happens to be more popular.&lt;br /&gt;&lt;br /&gt;Don't be fooled into playing someone else's game just because they think of you as their opponent in it. Play your own game, and if they want to play that, then beat the crap out of them at it. But don't play theirs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-113103514344679536?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/113103514344679536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=113103514344679536' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/113103514344679536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/113103514344679536'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2005/11/big-game.html' title='The Big Game'/><author><name>Loren Heal</name><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-13220950.post-111905761383826904</id><published>2005-06-17T20:18:00.000-05:00</published><updated>2005-06-17T20:47:54.363-05:00</updated><title type='text'>Security features for fun and profit</title><content type='html'>(I posted a version of this &lt;a href="http://slashdot.org/comments.pl?sid=153009&amp;cid=12838142"&gt;on Slashdot&lt;/a&gt; as a reply to someone's comment expressing doubt about Microsoft's true level of interest in shifting their corporate focus to securing their software).&lt;br /&gt;&lt;hr /&gt;To Microsoft, security is about &lt;i&gt;features&lt;/i&gt;. A builtin "firewall", VPN, encryption of this or that, trusted something or other. Applets and wizards.&lt;br /&gt;&lt;p&gt;They're basically stuck in that position, too. The cash cow is actually layer upon layer of such features, fundamentally designed for a different, and far less ambitious, job than it's now asked to perform.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I'd better stop, or I'll go into full-on rant mode. Oops, too late.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Windows needs a complete rewrite, but that's not enough. If they did that now, they'd wind up with the same sorts of problems they currently have.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Even a total refocus on security is not enough. They have to change who they are as a company. &lt;/p&gt;&lt;p&gt;It's my understanding that at Microsoft, as at many software companies, the prestige and resources allotted to a group of programmers is determined by how much revenue their piece of the product will produce.&lt;br /&gt;&lt;/p&gt; &lt;p&gt;To make software customers can trust, they will have to change that mindset.&lt;br /&gt;&lt;/p&gt; &lt;p&gt;To a software business the value of a &lt;i&gt;product&lt;/i&gt; can be measured by how much money it makes, but it's an unholy error of the stupidest freshman sort to value individual parts of the design by how much they'll bring in. Some parts are so essential, and some phases of design so vital, that without proper attention paid to them the overall product falls on its face.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The marketplace doesn't know enough about the inner workings of your product to tell you what value to place on any particular phase of design. The market (eventually) tells you how well it likes the finished product versus your competitor's, but hidden design processes aren't part of the comparison.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Security has got to be considered at every step of the design process. It follows along with robustness, portability, scalability, and overall algorithmic soundness.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I have a suggestion for you Microsoft design managers out there, for the next time your boss says, "Hey, let's make [X] really easy - that would really sell!".  Don't just nod.  Look at them and say, "Maybe, but it would also be simple to exploit."&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The response will tell you how far the focus has really shifted.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-111905761383826904?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/111905761383826904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=111905761383826904' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/111905761383826904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/111905761383826904'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2005/06/security-features-for-fun-and-profit.html' title='Security features for fun and profit'/><author><name>Loren Heal</name><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-13220950.post-111819229685297344</id><published>2005-06-07T19:51:00.000-05:00</published><updated>2005-06-07T20:01:22.426-05:00</updated><title type='text'>Election Recounts and the System</title><content type='html'>&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; In sports, each coach has his own system. Sometimes they're really well crafted, honed over years of experience, and work. Sometimes they're stupid. However, even a crappy system can result in victory if the players all play within it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;A business works the same way, usually. A crappy boss can ruin efficiency, but a boss in business is really one of the players. Adherence to the system is the surest path to success, since only by adhering to it can you tell if it's working.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;And so it is with elections in democratic republics. The election may have various kinds of errors, but generally the errors will be divided equally among the candidates. The voters can be "wrong", but since it's an election the voters are by definition "right", even when they make a mistake on their ballot.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;My advice to candidates in close elections: ask for a recount, accept the results and if you lose ... go back to chasing ambulances.&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/13220950-111819229685297344?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/111819229685297344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=111819229685297344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/111819229685297344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/111819229685297344'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2005/06/election-recounts-and-system.html' title='Election Recounts and the System'/><author><name>Loren Heal</name><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-13220950.post-111807395562871047</id><published>2005-06-06T10:30:00.000-05:00</published><updated>2005-06-06T11:39:46.730-05:00</updated><title type='text'>The Green Tennis Shoes Principle</title><content type='html'>Before the Industrial Revolution, people had to create and sell things that appealed to those around them. It took a long time to find people who were interested in an obscure product, especially since the more obscure the product the more likely a person was to keep their interest in it hidden.&lt;br /&gt;&lt;br /&gt;After the Industrial Revolution, with more efficient means of production and delivery, a factory could satisfy the market for a particular kind of item in a larger and larger geographical area. Still, only those products with a known market were produced in quantity. The advertizing industry flourished in this environment, since there was a need to attract people to a product and convince them that they needed it.&lt;br /&gt;&lt;br /&gt;One of the first uses of the Internet was Usenet,  a method of transporting and categorizing electronic discussions for anyone connected to the network. At first the topics were related to computing technology, but topic areas soon branched into every area from Art to Zoology. The people discussing those topics often could not find anyone in their locality who was interested in their particular topic.&lt;br /&gt;&lt;br /&gt;With the explosion of the World Wide Web in the mid 1990's, this trend also exploded. Every imaginable niche of interest is, or quickly can be, filled with a web site or blog devoted to that niche.&lt;br /&gt;&lt;br /&gt;Which brings me to the &lt;span style="font-weight: bold;"&gt;Green Tennis Shoes Principle&lt;/span&gt;:&lt;br /&gt;&lt;blockquote&gt;Somewhere in every geographical area there is a person whose life revolves around green tennis shoes.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;That's not to say merely that his life revolves around tennis shoes and he likes green ones the best, or that her hot button is the color green and she also really likes sneakers. No, these folks have green tennis shoes in their minds and on their feet all day long.  Please note that while the GTP may be literally true, I'm primarily using green tennis shoes metaphorically here.&lt;br /&gt;&lt;br /&gt;The Internet allows people who like green tennis shoes to find one another and to easily communicate about their favorite topic. That has the effect of increasing their boldness, setting aside social pressure they may feel to keep their verdant passion secret.&lt;br /&gt;&lt;br /&gt;Groups of all kinds are coalescing independently of advertizing. While many people have interests that are traditional and well-known, there are others that have found their life's passion but have no one to supply the materials they need to pursue it.&lt;br /&gt;&lt;br /&gt;Companies looking to exploit the Internet now need to invert their mindet from trying to convince customers that they need the company's product to finding the niches that are under-served by current production.&lt;br /&gt;&lt;br /&gt;If your company is trying to figure out how to use the Internet to make money, you would do well to rely on the GTP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-111807395562871047?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/111807395562871047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=111807395562871047' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/111807395562871047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/111807395562871047'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2005/06/green-tennis-shoes-principle.html' title='The Green Tennis Shoes Principle'/><author><name>Loren Heal</name><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-13220950.post-111755366448323492</id><published>2005-06-03T10:08:00.000-05:00</published><updated>2005-06-03T10:13:50.856-05:00</updated><title type='text'>The Disconnected</title><content type='html'>I live in a little town in the midwestern United States.  I suspect it's like a lot of other towns in the world.&lt;br /&gt;&lt;br /&gt;In my little town, everybody knows everybody else, mostly. There is a core of people who have lived here their whole lives, and who know everyone else who's always lived here. The friendly members of the core group also know the newcomers. If your parents didn't grow up in town, you're a newcomer. You're Disconnected.&lt;br /&gt;&lt;br /&gt;In my little town there aren't muggings, car jackings, or other violent crime. There are domestic disputes, and a while back an arsonist got to a few empty mobile homes out at the trailer park. They never officially accused park management.&lt;br /&gt;&lt;br /&gt;I drive an hour each way to work every day. I don't mind the drive itself, nor really the expense of the drive or what it does to the environment. I'm used to the hour in the car. The cost of living in my little town is a lot lower than in a city, so I'm keeping the oil companies in business instead of some landlord or bank. And I think the fields of corn and soybeans I drive past look fairly healthy despite, or the cynic in me says because of, my production of greenhouse gases.&lt;br /&gt;&lt;br /&gt;As a result of working an hour away from where I live, I'm Disconnected from my little town. My kids go to school there, and I try to be involved in the social life of the town, which revolves around church socials and softball games. But it's not the same as living and working around the same people.&lt;br /&gt;&lt;br /&gt;I suspect a lot of people are in the same boat. Fewer people these days live in the same town that produced their parents. Fewer children spend much time around their grandparents and extended family. Fewer married couples have the dense web of relationships to bind them together. Fewer old people have adult children nearby, which often forces them into a nursing home before it would otherwise be necessary.&lt;br /&gt;&lt;br /&gt;Looking back, I don't know what I'd do differently to stay connected, or if I really even want to.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-111755366448323492?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/111755366448323492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=111755366448323492' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/111755366448323492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/111755366448323492'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2005/06/disconnected.html' title='The Disconnected'/><author><name>Loren Heal</name><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-13220950.post-111756495638116531</id><published>2005-05-31T13:42:00.000-05:00</published><updated>2005-06-03T10:52:14.760-05:00</updated><title type='text'>The Lost Virtue of Charity</title><content type='html'>We seem to  have lost the concept of charity in debate.  I'm talking about informal debate as waged on blogs and on talk shows.&lt;br /&gt;&lt;br /&gt;In a debate, the principle of charity dictates that you interpet opposing arguments in the most favorable light. Rather than pick apart an opposing point the way it was made, you (perhaps silently) make the point the way it should have been made and then analyze the result. If you construct a stronger opposing case and defeat it, you can be more confident in the correctness of your position.&lt;br /&gt;&lt;br /&gt;If your goal is to search for truth, then charity is a strong ally.&lt;br /&gt;&lt;br /&gt;However, if your goal is simply to "win" the argument, then you can ignore charity. You should know that in many instances your victory will be hollow. There are times when a hollow victory is most expedient. But it may be that you defeat only the presentation of an opposing viewpoint, when you could achieve much more.&lt;br /&gt;&lt;br /&gt;For if you approach a debate with charity, those in the audience will see in you a greater understanding. Your opponents will be more inclined to offer you charity. Your focus will be on the flaws in the opposing &lt;span style="font-style: italic;"&gt;position&lt;/span&gt;, rather than on the opposing &lt;span style="font-style: italic;"&gt;debater&lt;/span&gt;. That will enable you to point out any flaws that exist.&lt;br /&gt;&lt;br /&gt;And finally, charity enables you to accept any valid points that your opponent makes, regardless of the quality of their presentation. Someday you may even "lose" a debate when you realize that your opponent missed a convincing point. There is no shame in changing your mind when you discover the truth about a matter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-111756495638116531?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/111756495638116531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=111756495638116531' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/111756495638116531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/111756495638116531'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2005/05/lost-virtue-of-charity.html' title='The Lost Virtue of Charity'/><author><name>Loren Heal</name><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-13220950.post-111721516824672633</id><published>2005-05-27T12:29:00.000-05:00</published><updated>2005-05-27T18:19:22.843-05:00</updated><title type='text'>What is Modern Sourcery?</title><content type='html'>It's just a catchy name.&lt;br /&gt;&lt;br /&gt;This is just a place where I can rant about   &lt;span style="font-weight: bold;"&gt;technology&lt;/span&gt; and its effect on&lt;br /&gt;&lt;ul&gt;&lt;li&gt;politics&lt;/li&gt;&lt;li&gt;marriage&lt;br /&gt; &lt;/li&gt; &lt;li&gt;home ownership&lt;/li&gt;&lt;li&gt;sports&lt;/li&gt;    &lt;li&gt;education&lt;br /&gt;&lt;/li&gt; &lt;li&gt;whatever else I think about&lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;It's my own little soap box, with the nice feature that probably  no one will ever see it.&lt;br /&gt;&lt;br /&gt;I'm not interested in "s o r c e r y".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13220950-111721516824672633?l=sourcery.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sourcery.blogspot.com/feeds/111721516824672633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13220950&amp;postID=111721516824672633' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/111721516824672633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13220950/posts/default/111721516824672633'/><link rel='alternate' type='text/html' href='http://sourcery.blogspot.com/2005/05/what-is-modern-sourcery.html' title='What is Modern Sourcery?'/><author><name>Loren Heal</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
