<?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"
	>

<channel>
	<title>Bits and Pieces</title>
	<atom:link href="http://code.samediff.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://code.samediff.net</link>
	<description>Michael Wybrow's coding diary.</description>
	<pubDate>Fri, 20 Apr 2007 07:22:24 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Fix for Mac Google Notifier sign-in problems</title>
		<link>http://code.samediff.net/2007/04/20/fix-for-mac-google-notifier-sign-in-problems/</link>
		<comments>http://code.samediff.net/2007/04/20/fix-for-mac-google-notifier-sign-in-problems/#comments</comments>
		<pubDate>Fri, 20 Apr 2007 07:21:04 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://code.samediff.net/2007/04/20/fix-for-mac-google-notifier-sign-in-problems/</guid>
		<description><![CDATA[I spent a little bit of time this afternoon investigating why a colleague with exactly the same network/proxy settings as me couldn&#8217;t use Google Notifier for Mac on our network even though I was able to use it fine. We&#8217;re both using the newest version 1.9.97. When attempting to sign-in he was seeing either of [...]]]></description>
			<content:encoded><![CDATA[<p>I spent a little bit of time this afternoon investigating why a colleague with exactly the same network/proxy settings as me couldn&#8217;t use Google Notifier for Mac on our network even though I was able to use it fine. We&#8217;re both using the newest version 1.9.97. When attempting to sign-in he was seeing either of the following messages:</p>
<p>User Verification Required for Sign-In, or<br />
Can&#8217;t Sign In. See Preferences: Fetch -2</p>
<p><span id="more-14"></span>After much rooting around in preferences files and keychain access I determined that the cause of the problem is that Google Notifier needs access to a <strong>https</strong> keychain item for the proxy we use here.  This didn&#8217;t exist for my colleague as the keychain item seems to be created by Safari when visiting a https site for the first time.  If you instead use Camino then it never seems to create a https keychain item for the proxy and seems to just use the http keychain for the same proxy for https sites.</p>
<p>Probably Google Notifier should prompt for the https proxy username and password if it can&#8217;t find an existing keychain item.</p>
<p>The fix is to open Safari, visit a https site (such as https://www.google.com), enter your login details for the proxy and tell keychain to remember them.  Then, restart Google Notifier, and it should ask for access to this keychain item.  This has sucessfully fixed this problem for me on three separate Macs.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.samediff.net/2007/04/20/fix-for-mac-google-notifier-sign-in-problems/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Localized Inkscape for OS X</title>
		<link>http://code.samediff.net/2007/02/14/localized-inkscape-for-os-x/</link>
		<comments>http://code.samediff.net/2007/02/14/localized-inkscape-for-os-x/#comments</comments>
		<pubDate>Wed, 14 Feb 2007 00:42:34 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
		
		<category><![CDATA[Inkscape]]></category>

		<guid isPermaLink="false">http://code.samediff.net/2007/02/14/localized-inkscape-for-os-x/</guid>
		<description><![CDATA[I finally tracked down the problem of our official Inkscape packages not being localized on OS X.  I&#8217;ve released an updated package for Inkscape 0.45 that fixes the problem.  So if you&#8217;re a non-english speaking OS X Inkscape user, then go grab the updated package (Inkscape-0.45-2.UNIVERSAL.dmg) from here.
]]></description>
			<content:encoded><![CDATA[<p>I finally tracked down the problem of our official Inkscape packages not being localized on OS X.  I&#8217;ve released an updated package for Inkscape 0.45 that fixes the problem.  So if you&#8217;re a non-english speaking OS X Inkscape user, then go grab the updated package (Inkscape-0.45-2.UNIVERSAL.dmg) from <a href="http://sourceforge.net/project/showfiles.php?group_id=93438&#038;package_id=99112">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.samediff.net/2007/02/14/localized-inkscape-for-os-x/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Inkscape 0.43 opening files on OS X</title>
		<link>http://code.samediff.net/2005/11/23/inkscape-043-opening-files-on-os-x/</link>
		<comments>http://code.samediff.net/2005/11/23/inkscape-043-opening-files-on-os-x/#comments</comments>
		<pubDate>Wed, 23 Nov 2005 02:33:39 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
		
		<category><![CDATA[Inkscape]]></category>

		<guid isPermaLink="false">http://code.samediff.net/2005/11/23/inkscape-043-opening-files-on-os-x/</guid>
		<description><![CDATA[Many OS X users have reported being unable to open SVG files using the open dialog in Inkscape 0.43. After much troubleshooting I was able to figure out what was causing the problem.  It has been fixed in an updated package, Inkscape-0.43-2.dmg, which is available here:
http://prdownloads.sourceforge.net/inkscape/Inkscape-0.43-2.dmg?download
]]></description>
			<content:encoded><![CDATA[<p>Many OS X users have reported being unable to open SVG files using the open dialog in Inkscape 0.43. After much troubleshooting I was able to figure out what was causing the problem.  It has been fixed in an updated package, Inkscape-0.43-2.dmg, which is available here:<br />
<a href="http://prdownloads.sourceforge.net/inkscape/Inkscape-0.43-2.dmg?download">http://prdownloads.sourceforge.net/inkscape/Inkscape-0.43-2.dmg?download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://code.samediff.net/2005/11/23/inkscape-043-opening-files-on-os-x/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Autorouting Connectors!</title>
		<link>http://code.samediff.net/2005/09/03/autorouting-connectors/</link>
		<comments>http://code.samediff.net/2005/09/03/autorouting-connectors/#comments</comments>
		<pubDate>Sat, 03 Sep 2005 08:21:07 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
		
		<category><![CDATA[Inkscape]]></category>

		<guid isPermaLink="false">http://code.samediff.net/2005/09/03/autorouting-connectors/</guid>
		<description><![CDATA[The Summer of Code has offically finished up.  I&#8217;ve since caught up on some sleep and a few non-SoC things.  I&#8217;ve also fixed up the obvious bugs, so this seems like a good time to announce what I actually achieved with the connector tool.          [...]]]></description>
			<content:encoded><![CDATA[<p>The Summer of Code has offically finished up.  I&#8217;ve since caught up on some sleep and a few non-SoC things.  I&#8217;ve also fixed up the obvious bugs, so this seems like a good time to announce what I actually achieved with the connector tool.                                                                 </p>
<p>Autorouting polyline connectors are in CVS and work well.  However you manipulate them, they will avoid objects marked as &#8216;avoided&#8217;.  Objects can be marked as &#8216;avoided&#8217; or &#8216;ignored&#8217; via the connector context toolbar buttons.  Tricky to explain, but easy to see and understand&#8230; just have to play with it.          </p>
<p>The following wiki page has instructions and further discussion:<br />
        http://wiki.inkscape.org/cgi-bin/wiki.pl?UsingTheConnectorTool<br />
<span id="more-11"></span><br />
There are a couple of obvious problems:</p>
<ol>
<li>Connectors are drawn to object&#8217;s bounding boxes, rather than edges. I have a couple of ideas and some code to address this, so it shouldn&#8217;t be too long till this is in the codebase.</li>
<li>Bounding boxes are used for the avoidance code, i.e., lines will route around a diamond as if it was a rectagle.  The routing code deals with polygons so it&#8217;s just a matter of me or someone else properly implementing the <code>NR::ConvexHull</code> class.</li>
</ol>
<p>There are plenty of other features I plan to add, some that have been requested by people already. Toolbar marker (arrow head) controls being one of these.  See my TODO list on the wiki or in <code>src/connector-context.cpp</code>.</p>
<p>Please have a look at the wiki page, and try out the connectors.  Then add to the wiki page with ideas/problems or open bugs/RFEs.                                                                          </p>
<p>I&#8217;ve really enjoyed working on Inkscape the past two months, and as I said in an earlier mail, I feel like this time has got me over the initial hurdle of learning the codebase.  I feel much better placed to comfortably contribute in the future.  Basically, expect me to become a regular on the mailing list and Jabber.  <img src='http://code.samediff.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />                                                                                           </p>
<p>Also, one of the things I&#8217;ve noticed as a result of the Summer of Code time is the real community aspect of the Inkscape project.  It&#8217;s a really open, welcoming community.  I&#8217;d heard of students working for other projects who really didn&#8217;t have much contact with their mentoring organisation, and were still waiting for accounts for CVS etc at the end of August.  With Inkscape on the other hand, developers and users were always helpful and friendly.  Just wanted to thank all the Inkscapers for that!</p>
]]></content:encoded>
			<wfw:commentRss>http://code.samediff.net/2005/09/03/autorouting-connectors/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New Connector tool context</title>
		<link>http://code.samediff.net/2005/08/20/new-connector-tool-context/</link>
		<comments>http://code.samediff.net/2005/08/20/new-connector-tool-context/#comments</comments>
		<pubDate>Sat, 20 Aug 2005 00:49:05 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
		
		<category><![CDATA[Inkscape]]></category>

		<guid isPermaLink="false">http://code.samediff.net/2005/08/20/new-connector-tool-context/</guid>
		<description><![CDATA[I have commited the connector context to CVS.  At the moment it can be used to create basic straight-line connectors and interact with and modify existing connectors, i.e., reroute, detach, or attach to new shapes.  At the moment connectors can just be attached to the center of shapes (though user placeable connection points [...]]]></description>
			<content:encoded><![CDATA[<p>I have commited the connector context to CVS.  At the moment it can be used to create basic straight-line connectors and interact with and modify existing connectors, i.e., reroute, detach, or attach to new shapes.  At the moment connectors can just be attached to the center of shapes (though user placeable connection points are something I will work on later).  This interface works works with loading and saving files, undo and redo, etc.</p>
<p>Click and drag anywhere to create a connector.  If you start or finish over a highlighted connection point, then the connector will be attached to that shape.  Dragging the endpoint of any existing connector will alter its endpoint, and attach to a shape if dropped on a connection point.<br />
<span id="more-10"></span><br />
It is usable, but there are some issues.  Partly this is because I originally chose to build it on top of the DrawContext and having that underneath is now preventing the exact interaction I want.  I&#8217;ve done most of the work of removing this dependency but will finish it later. The current interaction doesn&#8217;t use the standard selection mechanism.  One of the choices I made was that I didn&#8217;t want the user to have to select a shape to show its connection point, select another for the same reason, and then have to click or drag between the two shapes to draw the actual connector.  For this reason the connection points for shapes are shown when the mouse is moved over them.  Play with this for a while and I think you&#8217;ll find it quite natural.</p>
<p>At the moment though, due to the draw context stuff, the same behaviour is true for the actual connectors &mdash; they are &#8217;selected&#8217; by moving the mouse over them. This is bad since the connector focus jumps around as you move your mouse over different connectors. The true selection mechanismis ignored and the selection cleared when the context is entered.  Also bad.</p>
<p>The planned solution is to use the standard selection mechanism and show endpoints for the first selected connector, much like the node tool.  This means the same selection will be maintained swapping into and out of the connector context.  Also, if you&#8217;ve just drawn a connector and want to change its stroke style, another connector isn&#8217;t going to be selected on your way to the dialog, as Peter pointed out to me today.  The mouseover displays connection point behaviour will be kept for shapes but will be completely independant of the selection.</p>
<p>Anyway, I thought it important to commit this now, even though I&#8217;d love to perfect the interface a little more before showing it off.  It&#8217;s already suffered a fair amount of slippage due to many little unforeseen issues, and my complete ignorance for the complexity of the Inkscape internals. <img src='http://code.samediff.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Plus, I feel its important to focus on the integration of the autorouting code, the other main &#8216;goal&#8217; of my Summer of Code application.                                                        </p>
<p>Comments and bug reports welcome!</p>
<p>(The src/connector-context.cpp file contains my rough todo list, e.g., I&#8217;ve done some work towards drawing connectors to object edges rather than bounding boxes, but this isn&#8217;t there yet.)</p>
]]></content:encoded>
			<wfw:commentRss>http://code.samediff.net/2005/08/20/new-connector-tool-context/feed/</wfw:commentRss>
		</item>
		<item>
		<title>When straight lines aren&#8217;t</title>
		<link>http://code.samediff.net/2005/07/31/when-straight-lines-arent/</link>
		<comments>http://code.samediff.net/2005/07/31/when-straight-lines-arent/#comments</comments>
		<pubDate>Sun, 31 Jul 2005 11:14:46 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
		
		<category><![CDATA[Inkscape]]></category>

		<guid isPermaLink="false">http://code.samediff.net/2005/07/31/when-straight-lines-arent/</guid>
		<description><![CDATA[Today&#8217;s been a pretty good day for Inkscape coding.  Aside from once again having the bad choice of extending DrawContext confirmed, I managed to pass several little hurdles and get the connectors connecting to shapes.  That is, get the connector context to create paths that hook up with Peter&#8217;s existing connector code.  [...]]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s been a pretty good day for Inkscape coding.  Aside from once again having the bad choice of extending DrawContext confirmed, I managed to pass several little hurdles and get the connectors connecting to shapes.  That is, get the connector context to create paths that hook up with Peter&#8217;s existing connector code.  The funniest bug was that it turned out I was not creating a purely straight-line path, just a curved path that looked straight&mdash;when I dragged a shape and the connector rerouted, it went into a strange curve shape!  I love bugs that express themselves graphically.  Sure beats a segfault.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.samediff.net/2005/07/31/when-straight-lines-arent/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SoC Progress</title>
		<link>http://code.samediff.net/2005/07/30/soc-progress/</link>
		<comments>http://code.samediff.net/2005/07/30/soc-progress/#comments</comments>
		<pubDate>Sat, 30 Jul 2005 06:00:59 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
		
		<category><![CDATA[Inkscape]]></category>

		<guid isPermaLink="false">http://code.samediff.net/?p=8</guid>
		<description><![CDATA[This is basically a report on my progress, as posted to the inkscape-devel list this morning, but with lots of spelling and grammer corrections!
I have created a connector tool context, that will be used for interacting with connectors.  Connectors will just be paths in SVG, and will be marked up as a connector, in [...]]]></description>
			<content:encoded><![CDATA[<p>This is basically a report on my progress, as posted to the inkscape-devel list this morning, but with lots of spelling and grammer corrections!</p>
<p><span id="more-8"></span>I have created a connector tool context, that will be used for interacting with connectors.  Connectors will just be paths in SVG, and will be marked up as a connector, in much the same way as a star.  I felt a separate context was the best approach since this won&#8217;t change the behaviour of any existing tools.  This is probably best while the tool matures, but also makes sense since there will likely be different classes of users, some interested, some not interested in the diagramming features of Inkscape.</p>
<p>The tool was based on the pen tool simply because this creates paths. I&#8217;ve found the further I&#8217;ve gone into this that extending the DrawContext, just as the pen tool does, may not have been the best approach, since I haven&#8217;t really been able to make use of much of it&#8217;s code, though this was always attempted first.  I&#8217;ll likely pull out the DrawContext dependency later, though this doesn&#8217;t hurt for now.</p>
<p>The tool uses center connection points.  Arbitrary connection points, placable by the user would be desirable too, but I&#8217;ve scoped this initial version as just center points, and we can talk about interfaces for other types when there is an initial version for people to see and comment on.</p>
<p>The tool shows these connection points, using entry events from the context&#8217;s item_handler, and doesn&#8217;t hide them until they are showed for another shape.  The item was to save the context having to display all of these when it was switched into, and also saving the user from selecting both shapes they wanted to connect before drawing the connector.</p>
<p>If you move the mouse really quickly into an unfilled shape the connection point isn&#8217;t displayed.  I don&#8217;t think this is as big a problem as it sounds.  I wonder how many diagrams would use completely unfilled shapes.  Also, I&#8217;m using the standard Inkscape shape selection mechanism, so this is only as much of a problem as only being able to select unfilled shapes with the mouse by clicking exactly on their stroke.  FWIW, it works fine for shapes with completely transparent fills.  Is there any real difference?</p>
<p>It&#8217;s funny really, I chose to use this method since it seemed like the simplest to quickly create a connector context for creating and modifying connectors so I could start looking at desired behaviours from the tools for more complex cases.  It&#8217;s turned out to present many small problems of it&#8217;s own.</p>
<p>I wanted users to be able to drag from one connection point to another, or click on one, then move the mouse (with a visible connector being drawn) then click on a second connection point to create a connector.  (They can also just do this on the canvas, creating an unattached connector.) Turns out for the click and drag approach, where the user is moving the mouse with the left button depressed, no entry events are passed to the item_handler.  I don&#8217;t actually understand why this is so, and I&#8217;ve looked pretty deep through the events code.  (It&#8217;s not due to a knot being dragged by the mouse cursor, as this was my first thought too.)</p>
<p>This code is very close to working.  But I still have to do the stuff for allowing users to reroute connectors within the connector context, i.e. moving an existing connectors end-point to attach to a new shape.</p>
<p>The interface for my routing library code has also been cleaned up further, and put in a namespace of it&#8217;s own.  There is a very small amount of logic that needs to be moved from my own diagram editor into the library, but this is literally a couple of functions that wrap other function calls and this is trivial.</p>
<p>In general, I&#8217;ve found work on Inkscape to take a lot longer than expected.  This is mostly the steep learning curve of figuring out the Inkscape internals.  I guess since I am working at a canvas manipulation level, rather than on some fairly self-contained sub-section of the code, I need to look at more code to work on things.  I&#8217;ve found it to take a long time to figure out *how* to do things, but then the actual code to do it is usually simple or at least not too complex.  I&#8217;m also finding it interesting and fun too!</p>
<p>In terms of some of the other aims of SoC, I&#8217;ve kind of become the official Mac person for Inkscape, and have taken part in many of the community aspects of the project.  Since I&#8217;ve been using a Mac as my development environment I have also been working on OSX packaging for the release and associated bugs and fixes.  I&#8217;ve therefore been active on the mailing list, working with the bug tracker, and answering questions on #inkscape, etc.</p>
<p>Summer of Code is turning out to be quite a valuable experience, and I&#8217;m really enjoying being a member of the Inkscape development community.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.samediff.net/2005/07/30/soc-progress/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Powerbook Problems</title>
		<link>http://code.samediff.net/2005/07/29/powerbook-problems/</link>
		<comments>http://code.samediff.net/2005/07/29/powerbook-problems/#comments</comments>
		<pubDate>Fri, 29 Jul 2005 11:47:41 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
		
		<category><![CDATA[Inkscape]]></category>

		<guid isPermaLink="false">http://code.samediff.net/2005/07/30/powerbook-problems/</guid>
		<description><![CDATA[Well, I&#8217;m sitting here right now, installing Debian on a dekstop computer at my place.  Why?  Because, for about the last year I&#8217;ve been using an Apple Powerbook as my main development machine and it just died.
I opened the lid on Thursday morning ready to start work, expecting to be greeted by it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Well, I&#8217;m sitting here right now, installing Debian on a dekstop computer at my place.  Why?  Because, for about the last year I&#8217;ve been using an Apple Powerbook as my main development machine and it just died.</p>
<p>I opened the lid on Thursday morning ready to start work, expecting to be greeted by it&#8217;s warm glow.  Nothing.  I pressed the left arrow key (this usually wakes it up).  Not this morning.  It was working hard last night.  Sure, but this is ridiculous.  It got a few good hours of rest! I pressed the power button.  Nothing.  Ah, maybe the battery had drained over night?  Hadn&#8217;t suspended properly, maybe?  Plugged in the power cable.  Pressed the power button.  It starts.  Sort of.  There are three tones, then the clasp light flashes four times.   Nothing more.</p>
<p>I drove to Uni and spent some time seeing if anyone had a firewire cable to see if I could start it in target mode to get a copy of my Inkscape SoC workspace off it.  Everything on there is backed up, but the copy of the Inkscape stuff was a little out of date.  Anyway, noone had one so of I went to the Apple service people.  I told them I really wanted som of the data off there if possible.  He suggested they try replacing the RAM first.  Did this, the computer started fine.  Problem fixed.</p>
<p>I drove back to Uni and worked for the rest of the afternoon hours.  Drove home.  Opened the lid, made a small change to some code to try something else.  dropped back to a shell, typed &#8220;make&#8221;, and the computer froze.  Rebooted it and found three beeps and the four flashes again.  So I guess the problem is the logic board after all.  *sigh*</p>
<p>The computer is back with the Apple service people.  I&#8217;ll probably get it back in a week and a half.  I got my workspace off it though, and it looks like my Debian install is finished now, so back to it&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://code.samediff.net/2005/07/29/powerbook-problems/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Paper Acceptance</title>
		<link>http://code.samediff.net/2005/07/21/paper-acceptance/</link>
		<comments>http://code.samediff.net/2005/07/21/paper-acceptance/#comments</comments>
		<pubDate>Thu, 21 Jul 2005 02:17:40 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
		
		<category><![CDATA[Inkscape]]></category>

		<guid isPermaLink="false">http://code.samediff.net/?p=5</guid>
		<description><![CDATA[My paper entitled &#8220;Incremental Connector Routing&#8221; was accepted to Graph Drawing 2005 so I&#8217;ll be going to Limerick, Ireland in mid September to present it.  This paper describes the algorithms that are used in the &#8220;libavoid&#8221; code, that will be integrated into Inkscape as part of my Sumer of Code work.
Also, it seems like [...]]]></description>
			<content:encoded><![CDATA[<p>My paper entitled &#8220;Incremental Connector Routing&#8221; was accepted to <a href="http://www.gd2005.org/">Graph Drawing 2005</a> so I&#8217;ll be going to Limerick, Ireland in mid September to present it.  This paper describes the algorithms that are used in the &#8220;libavoid&#8221; code, that will be integrated into Inkscape as part of my Sumer of Code work.</p>
<p>Also, it seems like there will be a Software Exhibition, where you can show of cool graph drawing code.  So I should be able to show off not only <a href="http://www.csse.monash.edu.au/~mwybrow/dunnart/">Dunnart</a>, my research test-bed diagram editor, but also the same capabilities integrated into Inkscape.</p>
<p>Very nice indeed!</p>
]]></content:encoded>
			<wfw:commentRss>http://code.samediff.net/2005/07/21/paper-acceptance/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Drawing connectors in Inkscape</title>
		<link>http://code.samediff.net/2005/07/21/drawing-connectors-in-inkscape/</link>
		<comments>http://code.samediff.net/2005/07/21/drawing-connectors-in-inkscape/#comments</comments>
		<pubDate>Thu, 21 Jul 2005 00:15:28 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
		
		<category><![CDATA[Inkscape]]></category>

		<guid isPermaLink="false">http://code.samediff.net/2005/07/21/drawing-connectors-in-inkscape/</guid>
		<description><![CDATA[It&#8217;s time to start blogging about this project more actively I think.  David Yip, one of the other Inkscape SoCers is putting me to shame.  Haven&#8217;t seen any blogging from the other two SoC people yet though.
I feel like there has been a lot of paperwork in the last couple of weeks.  [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s time to start blogging about this project more actively I think.  <a href="http://www.livejournal.com/users/yipdw/">David Yip</a>, one of the other Inkscape SoCers is putting me to shame.  Haven&#8217;t seen any blogging from the other two SoC people yet though.</p>
<p>I feel like there has been a lot of paperwork in the last couple of weeks.  Some non-US students (like myself) have started to call this Google thing the &#8220;Summer of Tax Code&#8221; because there has been so much confusion and discussion over taxation issues.  It&#8217;s ironic how hard it is to give away money.  Along with this mound of stuff to organise (most of it is done) I&#8217;ve just had to organise PhD progress reports and just now paperwork for conference travel (more in the next post).  I think it&#8217;s taking me six forms to get to this conference, and that&#8217;s before I look at airfares, or conference registration&#8230;</p>
<p>Inkscape hacking is much more fun!</p>
<p>For SoC I am doing two things.  Firstly, cleaning up and releasing as a LGPL library some code I have written to do incremental object-avoiding connector routing.  The cleaning up and interface fixes (from where it was originally tied to my research code) is mostly done.  I&#8217;ll probably create a Sourceforge project for the library very shortly.  I&#8217;m thinking I&#8217;ll call it <code>libavoid</code>.  The code will be added (and probably worked on) within the Inkscape codebase, since we definitely don&#8217;t want to add something so new as a dependency.  It&#8217;ll also have it&#8217;s own CVS repository on Sorceforge since this was part of my proposal and it&#8217;s been written with the intention that othe software like Dia might want to make use of it.</p>
<p>The second part of my SoC stuff is adding connector capablities to Inkscape (and integrating with the library code).  At the moment I have added a new context to Inkscape where connectors can be drawn and interacted with.  I&#8217;m working on the code for creating connectors and changing their connections.  My plan is to have the ability to create new basic straight connectors that follow shapes, as well as an interfact to detach/reconnect them to different objects for the time of the release when this stuff can be added to CVS.  Then we can discuss some of the behaviour specifics for connectors and their GUI interface.</p>
<p>The code for updating connectors as a result of shapes moving is already in the codebase and was written some time ago by Peter Moulder, though there was never an interface created for working with them. There seem to be several issues (i.e., bugs) with this at present, so that wikl have to be looked at too.</p>
<p>I&#8217;ve found it quite time consuming working out how to do things at the canvas level within Inkscape.  Its not that it&#8217;s been frustrating, it hasn&#8217;t, it just takes a while to figure things out when you&#8217;re unfamiliar with the codebase, and you&#8217;re not working on a surface feature that allows you to ignore large sections of code.  Actually, once I work out the correct way to do things it often turns out that the solution is quite elegant, i.e., it&#8217;s been though that someone would later want to do this thing, or something similar is being done somewhere else in the code, so the framework is there.  The new gradient tool handles code has been really useful for lifting ideas from.  I get the feeling my work up until now would have been much harder without their example.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.samediff.net/2005/07/21/drawing-connectors-in-inkscape/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
