<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#">
<link rel="alternate" type="text/html" href="http://neil.brown.name/blog/DocumentEditor"/>

<title>DocumentEditor</title>
<modified>2004-07-11T08:29:36Z</modified>
<author></author>
<entry>
<title>Document Storage</title>
<issued>2004-07-11T08:29:36Z</issued>
<modified>2004-07-11T08:29:36Z</modified>
<id>http://neil.brown.name/blog/20040711082936</id>
<link rel="alternate" type="text/html" href="http://neil.brown.name/blog/20040711082936"/>
<content type="text/html" mode="escaped">

&lt;p&gt;The next question to ask and answer is: how do we internal store a document.

&lt;p&gt;The key issues are:
&lt;ul&gt;&lt;li&gt;space-efficient storage of large texts&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt;time-efficient small manipulation of text (add/delete in middle) &lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt;easy storage of stable pointers into the text&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt;easy storage of assorted attributes with the text&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt;easy undo-list maintenance&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;a href=http://neil.brown.name/blog/20040711082936&gt;read more...(No comments)&lt;/a&gt;</content>
</entry>
<entry>
<title>diff/patch editor</title>
<issued>2004-05-08T21:08:40Z</issued>
<modified>2004-05-08T21:08:40Z</modified>
<id>http://neil.brown.name/blog/20040508210840</id>
<link rel="alternate" type="text/html" href="http://neil.brown.name/blog/20040508210840"/>
<content type="text/html" mode="escaped">
Another Use Case has occurred to me that I would really like this (hypothetical) editor to be able to support well.  That is a diff/patch editor.

&lt;p&gt;The basic idea is that when doing distributed software development, the items that are traded are patches.  It is important to be able to work with these effecitively, both including them into ones own source tree, and generating a set of patches to distribute
&lt;p&gt;&lt;a href=http://neil.brown.name/blog/20040508210840&gt;read more...(No comments)&lt;/a&gt;</content>
</entry>
<entry>
<title>Programming Approach</title>
<issued>2004-05-06T08:24:42Z</issued>
<modified>2004-05-06T08:24:42Z</modified>
<id>http://neil.brown.name/blog/20040506082442</id>
<link rel="alternate" type="text/html" href="http://neil.brown.name/blog/20040506082442"/>
<content type="text/html" mode="escaped">

&lt;p&gt;The point of this article is to try to describe the approach to developing an application within this editor.

&lt;p&gt;A substantial motivation for this editor was the (apparent) difficulty in writing  applications for EMACS.  The difficulty lies in the need to worry about the wrong sort of detail.  In EMACS that display is very tightly tied to the buffer contents.  It is possible to hide parts of the buffer, and to display parts of the buffer differently, but the level of abstraction seems all wrong.  There needs to be a clearer separation between the buffer and the display, with the option of arbitrary programatic conversion from buffer to display.

&lt;p&gt;For this to be achievable without simply introducing a different sort of complexity there needs to be a clear model explaining how things should work.

&lt;p&gt;&lt;p&gt;&lt;a href=http://neil.brown.name/blog/20040506082442&gt;read more...(No comments)&lt;/a&gt;</content>
</entry>
<entry>
<title>More about documents</title>
<issued>2004-05-06T08:02:30Z</issued>
<modified>2004-05-06T08:02:30Z</modified>
<id>http://neil.brown.name/blog/20040506080230</id>
<link rel="alternate" type="text/html" href="http://neil.brown.name/blog/20040506080230"/>
<content type="text/html" mode="escaped">


&lt;p&gt;&lt;br&gt;Many documents consist of just a single file, that can be read into a single document buffer.  However this is not always the case.

&lt;p&gt;A good example is a mailbox containing mail to be read.  This can sometimes be a single file, but can also be a collection of files, either read from the filesystem or from a network connection such as with POP and IMAP.
Another example is an HTML page that contains images.  These images are stored in separate files.

&lt;p&gt;&lt;p&gt;&lt;a href=http://neil.brown.name/blog/20040506080230&gt;read more...(No comments)&lt;/a&gt;</content>
</entry>
<entry>
<title>Parsing Procedure</title>
<issued>2004-05-03T20:24:54Z</issued>
<modified>2004-05-03T20:24:54Z</modified>
<id>http://neil.brown.name/blog/20040503202454</id>
<link rel="alternate" type="text/html" href="http://neil.brown.name/blog/20040503202454"/>
<content type="text/html" mode="escaped">
 Parsing of documents needs to happen incrementally, both a high-level parse that just finds major sections, and low-level parses that only do a small local part of the document.

&lt;p&gt;UNFINISHED
&lt;p&gt;&lt;a href=http://neil.brown.name/blog/20040503202454&gt;read more...(No comments)&lt;/a&gt;</content>
</entry>
<entry>
<title>Dreaming dreams</title>
<issued>2004-04-30T14:14:07Z</issued>
<modified>2004-04-30T14:14:07Z</modified>
<id>http://neil.brown.name/blog/20040430141407</id>
<link rel="alternate" type="text/html" href="http://neil.brown.name/blog/20040430141407"/>
<content type="text/html" mode="escaped">



&lt;p&gt;I had a couple of weeks off recently (parent duty for the school holidays) and spent some of it playing with ideas for a document editor.  You can find them under the &lt;a href=&quot;http://neil.brown.name/blog/Dreams&quot;&gt;Dreams&lt;/a&gt; link on the right.

&lt;p&gt;I observed about myself a particular flaw in my approach to design.  I tend to have grand ideas and try to develop them completely.  I often run into difficulties in detail and tend to get bogged down in those details.  Instead, I should solve a simple version of the problem and only come back to the more grand scheme once I have more experience with the whole system.

