<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>n8blog &#187; Forget-Me-Not</title>
	<atom:link href="http://www.n8gray.org/blog/category/projects/forget-me-not/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.n8gray.org</link>
	<description>distraction in action</description>
	<lastBuildDate>Thu, 01 Jul 2010 18:21:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Reviving Forget-Me-Not</title>
		<link>http://www.n8gray.org/blog/2008/12/15/reviving-forget-me-not/</link>
		<comments>http://www.n8gray.org/blog/2008/12/15/reviving-forget-me-not/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 19:25:22 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Forget-Me-Not]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/?p=177</guid>
		<description><![CDATA[I get a lot of mail from people wishing Forget-Me-Not worked in Leopard.  For them, I&#8217;m happy to report some hopeful news.  A while back I was contacted by a senior Apple representative who expressed interest in helping me revive Forget-Me-Not.  In the end, after consulting with Apple engineers, it was decided [...]]]></description>
			<content:encoded><![CDATA[<p>I get a lot of mail from people wishing Forget-Me-Not worked in Leopard.  For them, I&#8217;m happy to report some hopeful news.  A while back I was contacted by a senior Apple representative who expressed interest in helping me revive Forget-Me-Not.  In the end, after consulting with Apple engineers, it was decided that the way to go forward would be to provide a new <span class="caps">API </span>suitable for <span class="caps">FMN. </span> This conclusion was slightly surprising to me, because it seems like the <span class="caps">API </span>we&#8217;re using should be suitable, but then again I&#8217;m not an Apple engineer.  In any case, if you want to revive <span class="caps">FMN, </span>please file a bug report at http://bugreport.apple.com (requires a free <span class="caps">ADC </span>membership) and say you want to support the enhancement in bug report 6018339.  You don&#8217;t have to say much of anything, just make sure to reference that bug number &#8212; Apple considers duplicate bug reports &#8220;votes&#8221;, so you want to make dead sure they know it&#8217;s a duplicate.</p>

<p>Before you get your hopes up, please understand that this contact was made back in the early summer and nothing much has come from it.  Hopefully a few &#8220;votes&#8221; for the issue will get the ball rolling again.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2008%2F12%2F15%2Freviving-forget-me-not%2F&amp;linkname=Reviving%20Forget-Me-Not"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2008/12/15/reviving-forget-me-not/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Forget-Me-Not 1.0.2</title>
		<link>http://www.n8gray.org/blog/2006/09/18/forget-me-not-102/</link>
		<comments>http://www.n8gray.org/blog/2006/09/18/forget-me-not-102/#comments</comments>
		<pubDate>Mon, 18 Sep 2006 19:29:31 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Forget-Me-Not]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/blog/2006/09/18/forget-me-not-102/</guid>
		<description><![CDATA[I just dropped Forget-Me-Not 1.0.2 for you because you&#8217;ve been a very good boy and/or girl.  This version fixes some memory leaks without adding any new features.  The OS X developer tools have a nice tool for debugging object leaks and it now appears that we&#8217;ve plugged them all!  Your mileage may [...]]]></description>
			<content:encoded><![CDATA[<p>I just dropped Forget-Me-Not 1.0.2 for you because you&#8217;ve been a very good boy and/or girl.  This version fixes some memory leaks without adding any new features.  The OS X developer tools have a nice tool for debugging object leaks and it now appears that we&#8217;ve plugged them all!  Your mileage may vary, of course.</p>

<p>We also now exclude MS Word from our attentions, since it gets all wacky-in-the-brain if you resize and/or move its windows with the accessibility <span class="caps">API. </span> We&#8217;re checking out workarounds, but for now we&#8217;re just ignoring it.  Let us know if you find any other apps that misbehave.</p>

<p>Get 1.0.2 at <a href="/code/forget-me-not/">the usual place</a>.</p>

<p><strong>Update:</strong> <span class="caps">FMN</span> 1.0.2 doesn&#8217;t work properly on Leopard.  We&#8217;re working on a fix&#8230;</p>

<p><strong>Update 2:</strong> I&#8217;m sad to say I&#8217;ve given up on fixing <span class="caps">FMN </span>for Leopard.  Sorry folks.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2006%2F09%2F18%2Fforget-me-not-102%2F&amp;linkname=Forget-Me-Not%201.0.2"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2006/09/18/forget-me-not-102/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Forget-Me-Not</title>
		<link>http://www.n8gray.org/blog/2006/09/07/forget-me-not/</link>
		<comments>http://www.n8gray.org/blog/2006/09/07/forget-me-not/#comments</comments>
		<pubDate>Thu, 07 Sep 2006 08:28:35 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Forget-Me-Not]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/blog/2006/09/07/forget-me-not/</guid>
		<description><![CDATA[The Mac users of the Mojave lab are pleased to announce a handy new app: Forget-Me-Not!

FMN is an app that evolved from a hack I wrote a while back to solve one of the myriad annoyances of the OS X window manager.  If you&#8217;ve got a PowerBook or MacBook (ick.  I still can&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>The Mac users of the Mojave lab are pleased to announce a handy new app: Forget-Me-Not!</p>

<p><span class="caps">FMN </span>is an app that evolved from a hack I wrote a while back to solve one of the myriad annoyances of the OS X window manager.  If you&#8217;ve got a PowerBook or MacBook (ick.  I still can&#8217;t stand that name) that you connect to an external monitor you&#8217;ve probably noticed that the layout of your windows doesn&#8217;t survive a connect/disconnect cycle.  If you go from dual-head to single-head back to dual-head all your windows end up in a corner of one monitor afterwards.  A similar thing happens if you connect to a low-resolution 800&#215;600 projector, or a TV&#8212;you find your windows tiny and bunched up when you get back to your normal desktop.  Well, <span class="caps">FMN </span>solves that problem.</p>

<p>You can get <span class="caps">FMN </span>and find out more about what it does <a href="/code/forget-me-not">here</a>, but I thought I&#8217;d mention a bit of its history in this blog post.  Oh, and if you have any comments or bug reports, feel free to skip this stuff and post a comment below.</p>

<p>I first developed <span class="caps">FMN </span>in a couple of hours as a plugin for <a href="http://desktopmanager.berlios.de/">Desktop Manager</a>, exploiting the fact that DM injects code into the Dock process and can thus be used for all sorts of mischief.  My lab-mate David Noblet was jealous of my machine&#8217;s newly-found super powers but not a DM user, so he ported my code to a stand-alone app.  After a bit of noodling we found out about Apple&#8217;s Accessibility <span class="caps">API </span>and Dave rewrote the app to use it, thus ending our reliance on Dock-injection haxiness.  But there was still one problem:  <span class="caps">X11.</span>app doesn&#8217;t export its windows to the Accessibility system<sup class="footnote"><a href="#fn1">1</a></sup>, and I can&#8217;t live without <span class="caps">X11 </span>support.  So the next step was to write an &#8220;X11 bridge,&#8221; which I did without too much difficulty.  In the process I converted the app to have a plugin architecture<sup class="footnote"><a href="#fn2">2</a></sup>.</p>

<p>At this point everything was working, but we wanted to release <span class="caps">FMN </span>to the public and the interface was not ideal.  The proper way to interact with something like <span class="caps">FMN </span>is a preference pane&#8212;it&#8217;s basically a per-user preference.  So next we set about learning how to write preference panes, how to use distributed objects to communicate with background apps from them, and how to hide an app&#8217;s <span class="caps">UI. </span> Along the way Dave whipped up some artwork for us to work with, and we started using <a href="http://www.darcs.net/"><span class="caps">DARCS</span></a> as our revision control system.</p>

<p>So anyway, after a lot of messing about with XCode, Interface Builder, <a href="http://www.inkscape.org/">Inkscape</a>, and all the rest we&#8217;ve got something we think you&#8217;ll like.  Let us know how it could be better!</p>

<p class="footnote" id="fn1"><sup>1</sup> This, by the way, is the reason why nice apps like <a href="http://www.petermaurer.de/nasi.php?section=witch">Witch</a> don&#8217;t work on <span class="caps">X11 </span>windows, making them useless to lots of people.  It&#8217;s a pity that one&#8217;s not open source because I&#8217;ll probably end up rewriting it myself one of these days.  If I had the source it probably wouldn&#8217;t be hard to write a simple <span class="caps">X11 </span>bridge.</p>

<p class="footnote" id="fn2"><sup>2</sup> This wasn&#8217;t just architectural masturbation, by the way.  If a user doesn&#8217;t have the <span class="caps">X11 </span>libraries installed you don&#8217;t want to be shipping an app that&#8217;s dynamically linked to them&#8212;your app will crash.  If you ship a <em>plugin</em> that&#8217;s linked to them it just won&#8217;t load, which is no big deal.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2006%2F09%2F07%2Fforget-me-not%2F&amp;linkname=Forget-Me-Not"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2006/09/07/forget-me-not/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
