<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?>

<feed xmlns="http://purl.org/atom/ns#" version="0.3" xml:lang="en-US">
<link href="https://www.blogger.com/atom/7030745" rel="service.post" title="Project Sewer" type="application/atom+xml"/>
<link href="https://www.blogger.com/atom/7030745" rel="service.feed" title="Project Sewer" type="application/atom+xml"/>
<title mode="escaped" type="text/html">Project Sewer</title>
<tagline mode="escaped" type="text/html">A collection programs and utilities that promote the use of standard pipes (STDIN, STDOUT, STDERR) in GUI applications.</tagline>
<link href="http://sewer.sourceforge.net" rel="alternate" title="Project Sewer" type="text/html"/>
<id>tag:blogger.com,1999:blog-7030745</id>
<modified>2005-11-30T14:40:33Z</modified>
<generator url="http://www.blogger.com/" version="5.15">Blogger</generator>
<info mode="xml" type="text/html">
<div xmlns="http://www.w3.org/1999/xhtml">This is an Atom formatted XML site feed. It is intended to be viewed in a Newsreader or syndicated to another site. Please visit the <a href="http://help.blogger.com/bin/answer.py?answer=697">Blogger Help</a> for more info.</div>
</info>
<convertLineBreaks xmlns="http://www.blogger.com/atom/ns#">true</convertLineBreaks>
<entry xmlns="http://purl.org/atom/ns#">
<link href="https://www.blogger.com/atom/7030745/113164044262465399" rel="service.edit" title="Tcl Chatroom" type="application/atom+xml"/>
<author>
<name>Matt</name>
</author>
<issued>2005-11-10T08:34:02-08:00</issued>
<modified>2005-11-10T16:34:02Z</modified>
<created>2005-11-10T16:34:02Z</created>
<link href="http://sewer.sourceforge.net/2005/11/tcl-chatroom.html" rel="alternate" title="Tcl Chatroom" type="text/html"/>
<id>tag:blogger.com,1999:blog-7030745.post-113164044262465399</id>
<title mode="escaped" type="text/html">Tcl Chatroom</title>
<content mode="escaped" type="text/html" xml:base="http://sewer.sourceforge.net" xml:space="preserve">As sewer is starting out in Tcl, I've included a link to the &lt;a href="http://wiki.tcl.tk/1178"&gt;Tcl Chatroom&lt;/a&gt; for getting help in developing sewer.&#13;&lt;br /&gt;&#13;&lt;br /&gt;Also on Usenet, the comp.lang.tcl newsgroup.  One of the most exceedingly helpful &amp; friendly newsgroups on all of Usenet.</content>
<draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
</entry>
<entry xmlns="http://purl.org/atom/ns#">
<link href="https://www.blogger.com/atom/7030745/113154782610458303" rel="service.edit" title="Progress at last" type="application/atom+xml"/>
<author>
<name>Matt</name>
</author>
<issued>2005-11-09T06:43:00-08:00</issued>
<modified>2005-11-09T14:50:26Z</modified>
<created>2005-11-09T14:50:26Z</created>
<link href="http://sewer.sourceforge.net/2005/11/progress-at-last.html" rel="alternate" title="Progress at last" type="text/html"/>
<id>tag:blogger.com,1999:blog-7030745.post-113154782610458303</id>
<title mode="escaped" type="text/html">Progress at last</title>
<content type="application/xhtml+xml" xml:base="http://sewer.sourceforge.net" xml:space="preserve">
<div xmlns="http://www.w3.org/1999/xhtml">A <a href="http://blog.cleverly.com/">friend</a> was asking what <a href="http://www.ferociousflirting.com">blogs</a> <a href="http://m0smith.freeshell.org">I</a> <a href="http://m0smith.freeshell.org/blog-si/blogger.html">own</a> (I have 9) and so I was showing him them all.  He took an interest in the sewer project, mostly due to the name.  I showed it to him and he was pleased at the use of Tcl in the project.  I explained what I needed and he created, in about 5 minutes, the basic framework for sewer.  It has been checked in at <code>bin/sewer.tcl</code>.<br/>
<br/>What it does is it allows you to enter a command and dump the results to a window.  Then you can filter the results with another command. Repeat.  More to follow soon hopefully now that I know someone who knows Tcl.<br/>
<br/>Yippee!!!</div>
</content>
<draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
</entry>
<entry xmlns="http://purl.org/atom/ns#">
<link href="https://www.blogger.com/atom/7030745/110402689154547053" rel="service.edit" title="gedlist.sh" type="application/atom+xml"/>
<author>
<name>Matt</name>
</author>
<issued>2004-12-25T18:06:11-08:00</issued>
<modified>2004-12-26T02:08:11Z</modified>
<created>2004-12-26T02:08:11Z</created>
<link href="http://sewer.sourceforge.net/2004/12/gedlistsh.html" rel="alternate" title="gedlist.sh" type="text/html"/>
<id>tag:blogger.com,1999:blog-7030745.post-110402689154547053</id>
<title mode="escaped" type="text/html">gedlist.sh</title>
<content mode="escaped" type="text/html" xml:base="http://sewer.sourceforge.net" xml:space="preserve">Create a list of inidivuals listed in a GEDCOM file.  In conjunction with topoged.&#13;&lt;br /&gt;&#13;&lt;br /&gt;&lt;code&gt;awk '$3 ~ "INDI" { id = $2 } $1 == "1" &amp;&amp; $2 == "NAME" { $1 = ""; $2=""; print id "|" $0 }  '&lt;/code&gt;</content>
<draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
</entry>
<entry xmlns="http://purl.org/atom/ns#">
<link href="https://www.blogger.com/atom/7030745/108511202421169404" rel="service.edit" title="How can a GUI and pipes interact?" type="application/atom+xml"/>
<author>
<name>Matt</name>
</author>
<issued>2004-05-20T20:40:24-07:00</issued>
<modified>2004-05-21T04:00:24Z</modified>
<created>2004-05-21T04:00:24Z</created>
<link href="http://sewer.sourceforge.net/2004/05/how-can-gui-and-pipes-interact.html" rel="alternate" title="How can a GUI and pipes interact?" type="text/html"/>
<id>tag:blogger.com,1999:blog-7030745.post-108511202421169404</id>
<title mode="escaped" type="text/html">How can a GUI and pipes interact?</title>
<content mode="escaped" type="text/html" xml:base="http://sewer.sourceforge.net" xml:space="preserve">A GUI can be any part of the pipeline.  &#13;&lt;br /&gt;&#13;&lt;br /&gt;First the GUI can be a sink, accepting data from the pipeline.  This is the most obvious exmaple of GUIs working with pipes.  It is natural for the GUI to display the final result of the pipe.  Command line programs like pg, more and less currently serve this role.  A GUI pager could provide the same functionality or even increased functionality with vertical and horizontal scrolling.&#13;&lt;br /&gt;&#13;&lt;br /&gt;Second, the GUI can be a filter by reading data from the pipe and then sending it on.  The odometer.tcl is an example of this.  It listens on STDIN, writes to STDOUT and displays the number of bytes passed in a window.  Other examples might be a last line read displayer, a progress bar, or a GUI tee program that writes to a window instead of a file.&#13;&lt;br /&gt;&#13;&lt;br /&gt;A GUI can also be a data source.   The GUI pager mentioned above could have an option to "Send to Pipe".  The user would then specify the pipe in some manner and the data contained in the pager would be forwarded to the pipe.  An example might be that you wanted a word count (wc) of the file.  Just press "Send to Pipe", enter "wc | &lt;gui pager&gt;" and a new window would be opened that had the results of wc.&#13;&lt;br /&gt;&#13;&lt;br /&gt;A GUI can also be thought of as allowing the user to interact on the pipeline.  With command line pipes, the user doesn'e have much chance to even observe the data, let alone change it.  GUI filters and sinks will allow more control and flexibility for the user.&#13;&lt;br /&gt;&#13;&lt;br /&gt;Also, instead of creating huge menu structures with options people don't need, GUI programs should allow for users to add menu options on the fly, or configure them as they like.  The menu options will be tied to pipes.  The user will only see the options they really need and use.  The programs themselvs become smaller as the program only need provide a small bit of functionality while delegating tasks to other small and specialized tasks. </content>
<draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
</entry>
<entry xmlns="http://purl.org/atom/ns#">
<link href="https://www.blogger.com/atom/7030745/108493518980263376" rel="service.edit" title="odometer.tcl" type="application/atom+xml"/>
<author>
<name>Matt</name>
</author>
<issued>2004-05-18T19:53:45-07:00</issued>
<modified>2004-05-19T02:56:45Z</modified>
<created>2004-05-19T02:53:09Z</created>
<link href="http://sewer.sourceforge.net/2004/05/odometertcl.html" rel="alternate" title="odometer.tcl" type="text/html"/>
<id>tag:blogger.com,1999:blog-7030745.post-108493518980263376</id>
<title mode="escaped" type="text/html">odometer.tcl</title>
<content type="application/xhtml+xml" xml:base="http://sewer.sourceforge.net" xml:space="preserve">
<div xmlns="http://www.w3.org/1999/xhtml">Here is the first file: odometer.tcl
<br/>
<br/>
<pre>
<br/>proc read_more {} {
<br/>    set new [read stdin 4096]
<br/>    if [string length $new] {
<br/>	incr ::bytecount [string length $new]
<br/>	puts -nonewline stdout $new
<br/>	#.t insert end $new
<br/>	#.t see end
<br/>    }
<br/>    if [eof stdin] { exit }
<br/>    after 1 read_more
<br/>}
<br/>
<br/>pack [label .odometer -textvar bytecount]
<br/>set bytecount 0
<br/>read_more
<br/>
</pre>
<br/>
</div>
</content>
<draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
</entry>
<entry xmlns="http://purl.org/atom/ns#">
<link href="https://www.blogger.com/atom/7030745/108491850256946267" rel="service.edit" title="Why tcl/tk?" type="application/atom+xml"/>
<author>
<name>Matt</name>
</author>
<issued>2004-05-18T15:10:48-07:00</issued>
<modified>2004-05-18T22:24:48Z</modified>
<created>2004-05-18T22:15:02Z</created>
<link href="http://sewer.sourceforge.net/2004/05/why-tcltk.html" rel="alternate" title="Why tcl/tk?" type="text/html"/>
<id>tag:blogger.com,1999:blog-7030745.post-108491850256946267</id>
<title mode="escaped" type="text/html">Why tcl/tk?</title>
<content mode="escaped" type="text/html" xml:base="http://sewer.sourceforge.net" xml:space="preserve">After minutes spent in an exhaustive search, tcl/tk was chosen as the initial platform for sewer development.  The reasons are simple:&lt;ul&gt;&#13;&lt;br /&gt;&lt;li&gt;It is available and fairly well supported on most platforms.  &#13;&lt;br /&gt;&lt;li&gt;It is easy to read from STDIN and write to STDOUT&#13;&lt;br /&gt;&lt;li&gt;The graphics are very easy compared to other languages like Java.&#13;&lt;br /&gt;&lt;li&gt;It about time I learned it&#13;&lt;br /&gt;&lt;/ul&gt;&#13;&lt;br /&gt;&#13;&lt;br /&gt;But, since the idea is to provide a framework rather than a specific implementation, other languages could and most certainly will be used as the project progresses.  </content>
<draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
</entry>
<entry xmlns="http://purl.org/atom/ns#">
<link href="https://www.blogger.com/atom/7030745/108491802086628827" rel="service.edit" title="What is sewer?" type="application/atom+xml"/>
<author>
<name>Matt</name>
</author>
<issued>2004-05-18T15:02:00-07:00</issued>
<modified>2004-05-18T22:07:00Z</modified>
<created>2004-05-18T22:07:00Z</created>
<link href="http://sewer.sourceforge.net/2004/05/what-is-sewer.html" rel="alternate" title="What is sewer?" type="text/html"/>
<id>tag:blogger.com,1999:blog-7030745.post-108491802086628827</id>
<title mode="escaped" type="text/html">What is sewer?</title>
<content type="application/xhtml+xml" xml:base="http://sewer.sourceforge.net" xml:space="preserve">
<div xmlns="http://www.w3.org/1999/xhtml">For the initial epiphany see <a href="http://m0smith.freeshell.org/2004/05/rest-stands-for-representational-state.html"> REST stands for Representational State Transfer</a>.
<br/>
<br/>This project is to provide substance to the thought.  To implement GUI components that communicate via standard pipes, that is the goal. 
<br/>
<br/>Why sewer?  It was going to be gui-pipes, which sounds like gooey-pipes, which reminds me of a sewer.  Maybe I shouldn't name things while remodeling the old homestead.  So, sewer it is.</div>
</content>
<draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
</entry>
</feed>

