<?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/opensearch/1.1/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0' xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/&quot;DEMCRXY8eSp7ImA9WhZQFE4.&quot;'><id>tag:blogger.com,1999:blog-31079671</id><updated>2011-04-21T21:41:04.871-04:00</updated><title>Lorance Stinson</title><subtitle type='html'>Unix, shell scripting and other geeky things</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default?redirect=false&amp;v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>44</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry gd:etag='W/&quot;A0IHSXszfyp7ImA9WxJQF0o.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-830341672175693365</id><published>2009-05-31T10:08:00.004-04:00</published><updated>2009-05-31T10:18:58.587-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2009-05-31T10:18:58.587-04:00</app:edited><title>New BETA AWK CSV Parser</title><content type='html'>&lt;P&gt;As Mentioned before on &lt;A href="http://lorancestinson.blogspot.com/2008/12/rewriting-my-awk-csv-parser.html"&gt;Sunday, December 21, 2008&lt;/A&gt; I've been working on a new version of my AWK CSV parser. Working two jobs and trying to spend time with my Wife consumes an tremendous amount of my time. So unfortunately I have not made very fast progress. I have put up a new &lt;A href="http://lorance.freeshell.org/csv/"&gt;&lt;B&gt;BETA&lt;/B&gt; version&lt;/A&gt; on my website. This still needs more testing, but it is working quite well thus far.&lt;/P&gt;
&lt;P&gt;This has many major changes. The function has been renamed and more functions created. The error reporting has changed dramatically. There is also a new function that takes an array and creates a CSV string. I also changed the parser to start array counting at 1. This should put it more in line with how split() works. Please let me know if there are any problems. Either here as a comment or via email @ &amp;quot;LoranceStinson+CSV&amp;quot; at GMAIL dot &amp;quot;The usual&amp;quot;.&lt;/P&gt;
&lt;P&gt;Please keep in mind this is a &lt;B&gt;BETA&lt;/B&gt; version. I have not created a test suite for this yet. Once I get a chance I will work on that. I'm also working to rewrite my &lt;A href="http://lorance.freeshell.org/csvutils/"&gt;CSV Utilities&lt;/A&gt; to not only incorporate this new version of the parser but they are also getting some major work done to them as well. I'm changing option handling and will write proper documentation and a complete testing suite.&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-830341672175693365?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/830341672175693365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=830341672175693365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/830341672175693365?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/830341672175693365?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2009/05/new-beta-awk-csv-parser.html' title='New BETA AWK CSV Parser'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;C08NQnwyfCp7ImA9WxVTGUQ.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-2362126907092058636</id><published>2009-01-03T09:04:00.005-05:00</published><updated>2009-01-03T09:11:33.294-05:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2009-01-03T09:11:33.294-05:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='AWK'/><category scheme='http://www.blogger.com/atom/ns#' term='Golf'/><title>AWK Golf - pi eddition</title><content type='html'>&lt;P&gt;Another one from &lt;a href="http://stackoverflow.com/"&gt;Stack Overflow&lt;/a&gt;. This one to calculate pi using the &lt;a href="http://en.wikipedia.org/wiki/Leibniz_formula_for_pi"&gt;Leibniz formula for pi&lt;/a&gt;. I of course submitted my &lt;a href="http://stackoverflow.com/questions/407518/code-golf-leibniz-formula-for-pi#409064"&gt;solution in AWK&lt;/a&gt;. By the time I see them, the other languages I know well are already used.&lt;/P&gt;

&lt;P&gt;&lt;B&gt;awk 'BEGIN {p=1;for(i=3;i&amp;lt;10^6;i+=4){p=p-1/i+1/(i+2)}print p*4}'&lt;/B&gt;&lt;BR&gt;
-&gt; 3.14159&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-2362126907092058636?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/2362126907092058636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=2362126907092058636' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/2362126907092058636?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/2362126907092058636?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2009/01/awk-golf-pi-eddition.html' title='AWK Golf - pi eddition'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;C0MCRXk5eip7ImA9WxVTGUQ.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-2359996437513245489</id><published>2008-12-28T19:07:00.004-05:00</published><updated>2009-01-03T09:04:24.722-05:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2009-01-03T09:04:24.722-05:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='AWK'/><category scheme='http://www.blogger.com/atom/ns#' term='Golf'/><title>More AWK Golf</title><content type='html'>&lt;P&gt;An older AWK golf from the &lt;A href="http://www.facebook.com/home.php#/group.php?gid=2207384556"&gt;Facebook AWK group&lt;/A&gt;.&lt;/P&gt;

&lt;P&gt;My solution: &lt;B&gt;awk 'NR==1||$0!=p{print;p=$0}'&lt;/B&gt;&lt;/P&gt;

