<?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-27181072</id><updated>2011-04-21T14:35:40.719-07:00</updated><title type='text'>troffe</title><subtitle type='html'>a software development system, market, platform, community</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://troffe.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://troffe.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>saul pwanson</name><uri>http://www.blogger.com/profile/00522592533936720871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-27181072.post-114639067466618729</id><published>2006-04-30T02:50:00.000-07:00</published><updated>2006-04-30T02:51:14.736-07:00</updated><title type='text'>project equity</title><content type='html'>Unlike the stock market, in which investors assume the corporations they invest in will never cease to exist, the project market would assume that a project has a natural lifespan, and that the project's resources would be distributed after the project has been finished.&lt;br /&gt;&lt;br /&gt;Therefore, shares of a project are initially sold for krowmids, which are used by the project managers to fuel its project economy.  At some point, the project managers release the product; after bugfixes and then a stabilization period, the product can be declared finished by an impartial judge [or voted on by the community].&lt;br /&gt;&lt;br /&gt;Then, the remaining project fund is paid out to shareholders (less a reasonable percentage for continuing maintenance), and any ongoing income is allocated to shareholders on a regular basis.  Thus micro-investments may be made.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27181072-114639067466618729?l=troffe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troffe.blogspot.com/feeds/114639067466618729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27181072&amp;postID=114639067466618729' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114639067466618729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114639067466618729'/><link rel='alternate' type='text/html' href='http://troffe.blogspot.com/2006/04/project-equity.html' title='project equity'/><author><name>saul pwanson</name><uri>http://www.blogger.com/profile/00522592533936720871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27181072.post-114639029222570668</id><published>2006-04-30T02:43:00.000-07:00</published><updated>2006-04-30T02:44:52.323-07:00</updated><title type='text'>currency</title><content type='html'>&lt;ol&gt;   &lt;li&gt;nanopayments for students, builds, searches (.20)        20 krowmids&lt;/li&gt;   &lt;li&gt;micropayments for tasks                     (20.00/task) 20 kilokrowmids&lt;/li&gt;   &lt;li&gt;pledges for projects                        ($20,000)    20 megakrowmids&lt;/li&gt;   &lt;li&gt;pledges for systems                         ($20m)       20 gigakrowmids&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/27181072-114639029222570668?l=troffe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troffe.blogspot.com/feeds/114639029222570668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27181072&amp;postID=114639029222570668' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114639029222570668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114639029222570668'/><link rel='alternate' type='text/html' href='http://troffe.blogspot.com/2006/04/currency.html' title='currency'/><author><name>saul pwanson</name><uri>http://www.blogger.com/profile/00522592533936720871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27181072.post-114639016358098565</id><published>2006-04-30T02:41:00.000-07:00</published><updated>2006-04-30T02:42:43.640-07:00</updated><title type='text'>Troffe strata</title><content type='html'>&lt;ul&gt;   &lt;li&gt;0th strata: Beginning strata.  - colored belts&lt;/li&gt;   &lt;li&gt;1st strata: efficiently operate within the system.  - first degree black belt&lt;/li&gt;   &lt;li&gt;2nd strata: efficiently teach another to operate within the system effectively.&lt;/li&gt;   &lt;li&gt;3rd strata: coordinate parallel development of mutually dependent components&lt;/li&gt;   &lt;li&gt;4th strata: drive the entire process for a project, making the ten thousand micro-decisions required to hire, manage, fill-in-the-gaps, etc.&lt;/li&gt;   &lt;li&gt;5th strata: global thinking;  understands the entire system.  can assign point values to entire projects.&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/27181072-114639016358098565?l=troffe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troffe.blogspot.com/feeds/114639016358098565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27181072&amp;postID=114639016358098565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114639016358098565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114639016358098565'/><link rel='alternate' type='text/html' href='http://troffe.blogspot.com/2006/04/troffe-strata.html' title='Troffe strata'/><author><name>saul pwanson</name><uri>http://www.blogger.com/profile/00522592533936720871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27181072.post-114639004848195699</id><published>2006-04-30T02:38:00.000-07:00</published><updated>2006-04-30T02:40:51.980-07:00</updated><title type='text'>abstract feature states</title><content type='html'>&lt;ol&gt;   &lt;li&gt;Vision : Initially, the project owner writes text, describing his vision of the final goal.  He then creates a Divide(1) task to break down the vision into components.  [Probably he will fulfill the Divide(1) task too.]&lt;/li&gt;   &lt;li&gt;Divide : the first half of Divide and Conquer; break down a Task into component parts, and schedule the interdependencies, if necessary.  Provide payout percentages based on project priorities, task difficulty and immediacy.&lt;/li&gt;   &lt;li&gt;Research : an objective and comprehensive evaluation of the subject matter, including references.&lt;/li&gt;   &lt;li&gt;Prototype : a rapid development task to prove a concept, algorithm, or theory.  The scope should be defined as minimally as possible. &lt;/li&gt;   &lt;li&gt;Specification : completely and specifically defines a component, in such a way that two developers [of similar skill level] would implement the specification in a functionally equivalent way.&lt;/li&gt;   &lt;li&gt;Implementation : the bulk of what is traditionally considered "development"[programming], the implementation of the deliverables: code [and otherwise] that implements the specification in binary form. Also includes other deliverables: content, customer documentation, art.&lt;/li&gt;   &lt;li&gt;Verification : traditionally called QA, compares the specification to the implementation.&lt;/li&gt;   &lt;li&gt;Analysis: [done simultaneously with 6] analyzes the specification for fulfilling the vision, the implementation for correctness, and the verification for completeness.&lt;/li&gt;   &lt;li&gt;Summarize [Release].  For a stable codebase, this means construction of a bill-of-materials, final verification [sanity check], and packaging binaries or source code.  This could also involves coordinating module versions and/or the simultaneous freezing of multiple components ("snapshot")&lt;/li&gt;   &lt;li&gt;Stabilization :  [bugfix] No one does these steps perfectly, and often you release before all the bugs are fixed anyway.  Most development shops give their developers a short vacation and then immediately send the project into V+1.  Best practice requires a somewhat longer [than the vacation] period of stabilization, as customers report back with inevitable bugs, comments, feature requests, and hopefully praise. &lt;/li&gt;   &lt;li&gt;Finishing touches : (no known bugs, no more features to be added), the final spit and polish.&lt;/li&gt; &lt;/ol&gt;&lt;br /&gt;Every step along the way may require written documentation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27181072-114639004848195699?l=troffe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troffe.blogspot.com/feeds/114639004848195699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27181072&amp;postID=114639004848195699' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114639004848195699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114639004848195699'/><link rel='alternate' type='text/html' href='http://troffe.blogspot.com/2006/04/abstract-feature-states.html' title='abstract feature states'/><author><name>saul pwanson</name><uri>http://www.blogger.com/profile/00522592533936720871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27181072.post-114638984245607821</id><published>2006-04-30T02:37:00.000-07:00</published><updated>2006-04-30T02:37:22.523-07:00</updated><title type='text'>constitution</title><content type='html'>krow:I) krow facilities the software development process by commoditizing&lt;br /&gt;software tasks, and commoditizing the breakdown of tasks.&lt;br /&gt;&lt;br /&gt;krow:II) krow allows [external] entities to affect the software development&lt;br /&gt;priorities via an efficient market, which directly rewards developers&lt;br /&gt;on successful projects while still giving developers on failed projects&lt;br /&gt;a living wage.&lt;br /&gt;   a) krow establishes an independent currency, the krowmid (k$1),&lt;br /&gt;           with unit value approximately equivalent to one hour of unskilled&lt;br /&gt;           computer labor.&lt;br /&gt;   b) krow maintains an exchange, trading krowmids for an&lt;br /&gt;           established currency.&lt;br /&gt;   c) An established project may migrate to krow, maintaining&lt;br /&gt;           existing organizational, ownership, and payment structures.&lt;br /&gt;&lt;br /&gt;krow:III) krow maintains all logistical support for a project.&lt;br /&gt;   a.1) krow maintains an Account for each Member.&lt;br /&gt;         - belts, krowmid balance, total krowmids earned, shares of projects&lt;br /&gt;     - personal information&lt;br /&gt;   a.2) krow maintains an Account for each Project.&lt;br /&gt;         - total krowmids spent&lt;br /&gt;   a.3) krow's employment market facilitates efficient matching of&lt;br /&gt;           Members to Projects.&lt;br /&gt;&lt;br /&gt;   b) management tools&lt;br /&gt;   b.1) krow maintains a story/task/bug database, searchable by Members.&lt;br /&gt;         - all items have completion/resolution value, determined by&lt;br /&gt;        the owning Task's Owner.&lt;br /&gt;         - search results sortable by completion value&lt;br /&gt;&lt;br /&gt;   c) krow provides reliable communications to team members.&lt;br /&gt;   c.1) interactive text chat&lt;br /&gt;   c.2) mailboxes for each user and project&lt;br /&gt;&lt;br /&gt;   d) an extensive code library&lt;br /&gt;   d.1) code library is publicly accessible.&lt;br /&gt;   d.2) library is reliable and backed up.&lt;br /&gt;   d.3) krow tracks [and rewards] all production uses of libraries and&lt;br /&gt;        applications.&lt;br /&gt;&lt;br /&gt;   e) revision control&lt;br /&gt;   e.1) krow maintains a reliable repository, available to explicitly&lt;br /&gt;             specified Members, with read/write/grant permissions on&lt;br /&gt;             any reasonable subset of the Project.&lt;br /&gt;   e.2) only Owner explicitly grants access&lt;br /&gt;     - owner explicitly grants read/write/grant access to members&lt;br /&gt;&lt;br /&gt;   f) development, integration/test, production environments&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;krow:IV) A single krow server can accommodate several projects with dozens&lt;br /&gt;of developers.&lt;br /&gt;&lt;br /&gt;krow:V) krow allows members to modify the krow system itself through a known anddeterministic process.&lt;br /&gt;&lt;br /&gt;krow:VI) krow allows for members of all skill levels to participate and learn&lt;br /&gt;within the system, giving them recognition for both improvement and&lt;br /&gt;accomplishment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27181072-114638984245607821?l=troffe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troffe.blogspot.com/feeds/114638984245607821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27181072&amp;postID=114638984245607821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114638984245607821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114638984245607821'/><link rel='alternate' type='text/html' href='http://troffe.blogspot.com/2006/04/constitution.html' title='constitution'/><author><name>saul pwanson</name><uri>http://www.blogger.com/profile/00522592533936720871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27181072.post-114638967486216200</id><published>2006-04-30T02:34:00.000-07:00</published><updated>2006-04-30T02:34:34.930-07:00</updated><title type='text'>martial arts story</title><content type='html'>A martial arts student went to his teacher and said earnestly, "I am&lt;br /&gt;devoted to studying your martial system. How long will it take me to&lt;br /&gt;master it." The teacher's reply was casual, "Ten years." Impatiently,&lt;br /&gt;the student answered, "But I want to master it faster than that. I will&lt;br /&gt;work very hard. I will practice everyday, ten or more hours a day if I&lt;br /&gt;have to. How long will it take then?" The teacher thought for a moment,&lt;br /&gt;"20 years."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27181072-114638967486216200?l=troffe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troffe.blogspot.com/feeds/114638967486216200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27181072&amp;postID=114638967486216200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114638967486216200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114638967486216200'/><link rel='alternate' type='text/html' href='http://troffe.blogspot.com/2006/04/martial-arts-story.html' title='martial arts story'/><author><name>saul pwanson</name><uri>http://www.blogger.com/profile/00522592533936720871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27181072.post-114638944853403722</id><published>2006-04-30T02:27:00.000-07:00</published><updated>2006-04-30T02:30:48.653-07:00</updated><title type='text'>communications media</title><content type='html'>Troffe must facilitate communication that:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;  effectively organizes a project;&lt;/li&gt;   &lt;li&gt;  builds direct emotional bonds between participants;&lt;/li&gt;   &lt;li&gt;  recognizes varying effectiveness of any single medium, not just between people but also depending on the context.&lt;/li&gt; &lt;/ul&gt; The differences between IRC and a wiki are obvious; the difference&lt;br /&gt;between a Usenet newsgroup and a mailing list are more subtle.&lt;br /&gt;&lt;br /&gt;However, all methods of communication have similar characteristics:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;   An author or editor&lt;/li&gt;   &lt;li&gt;   A single linear message to communicate&lt;/li&gt;   &lt;li&gt;   An audience&lt;/li&gt; &lt;/ul&gt; Each participant in the communication, whether author or audience, wants:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;to focus on the content, rather than the method;&lt;/li&gt;   &lt;li&gt;to review previous messages, ordered by content or author or date;&lt;/li&gt;   &lt;li&gt;to trust that all communications are being processed, and none filtered in whole or in part.&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/27181072-114638944853403722?l=troffe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troffe.blogspot.com/feeds/114638944853403722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27181072&amp;postID=114638944853403722' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114638944853403722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114638944853403722'/><link rel='alternate' type='text/html' href='http://troffe.blogspot.com/2006/04/communications-media.html' title='communications media'/><author><name>saul pwanson</name><uri>http://www.blogger.com/profile/00522592533936720871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27181072.post-114638818798265213</id><published>2006-04-30T01:39:00.000-07:00</published><updated>2006-04-30T02:22:07.593-07:00</updated><title type='text'>levels</title><content type='html'>Let X = any subject in Troffe (maybe even Troffe itself).&lt;br /&gt;&lt;br /&gt;A Student indicates their intent to pursue X by acquiring a white patch and presenting it humbly. White represents birth, a vulnerable innocence searching for X. The Student must learn to ask good questions.&lt;br /&gt;&lt;br /&gt;The Student asks a Master to become her Teacher, and the Master accepts, the Master takes the white patch and gives a yellow patch. Yellow evokes the formative light of childhood energy, submission to an imperfect teacher.&lt;br /&gt;&lt;br /&gt;When the Student completes the first lessons to her Teacher's satisfaction, she receives a green patch. Green signifies growth from the soil, development of the basics.&lt;br /&gt;&lt;br /&gt;Most Students eventually yearn to go beyond the fundamentals, and will study the breadth of X while wearing a blue patch. Blue signifies the sky, representing loyal study of the vastness of X.&lt;br /&gt;&lt;br /&gt;The engaged student will inevitably fascinate on an area, and the purple patch encourages exploration of that area to its deepest depth. Purple signifies courage needed to push boundaries of the Teacher and the X.&lt;br /&gt;&lt;br /&gt;With deep understanding of one tiny sliver of the X, the Student receives from the Teacher a red patch, cautioning the Student to be careful with this newfound strength. Red signifies fire, danger, passion, and power.&lt;br /&gt;&lt;br /&gt;A Master will notice the patient and consistent technique of the Student ready to become a Teacher, and will bestow the first black patch upon her. Black signifies wisdom, calm, eternity, and mastery.&lt;br /&gt;&lt;br /&gt;The first degree black patch confers upon the Student new authority and responsibility, but also more compensation. Thereafter, the black patch community rewards a first degree black patch with a second degree black patch, and so on.&lt;br /&gt;&lt;br /&gt;Each patch contains the grantor (Teacher), grantee (Student) and date granted. Anyone can grant themselves a white patch, but only a Master (black patch) can grant a new patch.&lt;br /&gt;&lt;br /&gt;All developers start out with no level designation; when they start in a certain project or field, they obtain [assuming no mitigating factors] white patch, and move up through 5 training colored patches, to black patch level 1, and then up to, say, 10 black.&lt;br /&gt;&lt;br /&gt;No developer should ever lose a patch unless they were deceptive, or unscrupulous, or misjudged.&lt;br /&gt;&lt;br /&gt;The set of developers in the topmost level decide when to introduce a new level above them, along with a clear indicator of achievement, and a compelling argument for level distinction. When one or more of them achieve the goal (possibly resolved by a jury of their peers), they advance to the new highest level. Thus a ladder of skill develops.&lt;br /&gt;&lt;br /&gt;Every skill must have a mechanism/function to determine relative skill difference. This mechanism might be subjective, relying on the observations of the candidate's peers or the group above them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27181072-114638818798265213?l=troffe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troffe.blogspot.com/feeds/114638818798265213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27181072&amp;postID=114638818798265213' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114638818798265213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114638818798265213'/><link rel='alternate' type='text/html' href='http://troffe.blogspot.com/2006/04/levels.html' title='levels'/><author><name>saul pwanson</name><uri>http://www.blogger.com/profile/00522592533936720871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27181072.post-114620995904235784</id><published>2006-04-28T00:36:00.000-07:00</published><updated>2006-04-28T00:39:19.043-07:00</updated><title type='text'>Troffe: a distributed software development engine</title><content type='html'>&lt;p&gt;&lt;i&gt;build custom software from loose specifications, using a large pool of developers and a market to determine priority and compensation.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Abstract:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Software developers, potentially geographically-scattered, execute abstract project visions, earning and circulating virtual currency (hereafter 'Troffemids') which translates into respect, ownership, and real money for successful projects.&lt;br /&gt;&lt;/p&gt; &lt;div style="text-align: left;"&gt;The project owner specifies their vision, naming problems to be solved and designing tests which will pass when the system realizes the owner's vision. Trusted developers enumerate use cases, clarify tests, architect solutions, and segment the project into subprojects, which become concrete [probably automated] tests and tasks to be implemented by a larger community of competent programmers. Developers, customers, and investors pledge Troffemids to their favorite projects and subprojects; the project earns those pledged Troffemids, less any Troffemids they pledge to subprojects or completed tasks.&lt;br /&gt;&lt;/div&gt; &lt;p&gt;Earned Troffemids result directly in project ownership, which translates semiannually into more Troffemids as those projects are licensed and used by both internal and external customers. Project owners set the prices of libraries and applications, though a mechanism for determining alternative payment structures would be beneficial. External modules may be used by Troffe projects, contagiously incorporating them into the system.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Senior developers train junior developers in technical skills, project management, and specific projects, granting incremental authority [with a competition-derived belt system] to decide implementation details. Developers strive to earn quantifiable respect and honor from the system and their peers, concurrent with economic sustenance.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Troffe manages the project database, developer and customer interfaces, project and developer accounts, source control, and test sandboxes. For these services, Troffe taxes the exchange of Troffemids to dollars and vice versa. Transactions on internal markets should remain frictionless.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Thus project owners provide developers with tangible incentive to organize and realize their vision. Developers enjoy merit- and result- based compensation in a relatively stable system, contributing to a wide variety of projects. Investors and customers enjoy finer control over project and feature priorities, while the system enjoys converting the desires of investors, customers, and developers alike into an efficient market for technical labor.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;saul pwanson&lt;br /&gt;&lt;br /&gt;2005-may-17&lt;br /&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/27181072-114620995904235784?l=troffe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troffe.blogspot.com/feeds/114620995904235784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27181072&amp;postID=114620995904235784' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114620995904235784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114620995904235784'/><link rel='alternate' type='text/html' href='http://troffe.blogspot.com/2006/04/troffe-distributed-software.html' title='Troffe: a distributed software development engine'/><author><name>saul pwanson</name><uri>http://www.blogger.com/profile/00522592533936720871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27181072.post-114620973415822100</id><published>2006-04-28T00:25:00.000-07:00</published><updated>2006-04-28T00:35:34.160-07:00</updated><title type='text'>level evaluation</title><content type='html'>A large-scale system like Troffe should have a deterministic mechanism, the evaluation function, for evaluating the relative skill and competence of a group of individuals.  In any particular field of Troffe, a level difference is a reliable predictor of the statistically quantifiable results of a "competition" (application of the evaluation function) between participants in the system.  These results indicate substantive quality differences between individuals without judgement or discouragement or cronyism.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27181072-114620973415822100?l=troffe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troffe.blogspot.com/feeds/114620973415822100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27181072&amp;postID=114620973415822100' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114620973415822100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114620973415822100'/><link rel='alternate' type='text/html' href='http://troffe.blogspot.com/2006/04/level-evaluation.html' title='level evaluation'/><author><name>saul pwanson</name><uri>http://www.blogger.com/profile/00522592533936720871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27181072.post-114620881401311065</id><published>2006-04-28T00:08:00.000-07:00</published><updated>2006-04-28T00:22:44.393-07:00</updated><title type='text'>versioning</title><content type='html'>Troffe must standardize the version numbering scheme. Our current "leave it up to the project" mechanism does us no good except to create unreasonable amounts of arcana for users to memorize.&lt;br /&gt;&lt;br /&gt;The functionality and public interface for a major version--the function signatures in a C library, or the command line arguments and input/output format of a program--should be compatible if the major versions are equal. In fact, i suggest that the primary reason for major version change is interface incompatibility, and a "major feature release" means that so much new functionality has been added that the interface is effectively a whole version different.&lt;br /&gt;&lt;br /&gt;Troffe awards project organizations themselves with a CMM level, demonstrating their ability to work within the System.&lt;br /&gt;&lt;br /&gt;Troffe could "sell" major version numbers, with something of an eye toward quality control.  Troffe could&lt;br /&gt;&lt;li&gt;certify that the package builds and passes the published test suite;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;take user feedback as part of the Quality metric;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;measuring Time both passed and spent;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;measuring Cost both in number of devs and number of currency units spent;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;graph Time and Cost over an extremely high-level assessment of Scope.&lt;br /&gt;&lt;br /&gt;and compare all these with products of other version numbers.&lt;br /&gt;&lt;br /&gt;Every program of version X &gt; Y should be a functional replacement for a Version Y program. (It should always be a good idea to upgrade.) Orgs that violate this rule are tolerated but possibly taxed, with the money or effort equivalent going into a "superfund" to pay for upgrading to the newer interface. (Tax could be proportional to the # lines of code/customers that use the previous version, which would be public knowledge)&lt;br /&gt;&lt;br /&gt;Thus the feature freeze on a version 1 program is a hypercritical event, since all future versions of this software must support this functionality (deviations from the specification--i.e., bugs--aside). Higher minor version numbers should always indicate increased quality.&lt;br /&gt;&lt;br /&gt;It is currently expected that v2.0 'alpha' will be less stable than the highest V1.XX; the 'release' branch cannot produce a v2.0 until submitted release achieves the same level of quality as the 1.XX before it.&lt;br /&gt;&lt;br /&gt;Packages should only depend on specific major versions.&lt;/li&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27181072-114620881401311065?l=troffe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troffe.blogspot.com/feeds/114620881401311065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27181072&amp;postID=114620881401311065' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114620881401311065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114620881401311065'/><link rel='alternate' type='text/html' href='http://troffe.blogspot.com/2006/04/versioning.html' title='versioning'/><author><name>saul pwanson</name><uri>http://www.blogger.com/profile/00522592533936720871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27181072.post-114620768960876509</id><published>2006-04-27T23:41:00.000-07:00</published><updated>2006-04-28T00:01:29.623-07:00</updated><title type='text'>first chapter of a work of software fiction</title><content type='html'>&lt;span style="font-style: italic;"&gt;2005/2/2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I happened upon Troffe today. After reading the "Introduction to Troffe" on their website, I created an account and logged in using the console/text interface. This is what I saw:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Trying 64.71.163.206...&lt;br /&gt;Connected to login.troffe.net.&lt;br /&gt;Escape character is '^]'.&lt;br /&gt;&lt;br /&gt;login: saul&lt;br /&gt;password:&lt;br /&gt;&lt;br /&gt;Login successful.&lt;br /&gt;&lt;br /&gt;Welcome to Troffe, saul.  107/3218 members online.&lt;br /&gt;You have 0 troffemids in your account.&lt;br /&gt;You are in #newcomer with 7 members (3 Masters).&lt;br /&gt;&lt;br /&gt;Type 'help' for a list of commands at any prompt.&lt;br /&gt;22:48&gt; help&lt;br /&gt;&lt;br /&gt;Commands:&lt;br /&gt;chat [#{channel}]         receive chat messages on the specified channel&lt;br /&gt;gimme [{search_phrase}]   gimme some work to do&lt;br /&gt;help [{cmd}]              help on a specific command&lt;br /&gt;troffebench               go to the troffebench&lt;br /&gt;list [all|online|#{room}] show all, online, or room members by default&lt;br /&gt;market                    go to the market&lt;br /&gt;request {title}    file a request for work to be done&lt;br /&gt;view [{username}]         look at user's profile&lt;br /&gt;tournament [{subject}]    enter a tournament and go to tournament mode&lt;br /&gt;&lt;br /&gt;22:51&gt; list&lt;br /&gt;#newcomer has 7 members (3 Masters)&lt;br /&gt;Members (7):  zerbert ayiuk spoohw Arguably IuIuIuI madrian saul&lt;br /&gt;Masters (3):  twinkle Winston Gerbil&lt;br /&gt;&lt;br /&gt;22:51&gt; view gerbil&lt;br /&gt;Gerbil&lt;br /&gt;   Status] Idle for 36 minutes.&lt;br /&gt; 37 Belts] troffe-3 ...&lt;br /&gt;2 Students] madrian alienhead&lt;br /&gt;&lt;br /&gt;     Info] http://www.gerbilsplace.net&lt;br /&gt;&lt;br /&gt;22:52&gt; chat&lt;br /&gt;Entering chat mode in #newcomer:  Welcome newbies, one and all!&lt;br /&gt;[previously on #newcomer]&lt;br /&gt;22:15  madrian: mom's calling dniner&lt;br /&gt;22:15   Gerbil: see ya&lt;br /&gt;22:16  * madrian signed off.&lt;br /&gt;&lt;br /&gt;22:52   Gerbil: welcome saul&lt;br /&gt;22:52     saul: hello Gerbil.  i am a professional software developer with some&lt;br /&gt;              free time on the weekends.  how would you suggest i start out?&lt;br /&gt;22:54   Gerbil: first you should get yourself ranked.  use the 'tournament'&lt;br /&gt;              command ('/tournament' in chat).&lt;br /&gt;22:55     saul: thanks!&lt;br /&gt;22:55     saul: tournament&lt;br /&gt;22:55     saul: sorry&lt;br /&gt;&lt;br /&gt;22:55&gt; /tournament&lt;br /&gt;Leaving chat mode in #newcomer (still in room).&lt;br /&gt;Entering tournament.  You own 0 belts, 0 vtroffemids.&lt;br /&gt;&lt;br /&gt;  Choosing tournament subject with highest market value:  C/C++&lt;br /&gt;     How long have you been coding with C/C++?&lt;br /&gt;22:55*&gt; 4 years&lt;br /&gt;     How many rounds would you like (1, 3, or 5)?&lt;br /&gt;22:55*&gt; 1&lt;br /&gt;&lt;br /&gt;22:56  Entering saul in the tournament queue...&lt;br /&gt;&lt;br /&gt;1 round vs. Maizuka&lt;br /&gt;&lt;br /&gt;     Round 1: Implement a C function called atoi(), that converts&lt;br /&gt;     a string to an integer.  You may assume that "ctype.h" and "limits.h"&lt;br /&gt;     are #included.&lt;br /&gt;&lt;br /&gt;This round will terminate at 23:26.&lt;br /&gt;&lt;br /&gt;22:56&gt; info maizuka&lt;br /&gt;Maizuka&lt;br /&gt; Status] occupied in a tournament until 23:26&lt;br /&gt; 1 Belt] troffe-green&lt;br /&gt;&lt;br /&gt;   Info]  i attend university of sydney, compsci major.  been coding&lt;br /&gt;          for almost a year.&lt;br /&gt;&lt;br /&gt;22:56  #newcomer spoohw&gt; haha n00bs=)&lt;br /&gt;&lt;br /&gt;22:56&gt; help&lt;br /&gt;(30 minutes remain)&lt;br /&gt;Commands:&lt;br /&gt;edit              edit your solution (overrides previous entry)&lt;br /&gt;line {line}: {l}  replaces or inserts {l} into the latest submission&lt;br /&gt;test {input}      provide an test input string&lt;br /&gt;status            display status of the tournament&lt;br /&gt;dispute {test}    dispute the results of a test case&lt;br /&gt;show source       displays your current source code&lt;br /&gt;show tests        displays the current combined test suite&lt;br /&gt;&lt;br /&gt;22:57&gt; edit&lt;br /&gt;(29 minutes remain)  Press ^D to submit, ^C to revert changes, ^Z to suspend.&lt;br /&gt;1*&gt; int atoi(char *str)&lt;br /&gt;2*&gt; {&lt;br /&gt;3*&gt;    int r=0;&lt;br /&gt;4*&gt;&lt;br /&gt;5*&gt;    while (isdigit(*str))&lt;br /&gt;6*&gt;    {&lt;br /&gt;7*&gt;       r *= 10;&lt;br /&gt;8*&gt;       r += *str - '0';&lt;br /&gt;9*&gt;       ++str;&lt;br /&gt;10*&gt;    }&lt;br /&gt;11*&gt;    return r;&lt;br /&gt;12*&gt; }^D&lt;br /&gt;&lt;br /&gt;(21 minutes remain)&lt;br /&gt;   Submission 1, saul: compiles with 0 warnings.&lt;br /&gt;                       7 tests pass, 4 tests fail.&lt;br /&gt;&lt;br /&gt;23:05&gt; test 5&lt;br /&gt;T12: "5" = 5 (5)&lt;br /&gt;23:05&gt; status&lt;br /&gt;(21 minutes remain)&lt;br /&gt;   You created 1/12 test cases and 1/1 submissions.&lt;br /&gt;   Submission 1, saul: compiles with 0 warnings.&lt;br /&gt;                       8 tests pass, 4 tests fail.&lt;br /&gt;Bonuses:  +1 for first submission&lt;br /&gt;&lt;br /&gt;23:05&gt; show tests&lt;br /&gt; 8 tests pass, 4 tests fail.&lt;br /&gt;     input        reference output       your output&lt;br /&gt; T1: "1000"             1000                1000&lt;br /&gt; T2: "pigs"             0                   0&lt;br /&gt; T3: "amy545"           0                   0&lt;br /&gt; T4: "234amy"           234                 234&lt;br /&gt; T5: ""                 0                   0&lt;br /&gt;!T6: NULL               0                   Segmentation fault&lt;br /&gt; T7: "298347"           298347              298347&lt;br /&gt;*T8: "-1983827"         -1983827            0&lt;br /&gt; T9: "298,347"          298                 298&lt;br /&gt;*T10: "99999999999999"  2147483647          276447231&lt;br /&gt;*T11: "-99999999999999" -2147483648         0&lt;br /&gt; T12: "5"               5                   5&lt;br /&gt;&lt;br /&gt;23:07&gt; line 4: if (str == NULL) return 0;                     // T6&lt;br /&gt;23:10&gt; line 3.1: char sign = '+';&lt;br /&gt;23:10&gt; line 4.1: if (*str == '-' || *str == '+') { sign = *str; str++; }&lt;br /&gt;23:11&gt; line 10.1: if (sign == '-') r = -r;                    // T8&lt;br /&gt;23:12&gt; line 8.1: if (r &gt; INT_MAX/10) { r = INT_MAX; break; }  // T10&lt;br /&gt;&lt;br /&gt;23:14&gt; test 000045&lt;br /&gt;T13: "000045" = 45 (45)&lt;br /&gt;&lt;br /&gt;23:14&gt; test "    5318008"&lt;br /&gt;* T14: "    5318008" = 5318008 (0)&lt;br /&gt;&lt;br /&gt;23:14&gt; test "-01"&lt;br /&gt;T15: "-01" = -1 (-1)&lt;br /&gt;&lt;br /&gt;23:15&gt; test "-pigs"&lt;br /&gt;T16: "-pigs" = 0 (0)&lt;br /&gt;&lt;br /&gt;23:15&gt; test "    -5"&lt;br /&gt;* T17: "    -5" = -5 (0)&lt;br /&gt;&lt;br /&gt;(10 minutes remain)&lt;br /&gt;23:17&gt; test "    +5"&lt;br /&gt;* T18: "    +5" = 5 (0)&lt;br /&gt;&lt;br /&gt;23:18&gt; line 4.01: while (isspace(*str)) str++;   // T14, T17, T18&lt;br /&gt;23:18&gt; show source&lt;br /&gt;1    int atoi(char *str)&lt;br /&gt;2    {&lt;br /&gt;3       int r=0;&lt;br /&gt;3.1     char sign = '+';&lt;br /&gt;4       if (str == NULL) return 0;                      // T6&lt;br /&gt;4.01    while (isspace(*str)) str++;                    // T14, T17, T18&lt;br /&gt;4.1     if (*str == '-' || *str == '+') { sign = *str; str++; }&lt;br /&gt;5       while (isdigit(*str))&lt;br /&gt;6       {&lt;br /&gt;7          r *= 10;&lt;br /&gt;8          r += *str - '0';&lt;br /&gt;8.1        if (r &gt; INT_MAX/10) { r = INT_MAX; break; }  // T10&lt;br /&gt;9          ++str;&lt;br /&gt;10      }&lt;br /&gt;10.1    if (sign == '-') r = -r;                        // T8&lt;br /&gt;11      return r;&lt;br /&gt;12   }&lt;br /&gt;&lt;br /&gt;23:18&gt; status&lt;br /&gt;(8 minutes remain)&lt;br /&gt;   You created 7 of 18 test cases and 1 of 2 submissions.&lt;br /&gt;   Submission 1, saul: compiles with 0 warnings.&lt;br /&gt;                       17 tests pass, 1 tests fail.&lt;br /&gt;Bonuses:  +1 for first submission&lt;br /&gt;&lt;br /&gt;23:18&gt; chat&lt;br /&gt;[already on #newcomer]&lt;br /&gt;22:55     saul: sorry&lt;br /&gt;22:56   Gerbil: no worries&lt;br /&gt;22:56   spoohw: haha n00bs=)&lt;br /&gt;&lt;br /&gt;(7 minutes remain)&lt;br /&gt;23:19     saul: does anyone know if negating INT_MAX results in INT_MIN?&lt;br /&gt;23:19   spoohw: are you in a compo?&lt;br /&gt;23:20   Gerbil: saul, no cheating&lt;br /&gt;23:20     saul: dangit, okay, nevermind&lt;br /&gt;23:20   Gerbil: who are you coding against?&lt;br /&gt;(5 minutes remain)&lt;br /&gt;23:21     saul: your mom&lt;br /&gt;23:21     saul: just kidding, it's some uni student, maizuka&lt;br /&gt;23:21   Gerbil: oh yeah, i've met him, nice kid&lt;br /&gt;23:22     saul: line 8.1: if (r &gt; INT_MAX/10)&lt;br /&gt;23:22     saul: argh&lt;br /&gt;&lt;br /&gt;23:22&gt; /tournament&lt;br /&gt;Leaving chat mode in #newcomer (still in room).&lt;br /&gt;Re-entering tournament vs. Maizuka.&lt;br /&gt;&lt;br /&gt;23:22&gt; line 8.1: if (r &gt; INT_MAX/10)&lt;br /&gt;23:22&gt; line 8.2:    { return (sign == '-' ? INT_MIN : INT_MAX); }  // T10&lt;br /&gt;&lt;br /&gt;23:23&gt; status&lt;br /&gt;(3 minutes remain)&lt;br /&gt;   You created 7 of 18 test cases and 1 of 2 submissions.&lt;br /&gt;   Submission 1, saul: compiles with 0 warnings.&lt;br /&gt;                       18 tests pass, 0 tests fail.&lt;br /&gt;Bonuses:  +1 for first submission&lt;br /&gt;&lt;br /&gt;23:24  #newcomer  spoohw: you'll get the hang of it :)&lt;br /&gt;23:25  (1 minute remains)&lt;br /&gt;&lt;br /&gt;23:26  Tournament results: saul vs. Maizuka&lt;br /&gt;   Submission 1, saul: compiles with 0 warnings.&lt;br /&gt;                       17 member tests pass, 1 tests fail.&lt;br /&gt;           6 master tests pass, 1 test fails.&lt;br /&gt; Base:   6 points for passing master tests&lt;br /&gt;Bonuses:  +1 for first submission&lt;br /&gt;        +3 for creating tests opponent failed&lt;br /&gt;&lt;br /&gt;   Submission 2, Maizuka: compiles with 0 warnings.&lt;br /&gt;                       15 member tests pass, 3 tests fail.&lt;br /&gt;           5 master tests pass, 2 tests fail.&lt;br /&gt; Base:   5 points for passing master tests&lt;br /&gt;Bonuses:  +1 for creating tests opponent failed&lt;br /&gt;&lt;br /&gt;Round 1, final score: saul 10, Maizuka 6&lt;br /&gt;&lt;br /&gt;You win the tournament!  You receive a tentative green belt.&lt;br /&gt;&lt;br /&gt;You can see Maizuka's entry and results at:&lt;br /&gt;http://www.troffe.net/solutions?entry=Maizuka&amp;amp;competition=...&lt;br /&gt;&lt;br /&gt;23:26  #newcomer  Gerbil: saul, how'd you do?&lt;br /&gt;23:27  private   Maizuka: nice one, you got me on the spaces&lt;br /&gt;&lt;br /&gt;23:27&gt; chat&lt;br /&gt;[already on #newcomer]&lt;br /&gt;23:22     saul: argh&lt;br /&gt;23:24   spoohw: you'll get the hang of it :)&lt;br /&gt;23:26   Gerbil: saul, how'd you do?&lt;br /&gt;&lt;br /&gt;23:27     saul: i got a "tentative green belt", what can i do with it?&lt;br /&gt;23:27   spoohw: write tentative code&lt;br /&gt;23:27   Gerbil: saul, go to /troffebench and browse the database for tasks&lt;br /&gt;              you can complete, bugs you can fix, or tests you can write&lt;br /&gt;23:28     saul: cool, let me grab some food first&lt;br /&gt;23:28  * saul has logged off&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/27181072-114620768960876509?l=troffe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troffe.blogspot.com/feeds/114620768960876509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27181072&amp;postID=114620768960876509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114620768960876509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114620768960876509'/><link rel='alternate' type='text/html' href='http://troffe.blogspot.com/2006/04/first-chapter-of-work-of-software.html' title='first chapter of a work of software fiction'/><author><name>saul pwanson</name><uri>http://www.blogger.com/profile/00522592533936720871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27181072.post-114620603472403818</id><published>2006-04-27T23:30:00.000-07:00</published><updated>2006-04-27T23:40:30.743-07:00</updated><title type='text'>define: troffe</title><content type='html'>troffe (trohf), n.  quality work accomplished with ease.  &lt;span style="font-style: italic;"&gt;Tesla's troffe has proven superior to Edison's labor.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27181072-114620603472403818?l=troffe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troffe.blogspot.com/feeds/114620603472403818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27181072&amp;postID=114620603472403818' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114620603472403818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27181072/posts/default/114620603472403818'/><link rel='alternate' type='text/html' href='http://troffe.blogspot.com/2006/04/define-troffe.html' title='define: troffe'/><author><name>saul pwanson</name><uri>http://www.blogger.com/profile/00522592533936720871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
