<?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-2714819279457521286</id><updated>2011-04-21T18:40:53.760-04:00</updated><category term='emacs'/><category term='ubuntu'/><category term='git'/><category term='blog'/><category term='egg'/><title type='text'>Bogosities</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bogolisk.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2714819279457521286/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://bogolisk.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Bogolisk</name><uri>http://www.blogger.com/profile/09070066844307421968</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>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2714819279457521286.post-2803115288071207799</id><published>2009-01-04T20:44:00.013-05:00</published><updated>2009-01-05T22:18:30.028-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><category scheme='http://www.blogger.com/atom/ns#' term='egg'/><title type='text'>Introduction to Egg</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-style: italic;"&gt;Work in Progress&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Introduction&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://github.com/bogolisk/egg/tree/master"&gt;Egg&lt;/a&gt; is an Emacs interface to &lt;a href="http://git.or.cz/"&gt;git&lt;/a&gt;. It's a suite composed of a minor-mode and various special-buffers presenting different UIs to help the user performing many git operations.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;egg-minor-mode: providing git-specific vc-look-alike interface including similar key-bindings, a minor-mode menu and history annotations (blame).&lt;/li&gt;&lt;li&gt;egg's status-buffer:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;index manipulation/commit preparation&lt;/li&gt;&lt;li&gt;interactive rebase stepping&lt;/li&gt;&lt;li&gt;merge conflict resolution&lt;/li&gt;&lt;li&gt;stashing work-in-progress&lt;/li&gt;&lt;li&gt;adding ignore pattern&lt;/li&gt;&lt;li&gt;staging new files&lt;/li&gt;&lt;li&gt;ediff or ediff3 launching. (e.g. 3-way ediff of work-dir/INDEX/HEAD, 3-way ediff of work-dir/theirs/ours)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;egg's log-buffer&lt;/li&gt;&lt;ul&gt;&lt;li&gt;browse repo's history&lt;/li&gt;&lt;li&gt;ref (tag, branch, etc) creation and deletion&lt;/li&gt;&lt;li&gt;push and fetch&lt;/li&gt;&lt;li&gt;start merge/rebase/interactive-rebase session&lt;/li&gt;&lt;li&gt;attach/detach HEAD&lt;/li&gt;&lt;li&gt;search history (pickaxe)&lt;/li&gt;&lt;li&gt;compare revisions&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;egg's file-log-buffer: restricted version of the log-buffer, used to browse history of a single file.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;egg's reflog-buffer: restricted variation of the log-buffer, used to browse the git's reflog and re-attach HEAD.&lt;/li&gt;&lt;li&gt;egg's query:commit-buffer: restricted variation of the log-buffer, used to browse history-search's results (pickaxe)&lt;/li&gt;&lt;li&gt;egg's stash-buffer: a log-buffer look-a-like, used to browse and apply stash entries to work-dir&lt;/li&gt;&lt;li&gt;egg-grep: a compile-mode which can grep files in non-checkout git revisions.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;egg's commit-log-edit buffer: used to compose the commit-message for the upcoming commit. it can do some minor index manipulation.&lt;/li&gt;&lt;li&gt;egg's tag:msg-buffer: used to compose the message of an annotated tag&lt;/li&gt;&lt;li&gt;egg's diff-buffer: used to view the delta between file or repo revisions&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Prerequisites&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Egg doesn't provide an abstraction on top of git. Instead it assumes the user is &lt;span style="font-style: italic;"&gt;familiar&lt;/span&gt; with git (and of course, emacs). Thus, egg claims it shares the same goals as git's aliases and is &lt;span style="font-style: italic;"&gt;n&lt;/span&gt;&lt;span style="font-style: italic;"&gt;ot&lt;/span&gt; another git porcelain.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Installation&lt;/span&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;download &lt;span style="font-family: courier new;font-size:100%;" &gt;egg.el&lt;/span&gt; (and &lt;span style="font-family:courier new;"&gt;egg-grep.el&lt;/span&gt;)&lt;/li&gt;&lt;li&gt;compile it and put int somewhere in your emacs's load-path.&lt;/li&gt;&lt;li&gt;put&lt;span style="font-family:courier new;"&gt;(require 'egg)&lt;/span&gt; in your .emacs&lt;/li&gt;&lt;li&gt;run &lt;span style="font-family:courier new;"&gt;M-x customize-group egg&lt;/span&gt; at least once.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;egg-git-command&lt;/span&gt; should be set to the proper command to invoke git. The default is "git". Same deal for &lt;span style="font-family:courier new;"&gt;egg-patch-command,&lt;/span&gt; although it's not as critical to egg as the first one.&lt;/li&gt;&lt;li&gt;turn-on &lt;span style="font-family:courier new;"&gt;egg-enable-tooltip&lt;/span&gt; to help self-familiarizing with egg. Egg's keymap is very context dependent. Tooltip balloons will shows the local keymap at the location of the cursor (point).&lt;/li&gt;&lt;li&gt;disable &lt;span style="font-family:courier new;"&gt;egg-confirm-next-action&lt;/span&gt; once familiar with egg. egg-next-action will then execute its guessed action immediately.&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;egg-minor-mode&lt;/span&gt; prefix is defaulted to "C-x v". However one can change the value by customizing &lt;span style="font-family:courier new;"&gt;egg-mode-key-prefix.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Minor-mode&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JpGoS02xLrE/SWGEfWYVMEI/AAAAAAAABOA/4zGc_vSMhb4/s1600-h/emacs-egg.el.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 173px;" src="http://2.bp.blogspot.com/_JpGoS02xLrE/SWGEfWYVMEI/AAAAAAAABOA/4zGc_vSMhb4/s200/emacs-egg.el.png" alt="" id="BLOGGER_PHOTO_ID_5287653111628116034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;When properly activated, open a file from a git repository would show &lt;span style="font-weight: bold;"&gt;Git:branch-name&lt;/span&gt; or (&lt;span style="font-weight: bold;"&gt;Egg&lt;/span&gt;, if egg hasn't yet had a chance to query the repo-status) in the mode-line and &lt;span style="font-weight: bold;"&gt;Egg (Git)&lt;/span&gt; menu on the menu-bar.&lt;br /&gt;&lt;br /&gt;The menu show many of the git operations mapped by Egg and their invocation keys. Egg tries to keeps the key bindings similar to VC: "C-x v =". The most interesting command is egg-next-action and its keys "C-x v v". Using the menu-bar, egg-next-action will execute without confirmation (because it already showed the user what the next action is in menu.) If invoked using the keyboard, &lt;span style="font-family:courier new;"&gt;egg-nex&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JpGoS02xLrE/SWGJz2jmJrI/AAAAAAAABOI/V73OnTCM4Qc/s1600-h/next-action-egg.el.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 39px;" src="http://1.bp.blogspot.com/_JpGoS02xLrE/SWGJz2jmJrI/AAAAAAAABOI/V73OnTCM4Qc/s200/next-action-egg.el.png" alt="" id="BLOGGER_PHOTO_ID_5287658961420822194" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;t-action&lt;/span&gt; will ask the user for confirmation before executing the &lt;span style="font-style: italic;"&gt;guessed next-action&lt;/span&gt;.  The user then has the choice of accepting the guess or request egg to show a list of action candidates actions with the&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JpGoS02xLrE/SWGKcpVkFWI/AAAAAAAABOQ/AYv5N6xUqHA/s1600-h/sel-next-action-egg.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 158px;" src="http://2.bp.blogspot.com/_JpGoS02xLrE/SWGKcpVkFWI/AAAAAAAABOQ/AYv5N6xUqHA/s200/sel-next-action-egg.png" alt="" id="BLOGGER_PHOTO_ID_5287659662246942050" border="0" /&gt;&lt;/a&gt; guessed candidate on the top.&lt;br /&gt;&lt;br /&gt;It has always been the design objective of Egg:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;help users to familiarize themselves with egg (using menu, help text, tooltip, etc.)&lt;/li&gt;&lt;li&gt;make the common operations a couple of keystrokes away and expeditive.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;The Status Buffer&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JpGoS02xLrE/SWGU5mSYTpI/AAAAAAAABOg/79bVek9SEKQ/s1600-h/egg-status.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 174px; height: 200px;" src="http://2.bp.blogspot.com/_JpGoS02xLrE/SWGU5mSYTpI/AAAAAAAABOg/79bVek9SEKQ/s200/egg-status.png" alt="" id="BLOGGER_PHOTO_ID_5287671154760765074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The most important egg's special buffer is the status-buffer. It's launched by typing "C-x v d" when editing with egg-minor-mode. The status-buffer contains 4 sub-sections: the repo section, the &lt;span style="font-style: italic;"&gt;unstaged&lt;/span&gt; section, the &lt;span style="font-style: italic;"&gt;staged&lt;/span&gt; section and the &lt;span style="font-style: italic;"&gt;untracked&lt;/span&gt; section.&lt;br /&gt;&lt;br /&gt;The repo section shows the name of the branch on which HEAD is attached to. Otherwise, it will says that HEAD is detached. There's also a Help section showing the bindings available in the buffer. Many blocks in the status buffer (and other egg special buffers) can be hidden. The picture on the right show the Help block was hidden and well as the delta of the file README.markdown and the first hunk of egg.el in the unstaged section. The "h" key and the middle mouse button toggle the hidden/shown state of a block. The customizable variable egg-buffer-hide-section-type-on-start can be used to control the initial (hidden/shown) state of different section types in egg's special buffers. In the status-buffer, as in other egg's special-buffers, the "n" and "p" keys let you navigate to the &lt;span style="font-style: italic;"&gt;next&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;previous&lt;/span&gt; blocks while the "g" will refresh the display and th&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JpGoS02xLrE/SWKqCZO7SII/AAAAAAAABOo/F1h_1TbvnCE/s1600-h/status_rebase_egg.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 148px; height: 201px;" src="http://1.bp.blogspot.com/_JpGoS02xLrE/SWKqCZO7SII/AAAAAAAABOo/F1h_1TbvnCE/s200/status_rebase_egg.png" alt="" id="BLOGGER_PHOTO_ID_5287975870596335746" border="0" /&gt;&lt;/a&gt;e "q" will quit the window. If there was a rebase session in progress, the repo section will also show the current rebase step and more binding will be available to support rebase operations.&lt;br /&gt;&lt;br /&gt;The two &lt;span style="font-style: italic;"&gt;unstaged&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;staged&lt;/span&gt; sections let user do 3-way manipulation of the trio work-dir/INDEX/HEAD using the mostly "s" key and sometimes the "u" key. The "s" key behaves differently in the staged and unstaged section. In the unstaged section, it will stage the block (a file or a hunk) into which it was typed.  In the staged section, it will unstage the block instead. A &lt;span style="font-style: italic;"&gt;block&lt;/span&gt; of changes is ether a file-delta or a hunk. By example, in the unstaged section, typing the "s" key (stage) on the diff header of a file will add the contents of the file from the work-dir to the index. If "s" was typed into a &lt;span style="font-style: italic;"&gt;hun&lt;/span&gt;&lt;span style="font-style: italic;"&gt;k&lt;/span&gt;, then that hunk instead of the entire file-delta will be applied to the index. Typing "u" into the a diff-header in the unstaged section will basically restore the contents of the file back into its state in the INDEX. Typing "u" in an unstaged hunk will &lt;span style="font-style: italic;"&gt;undo&lt;/span&gt; the changes shown by that hunk. Finally, typing the RET key will try to locate the line in the delta hunk back into its original file.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;The Diff Buffer&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Another common command is the diff command. It's bound to "C-x v =" in egg's minor&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JpGoS02xLrE/SWGPSTal5DI/AAAAAAAABOY/sotGyNzHdBQ/s1600-h/diff-buffer-egg.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 161px;" src="http://2.bp.blogspot.com/_JpGoS02xLrE/SWGPSTal5DI/AAAAAAAABOY/sotGyNzHdBQ/s200/diff-buffer-egg.png" alt="" id="BLOGGER_PHOTO_ID_5287664982121899058" border="0" /&gt;&lt;/a&gt;-mode use the egg's diff-buffer to show the difference between the file or repository revisions. When editing a file, "C-x v =" (egg-file-diff), by default will show the delta between the current in the work-dir and its contents in the INDEX. With a prefix (i.e. "C-u C-x v ="), the command will prompt for the &lt;span style="font-style: italic;"&gt;old&lt;/span&gt; version (the &lt;span style="font-style: italic;"&gt;new&lt;/span&gt; version of the file being its contents in the work-dir).&lt;br /&gt;&lt;br /&gt;The diff-buffer is similar to a restricted version of the status buffer. The status-buffer shows two comparisons, work-dir vs INDEX and INDEX vs HEAD. The diff-buffer only show one comparison and depending on the actual entities being compared, the "s" and the "u" key will behave differently. By example, when showing the diff between two arbitrary revisions, the "s" and "u" keys will be inactive. As in the status-buffer, there's a little block of help text show the key binding on different parts of the buffer. The "n", "p", "g" and "q" In the diff-buffer, and other egg buffers, the "n" and "p" keys move the cursor from one block to the other.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;The Commit Buffer&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JpGoS02xLrE/SWKtGHwMHGI/AAAAAAAABOw/X09FLn9ZoyQ/s1600-h/egg_commit.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 154px; height: 200px;" src="http://1.bp.blogspot.com/_JpGoS02xLrE/SWKtGHwMHGI/AAAAAAAABOw/X09FLn9ZoyQ/s200/egg_commit.png" alt="" id="BLOGGER_PHOTO_ID_5287979233158372450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The commit buffer is launched by the keys "C-x v c" in egg-minor-mode or "c" from the status-buffer. At the top of the commit-buffer, egg informs the user the branch the commit will be add to. The commit message shall be typed between the two dashed lines. That space will expand automatically when the users type newline. Below the message  input area is the 3 sections already seen in the status-buffer: unstaged, staged and untracked. They are shown in the commit-buffer to let the user a overview on what will and will not be in the new commit. They also let the user do minor last-minute INDEX manipulations if required. If launched with a prefix, i.e. "C-u C-x v c" or "C-u c", the upcoming commit  operation will amend the last commit of the branch. Egg will also pre-load the last-commit's message into the input area so the user can re-edit it if required. In the input area, the "M-n" and "M-p" keys will cycle through the previously typed commit messages while the usual keys "n", "p", "s", "u", "g" and "q" are active outside the input area and they behave similarly as in the status-buffer.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;The Log Buffer&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JpGoS02xLrE/SWLNGb3M7QI/AAAAAAAABO4/Lb2XUdvddmg/s1600-h/egg_log_buffer.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 136px; height: 200px;" src="http://2.bp.blogspot.com/_JpGoS02xLrE/SWLNGb3M7QI/AAAAAAAABO4/Lb2XUdvddmg/s200/egg_log_buffer.png" alt="" id="BLOGGER_PHOTO_ID_5288014422928583938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;One of git's best features is its design of the refs system: simple, efficient and powerful. Egg's log-buffer let the user tap into that resource. The log buffer provide bindings to let user manipulate and control git's refs (branch, tag, annotated tags),: creating and removing,  pushing and fetching, merging and rebasing, attaching and detaching HEAD, etc.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-style: italic;"&gt;to be completed...&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2714819279457521286-2803115288071207799?l=bogolisk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bogolisk.blogspot.com/feeds/2803115288071207799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bogolisk.blogspot.com/2009/01/introduction-to-egg.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2714819279457521286/posts/default/2803115288071207799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2714819279457521286/posts/default/2803115288071207799'/><link rel='alternate' type='text/html' href='http://bogolisk.blogspot.com/2009/01/introduction-to-egg.html' title='Introduction to Egg'/><author><name>Bogolisk</name><uri>http://www.blogger.com/profile/09070066844307421968</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JpGoS02xLrE/SWGEfWYVMEI/AAAAAAAABOA/4zGc_vSMhb4/s72-c/emacs-egg.el.png' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2714819279457521286.post-1098428683272187716</id><published>2009-01-01T17:54:00.000-05:00</published><updated>2009-01-01T20:53:16.059-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><category scheme='http://www.blogger.com/atom/ns#' term='egg'/><title type='text'>documentation is tedious and hard</title><content type='html'>I'm rewriting the &lt;a href="http://github.com/bogolisk/egg/wikis/manual"&gt;wiki&lt;/a&gt; for egg. Dang, it's hard and tedious. When writing code one usually think about:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;how the code will be used&lt;/li&gt;&lt;li&gt;how the code will be tested/verified/debugged&lt;/li&gt;&lt;li&gt;how the code will be updated/fixed/maintained&lt;/li&gt;&lt;/ul&gt;how about: how the code will be documented! &lt;span style="font-style: italic;"&gt;literate-programming&lt;/span&gt;? Ew!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2714819279457521286-1098428683272187716?l=bogolisk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bogolisk.blogspot.com/feeds/1098428683272187716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bogolisk.blogspot.com/2009/01/documentation-is-tedious-and-hard.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2714819279457521286/posts/default/1098428683272187716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2714819279457521286/posts/default/1098428683272187716'/><link rel='alternate' type='text/html' href='http://bogolisk.blogspot.com/2009/01/documentation-is-tedious-and-hard.html' title='documentation is tedious and hard'/><author><name>Bogolisk</name><uri>http://www.blogger.com/profile/09070066844307421968</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-2714819279457521286.post-6064531697839227139</id><published>2008-12-31T08:45:00.001-05:00</published><updated>2008-12-31T08:55:05.234-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='egg'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>egg</title><content type='html'>My egg project on github now has 33 watchers! I've never expected my little emacs package would interest other peoples.&lt;br /&gt;&lt;br /&gt;I'm still wondering what's the easiest way to write an user-manual for egg. Egg is very UI oriented and an Egg user-manual would need image to correctly describe the UI. That basically rules out texinfo.&lt;br /&gt;&lt;br /&gt;I'm trying to upgrade to the latest git (1.6.1). Anyone has a git-core deb built for gutsy? I know gutsy is very old, but I don't have a choice. I'm using a commercial tunnel application to connect to work and it's very unstable on later kernel versions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2714819279457521286-6064531697839227139?l=bogolisk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bogolisk.blogspot.com/feeds/6064531697839227139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bogolisk.blogspot.com/2008/12/egg.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2714819279457521286/posts/default/6064531697839227139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2714819279457521286/posts/default/6064531697839227139'/><link rel='alternate' type='text/html' href='http://bogolisk.blogspot.com/2008/12/egg.html' title='egg'/><author><name>Bogolisk</name><uri>http://www.blogger.com/profile/09070066844307421968</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2714819279457521286.post-3215179529356454676</id><published>2008-12-31T08:34:00.000-05:00</published><updated>2008-12-31T08:35:55.048-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><title type='text'>blog</title><content type='html'>Just start blogging... still pretty confused!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2714819279457521286-3215179529356454676?l=bogolisk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bogolisk.blogspot.com/feeds/3215179529356454676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bogolisk.blogspot.com/2008/12/blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2714819279457521286/posts/default/3215179529356454676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2714819279457521286/posts/default/3215179529356454676'/><link rel='alternate' type='text/html' href='http://bogolisk.blogspot.com/2008/12/blog.html' title='blog'/><author><name>Bogolisk</name><uri>http://www.blogger.com/profile/09070066844307421968</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>