&lt;P&gt;From the post:&lt;/P&gt;
&lt;blockquote&gt;
Write an awk script that reads (from file or stdin), but filters out duplicate lines that are adjacent. Input cannot be assumed to be sorted.&lt;BR&gt;
&lt;BR&gt;
e.g.&lt;BR&gt;
a&lt;BR&gt;
a&lt;BR&gt;
a&lt;BR&gt;
b&lt;BR&gt;
b&lt;BR&gt;
c&lt;BR&gt;
c&lt;BR&gt;
c&lt;BR&gt;
a&lt;BR&gt;
a&lt;BR&gt;
&lt;BR&gt;
would become:&lt;BR&gt;
a&lt;BR&gt;
b&lt;BR&gt;
c&lt;BR&gt;
a&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/31079671-2359996437513245489?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/2359996437513245489/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=2359996437513245489' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/2359996437513245489?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/2359996437513245489?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2008/12/more-awk-golf.html' title='More AWK Golf'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;C0MCRXk5eip7ImA9WxVTGUQ.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-8899095252530630301</id><published>2008-12-26T16:11:00.008-05:00</published><updated>2009-01-03T09:04:24.722-05:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2009-01-03T09:04:24.722-05:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='AWK'/><category scheme='http://www.blogger.com/atom/ns#' term='Golf'/><title>AWK Golf</title><content type='html'>&lt;P&gt;Spotted an &lt;A href="http://stackoverflow.com/questions/392788"&gt;x-mas themed golf&lt;/A&gt; on &lt;A href="http://stackoverflow.com"&gt;Stack Overflow&lt;/A&gt;. I submitted &lt;A href="http://stackoverflow.com/questions/392788/code-golf-christmas-edition-how-to-print-out-a-christmas-tree-of-height-n#394177"&gt;my solution in AWK&lt;/A&gt;.&lt;/P&gt;

&lt;P&gt;&lt;B&gt;echo &amp;quot;8&amp;quot; | awk '{s=&amp;quot;#&amp;quot;;for(i=0;i&amp;lt;$1;i++){printf&amp;quot;%&amp;quot;$1-i&amp;quot;s%s\n&amp;quot;,&amp;quot;&amp;quot;,s;s=s&amp;quot;##&amp;quot;}printf&amp;quot;%&amp;quot;$1&amp;quot;s#\n&amp;quot;,&amp;quot;&amp;quot;}'&lt;/B&gt;&lt;/P&gt;

&lt;P&gt;&lt;blockquote&gt;
&lt;PRE&gt;
        #
       ###
      #####
     #######
    #########
   ###########
  #############
 ###############
        #
&lt;/PRE&gt;
&lt;/blockquote&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-8899095252530630301?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/8899095252530630301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=8899095252530630301' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/8899095252530630301?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/8899095252530630301?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2008/12/awk-golf.html' title='AWK Golf'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;C0MMQnw8eyp7ImA9WxVTGUQ.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-5777559277179164943</id><published>2008-12-21T15:13:00.002-05:00</published><updated>2009-01-03T09:04:43.273-05:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2009-01-03T09:04:43.273-05:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='AWK'/><category scheme='http://www.blogger.com/atom/ns#' term='Meta'/><title>Rewriting my AWK CSV parser</title><content type='html'>&lt;P&gt;I &lt;a href="http://lorancerambles.blogspot.com/2008/12/today-sun-dec-21-2008.html"&gt;posted this&lt;/a&gt; over on my &lt;a href="http://lorancerambles.blogspot.com/"&gt;personal blog&lt;/a&gt; and thought it would be good to copy it here. I know some people who follow this blog will be interested in this.&lt;/P&gt;

&lt;P&gt;I've been working on rewriting my &lt;a href="http://lorance.freeshell.org/csv/"&gt;AWK CSV Parser&lt;/a&gt; for a while now. I'ave made many changes and improvements, like handling whitespace around separators. I've also created a function for creating CSV strings correctly (harder than it seems). With the addition of the new functions the parser has been renamed to csv_parse. Gone is the global error variable, replaced with a function that takes error codes from csv_parse and returns the string equivalent. Today I did more cleanup, fixed more bugs with the changes and the new csv_create function. I've also started incorporating the changes into my &lt;a href="http://lorance.freeshell.org/csvutils/"&gt;CSV Utilities&lt;/a&gt;. csv2csv has been the first victim, and I've already fixed a bug I never noticed before. The performance has suffered slightly over the old versions, but I think being correct is worth it.&lt;/P&gt;

&lt;P&gt;There is still quite a bit of work to do though. I'm pondering changing to using getopts instead of a simple while; shift; loop in use now. The other csv2 utilities need to be converted over to the new parsing function. The -W option also needs to be added to trimming whitespace around the separators. The testing really needs to be improved. The testing shell script I created and have refined for some of my other projects, like my &lt;a href="http://lorancestinson.blogspot.com/2008/06/odd-awk.html"&gt;AWK data libraries&lt;/a&gt; (yet to be released) and &lt;a href="http://lorance.freeshell.org/charcode/"&gt;CharCode&lt;/a&gt;, would probably be best.&lt;/P&gt;

&lt;P&gt;A big change that I thought would be much harder is a change to newline handling. Now if -1 is passed for the newline string csv_parse returns -1 when a newline was expected. This will allow the caller to handle fetching the required data. Not every instance where csv_parse will be used would read data from the default source. Unfortunately the error codes have had to be rearranged to handle this. With all the other major changes already this didn't seem that big of a deal. And now I finally have a decent base to write a freeze/thaw routine for AWK. I've been pondering writing a routine to freeze arrays to a file and allow later thawing. The new CSV library makes this much easier to create.&lt;/P&gt;

&lt;P&gt;These utilities, and the AWK library they are based on, have been a lot of work to get right. They have also been some of the most useful things I have written yet. I have made extensive use of the library and utilities. csv2csv alone is extremely useful for rearranging the columns of CSV data.&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-5777559277179164943?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/5777559277179164943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=5777559277179164943' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/5777559277179164943?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/5777559277179164943?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2008/12/rewriting-my-awk-csv-parser.html' title='Rewriting my AWK CSV parser'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;AkEFR348eSp7ImA9WxdXEEs.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-9029963465625510113</id><published>2008-06-21T13:03:00.003-04:00</published><updated>2008-06-21T13:16:56.071-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2008-06-21T13:16:56.071-04:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Script'/><category scheme='http://www.blogger.com/atom/ns#' term='AWK'/><title>Odd AWK</title><content type='html'>&lt;P&gt;I've been working on two AWK projects off and on for a while now. I've been meaning to release them, but have not yet finished with them. I hope to do so, with at least one, soon.&lt;/P&gt;