&lt;p&gt;Maybe I will learn from this and not allow &amp;quot;Perfect&amp;quot; to be an enemy of &amp;quot;Good&amp;quot;...

&lt;p&gt;&lt;p&gt;&lt;a href=http://neil.brown.name/blog/20040430141407&gt;(No comments)&lt;/a&gt;</content>
</entry>
<entry>
<title>Display Windows</title>
<issued>2004-04-25T16:35:09Z</issued>
<modified>2004-04-25T16:35:09Z</modified>
<id>http://neil.brown.name/blog/20040425163509</id>
<link rel="alternate" type="text/html" href="http://neil.brown.name/blog/20040425163509"/>
<content type="text/html" mode="escaped">

&lt;p&gt;In the &amp;quot;what to display - Summary&amp;quot; page I introduced &amp;quot;Display Windows&amp;quot; seemingly out of the blue.  I should now develop the idea to make sure that it makes sense.

&lt;p&gt;&lt;p&gt;&lt;a href=http://neil.brown.name/blog/20040425163509&gt;read more...(No comments)&lt;/a&gt;</content>
</entry>
<entry>
<title>What to display - Summary</title>
<issued>2004-04-25T16:02:07Z</issued>
<modified>2004-04-25T16:02:07Z</modified>
<id>http://neil.brown.name/blog/20040425160207</id>
<link rel="alternate" type="text/html" href="http://neil.brown.name/blog/20040425160207"/>
<content type="text/html" mode="escaped">

&lt;p&gt;The way my thoughts seem to be going at the moment, where are three general styles of windows which I shall call Navigation windows, Content windows, and Display windows.  Their contents are displayed quite differently.

&lt;p&gt;&lt;p&gt;&lt;a href=http://neil.brown.name/blog/20040425160207&gt;read more...(No comments)&lt;/a&gt;</content>
</entry>
<entry>
<title>What to display - Information</title>
<issued>2004-04-24T21:24:12Z</issued>
<modified>2004-04-24T21:24:12Z</modified>
<id>http://neil.brown.name/blog/20040424212412</id>
<link rel="alternate" type="text/html" href="http://neil.brown.name/blog/20040424212412"/>
<content type="text/html" mode="escaped">

&lt;p&gt;When deciding what parts of the document to display, and how, a worthy goal is to endeavor to display as much information as possible.  (I actually did my undergrad thesis on this question.  I never got working code.  Maybe now...).

&lt;p&gt;The information content of different parts of the document need to be measuring the context of what the user is currently interested in.  i.e. it must be a function of not just the document, but also the cursor.

&lt;p&gt;The common approximation is that content near the cursor contains more information than content distant from the cursor, so content near the cursor is display as much as possible (with allowances for stability).

&lt;p&gt;For plain text, it is hard to do better than this.  However for a more structured document, it is tempting to do a lot more.

&lt;p&gt;&lt;p&gt;&lt;a href=http://neil.brown.name/blog/20040424212412&gt;read more...(No comments)&lt;/a&gt;</content>
</entry>
<entry>
<title>What to display - Stability</title>
<issued>2004-04-22T11:27:54Z</issued>
<modified>2004-04-22T11:27:54Z</modified>
<id>http://neil.brown.name/blog/20040422112754</id>
<link rel="alternate" type="text/html" href="http://neil.brown.name/blog/20040422112754"/>
<content type="text/html" mode="escaped">

 &lt;p&gt;The question for this article is: What should be included in the displayed window for a particular document?

&lt;p&gt;We have a document.  We have a current point (cursor) in the document.  And we have a display area (window) with certain space characteristics (width, height, DPI) and we want to display part of the document, presumably including the part around the point, making best use of the available space.

&lt;p&gt;There are two issues that can guide us.  The first is the need for stability in the display : a small change in the document or point should cause a small change in the display.  The other is information content : the display should be as informative as possible.

&lt;p&gt;These two issues can conflict, so they need to be assessed together.  However both a quite substantial issues and so developing them in parallel is not practical.

&lt;p&gt;In this article we explore the stability issue assuming a very simple information model.  In a later article we might explore information content and then blend the two together.

&lt;p&gt;&lt;p&gt;&lt;a href=http://neil.brown.name/blog/20040422112754&gt;read more...(No comments)&lt;/a&gt;</content>
</entry>
<entry>
<title>Describing the layout of a document</title>
<issued>2004-04-15T10:55:08Z</issued>
<modified>2004-04-15T10:55:08Z</modified>
<id>http://neil.brown.name/blog/20040415105508</id>
<link rel="alternate" type="text/html" href="http://neil.brown.name/blog/20040415105508"/>
<content type="text/html" mode="escaped">
I'm still thinking about document formatting, which is a bit of a diversion from the ultimate editor.  But I'll get back there.

&lt;p&gt;The language needs to be able to describe what a page looks like, what parts it has, and how content is placed in those parts.  It also needs to indicate how overflow content spills onto subsequent pages.

&lt;p&gt;Some of the ideas here are inspired by the
&lt;a href=&quot;http://lout.sourceforge.net&quot;&gt;Lout&lt;/a&gt;
typesetting system - a system that I thought held a lot of promise that for some reason it never quite realised (maybe this system will follow in it's footsteps :-( )

&lt;p&gt;&lt;p&gt;&lt;a href=http://neil.brown.name/blog/20040415105508&gt;read more...(No comments)&lt;/a&gt;</content>
</entry>

</feed>

