<?xml version="1.0"?>
<rss version="2.0"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:dcterms="http://purl.org/dc/terms/" >
<channel>
<title>Rhizome</title>
<link>http://tychoish.com/rhizome/</link>
<description>tychoish</description>
<item>
	
	<title>The Editing Hole</title>
	<dcterms:creator>tycho garen</dcterms:creator>
	
	
	  <guid>http://tychoish.com/rhizome/the-editing-hole/</guid>
	
	<link>http://tychoish.com/rhizome/the-editing-hole/</link>
	
	
	<category>/tag/productivity</category>
	
	<category>/tag/writing</category>
	
	
	<pubDate>Tue, 22 May 2012 00:00:00 -0400</pubDate>
	<dcterms:modified>2012-05-22T16:50:46Z</dcterms:modified>
	
	<description>&lt;p&gt;I&#39;m stuck in an editing hole, and not only am I not editing the things
I need to edit, I&#39;m not getting &lt;em&gt;anything&lt;/em&gt; done.&lt;/p&gt;

&lt;p&gt;I&#39;m at a point where I have about 25 things on my personal task list,
and 16 of them are editing related tasks: edit the article in this
file, edit this fiction, edit this documentation, edit these
would-be-blog posts, and so forth. It seems like I went on something
of a six month writing bender, and while I did a little bit of editing
during this period, I have &lt;em&gt;clearly fallen behind.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;There are a number of factors:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;I&#39;ve been making a point of putting editing tasks on the todo list
because I want to make sure that I actually finish projects rather
than just abandon them. I&#39;ve not been particularly good with follow
through in the past few years, so that&#39;s been a big personal
improvement project.&lt;/p&gt;

&lt;p&gt;The sad part is that my editing queue is probably 10-20 times
larger, but I&#39;ve got some projects on the less-actionable back burner.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I&#39;m not a very good editor.&lt;/p&gt;

&lt;p&gt;I&#39;m awful at copy (or otherwise) editing my own work, and while I
know that I&#39;ve become better at this in the past few years. I still
know that it&#39;s not perfect and so it seems sort of futile, which
makes it hard to get inspired to do editing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I find writing to be rewarding, and given the choice I will
probably always choose to write new stuff. While this is clearly a
learned response to the kind of work, this doesn&#39;t make the effect
any less real.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I find editing to be really difficult work.&lt;/p&gt;

&lt;p&gt;This is probably related to #2, but editing wears me out. I
find it difficult to spend long periods of time editing, which
makes it difficult to make any really substantial progress on the
pile of editing tasks.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As a result, I take a long time to edit things, I&#39;m most effective at
editing in short bursts. I often want to break up longer editing
tasks with other kinds of work just to keep a clean mind set. After a
week or so of this, I have almost everything else done on the
list, leaving me with a big pile of editing that looks even bigger for
the lack of other things on the list.&lt;/p&gt;

&lt;p&gt;So now, I&#39;m trying the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;I&#39;m working on making editing tasks smaller, which will turn into
more editing tasks, but it&#39;ll be possible to face editing tasks in
units less than 10 or 20 pages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make more tasks for other projects.&lt;/p&gt;

&lt;p&gt;There are two ways to get stuff done: 1) You can be really focused and
work on one project at a time until it&#39;s finished, or 2) you can be
working on a lot of projects in parallel and when you start to
loose focus, you switch to another kind of project. The idea is
that you end up getting more done because you&#39;re being productive
more of the time. I subscribe to the second theory.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here&#39;s hoping it works!&lt;/p&gt;

&lt;p&gt;Onward and Upward!&lt;/p&gt;
</description>
	
	
</item>
<item>
	
	<title>Git Feature Requests</title>
	<dcterms:creator>tycho garen</dcterms:creator>
	
	
	  <guid>http://tychoish.com/rhizome/git-feature-requests/</guid>
	
	<link>http://tychoish.com/rhizome/git-feature-requests/</link>
	
	
	<category>/tag/git</category>
	
	<category>/tag/programming</category>
	
	
	<pubDate>Thu, 17 May 2012 00:00:00 -0400</pubDate>
	<dcterms:modified>2012-05-17T14:27:36Z</dcterms:modified>
	
	<description>&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The ability to mark a branch &quot;diverged,&quot; to prevent (or warn) on