&lt;P&gt;One is a &lt;a href="http://www.6502.org/"&gt;65c02&lt;/a&gt; emulator, complete with assembler, disassembler and even a simple program to combine object files. It's intended to be a teaching tool for both AWK code and 65c02 assembly. It's been on the back burner for a long while now but does actually work. The emulator alone is almost 2,000 lines of AWK, including comments. I have almost all 65c02 instructions emulated, only some strange and seldom used ones are left. The assembler needs a complete rewrite. It rather sucks. Though the expression evaluator makes a nice calculator when removed and put on it's own.&lt;/P&gt;

The other is a set of data libraries. There are implementations of singly and doubly linked lists, queues, stacks and binary trees. Each is in it's own file with a complete API. All based on the book &lt;A href="http://www.amazon.com/Mastering-Algorithms-C-Kyle-Loudon/dp/1565924533/"&gt;Mastering Algorithms with C &lt;/A&gt;and the work of &lt;A href="http://sunburn.stanford.edu/~knuth/"&gt;Donald E. Knuth&lt;/A&gt;. AWK arrays are used to store the actual data. They were only intended to be a learning exercise for myself. I thought others might use them and thus started cleaning them up and adding testing. I'd like to implement a few more interfaces to each and also an array library to get more Perl/C like arrays. AWK arrays are nice, but they are not &lt;I&gt;real&lt;/I&gt; arrays. This project will probably be distributed before the 65c02 emulator. And perhaps might even be useful to someone...&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-9029963465625510113?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/9029963465625510113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=9029963465625510113' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/9029963465625510113?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/9029963465625510113?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2008/06/odd-awk.html' title='Odd AWK'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>2</thr:total></entry><entry gd:etag='W/&quot;AkEHRXczeyp7ImA9WxdXEEs.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-6153516304323465597</id><published>2008-04-13T10:09:00.003-04:00</published><updated>2008-06-21T13:17:14.983-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2008-06-21T13:17:14.983-04:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Script'/><category scheme='http://www.blogger.com/atom/ns#' term='AWK'/><category scheme='http://www.blogger.com/atom/ns#' term='Update'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell'/><title>AWK CSV Parser Update</title><content type='html'>&lt;P&gt;I've made a few improvements to &lt;a href="http://lorancestinson.blogspot.com/2006/07/awk-csv-parser.html"&gt;my AWK CSV Parser&lt;/a&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Added a new option to trim spaces from the beginning and end of fields.
This option is off by default to match the behavior of Excel and OpenOffice more closely.&lt;/LI&gt;
&lt;LI&gt;Cleaned the code up a bit and added more comments.&lt;/LI&gt;
&lt;LI&gt;Made the return codes indicate the error that occurred. (See the comments in the source)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;A href="http://lorance.freeshell.org/csv/"&gt;http://lorance.freeshell.org/csv/&lt;/A&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-6153516304323465597?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/6153516304323465597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=6153516304323465597' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/6153516304323465597?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/6153516304323465597?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2008/04/awk-csv-parser-update.html' title='AWK CSV Parser Update'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>1</thr:total></entry><entry gd:etag='W/&quot;AkMGSXo5cCp7ImA9WB9UEU4.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-4513578985141465152</id><published>2007-12-08T13:21:00.000-05:00</published><updated>2007-12-08T13:27:08.428-05:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2007-12-08T13:27:08.428-05:00</app:edited><title>RetroChallenge Winter Warm-up 2008</title><content type='html'>&lt;P&gt;&lt;I&gt;The following is the announcement for the RetroChallenge Winter Warm-up 2008. The link to the original announcement is at the bottom. I am running the BBS again this year.&lt;/I&gt;&lt;/P&gt;

&lt;P&gt;Retrocomputing enthusiasts the World over are cordially invited to participate
in the 2008 RetroChallenge Winter Warm-up, commencing January 1, 2008.&lt;/P&gt;

&lt;P&gt;RetroChallenge is an opportunity for fans of "obsolete" platforms to spend a
month pushing their retrocomputing limits in the company of like-minded geeks.
Participants set their own goal(s) and typically keep the community apprised of
progress via weblogs or on the Retro BBS.&lt;/P&gt;

&lt;P&gt;Challenges are as unique as the individual RetroChallenger -- in the past
participants have programmed games; created music and video content; performed
dangerous hardware hacks or simply spent a month trying to get an old computer
to boot.&lt;/P&gt;

&lt;P&gt;RetroChallenge is not so much about competing, as it is about sharing. Think of
it as an on-line show-and-tell for RetroGeeks. Because the individual challenges
are self-posed, the RetroChallenge is equally well-suited to hoary old wizards
and tender newbies alike. It's not about winning, but about *doing*.&lt;/P&gt;

&lt;P&gt;RetroChallenge is open to *all* retrocomputing platforms. For the sake of
simplicity (and to avoid the usual endless debate), the criteria for what
constitutes a "retro system" is left up to the conscience of the participant.
Although it's very much a matter of perspective, we would hope that nobody's
going to bring their 5-year-old Dell to the games!&lt;/P&gt;

