<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: neil-fraser</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/neil-fraser.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2009-08-14T10:38:57+00:00</updated><author><name>Simon Willison</name></author><entry><title>Quoting Neil Fraser</title><link href="https://simonwillison.net/2009/Aug/14/neil/#atom-tag" rel="alternate"/><published>2009-08-14T10:38:57+00:00</published><updated>2009-08-14T10:38:57+00:00</updated><id>https://simonwillison.net/2009/Aug/14/neil/#atom-tag</id><summary type="html">
    &lt;blockquote cite="http://neil.fraser.name/news/2009/08/14/"&gt;&lt;p&gt;Last night I woke up at 2am and realized that there was a fundamental problem with cursor preservation in today’s real-time collaborative applications [...] MobWrite now has what I believe to be the most advanced cursor preservation algorithm available.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="http://neil.fraser.name/news/2009/08/14/"&gt;Neil Fraser&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/collaboration"&gt;collaboration&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mobwrite"&gt;mobwrite&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/neil-fraser"&gt;neil-fraser&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/realtime"&gt;realtime&lt;/a&gt;&lt;/p&gt;



</summary><category term="collaboration"/><category term="mobwrite"/><category term="neil-fraser"/><category term="realtime"/></entry><entry><title>JSONP Memory Leak</title><link href="https://simonwillison.net/2009/Jul/28/neil/#atom-tag" rel="alternate"/><published>2009-07-28T12:46:54+00:00</published><updated>2009-07-28T12:46:54+00:00</updated><id>https://simonwillison.net/2009/Jul/28/neil/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://neil.fraser.name/news/2009/07/27/"&gt;JSONP Memory Leak&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Neil Fraser advocates iterating over and deleting every property on a JSONP script DOM node after you removeChild it from the DOM, to protect against memory leaks of “in excess of 15 MB per hour”.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jsonp"&gt;jsonp&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/memoreleaks"&gt;memoreleaks&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/neil-fraser"&gt;neil-fraser&lt;/a&gt;&lt;/p&gt;



</summary><category term="javascript"/><category term="jsonp"/><category term="memoreleaks"/><category term="neil-fraser"/></entry><entry><title>Neil Fraser: Differential Synchronization</title><link href="https://simonwillison.net/2009/Jan/24/neil/#atom-tag" rel="alternate"/><published>2009-01-24T23:57:02+00:00</published><updated>2009-01-24T23:57:02+00:00</updated><id>https://simonwillison.net/2009/Jan/24/neil/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://neil.fraser.name/writing/sync/"&gt;Neil Fraser: Differential Synchronization&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Paper describing a robust method for “keeping two or more copies of the same document synchronized with each other in real-time”, over a variable network connection using clever diff algorithms.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/algorithms"&gt;algorithms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/diff"&gt;diff&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/neil-fraser"&gt;neil-fraser&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/paper"&gt;paper&lt;/a&gt;&lt;/p&gt;



</summary><category term="algorithms"/><category term="diff"/><category term="neil-fraser"/><category term="paper"/></entry><entry><title>google-mobwrite</title><link href="https://simonwillison.net/2009/Jan/24/googlemobwrite/#atom-tag" rel="alternate"/><published>2009-01-24T23:55:18+00:00</published><updated>2009-01-24T23:55:18+00:00</updated><id>https://simonwillison.net/2009/Jan/24/googlemobwrite/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://code.google.com/p/google-mobwrite/"&gt;google-mobwrite&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Neil Fraser’s terrifyingly clever differential synchronization algorithm (for SubEthaEdit-style collaboration over the web) is now available as an open source Python and JavaScript library.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/collaboration"&gt;collaboration&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/google"&gt;google&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mobwrite"&gt;mobwrite&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/neil-fraser"&gt;neil-fraser&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/open-source"&gt;open-source&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/subethaedit"&gt;subethaedit&lt;/a&gt;&lt;/p&gt;



</summary><category term="collaboration"/><category term="google"/><category term="javascript"/><category term="mobwrite"/><category term="neil-fraser"/><category term="open-source"/><category term="python"/><category term="subethaedit"/></entry><entry><title>google-diff-match-patch</title><link href="https://simonwillison.net/2007/Jun/9/googlediffmatchpatch/#atom-tag" rel="alternate"/><published>2007-06-09T18:15:05+00:00</published><updated>2007-06-09T18:15:05+00:00</updated><id>https://simonwillison.net/2007/Jun/9/googlediffmatchpatch/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://code.google.com/p/google-diff-match-patch/"&gt;google-diff-match-patch&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Robust algorithms to perform the operations required for synchronizing plain text, in Java, JavaScript and Python.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://neil.fraser.name/news/2007/06/09/"&gt;Neil Fraser&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/diff"&gt;diff&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/google"&gt;google&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/java"&gt;java&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/neil-fraser"&gt;neil-fraser&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/open-source"&gt;open-source&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;&lt;/p&gt;



</summary><category term="diff"/><category term="google"/><category term="java"/><category term="javascript"/><category term="neil-fraser"/><category term="open-source"/><category term="python"/></entry><entry><title>Quoting Neil Fraser</title><link href="https://simonwillison.net/2007/Jan/13/neil/#atom-tag" rel="alternate"/><published>2007-01-13T12:28:53+00:00</published><updated>2007-01-13T12:28:53+00:00</updated><id>https://simonwillison.net/2007/Jan/13/neil/#atom-tag</id><summary type="html">
    &lt;blockquote cite="http://neil.fraser.name/news/2007/01/13/"&gt;&lt;p&gt;The JavaScript alert(), confirm() and prompt() functions in Firefox, Opera and MSIE (but not Safari) will truncate the message after any null character. So an unsuspecting programmer who inserts user-provided text into one of these dialog boxes opens up an opportunity for the user to rewrite the bottom of the dialog box.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="http://neil.fraser.name/news/2007/01/13/"&gt;Neil Fraser&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/firefox"&gt;firefox&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/neil-fraser"&gt;neil-fraser&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/security"&gt;security&lt;/a&gt;&lt;/p&gt;



</summary><category term="firefox"/><category term="javascript"/><category term="neil-fraser"/><category term="security"/></entry><entry><title>Neil Fraser: Googled</title><link href="https://simonwillison.net/2006/Nov/1/neil/#atom-tag" rel="alternate"/><published>2006-11-01T11:42:51+00:00</published><updated>2006-11-01T11:42:51+00:00</updated><id>https://simonwillison.net/2006/Nov/1/neil/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://neil.fraser.name/news/2006/11/01/"&gt;Neil Fraser: Googled&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
I’m obviously not the only person who thought MobWrite was total genius.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/google"&gt;google&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/neil-fraser"&gt;neil-fraser&lt;/a&gt;&lt;/p&gt;



</summary><category term="google"/><category term="neil-fraser"/></entry><entry><title>Neil Fraser: Software: MobWrite</title><link href="https://simonwillison.net/2006/Sep/11/neil/#atom-tag" rel="alternate"/><published>2006-09-11T13:01:59+00:00</published><updated>2006-09-11T13:01:59+00:00</updated><id>https://simonwillison.net/2006/Sep/11/neil/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://neil.fraser.name/software/mobwrite/"&gt;Neil Fraser: Software: MobWrite&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Very impressive web-based collaborative text editor.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/neil-fraser"&gt;neil-fraser&lt;/a&gt;&lt;/p&gt;



</summary><category term="neil-fraser"/></entry></feed>