attempted merges from master (for example) into a maintenance
branch.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The ability to create and track dedicated topic branches, and
complementary tooling to encourage rebasing commits in these sorts
of branches. We might call them &quot;patch sets&quot; or &quot;sets&quot; rather than
&quot;branches.&quot; Also, it might be useful to think about using/displaying
these commits, when published, in a different way.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Represent merge commits as hyperlinks to the user, when possible. I
think GitHub&#39;s &quot;network graph&quot; and similar visualizations are great
for showing how commits and branches interact and relate to each
other.&lt;/p&gt;

&lt;p&gt;This would probably require some additional or modifies output from
&quot;&lt;code&gt;git log&lt;/code&gt;&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Named stashes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Branched stashes (perhaps this is closer to what I&#39;m thinking about
for the request regarding topic branches.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The ability to checkout &quot;working copies,&quot; of different
points/branches currently from a single repository at the same time,
&lt;em&gt;using &quot;native&quot; git utilities&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Related, &quot;shelf&quot; functionality is scriptable, but this too needs to
be easier and more well supported.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I think &lt;a href=&quot;http://www.git-legit.org/&quot;&gt;legit&lt;/a&gt; is a step in the right
direction, but it&#39;s weird and probably makes it more difficult to
understand what&#39;s happening with git conceptually as opposed to the
above features which would provide more appropriate conceptual
metaphors for the work that would-be-git-users need.&lt;/p&gt;
</description>
	
	
</item>
<item>
	
	<title>The Limitiations of the GitHub Fork Model</title>
	<dcterms:creator>tycho garen</dcterms:creator>
	
	
	  <guid>http://tychoish.com/rhizome/the-limitiations-of-the-github-fork-model/</guid>
	
	<link>http://tychoish.com/rhizome/the-limitiations-of-the-github-fork-model/</link>
	
	
	<category>/tag/free-software</category>
	
	<category>/tag/productivity</category>
	
	<category>/tag/programming</category>
	
	
	<pubDate>Thu, 10 May 2012 00:00:00 -0400</pubDate>
	<dcterms:modified>2012-05-10T16:06:42Z</dcterms:modified>
	
	<description>&lt;p&gt;Assumption:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://git-scam.com&quot;&gt;git&lt;/a&gt; is pretty awesome, but it&#39;s conceptually
complex. As a result using git demands a preexisting familiarity
with git itself or some sort of wrapper to minimize the conceptual
overhead.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The collaboration methods (i.e. hosting) provided by git, which are
simple by design to allow maximum flexibility, do not provide
enough structure to be practically useful. As a result providers
like &lt;a href=&quot;http://githb.com&quot;&gt;GitHub&lt;/a&gt; (and
&lt;a href=&quot;http://bitbucket.org&quot;&gt;BitBucket&lt;/a&gt; and
&lt;a href=&quot;HTTP://gitorious.org/&quot;&gt;gitorious&lt;/a&gt;) offer a valuable service that
makes it easier--or even possible--for people to use git.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Caveats:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;there are problems with using centralized repository services
controlled by third parties, particularly for open source/free
software projects.&lt;/p&gt;

&lt;p&gt;There are ways that GitHub succeeds an fails in this regard. but
this dynamic is too complex to fully investigate within the scope of
this post.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you use GitHub as designed, and the way that
most projects use GitHub, then you have a very specific and
particular view of how Git works.&lt;/p&gt;

&lt;p&gt;While this isn&#39;t a bad thing, it&#39;s less easy to use git in some more
distributed workflows as a result. This isn&#39;t GitHub&#39;s &lt;em&gt;fault&lt;/em&gt; so
much as it is an artifact of people not really knowing how git
itself works.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Assertion:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;GitHub&#39;s &quot;fork&quot; model disincentives people from working in
&quot;topic&quot; branches.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;By making it really easy for people to publish their branches,
GitHub disincentives the most productive use of the &quot;&lt;code&gt;git rebase&lt;/code&gt;&quot;
command that leads to clean and clear histories.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There&#39;s no distinction between a &quot;soft fork&quot; where you create a
fork for the purpose of submitting a patch (i.e. a &quot;pull request&quot;)
and a &quot;hard fork,&quot; where you actually want to break the
relationship with the original project.&lt;/p&gt;

&lt;p&gt;This is mostly meaningful in context of the &lt;em&gt;other&lt;/em&gt; features that
GitHub provides, notably the &quot;Network&quot; chart, and the issue
tracker. In a soft-fork that I would intend to merge back in, I&#39;d
like the issues to &quot;come with,&quot; the repository, or at least connect
in some way to the &quot;parent.&quot; For hard forks, it might make sense to
leave the old issues behind. The same with the network chart, which
is incredibly powerful, but it&#39;s not great at guessing how your
repository relates to the rest of its &quot;social network.&quot;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The solution: keep innovating, keep fighting lock-in, and don&#39;t let
GitHub dictate how you work.&lt;/p&gt;
</description>
	
	
</item>
<item>
	
	<title>Making Things Easier</title>
	<dcterms:creator>tycho garen</dcterms:creator>
	
	
	  <guid>http://tychoish.com/rhizome/making-things-easier/</guid>
	
	<link>http://tychoish.com/rhizome/making-things-easier/</link>
	
	
	<category>/tag/productivity</category>
	
	<category>/tag/technology</category>
	
	
	<pubDate>Tue, 08 May 2012 00:00:00 -0400</pubDate>
	<dcterms:modified>2012-05-08T18:43:18Z</dcterms:modified>
	
	<description>&lt;p&gt;I spent a lot of time in the past few months thinking about
&quot;automation,&quot; as a project to take things that take a long time and
require a lot of human intervention into things that &lt;em&gt;just do
themselves,&lt;/em&gt; and I think this is the wrong approach.&lt;/p&gt;

&lt;p&gt;While total automation is an admirable, it&#39;s difficult, both because
it requires more complex software to deal with edge cases, but also
because it&#39;s hard to iterate &lt;em&gt;into&lt;/em&gt; a fully automated solution.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Let&#39;s back up for a moment and talk about automation in general.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Computers are great at automating things. When you figure out &lt;em&gt;how
  exactly to accomplish something digitally&lt;/em&gt; (i.e. polling an
  information source for an update, transforming data, testing a
  system or tool,) writing a program to perform this function is a
  great idea: not only does it reduce the workload on actual people
  (i.e. you.) &lt;strong&gt;I think the difference between people who are &quot;good
  with computers,&quot; and people who are &quot;great with computers,&quot; is the
  ability to spot opportunities for these kinds of automations, and
  potentially implement them..&lt;/strong&gt;&lt;/p&gt;
  
  &lt;p&gt;To my mind the most important reason to automate tasks is to ensure
  consistency and to make it more likely that tedious tasks get done.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Having said this, rather than develop complete task automations for
common functions, the better solution is probably to approach
automation on the bottom up: instead of automating a complete process,
automate smaller pieces particularly the most repetitive and
invariable parts, and then provide a way for people to trigger the
(now simplified) task.&lt;/p&gt;

&lt;p&gt;The end result, is a system that&#39;s more flexible easier to write, and
less prone to failure under weird edge cases. Perhaps this is a
manifestation of &quot;&lt;a href=&quot;http://c2.com/cgi/wiki?WorseIsBetter&quot;&gt;worse is better&lt;/a&gt;&quot;
&lt;a href=&quot;http://en.wikipedia.org/wiki/Worse_is_better&quot;&gt;also&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;createlink&quot;&gt;&lt;a href=&quot;http://tychoish.com/ikiwiki.cgi?page=discourse&amp;amp;from=rhizome%2Fmaking-things-easier&amp;amp;do=create&quot; rel=&quot;nofollow&quot;&gt;?&lt;/a&gt;Thoughts&lt;/span&gt;?&lt;/p&gt;

&lt;p&gt;Onward and Upward!&lt;/p&gt;
</description>
	
	
</item>

</channel>
</rss>