&lt;P&gt;The Rules? Well... there really aren't any.&lt;BR&gt;
RetroChallenge runs from January 1st, 2008 to January 31st, 2008. Participants
are encouraged to announce their intentions prior to December 31st (but
stragglers, as always, will be accommodated). Other than that, have fun and try
to keep the platform wars to a minimum.&lt;/P&gt;

&lt;P&gt;~LD8&lt;/P&gt;

&lt;P&gt;Home page:  &lt;A href="http://retrochallenge.net"&gt;http://retrochallenge.net&lt;/A&gt;&lt;BR&gt;
Contact  :  retrochallenge AT ld8 DOT org&lt;BR&gt;
Retro BBS:  &lt;A href="telnet://lorance.no-ip.org"&gt;telnet://lorance.no-ip.org&lt;/A&gt;&lt;BR&gt;
RC Forum :  &lt;A href="http://68kmla.net/forums/viewforum.php?f=18"&gt;http://68kmla.net/forums/viewforum.php?f=18&lt;/A&gt;&lt;/P&gt;

Please feel free to post this announcement to appropriate blogs and forums.
&lt;A href="http://retrochallenge.net/2008/winter/RCWW08PR.TXT"&gt;http://retrochallenge.net/2008/winter/RCWW08PR.TXT&lt;/A&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-4513578985141465152?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/4513578985141465152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=4513578985141465152' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/4513578985141465152?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/4513578985141465152?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2007/12/retrochallenge-winter-warm-up-2008.html' title='RetroChallenge Winter Warm-up 2008'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DkUDQX0-eCp7ImA9WB9XGEQ.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-2799283860322926796</id><published>2007-11-12T14:03:00.000-05:00</published><updated>2007-11-12T14:04:30.350-05:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2007-11-12T14:04:30.350-05:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Script'/><category scheme='http://www.blogger.com/atom/ns#' term='Update'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell'/><title>PWMan 0.6</title><content type='html'>&lt;P&gt;I've made a few improvements to &lt;a href="http://lorancestinson.blogspot.com/2007/05/pwman.html"&gt;PWMan&lt;/a&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Added -G for generating random passwords. It can be used with -a, -e and -x.&lt;/LI&gt;
&lt;LI&gt;-x now works with -a and -e.&lt;/LI&gt;
&lt;LI&gt;Organized the source a bit better.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;A href="http://lorance.freeshell.org/pwman/"&gt;http://lorance.freeshell.org/pwman/&lt;/A&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-2799283860322926796?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/2799283860322926796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=2799283860322926796' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/2799283860322926796?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/2799283860322926796?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2007/11/pwman-06.html' title='PWMan 0.6'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;D0YAR3s9fip7ImA9WB9XF0w.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-3064884613849599034</id><published>2007-11-10T12:18:00.000-05:00</published><updated>2007-11-10T12:19:06.566-05:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2007-11-10T12:19:06.566-05:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Script'/><category scheme='http://www.blogger.com/atom/ns#' term='Update'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell'/><title>PWMan 0.5</title><content type='html'>&lt;P&gt;I've made a few improvements to &lt;a href="http://lorancestinson.blogspot.com/2007/05/pwman.html"&gt;PWMan&lt;/a&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Spelling and formatting corrections.&lt;/LI&gt;
&lt;LI&gt;Fixed import aborting with no file name when in interactive mode.&lt;/LI&gt;
&lt;LI&gt;Fixed importing. (Problems when importing from STDIN and possible database corruption.)&lt;/LI&gt;
&lt;LI&gt;The password prompt will now always appear when editing an account.&lt;/LI&gt;
&lt;LI&gt;Added a testing script.&lt;/LI&gt;
&lt;LI&gt;Added the -r option to repair a corrupt database.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;A href="http://lorance.freeshell.org/pwman/"&gt;http://lorance.freeshell.org/pwman/&lt;/A&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-3064884613849599034?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/3064884613849599034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=3064884613849599034' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/3064884613849599034?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/3064884613849599034?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2007/11/pwman-05.html' title='PWMan 0.5'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;C0UMR3o5fSp7ImA9WB5VGEU.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-6019780009945855505</id><published>2007-08-11T21:13:00.000-04:00</published><updated>2007-08-11T21:14:46.425-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2007-08-11T21:14:46.425-04:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Script'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell'/><title>CharCode</title><content type='html'>&lt;P&gt;A Character Code converter and lister. Outputs a table of Binary, Octal, Decimal, Hexadecimal and ASCII representing the input. Input can be a string of characters or numbers in one of the supported bases. Non printable characters are treated as spaces.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://lorance.freeshell.org/charcode/"&gt;http://lorance.freeshell.org/charcode/&lt;/A&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-6019780009945855505?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/6019780009945855505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=6019780009945855505' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/6019780009945855505?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/6019780009945855505?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2007/08/charcode.html' title='CharCode'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;D0MERngzeip7ImA9WB9XF0w.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-3360235179278241021</id><published>2007-08-02T17:08:00.000-04:00</published><updated>2007-11-10T12:23:27.682-05:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2007-11-10T12:23:27.682-05:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Script'/><category scheme='http://www.blogger.com/atom/ns#' term='Update'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell'/><title>PWMan 0.4</title><content type='html'>&lt;P&gt;I've made a three small changes to &lt;a href="http://lorancestinson.blogspot.com/2007/05/pwman.html"&gt;PWMan&lt;/a&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;List account name properly when deleting.&lt;/LI&gt;
&lt;LI&gt;Display account and user name when copying a password to the clipboard.&lt;/LI&gt;
&lt;LI&gt;-p alone now acts like -l -p combined when used with an account name.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;A href="http://lorance.freeshell.org/pwman/"&gt;http://lorance.freeshell.org/pwman/&lt;/A&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-3360235179278241021?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/3360235179278241021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=3360235179278241021' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/3360235179278241021?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/3360235179278241021?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2007/08/pwman-04.html' title='PWMan 0.4'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;AkIGQnY5fSp7ImA9WB5SEEQ.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-3612908319392037617</id><published>2007-06-05T22:51:00.000-04:00</published><updated>2007-06-05T22:55:23.825-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2007-06-05T22:55:23.825-04:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Script'/><category scheme='http://www.blogger.com/atom/ns#' term='Update'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell'/><title>PWMan 0.3</title><content type='html'>&lt;P&gt;I've made a few fixes and an update to &lt;a href="http://lorancestinson.blogspot.com/2007/05/pwman.html"&gt;PWMan&lt;/a&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Added the option &lt;B&gt;-V&lt;/B&gt; to check if a newer version is available. See the manual for details.&lt;/LI&gt;
&lt;LI&gt;Corrected prompt for password when editing entries.&lt;/LI&gt;
&lt;LI&gt;Confirm passwords when adding/editing accounts.&lt;/LI&gt;
&lt;LI&gt;Corrected a typo that prevented notes from being printed when editing accounts.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;A href="http://lorance.freeshell.org/pwman/"&gt;http://lorance.freeshell.org/pwman/&lt;/A&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-3612908319392037617?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/3612908319392037617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=3612908319392037617' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/3612908319392037617?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/3612908319392037617?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2007/06/pwman-03.html' title='PWMan 0.3'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DUMFSH4yeyp7ImA9WB5TF0g.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-3983546898018272483</id><published>2007-06-01T23:59:00.000-04:00</published><updated>2007-06-02T00:10:19.093-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2007-06-02T00:10:19.093-04:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Script'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell'/><title>Rot13</title><content type='html'>&lt;P&gt;For fun a while back I wrote some &lt;A href="http://en.wikipedia.org/wiki/Rot13"&gt;rot13&lt;/A&gt; scripts. I recently updated them. I added a few comments and made them a bit more compact. There are three scripts written in Awk, Shell and Perl.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://lorance.freeshell.org/rot13/"&gt;http://lorance.freeshell.org/rot13/&lt;/A&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-3983546898018272483?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/3983546898018272483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=3983546898018272483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/3983546898018272483?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/3983546898018272483?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2007/06/rot13.html' title='Rot13'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DUMFSH4yeyp7ImA9WB5TF0g.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-7127811556168717743</id><published>2007-05-24T20:59:00.000-04:00</published><updated>2007-06-02T00:10:19.093-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2007-06-02T00:10:19.093-04:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Script'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell'/><title>PWMan</title><content type='html'>&lt;P&gt;A password manager written in shell script. The passwords are stored in a flat text file encrypted with &lt;A href="http://www.openssl.org/"&gt;OpenSSL.&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://lorance.freeshell.org/pwman/"&gt;http://lorance.freeshell.org/pwman/&lt;/A&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-7127811556168717743?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/7127811556168717743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=7127811556168717743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/7127811556168717743?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/7127811556168717743?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2007/05/pwman.html' title='PWMan'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;D0ADRHc6fSp7ImA9WBFaGEg.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-5366028938175287235</id><published>2007-05-21T23:07:00.000-04:00</published><updated>2007-05-22T13:42:55.915-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2007-05-22T13:42:55.915-04:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Script'/><category scheme='http://www.blogger.com/atom/ns#' term='Update'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell'/><title>todo.sh 1.2</title><content type='html'>&lt;P&gt;I've made a few fixes to my version of &lt;a href="http://lorancestinson.blogspot.com/2006/10/todosh.html"&gt;todo.sh&lt;/a&gt;. Here is a rundown of what has changed since the previous release.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Removed the remdup command. It is no longer functional.&lt;/LI&gt;
&lt;LI&gt;Changed the help display. The option -h displays help for the 
command line options.  The action help displays the action help.&lt;/LI&gt;
&lt;LI&gt;Cleaned up messages, help and errors.&lt;/LI&gt;
&lt;LI&gt;The edit action no long leaved blanks at the end of the line.&lt;/LI&gt;
&lt;LI&gt;Switched to Perl POD for man pages. The man pages are now generated
from the POD source files.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;A href="http://lorance.freeshell.org/todo/"&gt;http://lorance.freeshell.org/todo/&lt;/A&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-5366028938175287235?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/5366028938175287235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=5366028938175287235' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/5366028938175287235?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/5366028938175287235?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2007/05/todosh-12.html' title='todo.sh 1.2'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;C0UNRn89eCp7ImA9WBFaFUk.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-5383187411914689051</id><published>2007-05-18T22:16:00.000-04:00</published><updated>2007-05-18T22:21:37.160-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2007-05-18T22:21:37.160-04:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Script'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell'/><title>TagIT</title><content type='html'>&lt;P&gt;I have written a file tagger in Perl. It maintains a list of file and tag associations in a database. Various options are provided to add, modify, delete and search the contents of the database. This should still be considered Beta, though it is quite stable. There are still a few features to implement and it needs some more performance tweaking.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://lorance.freeshell.org/tagit/"&gt;http://lorance.freeshell.org/tagit/&lt;/A&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-5383187411914689051?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/5383187411914689051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=5383187411914689051' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/5383187411914689051?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/5383187411914689051?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2007/05/tagit.html' title='TagIT'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;D0ADRHc6fyp7ImA9WBFaGEg.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-9137408511963460010</id><published>2007-05-14T14:26:00.000-04:00</published><updated>2007-05-22T13:42:55.917-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2007-05-22T13:42:55.917-04:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Script'/><category scheme='http://www.blogger.com/atom/ns#' term='Update'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell'/><title>Minor change to todo.sh</title><content type='html'>&lt;P&gt;I've made a change to my version of &lt;a href="http://lorancestinson.blogspot.com/2006/10/todosh.html"&gt;todo.sh&lt;/a&gt;. I added the command &lt;I&gt;editc&lt;/I&gt; for editing the comment file for a todo.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://lorance.freeshell.org/todo/"&gt;http://lorance.freeshell.org/todo/&lt;/A&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-9137408511963460010?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/9137408511963460010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=9137408511963460010' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/9137408511963460010?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/9137408511963460010?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2007/05/minor-change-to-todosh.html' title='Minor change to todo.sh'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;AkECQno_eSp7ImA9WxdXEEs.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-2943295838369111120</id><published>2007-03-01T14:08:00.000-05:00</published><updated>2008-06-21T13:17:43.441-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2008-06-21T13:17:43.441-04:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Script'/><category scheme='http://www.blogger.com/atom/ns#' term='AWK'/><category scheme='http://www.blogger.com/atom/ns#' term='Update'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell'/><title>CSV Update</title><content type='html'>&lt;P&gt;I have updated my &lt;A href="http://lorancestinson.blogspot.com/2006/07/awk-csv-parser.html"&gt;AWK CSV Parser&lt;/A&gt; and &lt;A href="http://lorancestinson.blogspot.com/2006/09/csv-utilities.html"&gt;CSV Utilities&lt;/A&gt; to correct a bug found by &lt;A href="http://www.blogger.com/profile/16292685821133780997"&gt;rattus&lt;/A&gt;. It caused the parser to bail when it encountered a newline right after a quote character. The fix is to change the text &amp;quot;pos == length(string)&amp;quot; to &amp;quot;pos &amp;gt;= length(string)&amp;quot;. In addition the &lt;A href="http://lorancestinson.blogspot.com/2006/07/awk-csv-parser.html"&gt;AWK CSV Parser&lt;/A&gt; now has a note that the file is in the public domain and the &lt;A href="http://lorancestinson.blogspot.com/2006/09/csv-utilities.html"&gt;CSV Utilities&lt;/A&gt; has a minor bug fix and an addition.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://lorance.freeshell.org/csv/"&gt;http://lorance.freeshell.org/csv/&lt;/A&gt;

&lt;A href="http://lorance.freeshell.org/csvutils/"&gt;http://lorance.freeshell.org/csvutils/&lt;/A&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-2943295838369111120?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/2943295838369111120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=2943295838369111120' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/2943295838369111120?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/2943295838369111120?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2007/03/csv-update.html' title='CSV Update'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;D0ADRHc6cCp7ImA9WBFaGEg.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-9040326676594178832</id><published>2007-02-03T22:02:00.000-05:00</published><updated>2007-05-22T13:42:55.918-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2007-05-22T13:42:55.918-04:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Script'/><category scheme='http://www.blogger.com/atom/ns#' term='Update'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell'/><title>todo.sh 1.1</title><content type='html'>&lt;P&gt;I've made a few fixes to my version of &lt;a href="http://lorancestinson.blogspot.com/2006/10/todosh.html"&gt;todo.sh&lt;/a&gt; and added a few features I've seen people requesting on the &lt;a href="http://tech.groups.yahoo.com/group/todotxt/"&gt;group&lt;/a&gt; and fixed a few bugs. Here is a rundown of what has changed since the previous release.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Changed how sed is used to make it more portable by eliminating the -i option.&lt;/LI&gt;
&lt;LI&gt;Removed the line "shopt -s extglob" since it only caused errors.&lt;/LI&gt;
&lt;LI&gt;Added the commands listcontexts and listprojects for listing contexts and projects in todo.txt.&lt;/LI&gt;
&lt;LI&gt;Fixed a bug with the history option.&lt;/LI&gt;
&lt;LI&gt;todo.sh will now attempt to create the configuration file and .todo directory if it does not exist.&lt;/LI&gt;
&lt;LI&gt;Terms can be negated when listing todos by prefixing the term with a -.&lt;/LI&gt;
&lt;LI&gt;Made priority coloring simpler. To colorize a priority just add the color variable to the configuration file. No more editing todo.sh to make it work.&lt;/LI&gt;
&lt;LI&gt;Added the command undo for marking completed items as not done.&lt;/LI&gt;
&lt;LI&gt;Added the ability to mark multiple items done at once.&lt;/LI&gt;
&lt;LI&gt;Added the import command. Each line read from STDIN is added as a new todo.&lt;/LI&gt;
&lt;LI&gt;Various other internal modifications.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;A href="http://lorance.freeshell.org/todo/"&gt;http://lorance.freeshell.org/todo/&lt;/A&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-9040326676594178832?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/9040326676594178832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=9040326676594178832' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/9040326676594178832?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/9040326676594178832?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2007/02/todosh-11.html' title='todo.sh 1.1'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>2</thr:total></entry><entry gd:etag='W/&quot;CEIMQnszeSp7ImA9WBBXFUU.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-116157523476670826</id><published>2006-10-22T23:45:00.000-04:00</published><updated>2006-11-26T18:09:43.581-05:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2006-11-26T18:09:43.581-05:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Script'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell'/><title>todo.sh</title><content type='html'>&lt;P&gt;todo.sh is a very handy task manager.
It is written in shell script and stores it's data in plain text files.
This has many advantages, too many to go into here.
See &lt;a href="http://todotxt.com/"&gt;http://todotxt.com/&lt;/a&gt; for more information.
I have made extensive modifications to the original script.
The main change involved adding a unique ID to each todo patterned after that used by
&lt;a href="http://hiveminder.com/"&gt;hiveminder.com&lt;/a&gt;.
This was done to allow for an activity history and for each todo to have comments.
The former because I forget things and have cats, the latter because I tend to have long running tasks.
Because the changes require alterations to existing todo.txt, done.txt and .todo files I have included a script to ease migration.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://lorance.freeshell.org/todo/"&gt;http://lorance.freeshell.org/todo/&lt;/A&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-116157523476670826?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/116157523476670826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=116157523476670826' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/116157523476670826?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/116157523476670826?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2006/10/todosh.html' title='todo.sh'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;AkECQno_eip7ImA9WxdXEEs.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-115862966002626470</id><published>2006-09-18T21:27:00.000-04:00</published><updated>2008-06-21T13:17:43.442-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2008-06-21T13:17:43.442-04:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Script'/><category scheme='http://www.blogger.com/atom/ns#' term='AWK'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell'/><title>CSV Utilities</title><content type='html'>&lt;p&gt;I wrote a few utilities for working with CSV file based on my &lt;a href="http://lorance.freeshell.org/csv/"&gt;AWK CSV Parser&lt;/a&gt;. They were inspired by the posts I keep seeing from people having problems parsing and working with them. They currently include csv2csv, csv2html, csv2sc (experimental) and csv2sql. I am working on another and plan on writing more. Let me know if you have any questions, problems or suggestions. I'll get back to you as soon as I can.&lt;/p&gt;
&lt;P&gt;&lt;A href="http://lorance.freeshell.org/csvutils/"&gt;http://lorance.freeshell.org/csvutils/&lt;/A&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-115862966002626470?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/115862966002626470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=115862966002626470' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/115862966002626470?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/115862966002626470?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2006/09/csv-utilities.html' title='CSV Utilities'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>4</thr:total></entry><entry gd:etag='W/&quot;CEEMRnc9eCp7ImA9WBBXFUU.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-115767015738580847</id><published>2006-09-07T19:02:00.000-04:00</published><updated>2006-11-26T18:11:27.960-05:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2006-11-26T18:11:27.960-05:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Misc'/><category scheme='http://www.blogger.com/atom/ns#' term='NON'/><title>The NON</title><content type='html'>&lt;P&gt;Stephen Jones of &lt;a href="http://sdf.lonestar.org/" title="SDF"&gt;SDF&lt;/a&gt; has been working on the &lt;a href="http://www.nonnic.org/" title="NON"&gt;NON&lt;/a&gt; network and held a meeting recently. See the log of the &lt;a href="http://www.nonnic.org/meetings/20060717.html" title="first"&gt;first&lt;/a&gt; and &lt;a href="http://www.nonnic.org/meetings/20060901.html" title="second"&gt;second&lt;/a&gt; meeting. He has a draft version of the &lt;a href="http://nonnic.org/nonaup.txt" title="AUP"&gt;AUP&lt;/a&gt; and &lt;a href="http://nonnic.org/nonbylaws.txt" title="Bylaws"&gt;B&lt;/a&gt;&lt;a href="http://nonnic.org/nonbylaws.txt" title="Bylaws"&gt;y-Laws&lt;/a&gt; up. There has been some discussion on the &lt;a href="https://forum.nonnic.org/" title="Forum"&gt;Forum&lt;/a&gt;, mostly by smj (Stephen M Jones) and Avo. Early discussion took place in the Bulletin Board (bboard) on SDF. The archives there would be a good place to look for background information. The NON intends to be like the Internet before commercialization. I personally like the idea of the NON. I'm sick of the commercialism and corruption of the Internet. Every where you look are ADs and SPAM. There seems to be no end to it. None of this would have been tolerated on the early Internet and it will not be tolerated on the NON. If you feel the same way why not check it out, visit the forum and contribute. Even better, register for and host a NON site. Right now this will require a static IP and a dedicated system. Hopefully soon a dynamic DNS system will be available. Currently the only hosts I know of are nic.non and sdf.non.&lt;br/&gt; &lt;br/&gt; The NON works by creating a separate logical network that exists on top of the Internet. Servers on the NON use the domain .non and do not communicate with non-NON servers. Clients can connect to NON sites by adjusting their DNS. There are three ways to accomplish this. Which ever you choose make backups and/or make notes on your settings. Messing with network settings can be dangerous even if you know what you are doing.&lt;br/&gt; &lt;ol&gt; &lt;li&gt; Change your domain to .non and switch your DNS server to 192.94.73.5. This can be done in Unix by changing the file /etc/resolv.conf. This is the simplest and most direct route to the NON. It also completely cuts you off from the rest of the Internet DNS.&lt;br/&gt;&lt;/li&gt; &lt;li&gt; Add the DNS server 192.94.73.5 to your search list. This reportedly works but I have not had any success with it.&lt;br/&gt;&lt;/li&gt; &lt;li&gt; Add a zone to your DNS server, if you run your own, to catch the .non domain. For my Bind server I added 'zone "non" { type forward; forwarders { 192.94.73.5; }; };' to the named.conf file. This allows all of the systems on my network to access .non hosts without having to mess with their DNS settings.&lt;br/&gt;&lt;/li&gt; &lt;/ol&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-115767015738580847?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/115767015738580847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=115767015738580847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/115767015738580847?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/115767015738580847?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2006/09/non.html' title='The NON'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CEECQns4fyp7ImA9WBBXFUU.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-115759465588668670</id><published>2006-09-06T21:52:00.000-04:00</published><updated>2006-11-26T18:11:03.537-05:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2006-11-26T18:11:03.537-05:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Script'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell'/><title>Apache Log Helper</title><content type='html'>&lt;P&gt;This is a script I wrote to help me search and monitor my &lt;a href="http://www.apache.org/" title="Apache"&gt;Apache&lt;/a&gt; web server logs. It started as a quick script I wrote at work and quickly grew to a much more useful script in my spare time. I grew weary of typing commands like "grep DBD::Pg /var/log/apache/error.log | tail" over and over. Now it's as simple as "alh -at DBD::Pg". It can search three different logs files, only one at a time, and has many options that make it quite useful. My favorite is the -x option, this runs all output through egrep with a pattern that excludes local IP addresses. All configuration is done with the variables at the top of the script.&lt;br/&gt; &lt;br/&gt; One quirk to watch out for is that alh uses the getopt program to parse command line options. getopt is not available on all systems. It also does not handle options with spaces in them. If you need to search with a patter that has spaces I suggest using a period in place of the space or piping through grep for that pattern.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://lorance.freeshell.org/alh/"&gt;http://lorance.freeshell.org/alh/&lt;/A&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-115759465588668670?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/115759465588668670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=115759465588668670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/115759465588668670?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/115759465588668670?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2006/09/apache-log-helper.html' title='Apache Log Helper'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DUQAQHg8eip7ImA9WB5TF0g.&quot;'><id>tag:blogger.com,1999:blog-31079671.post-115759284504182775</id><published>2006-09-06T21:33:00.000-04:00</published><updated>2007-06-02T00:09:01.672-04:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2007-06-02T00:09:01.672-04:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Script'/><category scheme='http://www.blogger.com/atom/ns#' term='Meta'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell'/><title>Meta: My Scripts</title><content type='html'>&lt;P&gt;All of the shell scripts I have written and posted about.&lt;BR/&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;a href="http://lorancestinson.blogspot.com/2006/09/apache-log-helper.html" title="Apache Log Helper"&gt;Apache Log Helper&lt;/a&gt;&amp;nbsp;- Search and monitor &lt;a href="http://www.apache.org/" title="Apache"&gt;Apache&lt;/a&gt; logs more easily.&lt;/LI&gt;
&lt;LI&gt;&lt;a href="http://lorancestinson.blogspot.com/2006/07/awk-csv-parser.html" title="Awk CSV Parse"&gt;Awk CSV Parser&lt;/a&gt; - Parse CSV files in AWK.&lt;/LI&gt;
&lt;LI&gt;&lt;a href="http://lorancestinson.blogspot.com/2006/09/csv-utilities.html" title="CSV Utilities"&gt;CSV Utilities&lt;/a&gt; - Utilities for working with CSV files.&lt;/LI&gt;
&lt;LI&gt;&lt;a href="http://lorancestinson.blogspot.com/2006/07/portservice-lookup.html" title="Port/Service Lookup"&gt;Port/Service Lookup&lt;/a&gt; - Lookup ports and services in a services file.&lt;/LI&gt;
&lt;LI&gt;&lt;a href="http://lorancestinson.blogspot.com/2007/06/rot13.html"&gt;Rot13&lt;/a&gt; - Three scripts for performing rot13.&lt;/LI&gt;
&lt;LI&gt;&lt;a href="http://lorancestinson.blogspot.com/2006/07/shql.html" title="SHQL"&gt;SHQL&lt;/a&gt;  - A database written in shell script.&lt;/LI&gt;
&lt;LI&gt;&lt;a href="http://lorancestinson.blogspot.com/2006/08/shql-caller-id.html" title="SHQL Caller ID"&gt;SHQL Caller ID&lt;/a&gt; - A Caller ID application that uses SHQL as a database.&lt;/LI&gt;&lt;LI&gt;&lt;a href="http://lorancestinson.blogspot.com/2006/10/todosh.html" title="todo.sh"&gt;todo.sh&lt;/a&gt;  - A plain text task manager.&lt;/LI&gt;&lt;LI&gt;&lt;a href="http://lorancestinson.blogspot.com/2007/05/tagit.html" title="TagIT"&gt;TagIT&lt;/a&gt;  - A file tagger.&lt;/LI&gt;&lt;LI&gt;&lt;a href="http://lorancestinson.blogspot.com/2006/07/wipefile.html" title="Wipefile"&gt;Wipefile&lt;/a&gt;  - Overwrite the contents of files so they can not be recovered.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31079671-115759284504182775?l=lorancestinson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorancestinson.blogspot.com/feeds/115759284504182775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=31079671&amp;postID=115759284504182775' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/115759284504182775?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31079671/posts/default/115759284504182775?v=2'/><link rel='alternate' type='text/html' href='http://lorancestinson.blogspot.com/2006/09/meta-my-scripts.html' title='Meta: My Scripts'/><author><name>Lorance Stinson</name><uri>http://www.blogger.com/profile/13140790939663427322</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06325139187133556806'/></author><thr:total>0</thr:total></entry></feed>