<?xml version="1.0"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">

<channel>
	<title>Graphics Planet</title>
	<link>http://www.graphicsplanet.org/</link>
	<language>en</language>
	<description>Graphics Planet - http://www.graphicsplanet.org/</description>
	<atom:link rel="self" href="http://www.graphicsplanet.org/rss20.xml" type="application/rss+xml"/>

<item>
	<title>Morevna Project: Weekly progress</title>
	<guid isPermaLink="false">http://morevnaproject.org/?p=763</guid>
	<link>http://morevnaproject.org/2012/02/05/weekly-progress-3/</link>
	<description>&lt;p&gt;Ok, here’s another report. Finally we have new Battlefield concept completely applied to all shots. And here’s few samples:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://download.tuxfamily.org/morevna/blog/2012/02/49.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone  wp-image-765&quot; height=&quot;122&quot; src=&quot;http://download.tuxfamily.org/morevna/blog/2012/02/49-300x168.png&quot; title=&quot;49&quot; width=&quot;218&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://download.tuxfamily.org/morevna/blog/2012/02/38.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone  wp-image-766&quot; height=&quot;123&quot; src=&quot;http://download.tuxfamily.org/morevna/blog/2012/02/38-300x168.png&quot; title=&quot;38&quot; width=&quot;218&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://download.tuxfamily.org/morevna/blog/2012/02/shot41.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone  wp-image-769&quot; height=&quot;122&quot; src=&quot;http://download.tuxfamily.org/morevna/blog/2012/02/shot41-300x168.png&quot; title=&quot;shot41&quot; width=&quot;218&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://download.tuxfamily.org/morevna/blog/2012/02/shot40.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone  wp-image-768&quot; height=&quot;123&quot; src=&quot;http://download.tuxfamily.org/morevna/blog/2012/02/shot40-300x168.png&quot; title=&quot;shot40&quot; width=&quot;218&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://download.tuxfamily.org/morevna/blog/2012/02/50.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone  wp-image-764&quot; height=&quot;123&quot; src=&quot;http://download.tuxfamily.org/morevna/blog/2012/02/50-300x168.png&quot; title=&quot;50&quot; width=&quot;218&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://download.tuxfamily.org/morevna/blog/2012/02/shot52.png&quot;&gt; &lt;img alt=&quot;&quot; class=&quot;alignnone  wp-image-770&quot; height=&quot;122&quot; src=&quot;http://download.tuxfamily.org/morevna/blog/2012/02/shot52-300x168.png&quot; title=&quot;shot52&quot; width=&quot;218&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It’s awesome to have 3D as the starting point for real background artwork. Of course the final version will not go with 3D – we plan to do complete overpaint for the most shots.  Nikolay Mamashev offered his efforts to do background – he has ordered Cintiq tablet and ready to start with this task as soon the tablet arrive (judging by our post service – that will not happen earlier than 1st of March). Meanwhile, this week Nikolay have finished tracing of shot 32 and now prepares to get his hands on &lt;a href=&quot;http://morevnaproject.org/wiki/File:Demo60-03.jpg&quot; target=&quot;_blank&quot;&gt;Priestess Sister&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;What’s next. We have successfully finished migration to Blender 2.61, so we can succesfully render animatic to show. Our next step is to concentrate on the characters artwork. We need to find dedicated artist, who will be able to work on the Morevna Demo for 1-2 months. His task will be to draw all missing keyframes and redraw all existing ones in the same style. Currently we have few candidatures and next week we will concentrate on testing their capabilities. Of course this is hard stage. But we’re moving. Stay tuned and have a great week!&lt;/p&gt;</description>
	<pubDate>Sun, 05 Feb 2012 13:01:07 +0000</pubDate>
</item>
<item>
	<title>Alexandre Prokoudine: Is Linux ready for the future?</title>
	<guid isPermaLink="false">http://prokoudine.info/blog/?p=580</guid>
	<link>http://prokoudine.info/blog/2012/02/is-linux-ready-for-the-future/</link>
	<description>&lt;p&gt;Someone just started an &lt;a href=&quot;http://www.linux.org.ru/forum/talks/7372912&quot; target=&quot;_blank&quot;&gt;awesome thread&lt;/a&gt; at linux.org.ru where he shared his experience of sending his GNOME3 driven Linux system to the future by means of… force-changing the current date. I thought I’d translate and share it &lt;img alt=&quot;:)&quot; class=&quot;wp-smiley&quot; src=&quot;http://prokoudine.info/blog/wp-includes/images/smilies/icon_smile.gif&quot; /&gt;  Everything below is a translation.&lt;/p&gt;
&lt;p&gt;I read an [old] &lt;a href=&quot;http://habrahabr.ru/blogs/research/110174/&quot; target=&quot;_blank&quot;&gt;article on habrahabr.ru&lt;/a&gt; about how Windows 7 worked after a bug in BIOS that sent the guy’s system 14.000 years forward. That got me interested — how would my favourite system [Linux] work in such a case? So I opened clock configuration tool in GNOME and started adding years.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Max possible date turned out to be 258337. Looks like that’s when the world ends.&lt;/li&gt;
&lt;li&gt;Gnome Shell clock stopped working (showing up on the panel) after the first 10K years leap. Anyone cares to report? &lt;img alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; src=&quot;http://prokoudine.info/blog/wp-includes/images/smilies/icon_smile.gif&quot; /&gt; &lt;/li&gt;
&lt;li&gt;Linux thinks that once in 20K years you still should change your password. After each time leap I had to ‘sudo passwd’ for the user, otherwise the GUI for changing date/time in GNOME couldn’t get superuser privilegies.&lt;/li&gt;
&lt;li&gt;Of course, everything related to HTTPS stopped working, because all certificates expired.&lt;/li&gt;
&lt;li&gt;LibreOffice Calc couldn’t calculate the current date, outputting “Error: 511” instead of the value in a cell. And after the first 10K years jump it couldn’t really load the user’s profile.&lt;/li&gt;
&lt;li&gt;Google Chrome simply refused opening my Gmail account because of the expired certificate and didn’t even suggest to “Continue anyway” . Epiphany, however, worked just fine in both 10.000 and 260.000 years and only warned about insecure connection in the address bar. Google Chrome also failed to load the user’s profile (history, bookmarks etc.) in 200.000 years.&lt;/li&gt;
&lt;li&gt;VirtualBox freezed when starting a virtual machine and in general started very slowly. Which is why I couldn’t figure out what Windows would really do in the future.&lt;/li&gt;
&lt;li&gt;GNOME’s screenshot utility suggested “Screenshot-(null)” name instead of the usual “Screenshot-$DateTime”.&lt;/li&gt;
&lt;li&gt;The rest of the system worked surprisingly fine (which is more than what could be said about Windows 7 from the habrahabr.ru article). Nautilus, Pidgin, Epiphany, console tools: all of them managed to display and use six figure dates.&lt;/li&gt;
&lt;li&gt;Google promised 10^308 Mbyte free space for GMail.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To sum it up: Linux is ready fo the future apart from LibreOffice, some proprietary tools and the Gnome Shell clock.&lt;/p&gt;
&lt;p&gt;After going back to the present the system experienced a kernel panic. It’s the first time I ever saw how all four CPU cores went out one by one on Linux, btw, and the disc activity stopped only after the last one. After that I rebooted from a flash drive, ran fsck, booted the system. So far it works just fine.&lt;/p&gt;</description>
	<pubDate>Sat, 04 Feb 2012 22:07:23 +0000</pubDate>
</item>
<item>
	<title>Matt Ebb: Twitter: 2012-02-05</title>
	<guid isPermaLink="true">http://mattebb.com/weblog/twitter-2012-02-05/</guid>
	<link>http://mattebb.com/weblog/twitter-2012-02-05/</link>
	<description>&lt;ul class=&quot;aktt_tweet_digest&quot;&gt;
&lt;li&gt;best graduation film ever! RT @&lt;a class=&quot;aktt_username&quot; href=&quot;http://twitter.com/Tristan3d&quot;&gt;Tristan3d&lt;/a&gt; Space Stallions: &lt;a href=&quot;http://t.co/1WIHS074&quot; rel=&quot;nofollow&quot;&gt;http://t.co/1WIHS074&lt;/a&gt; Kind of awesome and ridiculous at the same time &lt;a class=&quot;aktt_tweet_reply&quot; href=&quot;http://twitter.com/Tristan3d/statuses/165171594094854145&quot;&gt;in reply to Tristan3d&lt;/a&gt; &lt;a class=&quot;aktt_tweet_time&quot; href=&quot;http://twitter.com/mattebb/statuses/165174833603289089&quot;&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Didn't make it to #&lt;a class=&quot;aktt_hashtag&quot; href=&quot;http://search.twitter.com/search?q=%23cnysyd&quot;&gt;cnysyd&lt;/a&gt; parade this year but still had a good dinner to celebrate &lt;a href=&quot;http://t.co/wczsgBmP&quot; rel=&quot;nofollow&quot;&gt;http://t.co/wczsgBmP&lt;/a&gt; &lt;a class=&quot;aktt_tweet_time&quot; href=&quot;http://twitter.com/mattebb/statuses/163606808601174016&quot;&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
	<pubDate>Sat, 04 Feb 2012 16:31:00 +0000</pubDate>
</item>
<item>
	<title>Akkana Peck: Watch out, or you'll end up in Pleasant Valley</title>
	<guid isPermaLink="true">http://shallowsky.com/blog/humor/pleasant-valley.html</guid>
	<link>http://shallowsky.com/blog/humor/pleasant-valley.html</link>
	<description>&lt;p&gt;
&lt;img align=&quot;right&quot; alt=&quot;[Pleasant Valley State Prison sign]&quot; height=&quot;375&quot; src=&quot;http://shallowsky.com/blog/images/humor/pleasant.jpg&quot; width=&quot;450&quot; /&gt;
I love this sign, along Interstate 5 near Coalinga.
&lt;b&gt;Pleasant Valley State Prison.&lt;/b&gt;
&lt;/p&gt;&lt;p&gt;
I guess if you have to be locked away, Pleasant Valley doesn't sound
like the worst place to be.
&lt;/p&gt;&lt;p&gt;
Do Pleasant Valley ex-cons have a hard time getting respect when
people find out where they did their hard time?
&lt;/p&gt;&lt;p&gt;
I love picturing the local parents trying to strike fear into
their kids' hearts.
&lt;i&gt;&quot;If you don't straighten up, Junior, you're going to end up in ...
PLEASANT VALLEY!&quot;&lt;/i&gt;
&lt;/p&gt;&lt;p&gt;
Or the local judges -- &lt;i&gt;&quot;You're not getting off this time. No, I'm
giving you ten years in ... PLEASANT VALLEY!&quot;&lt;/i&gt;&lt;/p&gt;</description>
	<pubDate>Fri, 03 Feb 2012 01:30:24 +0000</pubDate>
</item>
<item>
	<title>Yuval Levy: Good Video Tutorials Are Rare</title>
	<guid isPermaLink="false">http://panospace.wordpress.com/?p=2282</guid>
	<link>https://panospace.wordpress.com/2012/02/01/good-video-tutorials-are-rare/</link>
	<description>I love the short and sweet tutorials.  This week I found two of them, both Mac related and both on Youtube.  The similarities end &lt;a href=&quot;http://panospace.wordpress.com/2012/02/01/good-video-tutorials-are-rare/&quot;&gt;there&lt;/a&gt;.&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=panospace.wordpress.com&amp;amp;blog=2564859&amp;amp;post=2282&amp;amp;subd=panospace&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Wed, 01 Feb 2012 20:03:19 +0000</pubDate>
</item>
<item>
	<title>Morevna Project: Stickman Tutorial</title>
	<guid isPermaLink="false">http://morevnaproject.org/?p=754</guid>
	<link>http://morevnaproject.org/2012/02/01/stickman-tutorial/</link>
	<description>&lt;p&gt;For a long time people &lt;a href=&quot;http://morevnaproject.org/2010/08/27/stickman-template-update-2/#comment-10704&quot;&gt;asked for the tutorial&lt;/a&gt; explaining how to use &lt;a href=&quot;http://morevnaproject.org/tag/stickman/&quot;&gt;Stickman Template&lt;/a&gt; and finally I have come up with something that might be called a tutorial. In fact those videos were recorded in different time (you might notice the differences in interface elements), but watching everything in sequence should give you the whole picture. Big thanks to Anna Orlova for translation and subtitling.&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-754&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;Part 1 – Setting up&lt;/h3&gt;
&lt;p&gt;In this part I will explain the purpose of using stickman and show how to prepare everything for tracing.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.mediafire.com/file/rkiumjc2k7qhy7x/stickman-tracing-01-setup-en.ogv&quot; target=&quot;_blank&quot;&gt;Download Part 1 (ogv, 25 Mb)&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Part 2 – Tracing&lt;/h3&gt;
&lt;p&gt;The main tracing procedure is explained here. Notice that the version of Synfig Studio used in this screencast is very old – you can see different icons and even  Russian interface elements. I hope that will not distract you. ^_^&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.mediafire.com/file/56rydllfcnrcd20/stickman-tracing-02-en.ogv&quot; target=&quot;_blank&quot;&gt;Download Part 2 (ogv, 9 Mb)&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Part 3 – Compositing tricks&lt;/h3&gt;
&lt;p&gt;Here I will show some composition tricks that will help you in the tracing process.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.mediafire.com/file/x49py2ibrs2idoc/stickman-tracing-03-compositing-en.ogv&quot; target=&quot;_blank&quot;&gt;Download Part 3 (ogv, 15 Mb)&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Part 4 – Shadows&lt;/h3&gt;
&lt;p&gt;Final part of the series is about tracing shadows.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.mediafire.com/file/n1r1dzkbiqexbrk/stickman-tracing-04-shadows-en.ogv&quot; target=&quot;_blank&quot;&gt;Download Part 4 (ogv, 43 Mb)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;That’s it. I hope you haven’t tired of my mumbling. Enjoy! ^__^&lt;/p&gt;</description>
	<pubDate>Wed, 01 Feb 2012 17:52:04 +0000</pubDate>
        <enclosure url="http://www.mediafire.com/file/rkiumjc2k7qhy7x/stickman-tracing-01-setup-en.ogv" length="0" type="video/ogg"/>
</item>
<item>
	<title>Ted Gould: Procmail vs. Launchpad</title>
	<guid isPermaLink="true">http://gould.cx/ted/blog/Procmail_vs_Launchpad</guid>
	<link>http://gould.cx/ted/blog/Procmail_vs_Launchpad</link>
	<description>&lt;p&gt;
&lt;a href=&quot;http://launchpad.net&quot;&gt;Launchpad&lt;/a&gt; users know that it can send quite a bit of e-mail.  Okay, a LOT of e-mail.  There has been effort on the Launchpad side of things to add &lt;a href=&quot;http://blog.launchpad.net/cool-new-stuff/better-bug-subscriptions&quot;&gt;controls to set the amount of Launchpad e-mail you get&lt;/a&gt;.  But for some of us, even getting the mail that you need results in a fair amount of Launchpad mail.  In playing with my procmail config for Launchpad mail I stumbled on this little feature that I love, and thought I'd share, as it's cleaned up my mail a lot.  The secret rule is:
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;blockquote&gt;
&lt;pre&gt;:0:
* ^X-launchpad-bug:.*product=\/[a-z0-9-]+
.Launchpad.Bugs.${MATCH}/
&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;
Quite simply that rule takes the project specifier on a bug mail, and uses it for the folder name that it puts the mail into.  This means each project gets it's own mail box, no matter what.  So even as you add groups or subscribe to new bugs, you just get new mail boxes.  Works for me.  Hope it helps other folks too.
&lt;/p&gt;
&lt;p&gt;
Comments: &lt;a href=&quot;http://identi.ca/notice/89839970&quot;&gt;Identi.ca&lt;/a&gt; | &lt;a href=&quot;https://twitter.com/#!/tedjgould/status/164744316483403776&quot;&gt;Twitter&lt;/a&gt;
&lt;/p&gt;</description>
	<pubDate>Wed, 01 Feb 2012 16:19:00 +0000</pubDate>
</item>
<item>
	<title>Steven Garrity: 5-Year Old Focus Group</title>
	<guid isPermaLink="true">http://www.actsofvolition.com/archive/2012/february/5yearoldfocus</guid>
	<link>http://www.actsofvolition.com/archive/2012/february/5yearoldfocus</link>
	<description>&lt;p&gt;A designer asked his &lt;a href=&quot;http://www.youtube.com/watch?feature=player_embedded&amp;amp;v=N4t3-__3MA0&quot;&gt;five-year-old daughter to comment on a series of corporate logos&lt;/a&gt;. The results are adorable and fascinating. It’s a powerful machine that can make a child look at a bright sunflower and say “Gas.”&lt;/p&gt;</description>
	<pubDate>Wed, 01 Feb 2012 13:31:00 +0000</pubDate>
</item>
<item>
	<title>Peter Sikking: GIMP redux, single‐window mode</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-28919981.post-2372750348813464628</guid>
	<link>http://blog.mmiworks.net/2009/09/gimp-single-mode.html</link>
	<description>&lt;p&gt;This blog entry covers the final part of my talk at the
     &lt;a href=&quot;http://www.libregraphicsmeeting.org/&quot;&gt;libre graphics meeting&lt;/a&gt; this year, after dealing with
     &lt;a href=&quot;http://blog.mmiworks.net/2009/05/gimp-enter.html&quot;&gt;the schmuck&lt;/a&gt; and
     &lt;a href=&quot;http://blog.mmiworks.net/2009/06/gimp-squaring-cmyk-circle.html&quot;&gt;squaring a circle&lt;/a&gt;.
     It will also be pure falsification of history,
     &lt;a href=&quot;http://en.wikipedia.org/wiki/Censorship_of_images_in_the_Soviet_Union&quot;&gt;Soviet‐style&lt;/a&gt;:
     I used my talk to kick off a discussion and to start the design process.
     Most of the interesting things I am showing you
     today were not even conceived when I delivered my lecture.&lt;/p&gt;
 
     &lt;h3&gt;real history&lt;/h3&gt;
 
     &lt;p&gt;Here is what was presented at &lt;acronym&gt;LGM&lt;/acronym&gt;: First, I set the mood by showing
     a selection of
     &lt;a href=&quot;http://gimp-brainstorm.blogspot.com/search/label/single%20window&quot;&gt;single‐window&lt;/a&gt;
     contributions from the
     &lt;a href=&quot;http://gimp-brainstorm.blogspot.com/&quot;&gt;UI brainstorm&lt;/a&gt;:&lt;/p&gt;
 
     &lt;a href=&quot;http://mmiworks.net/pics/blog8/12singlewindowsL.jpg&quot;&gt;&lt;img alt=&quot;12 brainstorm mock-ups&quot; height=&quot;359&quot; src=&quot;http://mmiworks.net/pics/blog8/12singlewindows.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
 
     &lt;p&gt;The high number of contributions in the single‐window category confirms that this is a
     major issue where action needs to be taken. The many forms the contributions take shows us that
     a measure of flexibility and configurability is needed.&lt;/p&gt;
 
     &lt;p&gt;Next, I reminded everyone that it is a fifty–fifty world: about 50% of
     &lt;acronym&gt;GIMP&lt;/acronym&gt; users love the multi‐window interface of today and do not want to
     lose it, about 50% of &lt;acronym&gt;GIMP&lt;/acronym&gt; users would love to move to a single‐window
     interface.&lt;/p&gt;
 
     &lt;h4&gt;one switch&lt;/h4&gt;
 
     &lt;p&gt;With the world fifty–fifty split, we will serve them with one switch in the Windows menu,
     switching between multi‐and single‐window mode. I used the mock‑up with the
     beautiful orange sports car from the brainstorm to demonstrate the &lt;em&gt;basic idea&lt;/em&gt;
     (no real UI design implied here).&lt;/p&gt;
 
     &lt;p&gt;When set to single‐window mode, each document will appear in a tab:&lt;/p&gt;
 
     &lt;a href=&quot;http://mmiworks.net/pics/blog8/lgmsingleL.jpg&quot;&gt;&lt;img alt=&quot;GIMP in single window mode&quot; height=&quot;269&quot; src=&quot;http://mmiworks.net/pics/blog8/lgmsingle.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
 
     &lt;p&gt;the toolbox and inspectors can be ‘torn off’:&lt;/p&gt;
 
     &lt;a href=&quot;http://mmiworks.net/pics/blog8/lgmsingletearoffL.jpg&quot;&gt;&lt;img alt=&quot;toolbaox and dock torn off&quot; height=&quot;269&quot; src=&quot;http://mmiworks.net/pics/blog8/lgmsingletearoff.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
 
     &lt;p&gt;here the toolbox is side‐docked back and it is shown how the inspector floats:&lt;/p&gt;
 
     &lt;a href=&quot;http://mmiworks.net/pics/blog8/lgmsingledockedL.jpg&quot;&gt;&lt;img alt=&quot;toolbox docked again and dock overlapping&quot; height=&quot;269&quot; src=&quot;http://mmiworks.net/pics/blog8/lgmsingledocked.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
 
     &lt;p&gt;and last, inspectors can be made multi‐column. Here, another column has been created to
     allow more dockables to be organised:&lt;/p&gt;
 
     &lt;a href=&quot;http://mmiworks.net/pics/blog8/lgmsingledoubleL.jpg&quot;&gt;&lt;img alt=&quot;creating a double column dock&quot; height=&quot;269&quot; src=&quot;http://mmiworks.net/pics/blog8/lgmsingledouble.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
 
     &lt;p&gt;The eagle‐eyed will see that there is quite a bit of fudging in those images,
     so don’t sweat the details.&lt;/p&gt;
 
     &lt;h4&gt;three problems&lt;/h4&gt;
 
     &lt;p&gt;I closed off the talk with three things that were bugging me at the time:&lt;/p&gt;
    
     &lt;dl&gt;
     &lt;dt&gt;no tab tear‐off&lt;/dt&gt;
     &lt;dd&gt;tearing off a tab and making that into a separate window—as seen on web browsers—would make our single‐window
     interface into a multi‐window interface. How annoyingly inconsistent.&lt;/dd&gt;
     &lt;dt&gt;no side‐docking, to multi‐windows&lt;/dt&gt;
     &lt;dd&gt;both toolbox and inspectors are unique for the application and by nature there are
     multiple window instances. That means it is unnatural to dock the toolbox and inspectors to
     windows. It is however possible to introduce multi‐column inspectors for multi‐window mode.&lt;/dd&gt;
     &lt;dt&gt;no image comparison&lt;/dt&gt;
     &lt;dd&gt;With tabs, only one image is visible at the time. Thinking about clever plans to see
     two images side‐by‐side in split panes, one sees immediately the confusion rising:
     which is the image that the menus perform operations on. Which one is shown in the
     layers dialog?&lt;/dd&gt;
     &lt;/dl&gt;
 
     &lt;h3&gt;tomorrow starts now&lt;/h3&gt;
 
     &lt;p&gt;So far, so predictable. Here is where the interesting stuff starts. After my talk I
     had a good round of brainstorming with &lt;a href=&quot;http://www.chromecode.com/&quot;&gt;Martin Nordholts&lt;/a&gt;
     on the tear‐off and comparison problems. The result of that is what I call &lt;em&gt;the polaroid.&lt;/em&gt;&lt;/p&gt;
 
     &lt;p&gt;To demonstrate it, let’s say one is still working on that lovely orange sports car
     and in a second tab we have loaded
     &lt;a href=&quot;http://www.allcarcentral.com/pix-Ferrari_250GT_Berlina_1956_Zagato-image.jpg&quot;&gt;this image&lt;/a&gt;
     of a cool Ferrari Berlina:&lt;/p&gt;
 
     &lt;a href=&quot;http://mmiworks.net/pics/blog8/lgm2tabsL.jpg&quot;&gt;&lt;img alt=&quot;two tabs in our single window&quot; height=&quot;269&quot; src=&quot;http://mmiworks.net/pics/blog8/lgm2tabs.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
 
     &lt;p&gt;Now we want to compare our orange creation to the Ferrari. All we have to do
     is to tear off the Ferrari tab and presto: a polaroid of it appears:&lt;/p&gt;
 
     &lt;a href=&quot;http://mmiworks.net/pics/blog8/lgmpolaroidL.jpg&quot;&gt;&lt;img alt=&quot;a polariod of the ferrari appears&quot; height=&quot;269&quot; src=&quot;http://mmiworks.net/pics/blog8/lgmpolaroid.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
 
     &lt;p&gt;This is &lt;strong&gt;not&lt;/strong&gt; a &lt;acronym&gt;GIMP&lt;/acronym&gt; image window. It is not even a window, the window manager
     will know nothing about it. We avoid making it look like a window, down to ignoring
     the theme colors and executing the control strip at the bottom in paper white. You can move and resize the polaroid to your heart’s content, as long as it
     fits inside the &lt;acronym&gt;GIMP&lt;/acronym&gt; window. You can zoom, pan and &lt;em&gt;look at it&lt;/em&gt;,
     and that’s all.&lt;/p&gt;
 
     &lt;h4&gt;voluntary confinement&lt;/h4&gt;
 
     &lt;p&gt;That last point will be very hard to do, because everybody will be thinking of &lt;em&gt;one little
     feature&lt;/em&gt; they would like to add, for themselves. But we have to be strict here to avoid mass
     confusion: &lt;em&gt;every&lt;/em&gt; toolbox tool, &lt;em&gt;every&lt;/em&gt; menu item, &lt;em&gt;every&lt;/em&gt; dialog (in an
     inspector) only operates on the front tab—the orange car in this case— and &lt;em&gt;never
     on a polaroid.&lt;/em&gt;&lt;/p&gt;
 
     &lt;p&gt;For example, when I discussed these plans with &lt;acronym&gt;GIMP&lt;/acronym&gt;‐usability contributor
     &lt;a href=&quot;http://ellen.reitmayr.net/&quot;&gt;Ellen Reitmayr&lt;/a&gt;, she asked: ‘so can you then select and copy a bit of
     image from these [polaroids]?’ Good question. After realising that this would mean interacting
     with the layer stack and selection tools, the answer has to be &lt;em&gt;no.&lt;/em&gt;&lt;/p&gt;
 
     &lt;p&gt;It is however possible to open multiple polaroids of the same image. And also of the image in the
     front tab, where one is working on:&lt;/p&gt;
 
     &lt;a href=&quot;http://mmiworks.net/pics/blog8/lgmmultipolaL.jpg&quot;&gt;&lt;img alt=&quot;a polariod of the ferrari appears&quot; height=&quot;269&quot; src=&quot;http://mmiworks.net/pics/blog8/lgmmultipola.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
 
     &lt;p&gt;As you can see they can overlap and they will have to have their own stacking order. Just click on a
     polaroid to raise it to the top. The final thing you can do with a polaroid, is to close it…&lt;/p&gt;
 
     &lt;h3&gt;the decline and fall of tabs&lt;/h3&gt;
 
     &lt;p&gt;This is how things were more or less when I returned home from &lt;acronym&gt;LGM&lt;/acronym&gt;.
     At that point there were still three things that were bugging me about using tabs in single‐window mode:&lt;/p&gt;
    
     &lt;ol&gt;
     &lt;li&gt;too easy, too fast: the tabs got adopted from web browsers, without much thought;&lt;/li&gt;
     &lt;li&gt;it would be rather logical to use a thumbnail on the tab itself to identify the image;&lt;/li&gt;
     &lt;li&gt;sign of the times: the web browser folks &lt;em&gt;themselves&lt;/em&gt; are looking at solutions beyond tabbed browsing.&lt;/li&gt;
     &lt;/ol&gt;
    
     &lt;p&gt;And pretty soon I was looking at the &lt;em&gt;image parade&lt;/em&gt; you see these days in many a
     photo app and viewer, mainly triggered by a visual association with a row of tabs with
     thumbnails on them:&lt;/p&gt;
    
     &lt;a href=&quot;http://mmiworks.net/pics/blog8/lgmparadeL.jpg&quot;&gt;&lt;img alt=&quot;a common type of image parade&quot; height=&quot;251 &quot; src=&quot;http://mmiworks.net/pics/blog8/lgmparade.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
    
     &lt;p&gt;There are some really interesting possibilities, when we replace tabs with that.
     Let’s try it out:&lt;/p&gt;
    
     &lt;a href=&quot;http://mmiworks.net/pics/blog8/lgminitparadeL.jpg&quot;&gt;&lt;img alt=&quot;three open images in the image parade&quot; height=&quot;269&quot; src=&quot;http://mmiworks.net/pics/blog8/lgminitparade.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
    
     &lt;p&gt;We see three open images and like you would expect, clicking on an image makes it the active
     image (the ‘front tab’) and dragging any of them up or down enough
     ‘tears’ it off to become a polaroid. A mouse‐over tooltip will display more
     info for each thumbnail, for starters: the filename.&lt;/p&gt;
    
     &lt;h4&gt;history repeating&lt;/h4&gt;
 
     &lt;p&gt;Now let us go a step further and
     not only show open images in the parade but also recent files that have been opened or
     worked on, the &lt;em&gt;history:&lt;/em&gt;&lt;/p&gt;
    
     &lt;a href=&quot;http://mmiworks.net/pics/blog8/lgmhistoryparadeL.jpg&quot;&gt;&lt;img alt=&quot;many images in the image parade&quot; height=&quot;269&quot; src=&quot;http://mmiworks.net/pics/blog8/lgmhistoryparade.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
    
     &lt;p&gt;Everything is in strict chronological order: open a file and it moves to the front of
     the parade. What I find very intriguing is that the
     notion of which file is &lt;em&gt;open&lt;/em&gt; starts to blur. Having a file being loaded from disk
     becomes a side effect of clicking it to make it the current file. Similarly
     &lt;acronym&gt;GIMP&lt;/acronym&gt; can decide to start closing files with no unsaved changes when
     there are too many of them open and memory gets tight.&lt;/p&gt;
    
     &lt;p&gt;My current thinking is that it is not necessary to mark files in the parade as being open.
     The concept quasi disappears for users. The white stars indicate unsaved changes.&lt;/p&gt;
    
     &lt;p&gt;One or more graphics files that are dropped on the parade get added—&lt;em&gt;cued up&lt;/em&gt;
     if you want—right after the open files. Just as useful will be that a folder dropped on
     the parade cues up all the graphics files in it. Current work + history + cued up
     work + polaroids has a lot of potential, I think.&lt;/p&gt;
    
     &lt;h3&gt;the Midas touch&lt;/h3&gt;
 
     &lt;p&gt;I realised that it would be an eyesore and an absolute waste of space to introduce a scrollbar
     for the image parade. Still, it is going to scroll. It happens to be that in the last couple of
     years I have been working for two &lt;em&gt;large&lt;/em&gt; companies on the interaction fundamental’s  of
     &lt;a href=&quot;http://blog.mmiworks.net/blog.mmiworks.net/2007/11/10-reasons-why-you-can-morph-mobile.html&quot;&gt;iPhone&lt;/a&gt; competitors.&lt;/p&gt;
    
     &lt;p&gt;So how about using touch UI? A &lt;em&gt;flick&lt;/em&gt; or a &lt;em&gt;drag&lt;/em&gt; along the parade scrolls it; a &lt;em&gt;push&lt;/em&gt; slows
     down, then stops the scrolling; a &lt;em&gt;tap&lt;/em&gt; on a thumbnail makes it the current file;
     a flick or a drag of a thumbnail perpendicular to the parade creates a polaroid: it is
     perfectly doable, using mouse, trackpad or tablet.&lt;/p&gt;
    
     &lt;h3&gt;non‐preferential customisation&lt;/h3&gt;
 
     &lt;p&gt;All we need now, is some more flexibility. First, I think everybody will have their own
     idea what the &lt;em&gt;right&lt;/em&gt; size for the image parade is. From pretty small:&lt;/p&gt;
    
     &lt;a href=&quot;http://mmiworks.net/pics/blog8/lgmsmallparadeL.jpg&quot;&gt;&lt;img alt=&quot;tiny images in the image parade&quot; height=&quot;269&quot; src=&quot;http://mmiworks.net/pics/blog8/lgmsmallparade.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
    
     &lt;p&gt;to pretty big:&lt;/p&gt;
    
     &lt;a href=&quot;http://mmiworks.net/pics/blog8/lgmbigparadeL.jpg&quot;&gt;&lt;img alt=&quot;a few huge images in the image parade&quot; height=&quot;269&quot; src=&quot;http://mmiworks.net/pics/blog8/lgmbigparade.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
    
     &lt;p&gt;I think any size in between those has its purpose and why could that not depend on what one
     is doing next? Simply grab the dividing line between parade and canvas and adjust to fit your mood.
     Next, does it has to be at the top of our window? &lt;a href=&quot;http://mmiworks.net/pics/blog8/lgmleftparadeL.jpg&quot;&gt;Left&lt;/a&gt;,
     &lt;a href=&quot;http://mmiworks.net/pics/blog8/lgmrightparadeL.jpg&quot;&gt;right&lt;/a&gt; and &lt;a href=&quot;http://mmiworks.net/pics/blog8/lgmbottomparadeL.jpg&quot;&gt;bottom&lt;/a&gt;
     should also work:&lt;/p&gt;
    
     &lt;img alt=&quot;a parade on any side of the canvas&quot; height=&quot;271&quot; src=&quot;http://mmiworks.net/pics/blog8/lgm4parades.jpg&quot; width=&quot;375&quot; /&gt;
    
     &lt;p&gt;I foresee every &lt;acronym&gt;GIMP&lt;/acronym&gt; user having their own sweet spots, when it comes to
     combinations of
     size and orientation of the image parade for the type of projects they do.&lt;/p&gt;
    
     &lt;h4&gt;raising the dead&lt;/h4&gt;
 
     &lt;p&gt;It will not be necessary to introduce new items in the preferences dialog for anything
     I have shown you here. In that light I called during my &lt;acronym&gt;LGM&lt;/acronym&gt; talk preferences &lt;em&gt;‘the
     graveyard of many a good idea.’&lt;/em&gt;&lt;/p&gt;
    
     &lt;p&gt;For configuring the image parade I have already built in
     a settings pop‑up in all the screens you see above. The top/left/right/bottom setting will be
     in there, as will be one for controlling the amount of history. Something along the lines of:
     48 hours; a week; a month. And for those who never look back: a setting for no history at all.&lt;/p&gt;
    
     &lt;h3&gt;red hot anticipation&lt;/h3&gt;
 
     &lt;p&gt;To wrap up, for about 50% of &lt;acronym&gt;GIMP&lt;/acronym&gt; users the good news is that single‐window mode
     is coming, complete with tear‑off toolbox and inspectors; multi‐column inspectors; polaroids;
     image parade with history and cued up work; touch UI and quick and easy customisation.&lt;/p&gt;
    
     &lt;p&gt;And it is coming faster than you’d think. Martin is ready to develop it for version 2.8 and
     this blog post was hotly anticipated to outline my complete plan.&lt;/p&gt;
    
     &lt;p&gt;For a different 50% of &lt;acronym&gt;GIMP&lt;/acronym&gt; users the good news is that multi‐window mode
     is here to stay. It will benefit from multi‐column inspectors being introduced. But I
     actually expect that once single‐window mode is out there, there will be pressure from the
     community to have a look if multi‐window mode cannot be done a bit more, well, &lt;em&gt;modern.&lt;/em&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/28919981-2372750348813464628?l=blog.mmiworks.net&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 01 Feb 2012 10:43:41 +0000</pubDate>
	<author>noreply@blogger.com (peter sikking)</author>
</item>
<item>
	<title>Peter Sikking: GIMP redux, squaring the CMYK circle</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-28919981.post-270788303046725124</guid>
	<link>http://blog.mmiworks.net/2009/06/gimp-squaring-cmyk-circle.html</link>
	<description>&lt;p&gt;Before we return to &lt;a href=&quot;http://blog.mmiworks.net/2009/05/gimp-enter.html&quot;&gt;the schmuck&lt;/a&gt;, there
   is going to be a small intermezzo.&lt;/p&gt;
   
   &lt;h3&gt;indexed&lt;/h3&gt;
   
   &lt;p&gt;In the future &lt;acronym&gt;GIMP&lt;/acronym&gt; will lose its indexed mode. As I wrote
   &lt;a href=&quot;http://blog.mmiworks.net/2009/05/gimp-enter.html#creativeWork&quot;&gt;last time&lt;/a&gt;:
   creative work is &lt;acronym&gt;RGB&lt;/acronym&gt; work. Ages ago I made a solutions model how GIMP
   could still support producing indexed images. This means doing the creative work in &lt;acronym&gt;RGB&lt;/acronym&gt;,
   here shown at 200%:&lt;/p&gt;
   
   &lt;img alt=&quot;the original artwork&quot; height=&quot;265 &quot; src=&quot;http://mmiworks.net/pics/blog8/pixelwilber.png&quot; width=&quot;375&quot; /&gt;
   
   &lt;p&gt;When it is time to prepare &lt;em&gt;an&lt;/em&gt; indexed version, a &lt;em&gt;projection screen&lt;/em&gt; can be pulled over the
   image window that shows how the user‐controlled indexed set‑up works out, in this case a
   modest 16 colors:&lt;/p&gt;
   
   &lt;img alt=&quot;the mask shows the indexed pixelation&quot; height=&quot;265 &quot; src=&quot;http://mmiworks.net/pics/blog8/pixel16wilber.png&quot; width=&quot;375&quot; /&gt;
   
   &lt;p&gt;The core of the solution model is that this projection is again a &lt;em&gt;surface, &lt;/em&gt; that can be worked
   on, to make the corrections that are specific to this indexed set‑up. The non‑destructive nature of
   &lt;a href=&quot;http://gegl.org/&quot;&gt;&lt;acronym&gt;GEGL&lt;/acronym&gt;&lt;/a&gt; makes it possible to reapply these corrections after more creative development, or to
   adjust them at a later stage.&lt;/p&gt;
   
   &lt;p&gt;It is from the projection that an export to indexed file formats is performed.&lt;/p&gt;
   
   &lt;h3&gt;a coin drops&lt;/h3&gt;
   
   &lt;p&gt;Cut to the chase: it was while reading &lt;a href=&quot;http://arstechnica.com/media/news/2009/01/gimp-2-6-review.ars/7&quot;&gt;the
   &lt;acronym&gt;GIMP&lt;/acronym&gt; review&lt;/a&gt;
   on ars technica by Dave Girard, where he used &lt;em&gt;‘vinyl’&lt;/em&gt; and &lt;em&gt;‘audio masters’&lt;/em&gt;
   to describe &lt;acronym&gt;CMYK&lt;/acronym&gt; and &lt;acronym&gt;RGB&lt;/acronym&gt;. Suddenly I could see the parallels with the
   indexed situation.&lt;/p&gt;
   
   &lt;h4&gt;going to press&lt;/h4&gt;
   
   &lt;p&gt;Here is my solutions model for preparing artwork for the printing press in &lt;acronym&gt;GIMP&lt;/acronym&gt;.&lt;/p&gt;
   
   &lt;p&gt;By now it should come as &lt;a href=&quot;http://blog.mmiworks.net/2009/05/gimp-enter.html#creativeWork&quot;&gt;no surprise&lt;/a&gt;
   that all creative work is going to be in &lt;acronym&gt;RGB&lt;/acronym&gt;.
   This has also the benefit that at &lt;em&gt;all&lt;/em&gt; times &lt;em&gt;all&lt;/em&gt; &lt;acronym&gt;GIMP&lt;/acronym&gt; plugins work, without
   a chance of color shifting conversions. Here is a schematic representation of creative work on a
   jazz poster, built out of four layers:&lt;/p&gt;
   
   &lt;a href=&quot;http://mmiworks.net/pics/blog8/trumpet+layersL.png&quot;&gt;&lt;img alt=&quot;a poster and its layers&quot; class=&quot;cited&quot; height=&quot;250 &quot; src=&quot;http://mmiworks.net/pics/blog8/trumpet+layers.png&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
   
   &lt;cite&gt;&lt;i&gt;jazz posters&lt;/i&gt;, found at:
   &lt;i&gt;&lt;a href=&quot;http://www.usc.edu/dept/polish_music/news/nov06.html&quot;&gt;polish jazz art in nyc&lt;/a&gt;&lt;/i&gt;&lt;/cite&gt;
   
   &lt;p&gt;At any stage during the project, when there is a need to work towards the printing presses,
   a &lt;strong&gt;press projection&lt;/strong&gt; can be pulled over the
   image window that shows how the user‐controlled plate set‑up works out, in this case a
   five‐plate job:&lt;/p&gt;
   
   &lt;a href=&quot;http://mmiworks.net/pics/blog8/trumpet+platesL.png&quot;&gt;&lt;img alt=&quot;a poster and its plates&quot; height=&quot;256 &quot; src=&quot;http://mmiworks.net/pics/blog8/trumpet+plates.png&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
   
   &lt;p&gt;The layer stack—used in the creative development—is not used in this view. Instead what matters
   is the user’s plate set‑up, which is displayed and controlled as a similar stack. Each plate is fully
   editable: painting, curves, gradients, (lots of) plugins, anything goes. This gives us the required
   &lt;a href=&quot;http://blog.mmiworks.net/2009/05/gimp-enter.html#plateControl&quot;&gt;full control&lt;/a&gt; over the plates.&lt;/p&gt;
   
   &lt;p&gt;Note also that the colors in the press projection are
   already slightly different than that of the normal view, because the color profile of the printing
   press is taken into account.&lt;/p&gt;
   
   &lt;h3&gt;it’s all a set‑up&lt;/h3&gt;
   
   &lt;p&gt;Everything hinges on the particular set‑up of the press projection. This is where users
   freely set—&lt;a href=&quot;http://blog.mmiworks.net/2009/05/gimp-enter.html#flexPlate&quot;&gt;as required&lt;/a&gt;—the
   number of plates and what ink/paint/lacquer is used for each plate. Any color will be possible and we can support
   metallic paints and matt/glossy transparent varnishes, using a bit of animation on the projection.&lt;/p&gt;
   
   &lt;p&gt;The set‑up is also the place where the more tricky stuff is supported: overprint and trapping,
   rich blacks, combined ink limits: it is probably only the beginning of how advanced this has to get. I had
   &lt;a href=&quot;http://blog.mmiworks.net/2009/05/gimp-enter.html#comments&quot;&gt;not forgotten&lt;/a&gt; about this.&lt;/p&gt;
   
   &lt;h4&gt;&lt;acronym&gt;CMYK&lt;/acronym&gt; + spot&lt;/h4&gt;
   
   &lt;p&gt;In general the plate separation is calculated from the composite image that feeds into the
   press projection. However there will be full flexibility to map the content of any layer directly
   to any plate. For instance that light blue text in our example: it can be directly mapped from its text
   layer to the light blue plate, bypassing the composite.&lt;/p&gt;
   
   &lt;p&gt;Here is also the one and only time that &lt;acronym&gt;CMYK&lt;/acronym&gt; will play a role in
   &lt;acronym&gt;GIMP&lt;/acronym&gt;: as a small configuration file that is a default (OK, &lt;em&gt;the&lt;/em&gt;
   default) for the projection set‑up. Nothing more, nothing less.&lt;/p&gt;
   
   &lt;h3&gt;agile development&lt;/h3&gt;
   
   &lt;p&gt;Since the press projection can be freely pulled over the image window and then flipped up again,
   GIMP will be able to fully support the required 
   &lt;a href=&quot;http://blog.mmiworks.net/2009/05/gimp-enter.html#workflow&quot;&gt;creative workflow&lt;/a&gt;.
   The mosaic below shows &lt;acronym&gt;GIMP&lt;/acronym&gt; tracking in 16 steps real‐life work on either
   the creative concept or on the printing plates:&lt;/p&gt;
   
   &lt;img alt=&quot;16 random steps&quot; height=&quot;265&quot; src=&quot;http://mmiworks.net/pics/blog8/trumpet+progress.png&quot; width=&quot;375&quot; /&gt;
   
   &lt;p&gt;The non‑destructive nature of &lt;acronym&gt;GEGL&lt;/acronym&gt; makes that whenever the press
   projection is pulled down, the updated artwork is re‑separated and all previously made
   plate optimisations are re‑applied on top. When the underlying artwork changes significantly,
   then every existing plate optimisation step can be validated by users and where needed adjusted.&lt;/p&gt;
   
   &lt;p&gt;The result is maximum creative flexibility and minimal rework of the plates over the
   life‐cycle of the file. Ah yeah, of course the whole press projection will be saved in the
   &lt;acronym&gt;GIMP&lt;/acronym&gt; file. At the end, it is from the press  projection that an export is performed to the
   file formats appropriate for shipping to the printers’.&lt;/p&gt;
   
   &lt;h3&gt;what about &lt;acronym&gt;CMYK&lt;/acronym&gt; files?&lt;/h3&gt;
   
   &lt;p&gt;When a received &lt;acronym&gt;CMYK&lt;/acronym&gt; file is to be used in new creative work, we
   &lt;a href=&quot;http://blog.mmiworks.net/2009/05/gimp-enter.html#CMYKfiles&quot;&gt;already saw&lt;/a&gt; that
   ‘it needs to be imported and converted to &lt;acronym&gt;RGB&lt;/acronym&gt;.’&lt;/p&gt;
   
   &lt;p&gt;When further
   fine‐tuning for the printing press is the goal, then the solution is to shove the 
   &lt;acronym&gt;CMYK&lt;/acronym&gt; file straight into a press projection, as a static, pre-defined
   separation. Each plate is then still fully editable as outlined before.&lt;/p&gt;
   
   &lt;h4&gt;the non‑issue&lt;/h4&gt;
   
   &lt;p&gt;That concludes my current take on ‘&lt;em&gt;not quite&lt;/em&gt; the &lt;acronym&gt;CMYK&lt;/acronym&gt;’ issue:
   bringing artwork to printing presses. Actually
   &lt;a href=&quot;http://www.libregraphicsmeeting.org&quot;&gt;at &lt;acronym&gt;LGM&lt;/acronym&gt;&lt;/a&gt; it turned out to be
   a hot topic in quite a few talks held by several projects. My contribution of squaring this circle
   fell neatly into place there.&lt;/p&gt;
   
   &lt;p&gt;Stay tuned for the last part of my &lt;acronym&gt;LGM&lt;/acronym&gt; talk: &lt;a href=&quot;http://blog.mmiworks.net/2009/09/gimp-single-mode.html&quot;&gt;a single‐window interface&lt;/a&gt; for &lt;acronym&gt;GIMP&lt;/acronym&gt;.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/28919981-270788303046725124?l=blog.mmiworks.net&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 01 Feb 2012 10:43:15 +0000</pubDate>
	<author>noreply@blogger.com (peter sikking)</author>
</item>
<item>
	<title>Peter Sikking: GIMP redux, enter: the schmuck</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-28919981.post-4693375628227341516</guid>
	<link>http://blog.mmiworks.net/2009/05/gimp-enter.html</link>
	<description>&lt;p class=&quot;hang&quot;&gt;‘What about schmuck?’
   &lt;a href=&quot;http://hellowork.de/&quot;&gt;Katrin Alt&lt;/a&gt; said, when I explained to
   her about my work on &lt;acronym&gt;GIMP&lt;/acronym&gt;. —Excuse me?
   ‘You know, what about &lt;acronym&gt;CMYK&lt;/acronym&gt;.’ —Ah, that is a
   long story.&lt;/p&gt;
   
   &lt;p&gt;So started my talk at the
   &lt;a href=&quot;http://www.libregraphicsmeeting.org&quot;&gt;libre graphics meeting&lt;/a&gt; this year.
   I will cover it in three separate blog entries, the first one being about schmuck.&lt;/p&gt;
   
   &lt;h3&gt;hot debate&lt;/h3&gt;
   
   &lt;p&gt;&lt;acronym&gt;GIMP&lt;/acronym&gt;’s lack of &lt;acronym&gt;CMYK&lt;/acronym&gt; mode is one of the
   hottest topics in the comments sections out there. Also fiery is the resistance by
   &lt;acronym&gt;GIMP&lt;/acronym&gt;’s maintainers to introduce such a mode.
   In March the &lt;acronym&gt;CMYK&lt;/acronym&gt; issue returned during a
   &lt;a href=&quot;http://www.nabble.com/GIMP-PDF-export-plugin-td22624836r0.html&quot;&gt;long thread&lt;/a&gt;
   on the &lt;acronym&gt;GIMP&lt;/acronym&gt; developer mailing list. Quite a few users who seriously
   use and need color separations chipped in. It gave me a chance to &lt;em&gt;understand
   the activity,&lt;/em&gt; both from a technological and users’ side.&lt;/p&gt;
      
   &lt;p&gt;The first thing to understand about the &lt;acronym&gt;CMYK&lt;/acronym&gt; issue is that &lt;em&gt;it is not
   about &lt;acronym&gt;CMYK&lt;/acronym&gt;.&lt;/em&gt; The issue is bringing artwork to printing presses.
   And I mean serious printing presses, with operators, print runs and hydraulic parts.
   Not that very expensive, high‑spec printer that sits in the corner of the
   designer’s office, that one is still covered by
   &lt;a href=&quot;http://blog.mmiworks.net/search/label/openPrinting&quot;&gt;openPrinting&lt;/a&gt;.&lt;/p&gt;
      
      &lt;h3 id=&quot;flexPlate&quot;&gt;flex plate&lt;/h3&gt;
      
   &lt;p&gt;Unlike for the printers that you and I use, with printing presses the plates that do the printing
   are freely configurable. Any number of plates can be used with literally any kind of ink/paint/lacquer,
   for cost or quality reasons. That there is a world beyond &lt;acronym&gt;CMYK&lt;/acronym&gt; is something that
   &lt;a href=&quot;http://pippin.gimp.org&quot;&gt;Øyvind Kolås&lt;/a&gt; has been pressing on me, for instance, during a
   discussion last year
   &lt;a href=&quot;http://blog.mmiworks.net/2008/07/to-istanbul-via-tokyo.html&quot;&gt;at guadec&lt;/a&gt;.&lt;/p&gt;
      
   &lt;p&gt;During the mailing list discussion mentioned above,
   &lt;a href=&quot;http://www.linkedin.com/pub/louis-desjardins/7/568/b90&quot;&gt;Louis Desjardins&lt;/a&gt; wrote to have a look at
   packaging for examples of how complex the plate set‑up can get. So I did, the next time I made a coffee.
   Turning over the milk carton, I found the marks for a seven‐plate print job, none of which was
   cyan, magenta, yellow or black.&lt;/p&gt;
      
   &lt;h4&gt;mind the gap&lt;/h4&gt;
   
   &lt;p&gt;Now, I am not saying that &lt;acronym&gt;GIMP&lt;/acronym&gt; is &lt;em&gt;the&lt;/em&gt; application for designing milk cartons, but
   the complexity of printing such a cheap commodity really shows that hardwiring a &lt;acronym&gt;CMYK&lt;/acronym&gt; mode
   into &lt;acronym&gt;GIMP&lt;/acronym&gt; would be a serious case of under‑design. Why go through all the trouble of
   introducing that when it cannot deal with a simple poster, printed in black + orange, or the milk carton?&lt;/p&gt;
      
      &lt;h3 id=&quot;plateControl&quot;&gt;2. control&lt;/h3&gt;
      
   &lt;p&gt;The second most important thing to understand is that preparing artwork for the printing press means
   needing total control over the plates. This not only means a flexible plate set‑up as outlined above.
   It also requires that every bit of experience that a user has with the particular printing press can be used 
   to fine‐tune each plate. I am not underestimating what this is going to take:
   basically the full GIMP functionality, including any plugin.&lt;/p&gt;
      
      &lt;h3 id=&quot;creativeWork&quot;&gt;3. creative work&lt;/h3&gt;
      
   &lt;p&gt;The third thing to understand is that creative work is on‑screen work. We must focus on
   the loop that exists between users, the tools they use and the image that appears as a result, again
   inspiring the next step of users. If I may be so bold: during creative work the image does not exist on disk,
   or in &lt;acronym&gt;RAM&lt;/acronym&gt;, it only exists on the screen.&lt;/p&gt;
      
   &lt;p&gt;The natural medium of the screen is &lt;acronym&gt;RGB&lt;/acronym&gt; pixels. That is why I say:
   creative work is &lt;acronym&gt;RGB&lt;/acronym&gt; work.&lt;/p&gt;
      
      &lt;h3 id=&quot;CMYKfiles&quot;&gt;4. what about &lt;acronym&gt;CMYK&lt;/acronym&gt; files?&lt;/h3&gt;
      
   &lt;p&gt;If one receives a file in &lt;acronym&gt;CMYK&lt;/acronym&gt; format, we know by now that it was destined
   for the printing press—actually, one particular printing press that is is supposed to be fine‐tuned for.
   With that knowledge there can be two reasons we are touching it at all:&lt;/p&gt;
   
   &lt;ol&gt;
   &lt;li&gt;it needs further fine‐tuning for that press, best done in &lt;acronym&gt;CMYK&lt;/acronym&gt;;&lt;/li&gt;
   &lt;li&gt;it is a found‐image that goes into a new creative work, for that it needs to be imported and
   converted to &lt;acronym&gt;RGB&lt;/acronym&gt;.&lt;/li&gt;
   &lt;/ol&gt;
      
      &lt;h3 id=&quot;workflow&quot;&gt;5. workflow&lt;/h3&gt;
      
   &lt;p&gt;The last thing that we have to understand about the activity is how eclectic real‐life
   workflow is. In theory it is simple: one creates artwork, separates it for the plates, then prints it
   on the press. That is also the clean model when it comes to color models.&lt;/p&gt;
      
   &lt;p&gt;Creative users live a bit more iterative: start creating; set up the separation to see what is
   possible in the end; fine‐tune that; create some more; fine‐tune some more; get
   feedback and adapt the creative work with that; get a print proof and do a wholesale overhaul of
   the separation and fine‐tuning; some last‐minute creation; print it
   on the press.&lt;/p&gt;
      
   &lt;p&gt;It is easy to see that the rigid theoretical workflow does not support creative real‐life.
   The rigid workflow is the the norm in software today and it inhibits creative users to work as freely as they
   can imagine.&lt;/p&gt;
   
   &lt;h4&gt;form‑fit&lt;/h4&gt;
   
   &lt;p&gt;Now that we fully understand the activity, we can work on 
   &lt;a href=&quot;http://blog.mmiworks.net/2009/06/gimp-squaring-cmyk-circle.html&quot;&gt;squaring the circle&lt;/a&gt;. Read all about it
   &lt;a href=&quot;http://blog.mmiworks.net/2009/06/gimp-squaring-cmyk-circle.html&quot;&gt;next time&lt;/a&gt;.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/28919981-4693375628227341516?l=blog.mmiworks.net&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 01 Feb 2012 10:42:53 +0000</pubDate>
	<author>noreply@blogger.com (peter sikking)</author>
</item>
<item>
	<title>Peter Sikking: working on GIMP’s transformation tool</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-28919981.post-8600538910161380636</guid>
	<link>http://blog.mmiworks.net/2009/03/working-on-gimp-transformation-tool.html</link>
	<description>&lt;p&gt;Last week Wednesday there was the local
   &lt;a href=&quot;http://de.groups.yahoo.com/group/berlin_usability/&quot;&gt;Berliner usability&lt;/a&gt;
   meeting (‘stammtisch’). Desdemona Strauß thought it would be cool to try out an idea from
   &lt;acronym&gt;I&lt;/acronym&gt;x&lt;acronym&gt;DA&lt;/acronym&gt;
   Vienna: ‘bring two slides about what’s on your mind concerning usability or interaction design.’&lt;/p&gt;
   
   &lt;p&gt;So I did. I talked about what I am cooking up for &lt;acronym&gt;GIMP&lt;/acronym&gt;:
   a unified &lt;a href=&quot;http://gui.gimp.org/index.php/Transformation_tool_specification&quot;&gt;transformation tool&lt;/a&gt;.
   I spoke quite a bit about the nuts and bolts of how it is going to work, but you can read about that in
   &lt;a href=&quot;http://gui.gimp.org/index.php/Transformation_tool_specification&quot;&gt;the spec&lt;/a&gt;.
   Instead let me recount here some of the &lt;em&gt;behind the scenes&lt;/em&gt; topics I talked about.&lt;/p&gt;
   
   &lt;h3&gt;pre‐historical&lt;/h3&gt;
   
   &lt;p&gt;This tool has been a long time in the making. I remember during my early &lt;acronym&gt;GIMP&lt;/acronym&gt;
   work with Kamila Giedrojć the &lt;em&gt;form follows function&lt;/em&gt; handles
   were created: a parallelogram for shearing and a circle for rotation. During one or two
   &lt;a href=&quot;http://www.libregraphicsmeeting.org&quot;&gt;&lt;acronym&gt;LGM&lt;/acronym&gt;s&lt;/a&gt; I have spoken
   about the need to bring the number of tools in the toolbox down and to integrate them.&lt;/p&gt;
   
   &lt;p&gt;Last October saw a &lt;acronym&gt;GIMP&lt;/acronym&gt; UI team meeting here in Berlin. Thomas Viehweger, Kamila and I
   worked on the transformation tool, among other things. This is where the sharing of the corners between
   the scale handle and the perspective handle was born.&lt;/p&gt;
   
   &lt;h4&gt;slow going&lt;/h4&gt;
   
   &lt;p&gt;During that meeting we also had a look at the free transform tool of the latest photoshop,
   mainly because one &lt;acronym&gt;GIMP&lt;/acronym&gt; developer labelled it ‘ideal.’
   Finicky, cryptic—and ultimately—slow is the interaction &lt;em&gt;we&lt;/em&gt; saw.
   We already knew we could do better.&lt;/p&gt;
   
   &lt;h3&gt;can you feel it?&lt;/h3&gt;
   
   &lt;p&gt;So here we go. The overriding benchmark for me here is ‘does this tool support creativity;
   does it allow users to stop thinking about the tool?’ Before creating, reviewing and refining interaction,
   I concentrate on the &lt;em&gt;vibe&lt;/em&gt; of shaping image material freely, on a positive feedback loop for users
   between their intermediate result and their next step taken.&lt;/p&gt;
   
   &lt;p&gt;And I am not
   &lt;a href=&quot;http://gui.gimp.org/index.php/Transformation_tool_specification#intro&quot;&gt;kidding&lt;/a&gt;
   about the ‘pace of around two actions per second.’ I have observed that
   kind of &lt;em&gt;working as fast as ones imagination&lt;/em&gt; and here is where ‘freely’
   and ‘stop thinking’ are required.&lt;/p&gt;
   
   &lt;p&gt;By concentrating on the vibe, I am able to take the hundreds of decisions required, without
   falling for the lure of particular use cases or petty rules of thumb. For instance, it
   settled the argument whether to introduce &lt;em&gt;modes&lt;/em&gt; for scale, rotation, shearing et
   cetera or to have &lt;em&gt;separate handles&lt;/em&gt; for all these actions. By thinking about forming
   clay (made of pixels), touch–push–release, I was able to &lt;strong&gt;feel&lt;/strong&gt; that the handles
   variant is more direct and hence superior.&lt;/p&gt;
   
   &lt;h3&gt;mathematically&lt;/h3&gt;
   
   &lt;p&gt;All those warm, fuzzy feelings got combined with systematic rigour. Although the other people
   involved would hate to admit it,  it is the interaction architect job to completely shape how
   a piece of software works on the &lt;em&gt;outside.&lt;/em&gt; And therefore interaction architect must
   completely know how that same piece of software works on the &lt;em&gt;inside,&lt;/em&gt; although not
   down to a code level.&lt;/p&gt;
   
   &lt;p&gt;That meant finding out all the
   functionality of the current geometry tools, including asking the developers to check the code for
   any hidden tricks. Next was describing this functionality universally in terms of modifying corners,
   sides or angles under
   a series of constraints and symmetries. I then found a few holes in the system—for
   instance, more forms of
   shearing and perspective transformation—which I took into consideration.&lt;/p&gt;
   
   &lt;a href=&quot;http://mmiworks.net/pics/blog8/firstscribbles1054.png&quot;&gt;&lt;img alt=&quot;some first scribbles&quot; height=&quot;263&quot; src=&quot;http://mmiworks.net/pics/blog8/firstscribbles.png&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
   
   &lt;p&gt;Also, I went through the whole &lt;a href=&quot;http://gimp-brainstorm.blogspot.com/&quot;&gt;UI brainstorm&lt;/a&gt; to 
   find everything related to
   &lt;a href=&quot;http://gimp-brainstorm.blogspot.com/search/label/transformation%20tool&quot;&gt;transformation&lt;/a&gt;.
   I am happy to report that these contributions triggered ideas that are part of the mix
   in the final design.&lt;/p&gt;
   
   &lt;h4&gt;start making sense&lt;/h4&gt;
   
   &lt;p&gt;So now we have the existing pile‑up of &lt;acronym&gt;GIMP&lt;/acronym&gt; functionality, with
   on top another pile of potential functionality. How to organise that into something elegant?
   Well, by not trying to do everything plus more. Aiming for compact yet comprehensive functionality.
   Realising that it is the UI that has to be conductive to the &lt;em&gt;vibe&lt;/em&gt;. And
   that the selection of functionality is subordinate to this.&lt;/p&gt;
   
   &lt;p&gt;It has always been my intention that this tool would not &lt;em&gt;do it all.&lt;/em&gt; It covers the
   spontaneous side of geometry transformation, complementary tools and menu commands cover the planned,
   deliberate side. It is with a clear conscience that I ban the dialog boxes and numeric input
   of the current geometry tools because they go against the vibe: that can be done elsewhere
   in &lt;acronym&gt;GIMP&lt;/acronym&gt;.&lt;/p&gt;
   
   &lt;h3&gt;q + a&lt;/h3&gt;
   
   &lt;p&gt;During the stammtisch there were some interesting questions:&lt;/p&gt;
   
   &lt;p class=&quot;hang&quot;&gt;&lt;i&gt;‘Can’t you use gestures to determine what transformation to use?’&lt;/i&gt;
   Wow, that one rattled me for a moment. But I also felt immediately that gestures could not be it.
   I thought of forming clay (made of pixels) again and that one needs to get hands‑on
   to do that. Waving one’s hands in the air to magically form it would be too fluffy a method.&lt;/p&gt;
   
   &lt;p class=&quot;hang&quot;&gt;&lt;i&gt;‘Can one hide the frame with the handles to have a good look at what
   one is doing?’&lt;/i&gt; Good idea. I can see how it can help to temporarily have a clear view.
   I will add a way to do that.&lt;/p&gt;
   
   &lt;p class=&quot;hang&quot;&gt;&lt;i&gt;‘You talk not designing this tool for yourself; banning your own experiences,
   how do you do this?’&lt;/i&gt; That is a tough question. And only as I write this do I have the complete
   answer: I have to filter and interpret my own experiences exactly as the feedback of any other user.
   This usually ends with my own experience not mattering at all, or being a minor data point
   on an immense continuous scale.&lt;/p&gt;
   
   &lt;p&gt;That allows me to look at user interaction in an architectural way. Looking how &lt;strong&gt;one set&lt;/strong&gt;
   of interaction is going to do justice to the distribution of requirements of a &lt;strong&gt;million users&lt;/strong&gt;.&lt;/p&gt;
   
   &lt;h4&gt;trivia&lt;/h4&gt;
   
   &lt;p&gt;Just as I was explaining during my talk that all handles shown on‐canvas have to be drawn in
   transparent black or white and not in grey, I realised that they could be done in grey and still
   be visible under all circumstances. So now
   &lt;a href=&quot;http://gui.gimp.org/index.php/Transformation_tool_specification#on-canvas_interaction&quot;&gt;some are&lt;/a&gt;.
   You can actually click your way trough the
   &lt;a href=&quot;http://gui.gimp.org/index.php/Image:Transform_frame.png&quot;&gt;different iterations&lt;/a&gt; of the
   transformation frame design.&lt;/p&gt;
   
   &lt;p&gt;The complete for specification the transformation tool
   is not finished yet. You can follow my progress in the next few weeks by checking out
   the &lt;a href=&quot;http://gui.gimp.org/index.php/Transformation_tool_specification&quot;&gt;wiki&lt;/a&gt;.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/28919981-8600538910161380636?l=blog.mmiworks.net&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 01 Feb 2012 10:42:21 +0000</pubDate>
	<author>noreply@blogger.com (peter sikking)</author>
</item>
<item>
	<title>Jon A. Cruz: Back on Track</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-2097370696092004746.post-6764772215433824591</guid>
	<link>http://codewideopen.blogspot.com/2012/01/back-on-track.html</link>
	<description>&lt;p&gt;After being bogged down with 'real life', I've finally managed to get things moving bak on track... so time to get back to the blogging. A lot has gone on, and is getting ready to happen. &lt;a href=&quot;http://linux.conf.au/&quot;&gt;Conferences&lt;/a&gt; &lt;a href=&quot;http://www.oscon.com/&quot;&gt;conferences&lt;/a&gt; &lt;a href=&quot;http://libregraphicsmeeting.org/&quot;&gt;conferences&lt;/a&gt; and more &lt;a href=&quot;http://www.socallinuxexpo.org/&quot;&gt;conferences&lt;/a&gt;, &lt;a href=&quot;http://twitpic.com/8cw3je&quot;&gt;hardware&lt;/a&gt;, Inkscape hacking, and more...
&lt;/p&gt;
&lt;span class=&quot;fullpost&quot;&gt;&lt;p&gt;We have a lot planned, and maybe something for most anyone. Inkscape has picked up a few more active contributors, and I've gotten progress on a few 'interesting' tweaks. Some seem just for fun, but others have good practical application. We're also trying to get together some more organized meetings, online and in person, so that will be good. Also look for more on the front to help promote Inkscape.&lt;/p&gt;
&lt;p&gt;Much went on at this past &lt;a&gt;linux.conf.au&lt;/a&gt;, with great people helping out and some really outstanding presentations going on. Bruce Perens had some &lt;a href=&quot;http://youtu.be/Uoum-DHO7S8&quot;&gt;very important things to say&lt;/a&gt;, and it looks to be very helpful. And I even had my &lt;a href=&quot;http://youtu.be/vmbvArpJ8Z8&quot;&gt;talk on logo design for developers&lt;/a&gt; make it up online. (There are more going up over time, and the mirrors should be getting ogg versions too.)&lt;/p&gt;
&lt;p&gt;Posts will show up highlighting things from linux.conf.au and SCALE10x shortly. There will even be a few photos here and there. Most importantly, though, is that things should get more and more active here, and posts should be quite regular now.&lt;/p&gt;
&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/2097370696092004746-6764772215433824591?l=codewideopen.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 01 Feb 2012 07:48:00 +0000</pubDate>
	<author>noreply@blogger.com (Jon A. Cruz)</author>
</item>
<item>
	<title>Libre Graphics Magazine: FOSDEM 2012</title>
	<guid isPermaLink="false">http://libregraphicsmag.com/blog/?p=199</guid>
	<link>http://libregraphicsmag.com/blog/2012/02/fosdem-2012/</link>
	<description>&lt;p&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-large wp-image-200&quot; height=&quot;480&quot; src=&quot;http://libregraphicsmag.com/blog/wp-content/uploads/2012/02/lgmag-stickers-1024x768.png&quot; title=&quot;Libre Graphics magazine stickers&quot; width=&quot;640&quot; /&gt;&lt;/p&gt;
&lt;p&gt;We’ll be participating at &lt;a href=&quot;http://fosdem.org/2012/&quot; title=&quot;FOSDEM 2012&quot;&gt;FOSDEM&lt;/a&gt; again. This year we’ll have a stand for the Libre Graphics magazine.&lt;br /&gt;
There will be printed copies of all the issues published, for browsing and for sale. We’ll also have a collection of freshly printed stickers for all those coming around.&lt;/p&gt;
&lt;p&gt;Meet us there on the 4th and 5th of February, next weekend!&lt;/p&gt;</description>
	<pubDate>Wed, 01 Feb 2012 00:17:36 +0000</pubDate>
</item>
<item>
	<title>Ruben Vermeersch: Awesome details</title>
	<guid isPermaLink="false">http://weblog.savanne.be/?p=503</guid>
	<link>http://weblog.savanne.be/503-awesome-details</link>
	<description>&lt;p&gt;I like small details in software. Here’s a nice one I spotted the other day:&lt;/p&gt;

&lt;a href=&quot;http://weblog.savanne.be/503-awesome-details/img_0070&quot; title=&quot;IMG_0070&quot;&gt;&lt;img alt=&quot;IMG_0070&quot; class=&quot;attachment-thumbnail&quot; height=&quot;150&quot; src=&quot;http://weblog.savanne.be/IMG_0070-150x150.png&quot; title=&quot;IMG_0070&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://weblog.savanne.be/503-awesome-details/img_0071&quot; title=&quot;IMG_0071&quot;&gt;&lt;img alt=&quot;IMG_0071&quot; class=&quot;attachment-thumbnail&quot; height=&quot;150&quot; src=&quot;http://weblog.savanne.be/IMG_0071-150x150.png&quot; title=&quot;IMG_0071&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://weblog.savanne.be/503-awesome-details/img_0072&quot; title=&quot;IMG_0072&quot;&gt;&lt;img alt=&quot;IMG_0072&quot; class=&quot;attachment-thumbnail&quot; height=&quot;150&quot; src=&quot;http://weblog.savanne.be/IMG_0072-150x150.png&quot; title=&quot;IMG_0072&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;

&lt;p&gt;The &lt;a href=&quot;http://www.amazon.com/gp/feature.html/ref=kcp_ipad_mkt_lnd?docId=1000490441&quot;&gt;Amazon Kindle app for iPad&lt;/a&gt; changes its background depending on the hour of the day. It even has some very nice effects, for instance, when switching to the night view, a falling star flies by.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Small details and nice polish shows your users that you care. Don’t be happy when it works, go the extra mile.&lt;/strong&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 30 Jan 2012 14:14:23 +0000</pubDate>
</item>
<item>
	<title>Mukund Sivaraman: Interview of ColorHug maker, Richard Hughes</title>
	<guid isPermaLink="true">https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/</guid>
	<link>https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/</link>
	<description>&lt;p&gt;For a while now, I've wanted &lt;a href=&quot;https://banu.com/&quot;&gt;Banu&lt;/a&gt; to
do interviews of makers of things with free and open designs. Being a
fan of &lt;a href=&quot;http://make.pingmag.jp/&quot; rel=&quot;nofollow&quot;&gt;PingMag
MAKE&lt;/a&gt;, it was apparent that there was a lot of hard work, learning,
fun and satisfaction to be had in making. It's too bad that PingMag
shutdown, but they still inspire. So when the ColorHug comes
along—an open hardware product related to graphics—there's
no better time to start interviewing. Solder when the iron's hot!&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;http://www.hughski.com/&quot;&gt;ColorHug&lt;/a&gt; is a colorimeter
that can be used to calibrate computer displays. It was created
by &lt;a href=&quot;http://blogs.gnome.org/hughsie/&quot;&gt;Richard Hughes&lt;/a&gt;
(&lt;code&gt;hughsie&lt;/code&gt;). It is a fully open hardware project, and the
design, drivers and firmware are &lt;a href=&quot;https://gitorious.org/colorhug&quot; rel=&quot;nofollow&quot;&gt;available&lt;/a&gt; on the Gitorious
code hosting website. From the branches and commit logs it appears that
others have taken an interest in its development too, and have begun to
contribute to it.&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/colorhug1.jpg&quot; rel=&quot;nofollow&quot; title=&quot;ColorHug 1&quot;&gt;&lt;img alt=&quot;ColorHug 1&quot; height=&quot;161&quot; src=&quot;https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/colorhug1-thumb.jpg&quot; style=&quot;vertical-align: top;&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/colorhug2.jpg&quot; rel=&quot;nofollow&quot; title=&quot;ColorHug 2&quot;&gt;&lt;img alt=&quot;ColorHug 2&quot; height=&quot;160&quot; src=&quot;https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/colorhug2-thumb.jpg&quot; style=&quot;vertical-align: top;&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/colorhug3.jpg&quot; rel=&quot;nofollow&quot; title=&quot;ColorHug 3&quot;&gt;&lt;img alt=&quot;ColorHug 3&quot; height=&quot;161&quot; src=&quot;https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/colorhug3-thumb.jpg&quot; style=&quot;vertical-align: top;&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Without further ado, here's Richard
Hughes. &lt;img alt=&quot;:)&quot; src=&quot;https://banu.com/static/images/emotes/smile.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;Who are you? What have you been doing so far? How did you get
interested in computers, electronics and building stuff?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My name is Richard Hughes, and I'm a programmer in the desktop group
at &lt;a href=&quot;http://www.redhat.com/&quot; rel=&quot;nofollow&quot;&gt;Red Hat&lt;/a&gt;. I
created and now maintain the following projects: &lt;a href=&quot;https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/&quot; rel=&quot;nofollow&quot;&gt;upower&lt;/a&gt;, &lt;a href=&quot;http://www.packagekit.org/&quot; rel=&quot;nofollow&quot;&gt;PackageKit&lt;/a&gt;, &lt;a href=&quot;http://www.freedesktop.org/software/colord/&quot; rel=&quot;nofollow&quot;&gt;colord&lt;/a&gt;, &lt;a href=&quot;https://github.com/hughsie/shared-color-profiles&quot; rel=&quot;nofollow&quot;&gt;shared-color-profiles&lt;/a&gt;, &lt;a href=&quot;https://github.com/hughsie/shared-color-targets&quot; rel=&quot;nofollow&quot;&gt;shared-color-targets&lt;/a&gt;, &lt;a href=&quot;http://projects.gnome.org/gnome-color-manager/&quot; rel=&quot;nofollow&quot;&gt;gnome-color-manager&lt;/a&gt;, &lt;a href=&quot;http://projects.gnome.org/gnome-power-manager/&quot; rel=&quot;nofollow&quot;&gt;gnome-power-manager&lt;/a&gt; and &lt;a href=&quot;http://library.gnome.org/users/gnome-packagekit/stable/intro.html.en&quot; rel=&quot;nofollow&quot;&gt;gnome-packagekit&lt;/a&gt;.
From right since I was a little child, I was always taking things apart
and making new things, and so my degree choice of Electronic Engineering
shocked none of my friends or family. Whilst at University I got into
writing code, and specifically open source code. I started hacking on
low level userspace bits and the kernel, and then after my masters had
finished I took a job at a large UK defence contractor. It was pretty
much the opposite environment to open source, and as soon as Red Hat
asked if wanted to hack on cool stuff full time I jumped at the
chance. Although I'm hugely privileged to spend all day writing free
software, I've always missed making things, and I figured I could do
something with open hardware as a hobby.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;How did you end up in computer graphics / color
management?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When I bought a digital SLR camera, my wife paid for me to go on a
course to learn how to use the camera properly. During this course I
used OSX for the first time, and came to the realisation that the color
stuff just worked. No messing around on the command line, no technical
jargon, it just worked. Color Management on Linux was in sorry state of
affairs then, and I thought I could do something about that.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;What is the ColorHug? What is a colorimeter?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A colorimeter is a device that attaches to the screen and measures
the actual colors output by the computer. It allows us to see what color
is actually being shown to the user, rather than what color the computer
&lt;em&gt;thinks&lt;/em&gt; it's showing the user. Using lots of these samples, we
can apply a correction profile to the screen to make images look as they
ought to look. As LCD panels get older, they get yellow and dull, and
even CRT monitors have phosphors that degrade over time. This means you
have to calibrate every few months to ensure that the colors match what
they should.&lt;/p&gt;

&lt;p&gt;The ColorHug is an open source colorimeter. It's designed from
scratch, and every part is 100% open source. All the other colorimeters
you can buy in shops have proprietary code that means we have to reverse
engineer the hardware to make it work on Linux, and then we can't modify
the hardware to do something else, or fix bugs and add features like you
can with open source hardware.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;What information is in color profiles?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A color profile is really just a binary blob of data that describes
the color response of an input or output device. You can have color
profiles that just encode the curves of colors as a set of matrices, or
you can have color profiles that are made up of of huge lookup
tables. You can also store arbitrary data in a profile, and so you
normally store a lot of extra useful stuff there too like the model
number of the device or the paper type for the printer.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;What are the tech specs of the ColorHug? Does it use USB?
Does it need a battery?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The device is a small USB peripheral that connects to the host
computer and takes &lt;a href=&quot;http://en.wikipedia.org/wiki/CIE_1931_color_space&quot; rel=&quot;nofollow&quot;&gt;XYZ&lt;/a&gt;
measurements of a specified accuracy. Longer measurements lead to a more
accurate result, but take more time. The ColorHug has no battery and
takes the few hundred milliamps it needs from the USB bus. The
device has two LEDs that can either be switched on or off, or be
programmed to do a repeated flashing with specified on and off
durations. The device supports up to 64 calibration matrices, and by
default 3 are provided which are mapped to LCD, CRT and projector, with
3 additional reserved types.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;Tell us about the ColorHug's design.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The ColorHug is actually a PIC microcontroller that is interfaced
with a &lt;a href=&quot;http://www.taosinc.com/ProductDetails.aspx?id=128&quot; rel=&quot;nofollow&quot;&gt;TCS3200&lt;/a&gt;
light to frequency chip. The frequency is proportional to the amount of
light, and so by enabling the red, green and blue &lt;a href=&quot;http://en.wikipedia.org/wiki/Photodiode&quot; rel=&quot;nofollow&quot;&gt;photodiodes&lt;/a&gt; in the
sensor we can combine these with a bit of clever maths into an XYZ color
value. The PIC just controls the sensor and accurately counts pulses at
high speed, and then responds to requests from the USB host to do
different low level things.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;What data structures / file formats do you work
with?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bit of an odd question, the answer is LOTS.
&lt;img alt=&quot;:)&quot; src=&quot;https://banu.com/static/images/emotes/smile.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;What are some of the unique algorithms used in the
ColorHug?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'm pretty sure there's nothing unique in the device, it's really
simple hardware along with some school vector and matrix maths. The
ColorHug is able to store custom &lt;a href=&quot;http://www.argyllcms.com/doc/File_Formats.html#.ccmx&quot; rel=&quot;nofollow&quot;&gt;CCMX
matrices&lt;/a&gt; on the device, which is something that I was surprised that
no other colorimeter vendor seems to do.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;Can you walk us through the software path through various
components of a Linux stack, when using typical ColorHug
facilities?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Well, just taking a sample in &lt;code&gt;gcm-picker&lt;/code&gt; is a good
example.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;gcm-picker&lt;/code&gt; opens the ColorHug device
using &lt;a href=&quot;http://www.freedesktop.org/software/colord/&quot; rel=&quot;nofollow&quot;&gt;colord&lt;/a&gt;, and asks
colord for a number of &lt;a href=&quot;http://en.wikipedia.org/wiki/CIE_1931_color_space&quot; rel=&quot;nofollow&quot;&gt;XYZ
samples&lt;/a&gt;. colord opens the device, and sets up some initial
parameters (e.g. sample time) and then does a write to the USB
device. When the write is complete, the host then reads the data back
from the USB device and transports it back to the application
over &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/dbus&quot; rel=&quot;nofollow&quot;&gt;DBus&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;What hardware tools do you need to build/debug/test this
device?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To build and test the device, I need:&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt;An &lt;a href=&quot;http://en.wikipedia.org/wiki/Electrostatic_discharge#Damage_prevention_in_electronics&quot; rel=&quot;nofollow&quot;&gt;ESD
workstation&lt;/a&gt; with temperature controlled soldering iron, microscope,
surgical tweezers, flux pen, fume extractor and bright light&lt;/li&gt;

&lt;li&gt;A generic multimeter, bench power supply and an oscilloscope is
handy&lt;/li&gt;

&lt;li&gt;A PIC programmer with 40 pin &lt;a href=&quot;http://en.wikipedia.org/wiki/Zero_insertion_force&quot; rel=&quot;nofollow&quot;&gt;ZIF&lt;/a&gt; socket
and spring loaded &lt;a href=&quot;http://en.wikipedia.org/wiki/In-circuit_serial_programming&quot; rel=&quot;nofollow&quot;&gt;ICSP&lt;/a&gt;
port&lt;/li&gt;

&lt;li&gt;A &lt;a href=&quot;http://en.wikipedia.org/wiki/Spectrophotometry&quot; rel=&quot;nofollow&quot;&gt;photospectrometer&lt;/a&gt;
and a good display such as a &lt;a href=&quot;http://www.hp.com/sbso/solutions/pc_expertise/professional_innovations/hp-dreamcolor.pdf&quot; rel=&quot;nofollow&quot;&gt;DreamColor&lt;/a&gt;
to test each device with&lt;/li&gt;

&lt;li&gt;A lot of patience&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;What software tools did you use to build this?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I used &lt;a href=&quot;http://www.gpleda.org/&quot; rel=&quot;nofollow&quot;&gt;gEDA&lt;/a&gt; to
design the schematic and PCB, and from someone that's used very
expensive PCB design software like Mentor Graphics, it was super
easy. The gEDA guys are doing a really good job. From a software side I
use the &quot;free&quot; (but not open) Windows &lt;a href=&quot;http://en.wikipedia.org/wiki/MPLAB&quot; rel=&quot;nofollow&quot;&gt;MPLAB compiler&lt;/a&gt; and then
wrote all the firmware loader software myself.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;What skills did you have to use in this project? Is this your
first hardware project?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I used to work on designing test equipment for military flight
computers, so I've got a fair bit of experience doing moderately clever
things with very small components. That said, a few people have built
the ColorHug board now who are just hobbyists, and it's refreshing to
know the board is easy to build.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;How did you go about building this project?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &quot;hello world&quot; program is often the hardest part of a project. I
probably spent about 3 weeks working with a PIC evaluation board just to
turn on a LED from custom flashed firmware before I could be happy that
the processor was suitable for the job. The other bits are easy, once
you have that first flashing LED. I soldered the sensor onto
a &lt;a href=&quot;http://en.wikipedia.org/wiki/Small-outline_integrated_circuit&quot; rel=&quot;nofollow&quot;&gt;SOIC8&lt;/a&gt;
→ &lt;a href=&quot;http://en.wikipedia.org/wiki/Dual_in-line_package&quot; rel=&quot;nofollow&quot;&gt;DIP8&lt;/a&gt;
convertor board and then used some breadboard to wire it onto the
evaluation board. From there I got the sensor working, and could sense
the different colors.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;What are the main components of the ColorHug? What are their
roles?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt;The sensor [&lt;a href=&quot;http://www.taosinc.com/ProductDetails.aspx?id=128&quot; rel=&quot;nofollow&quot;&gt;TCS3200&lt;/a&gt;],
to measure the number of photons of each wavelength&lt;/li&gt;

&lt;li&gt;The processor [&lt;a href=&quot;http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en539708&quot; rel=&quot;nofollow&quot;&gt;PIC18F46J50&lt;/a&gt;],
to deal with USB comms and to turn on and measure colors using the
sensor&lt;/li&gt;

&lt;li&gt;The clock, 12Mhz to keep the processor running at high speed&lt;/li&gt;

&lt;li&gt;The rubber aperture, to only accept light that is 90 degrees from
the screen down a small hole&lt;/li&gt;

&lt;li&gt;The LEDs, to show state and any error code&lt;/li&gt;

&lt;li&gt;The box, to keep the PCB safe from static and help keep out the
light&lt;/li&gt;

&lt;li&gt;The pads, to avoid damaging the screen when the device is pressed
against a fragile glass panel&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/schem.png&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;ColorHug schematic&quot; height=&quot;462&quot; src=&quot;https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/schem-thumb.png&quot; width=&quot;712&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;How does the main IC sensor work? How does light get
transformed into values you can use?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The sensor is actually an array of 64 smaller sensors, which are
arranged in a grid of Red, Green, Blue and White. When the PIC reads the
frequency counts for a given sample, it converts then into 3 deviceRGB
numbers, which are converted using a calibration 3×3 matrix into
the &lt;a href=&quot;http://en.wikipedia.org/wiki/CIE_1931_color_space&quot; rel=&quot;nofollow&quot;&gt;XYZ&lt;/a&gt;
values. The XYZ values can also undergo another 3×3 matrix on the
device, which converts the numbers to a given set of display
primaries. This lets the ColorHug be calibrated against
an &lt;a href=&quot;http://en.wikipedia.org/wiki/SRGB&quot; rel=&quot;nofollow&quot;&gt;sRGB&lt;/a&gt;
screen and used on &lt;a href=&quot;http://en.wikipedia.org/wiki/Gamut&quot; rel=&quot;nofollow&quot;&gt;wide-gamut&lt;/a&gt; displays.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/tcs230d.jpg&quot; rel=&quot;nofollow&quot; title=&quot;TCS230D sensor&quot;&gt;&lt;img alt=&quot;TCS230D sensor&quot; height=&quot;258&quot; src=&quot;https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/tcs230d-thumb.jpg&quot; style=&quot;vertical-align: top;&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;How do you calibrate ColorHugs?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Calibration involves taking about 500 samples of dRGB and then using
the &lt;a href=&quot;http://www.argyllcms.com/&quot; rel=&quot;nofollow&quot;&gt;Argyll CMS&lt;/a&gt;
program &lt;code&gt;ccxxmake&lt;/code&gt; to crunch the numbers into the best
calibration matrix. This adapts the dRGB color into an XYZ value.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;How did you design the enclosure?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The enclosure is a standard black &lt;a href=&quot;http://en.wikipedia.org/wiki/Acrylonitrile_butadiene_styrene&quot; rel=&quot;nofollow&quot;&gt;ABS&lt;/a&gt;
box from Hammond, with two cut outs that I do with several wooden and
metal jigs. When I've got a bit of profit, I'm hoping to buy some
equipment to do the holes in a better and quicker way.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;How does the hardware process commands sent via USB by the
software?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;From a device point of view it just sits and waits for an input
packet (64-byte buffer) and then parses the input. It then does whatever
is required and then writes out an output packet. Much more details
about what kind of data is sent is available in the firmware
specification header file: &lt;a href=&quot;https://gitorious.org/colorhug/firmware/blobs/master/ColorHug.h&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;https://gitorious.org/colorhug/firmware/blobs/master/ColorHug.h&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's a basic flow chart:&lt;/p&gt;

&lt;pre&gt;Client: set the sensor multiplier (the frequency divider) to 100%
Hardware: OK

Client: set the sensor integral time to 65000 processor cycles
Hardware: OK

Client: flash the green LED twice
Hardware: OK

Client: take an XYZ reading with the default XYZ matrix for an LCD display
Hardware: OK, 123.45 67.89 34.56

Client: set the sensor multiplier to 0% (to turn the sensor off)
Hardware: OK
&lt;/pre&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;Is ColorHug free hardware? What did you keep in mind when
designing it so that it was easily hackable?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's all 100% free. When designing the PCB, I had to keep in mind
that people who wanted to build the PCB themselves were probably not
experts in &lt;a href=&quot;http://en.wikipedia.org/wiki/Surface-mount_technology&quot; rel=&quot;nofollow&quot;&gt;SMD&lt;/a&gt;
rework. So, the PCB is larger than it could be, and I've deliberately
used large &lt;a href=&quot;http://en.wikipedia.org/wiki/Surface-mount_technology#Package_sizes&quot; rel=&quot;nofollow&quot;&gt;0805&lt;/a&gt;
components rather than the more standard &lt;a href=&quot;http://en.wikipedia.org/wiki/Surface-mount_technology#Package_sizes&quot; rel=&quot;nofollow&quot;&gt;0603
size&lt;/a&gt;. The code is designed for accidental shorts, for instance the
spare processor pins are wired up as inputs, and there's a &lt;a href=&quot;http://en.wikipedia.org/wiki/Watchdog_timer&quot; rel=&quot;nofollow&quot;&gt;watchdog timer&lt;/a&gt; to
stop the hardware getting wedged. The LEDs help enormously when
debugging, as they output Morse code in event of a hardware error.&lt;/p&gt;

&lt;p&gt;
&lt;img alt=&quot;ColorHug PCB neaar side&quot; class=&quot;black-border&quot; height=&quot;507&quot; src=&quot;https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/pcb-near.png&quot; width=&quot;318&quot; /&gt;
&lt;img alt=&quot;ColorHug PCB far side&quot; class=&quot;black-border&quot; height=&quot;507&quot; src=&quot;https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/pcb-far.png&quot; width=&quot;318&quot; /&gt;
&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;What is Hughski Limited? How did you decide to start
it?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hughski Limited is a tiny company I set up to &lt;a href=&quot;http://en.wikipedia.org/wiki/Limited_liability&quot; rel=&quot;nofollow&quot;&gt;reduce&lt;/a&gt; the
amount of personal liability I had. I'm naturally quite a risk-averse
person, and so if some crazy lawyer decided to sue the company because
his ColorHug poisoned his cat and ran away with his wife then they could
claim all £66 of profit in the business rather than risking my personal
savings.  It's also a good way to work out how much tax you've got to
pay at the end of the year if you try to keep the business and private
finances separate.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;I see that it's a UK registered company. What challenges did
you face in creating this company? How much work was it? Are there other
employees than you?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Actually creating the company is very easy and only a few hundred
pounds. The hard bit is setting up the tax and getting all the permits
you need to start trading. There are technically no paid employees,
although I solder the boards and my wife sticks on stickers and screws
the units together.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;How do you intend to attract more people to use the
ColorHug?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At the moment, there is a waiting list to buy the ColorHug, and so
I'm not intending to advertise at all. I'm hoping that when people get
their ColorHug and tell their friends, that will be all the advertising
I need.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;How do you source your components?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most of the components are from China and Taiwan. Most are bought
using big companies such as Mouser and Farnell, but some (like the IR
cut-off filter) are custom made in China, and these are hard to
obtain.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;Do you intend to do other devices in the future?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'm playing with the idea of making an open source three axis CNC
machine, as I've found the hardest part of making the ColorHug was
actually drilling the case to any kind of precision.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;How does it feel to work on free hardware?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's a bit unreal really. I was only going to make 50 devices, and I
hoped that I would not be left with devices spare. Now I've got a few
hundred orders and the community is starting to grow. That bit feel
great.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;Are the software parts entirely free? Are there any closed
tools which you have to use?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I use the closed source MPLAB to compile the bootloader and firmware,
but only because the open source &lt;a href=&quot;http://sdcc.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;SDCC compiler&lt;/a&gt; didn't work for
me. At some point I'll have to put in the hours and fix SDCC, but until
then I just need to get hardware out of the door.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;Now that you have completed this project, what observations
did you make in retrospect?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Well, the amount of cash it took to make a professional looking
product is huge. The main problem is that most companies have a minimum
order quantity of about 10,000 units, which is a ton of money for me on
a project with no precedence. I've been lucky to find local companies
that will take on small orders at reasonable prices.&lt;/p&gt;

&lt;p&gt;In hindsight, I should have also worked longer on the prototype unit
before announcing it to the world, as it takes quite a long time to
convert a design designed for one unit, to a design that can be made in
batches of 100. In the amazon-one-click world we live in, people don't
like it when you announce its going to be 12 weeks until they get
hardware.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;Did you have fun? Does the ColorHug rock?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'm still having fun, and the hardware seems to work for people,
which is the main thing. Hopefully soon I can afford to pay myself
something for my time, as up until now I've been buillding the units for
free.&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/colorhug4.jpg&quot; rel=&quot;nofollow&quot; title=&quot;ColorHug 4&quot;&gt;&lt;img alt=&quot;ColorHug 4&quot; class=&quot;black-border&quot; height=&quot;161&quot; src=&quot;https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/colorhug4-thumb.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/colorhug5.jpg&quot; rel=&quot;nofollow&quot; title=&quot;ColorHug 5&quot;&gt;&lt;img alt=&quot;ColorHug 5&quot; class=&quot;black-border&quot; height=&quot;161&quot; src=&quot;https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/colorhug5-thumb.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/colorhug6.jpg&quot; rel=&quot;nofollow&quot; title=&quot;ColorHug 6&quot;&gt;&lt;img alt=&quot;ColorHug 6&quot; class=&quot;black-border&quot; height=&quot;161&quot; src=&quot;https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/colorhug6-thumb.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Question&quot; src=&quot;https://banu.com/static/images/blog/question.png&quot; /&gt; &lt;strong&gt;I am a GIMP user. Assuming GIMP supports a color managed
workflow, how does one configure and use ColorHug on a Linux
desktop?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you're new to all this color management stuff, just fire up
&lt;code&gt;gnome-control-center&lt;/code&gt; and click the color panel. Then click
&quot;Learn more&quot; and &lt;a href=&quot;http://library.gnome.org/users/gnome-help/unstable/color.html&quot; rel=&quot;nofollow&quot;&gt;read
all the documentation&lt;/a&gt; I wrote for GNOME 3.2. The ColorHug is just
another supported device, so there's really nothing special you need to
do.&lt;/p&gt;

&lt;p&gt;
&lt;img alt=&quot;Richard's computer&quot; class=&quot;black-border&quot; height=&quot;201&quot; src=&quot;https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/computer.jpg&quot; width=&quot;300&quot; /&gt;&lt;br /&gt;
&lt;strong&gt;Richard's computer&lt;/strong&gt;&lt;br /&gt;
Where it all happens&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;Richard Hughes&quot; class=&quot;black-border&quot; height=&quot;344&quot; src=&quot;https://banu.com/blog/41/interview-of-colorhug-maker-richard-hughes/richard.jpg&quot; width=&quot;300&quot; /&gt;&lt;br /&gt;
&lt;strong&gt;Richard Hughes&lt;/strong&gt;&lt;br /&gt;
GNOME developer and free hardware hacker
&lt;/p&gt;

&lt;p&gt;That is all, readers. &lt;img alt=&quot;:)&quot; src=&quot;https://banu.com/static/images/emotes/smile.png&quot; /&gt; We hope you enjoyed this interview.  If you have someone in
mind to be interviewed, or you yourself want to be interviewed about
your free hardware or software project, please email me the details or
tweet &lt;a href=&quot;https://twitter.com/banushop&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;@banushop&lt;/strong&gt;&lt;/a&gt;. The
ColorHug is offered for purchase at £48 currently. If you use Linux and
are into graphics or hardware hacking, &lt;a href=&quot;http://www.hughski.com/&quot; rel=&quot;nofollow&quot;&gt;buy one&lt;/a&gt; and support its
development. Happy hacking!&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.facebook.com/sharer.php?u=https%3A%2F%2Fbanu.com%2Fblog%2F41%2Finterview-of-colorhug-maker-richard-hughes%2F&quot; rel=&quot;nofollow&quot; target=&quot;facebook6237ba69c1e898f035bee8fa4003df88&quot; title=&quot;Recommend on Facebook&quot;&gt;&lt;img alt=&quot;Facebook&quot; height=&quot;16&quot; src=&quot;https://banu.com/static/0.9.71/images/social/facebook.png&quot; width=&quot;16&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://twitter.com/intent/tweet?text=https%3A%2F%2Fbanu.com%2Fblog%2F41%2Finterview-of-colorhug-maker-richard-hughes%2F+%40banushop&quot; rel=&quot;nofollow&quot; target=&quot;twitter6237ba69c1e898f035bee8fa4003df88&quot; title=&quot;Tweet this&quot;&gt;&lt;img alt=&quot;Twitter&quot; height=&quot;16&quot; src=&quot;https://banu.com/static/0.9.71/images/social/twitter.png&quot; width=&quot;16&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://www.reddit.com/submit?url=https%3A%2F%2Fbanu.com%2Fblog%2F41%2Finterview-of-colorhug-maker-richard-hughes%2F&quot; rel=&quot;nofollow&quot; target=&quot;reddit6237ba69c1e898f035bee8fa4003df88&quot; title=&quot;Submit to Reddit&quot;&gt;&lt;img alt=&quot;Reddit&quot; height=&quot;16&quot; src=&quot;https://banu.com/static/0.9.71/images/social/reddit.png&quot; width=&quot;16&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://news.ycombinator.com/submitlink?u=https%3A%2F%2Fbanu.com%2Fblog%2F41%2Finterview-of-colorhug-maker-richard-hughes%2F&quot; rel=&quot;nofollow&quot; target=&quot;hn6237ba69c1e898f035bee8fa4003df88&quot; title=&quot;Submit to Hacker News&quot;&gt;&lt;img alt=&quot;Hacker News&quot; height=&quot;16&quot; src=&quot;https://banu.com/static/0.9.71/images/social/hn.png&quot; width=&quot;16&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://plusone.google.com/_/+1/confirm?hl=en&amp;amp;url=https%3A%2F%2Fbanu.com%2Fblog%2F41%2Finterview-of-colorhug-maker-richard-hughes%2F&quot; rel=&quot;nofollow&quot; target=&quot;google6237ba69c1e898f035bee8fa4003df88&quot; title=&quot;Google +1&quot;&gt;&lt;img alt=&quot;Google +1&quot; height=&quot;16&quot; src=&quot;https://banu.com/static/0.9.71/images/social/google.png&quot; width=&quot;26&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;</description>
	<pubDate>Mon, 30 Jan 2012 08:27:00 +0000</pubDate>
</item>
<item>
	<title>Alexandre Prokoudine: How to butcher a good text</title>
	<guid isPermaLink="false">http://prokoudine.info/blog/?p=575</guid>
	<link>http://prokoudine.info/blog/2012/01/how-to-butcher-a-good-text/</link>
	<description>&lt;p&gt;So you want to write an article. But what if people actually try reading it? What if they (oh, the blasphemy!) understand a good part of it?&lt;/p&gt;
&lt;p&gt;No way Jose! You didn’t spend hours doing a research for &lt;em&gt;everyone&lt;/em&gt; to understand it. If you made an effort, people’ve got to show some respect! The’ve got to spend as much time on reading it as your spent on writing it. Or else they are cheating.&lt;/p&gt;
&lt;p&gt;Tired of people cheating on you, my fellow blogger? I’ll show you the way forward. Then left, right, left, left again, forward, right, upside-down, inside-out, left… Nearly there!&lt;/p&gt;
&lt;h2&gt;The Core Concept&lt;/h2&gt;
&lt;p&gt;Forget it. You are a man of ideas, are you not? Put as many ideas in your text as you can think of. Don’t separate them. Instead, let them tie in crazy knots like a headphone wire in your pocket.&lt;/p&gt;
&lt;p&gt;This is your ideal text &lt;a href=&quot;http://blenderartists.org/forum/showthread.php?60267-Up-and-Down-QuickTimeVR&quot;&gt;visualized&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Upd and Down&quot; src=&quot;http://i.imgur.com/Nrjam.jpg&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;The Navigation&lt;/h2&gt;
&lt;p&gt;Huh? Navigation is for sissy girls. &lt;em&gt;You&lt;/em&gt; write stuff only for the deserving who are tough enough to dig through ten layers of crap. In other words:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Never use headings. Train of thought may do Brownian movements, but that’s no reason for stopping.&lt;/li&gt;
&lt;li&gt;Use inline lists. Because the colon was invented for a reason, dontcherknow.&lt;/li&gt;
&lt;li&gt;Put as many hyperlinks in your text as you can think of. Take that, Wikipedia!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Text&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Write long, very long paragraphs. People’ve got to see you put some work into it!&lt;/li&gt;
&lt;li&gt;Right after those very long paragraphs use very short ones, no less that a single sentence. After all, you are not a monster.&lt;/li&gt;
&lt;li&gt;Nevertheless, most of the content should be made up of sentences with no less than 3 levels of nested complexity. Solve the puzzle, sukkas!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Illustrations&lt;/h2&gt;
&lt;p&gt;Eeeek! That’s abomination unto machismo. Make it a wall of text. No treacherous image should sneak in! Guard the perimeter!&lt;/p&gt;
&lt;p&gt;On a second thought, you can get some extra points for making people go through illustrations with gritted teeth. Just use a really psychodelic color palette for all the diagrams and never ever put a legend on.&lt;/p&gt;
&lt;h2&gt;Tables&lt;/h2&gt;
&lt;p&gt;Yeah, baby. This is where you can go &lt;em&gt;nuts&lt;/em&gt;. People may think you wear underpants on your head, but I say use long tables!&lt;/p&gt;
&lt;p&gt;In fact, make all of your text a table. And put some nested tables in. I mean, aren’t all geniuses crazy? That must be it!&lt;/p&gt;
&lt;h2&gt;Conclusions&lt;/h2&gt;
&lt;p&gt;If you follow these simple instructions, few people will read more than 1/10 of your article. This is how your gain a true following of the like-minded! And with luck everyone will just skip your text! How cool is that?!&lt;/p&gt;
&lt;p&gt;Now, I know what you’re thinking. You’re thinking: uh, oh, this sukka broke every rule he listed. Does the bugger ever follow his own advices?&lt;/p&gt;
&lt;p&gt;And that’s my point exactly: never follow your own advices. This will only make it more interesting!&lt;/p&gt;</description>
	<pubDate>Sun, 29 Jan 2012 21:37:02 +0000</pubDate>
</item>
<item>
	<title>Adrian Likins: test</title>
	<guid isPermaLink="false">http://adrianlikins.com/?p=2321</guid>
	<link>http://adrianlikins.com/2012/01/test-3/</link>
	<description>&lt;p&gt;Yup, a test&lt;/p&gt;</description>
	<pubDate>Sun, 29 Jan 2012 19:06:01 +0000</pubDate>
</item>
<item>
	<title>Pascal de Brujn: Color Management (On Linux)</title>
	<guid isPermaLink="false">http://blog.pcode.nl/?p=853</guid>
	<link>http://blog.pcode.nl/2012/01/29/color-management-on-linux/</link>
	<description>&lt;p&gt;There seems to be a lot of confusion about what color management is, what it is supposed to do, and most particularly how to use it on Linux. While most information below is generically applicable, in cases where I have to be specific I’ll focus on Ubuntu/GNOME/Unity.&lt;/p&gt;
&lt;p&gt;The first thing to get out of the way is the simply question what color manament is supposed to do for you. Color management is used to get consistent and reliable results from device to device to device. So if I take an image with my color managed camera, and display it on my color managed display and print it with my color managed printer it should look nearly the same everywhere. This means it doesn’t per-se make your image look better (whatever that may mean for you). Also what color management can’t do for you is make crappy equipment better than it is. Any color management solution always has to work within the bounds of the equipment it is managing. Of course any color management solution tries to compensate for a device’s limits as best it can, but there are inherent limits. When these limits are hit, colors aren’t accurately reproduced anymore.&lt;/p&gt;
&lt;p&gt;Now we need to get some terminology straight. Calibration is modifying a device’s characteristics to match a specification (for example changing brightness of a display). Characterization is recording the devices behavior for correction in software. These terms are often incorrectly used interchangeably (even by me, excuse me when I do). The end result of characterization is a (standard) ICC color profile.&lt;/p&gt;
&lt;p&gt;While pretty much any device can be color managed , I’ll focus on displays for the rest of this article.&lt;/p&gt;
&lt;p&gt;Now to color manage a display you need a device that can “read” (characterize) your displays characteristics. To characterize your display there are two types of devices you can use: colorimeters and spectrophotometers. Colorimeters are the most common device to characterize displays, as they are fairly affordable (100-200 EUR range). Colorimeters do have their limits, they are in essence just a very special purpose digital camera with only a handful of pixels. While I personally never had any issues, I’ve read about older colorimeters having trouble with new kinds of display technology like LED backlit displays, and some entry level colorimeters may not work as well with professional wide gamut displays (more on that later). The other option is a spectrophotometer, these devices are rather pricy, entry level spectrophotometers like the ColorMunki Photo, are priced slightly below 400EUR (if you see any device priced significantly lower, it’s likely that the device is not a true spectrophotometer). Spectrophotometers actually read a full spectrum of the light they receive, which means it produces a lot more detailed information. This means spectrophotometers are unlikely to be fooled by new technologies. Most spectrophotometers also include a reference light source, which means they can illuminate (for example) paper, so they can be used to profile printers (combined with ink &amp;amp; paper) as well.&lt;/p&gt;
&lt;p&gt;So now we’ll need to explain some more concepts. So first I’ll tell you how silly talking about (for example) RGB 245/0/0 really is. Imagine owning a car, and you’re stuck with an empty tank. So using your last few drop of petrol you go to a petrol station. Say you live in Europe, and you say to the attendant, I’ll have 40, so the attendant fills up your car with 40 Liters of petrol. If someone living in the US says the same thing to an attendant at a US petrol station, they’ll get 40 Gallons of petrol. So, you’d say, well I did tell you properly, it’s RGB… But RGB really doesn’t mean anything at all. Since RGB just tells you, you are defining colors in three components: red, blue and green. It doesn’t say anything about what the reddest red is, the greenest green is and let not forgot about the bluest blue. To define this, the concept of colorspaces was created, a colorspace defines the range of colors a device can reproduce, this is also called a device’s &lt;a href=&quot;http://en.wikipedia.org/wiki/Gamut&quot;&gt;gamut&lt;/a&gt;. RGB colorspaces are defined in &lt;a href=&quot;http://en.wikipedia.org/wiki/CIE_1931_color_space&quot;&gt;CIE XYZ colorspace&lt;/a&gt;. They do this, because XYZ colorspace encompasses all colors the average human eye can see. All RGB colorspaces are a defined as a subset of XYZ colorspace. More importantly in the late nineties two of the most important colorspaces were defined: &lt;a href=&quot;http://en.wikipedia.org/wiki/SRGB&quot;&gt;sRGB&lt;/a&gt; (by Microsoft and HP), and &lt;a href=&quot;http://en.wikipedia.org/wiki/Adobe_RGB_color_space&quot;&gt;AdobeRGB&lt;/a&gt; (by, erhm… well… Adobe). sRGB was more or less defined as the average common denominator of most affordable displays. These days anything not explicitly defined a in different colorspace is assumed to be in sRGB. On the other hand, AdobeRGB was defined to encompass much more colors, with it’s main goal of covering most colors professional printing solutions could cover.&lt;/p&gt;
&lt;p&gt;Next to defining RGB to be in a colorspace, there is still the issue that the human eye does not experience light in a linear fashion, so we need &lt;a href=&quot;http://en.wikipedia.org/wiki/Gamma_correction&quot;&gt;gamma encoding&lt;/a&gt; to make images not look like a murky mess. These days gamma 2.2 is universally accepted as a standard for displays. There are some &lt;a href=&quot;http://www.argyllcms.com/doc/gamma.html&quot;&gt;caveats&lt;/a&gt; though. I own a cheap netbook, and it’s display for example seems to have a native display gamma of about 1.8, which means it lacks contrast.&lt;/p&gt;
&lt;p&gt;And then there is the issue of &lt;a href=&quot;http://en.wikipedia.org/wiki/White_point&quot;&gt;whitepoints&lt;/a&gt;, since there is no such thing a “just” white. For most purposes, a white point of 6500K (this is at least true for both sRGB and AdobeRGB) is good as a standard neutral white. Higher temperatures in Kelvin make a display look blue (common with laptop displays), and lower temperatures in Kelvin more a display look more yellow.&lt;/p&gt;
&lt;p&gt;And last there is the question of luminance, which is a snazzy term for brightness. If you work isn’t color critical, just put your display to a comfortable level (usually not too bright), if your work is color critical, it’s common to calibrate your display to 120cd/m2.&lt;/p&gt;
&lt;p&gt;That said, there are some common issues to address. As I said the result of characterization is an ICC profile. ICC profiles usually have the file extension of .icc or on Windows .icm. Depending on the software which generated the profile, profiles can either be version 2 or version 4. And at least on Linux (but also true for older proprietary software), many programs may not properly apply version 4 profiles, so it’s best to stick with version 2 profiles for the time being. Luckily ArgyllCMS, the premier open profiling suite generates version 2 profiles by default.&lt;/p&gt;
&lt;p&gt;Also, you need to be aware that most web browers aren’t color management aware (Safari &amp;amp; Firefox are the exception when properly configured). The W3C specified that “the web” should be in &lt;a href=&quot;http://www.w3.org/Graphics/Color/sRGB.html&quot;&gt;sRGB&lt;/a&gt;. This basically means that you should only upload sRGB images to websites, if you upload images that are not sRGB, they may not look as intended to your potential viewers (depending on which browser they use). The common problem is that people upload AdobeRGB images to the web, and they get complaints that the images look desaturated (since the web browser is assuming them to be sRGB, even though they are not).&lt;/p&gt;
&lt;p&gt;Now back to display profiling, there are several ways to accomplish this on Linux. I’ve talked in the past about manually doing this with &lt;a href=&quot;http://www.argyllcms.com/&quot;&gt;ArgyllCMS&lt;/a&gt;, which is a suite of commandline tools. There are however some front-ends available. The two most important ones are &lt;a href=&quot;http://dispcalgui.hoech.net/&quot;&gt;dispcalGUI&lt;/a&gt; and &lt;a href=&quot;http://projects.gnome.org/gnome-color-manager/&quot;&gt;GNOME Color Manager&lt;/a&gt;. Both tools have their own target audience, dispcalGUI caters to advanced users who really know color management inside out. While GNOME Color Manager caters to entry level users, and tries to make everything as easy as possible. To be blunt, if everything in this article isn’t really obvious to you, your best bet is probably GNOME Color Manager. GNOME Color Manager generally provides sane defaults, and guides you through the process using a Wizard *cough* Druid (or whats-it-called?)…&lt;/p&gt;
&lt;p&gt;Next some information on the general anatomy of display profiles. Display profiles in particular have three important components. There is the VCGT, the TRCs and the XYZ matrix. The first bit, the VCGT, also often called the VideoLUT, is a lookup table which is designed to correct your display’s whitepoint and potential aberrations between the R, G and B channels. The VCGT is loaded into your X11 driver, and only works if your driver is in 24 bit mode. When the VCGT is being loaded into X11 (usually in the login manager or just after logging in) you should see the colors of the display shift a bit. The VCGT is the only bit of the profile which is beneficial to all applications (as it’s applied by X11), the other two parts have to be actively applied by the application (if properly configured, more on that later). So next we have the TRCs which basically models your display’s gamma curve. And last the XYZ matrix determines what maximum red, blue and green are for your particular display. It’s possible to have an XYZLUT instead to get more detailed correction, however I’d never recommend this, as not all applications properly apply an XYZLUT.&lt;/p&gt;
&lt;p&gt;Since the last two parts (TRC+XYZ) need to be applied by your color management aware applications, they need to be properly configured. To make this easier there is something called the XICC specification, which allows an “active” profile to loaded into X11 as well, this is very rudimentary though, as it just means the file is being loaded into the _ICC_PROFILE atom (which is basically like an environmental variable), so it can be easily picked up by color management aware applications. Applications most commonly use the &lt;a href=&quot;http://www.littlecms.com/&quot;&gt;LittleCMS&lt;/a&gt; library on Linux to apply the TRCs and the XYZ matrix.&lt;/p&gt;
&lt;p&gt;GNOME Color Manager (via GNOME Settings Daemon) makes sure that a profile’s VCGT gets loaded into the X11 display driver, as well as setting the _ICC_PROFILE atom. You can check if the _ICC_PROFILE atom has been properly set using xprop:&lt;/p&gt;
&lt;pre&gt;# xprop -display :0.0 -len 14 -root _ICC_PROFILE&lt;/pre&gt;
&lt;p&gt;It’s known that proprietary (nVidia/ATi) drivers can cause problems, also dual head setups can complicate things.&lt;/p&gt;
&lt;p&gt;Now, some applications do color management by default (assuming the _ICC_PROFILE atom has been properly set), this for example includes Eye of GNOME and Darktable. Other applications seem to ignore the _ICC_PROFILE atom by default, like Firefox and GIMP.&lt;/p&gt;
&lt;p&gt;To check if a profile is being applied, you need to good test image to evaluate, I can highly recommend &lt;a href=&quot;http://www.smugmug.com/help/calibration-1400.mg&quot;&gt;SmugMug’s Calibration Print&lt;/a&gt; for this. In GIMP’s particular case, load this image into GIMP, and go to Edit and Preferences. Go to the Color Management section. Then check the “Try to use the system monitor profile” box while looking at the image,  in most cases you should see a change (if not use xprop to check the _ICC_PROFILE atom), and more importantly you should be able to distinguish the top gray patches from each other.&lt;/p&gt;
&lt;p&gt;Last there is the issue of images that were adjusted on uncalibrated displays, which is true for probably 99% of all images on the web. If the author had a low contrast unmanaged display, it’s likely he might have increased contrast in a particular image. When you take a look at that image on your color managed display (with proper contrast), it may look too contrasty. And on the flipside, if the author had a high contrast unmanaged display, it’s likely he might have decreased contrast in a particular image. When you take a look at that image on your color managed display (with proper contrast), it may look devoid of contrast. So it’s not weird to have discrepancies between managed and unmanaged setups.&lt;/p&gt;
&lt;p&gt;With the above text I hope to have shed some light on color management in general and some of the particular issues regarding it’s use on Linux.&lt;/p&gt;</description>
	<pubDate>Sun, 29 Jan 2012 16:34:07 +0000</pubDate>
</item>
<item>
	<title>Morevna Project: Weekly progress</title>
	<guid isPermaLink="false">http://morevnaproject.org/?p=744</guid>
	<link>http://morevnaproject.org/2012/01/29/weekly-progress-2/</link>
	<description>&lt;p&gt;This week we have continued with applying new battlefield concept to the demo shots. We have made it till the shot 35, which was reworked in the 3D fashion.&lt;/p&gt;
&lt;div class=&quot;wp-caption alignnone&quot; id=&quot;attachment_746&quot; style=&quot;width: 310px;&quot;&gt;&lt;a href=&quot;http://download.tuxfamily.org/morevna/blog/2012/01/shot35.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;size-medium wp-image-746&quot; height=&quot;168&quot; src=&quot;http://download.tuxfamily.org/morevna/blog/2012/01/shot35-300x168.png&quot; title=&quot;shot35&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Shot 35&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Agian, Nikolay Mamashev end up with some amazing pieces of animation (as usual based on Eeonora’s drafts). Here’s one of them.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And when it all comes together it looks so yummy!&lt;/p&gt;
&lt;div class=&quot;wp-caption alignnone&quot; id=&quot;attachment_745&quot; style=&quot;width: 310px;&quot;&gt;&lt;a href=&quot;http://download.tuxfamily.org/morevna/blog/2012/01/32.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;size-medium wp-image-745&quot; height=&quot;168&quot; src=&quot;http://download.tuxfamily.org/morevna/blog/2012/01/32-300x168.png&quot; title=&quot;32&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Shot 32&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;At the same time Vyacheslav Yastrebcev is working on adding details to the new battlefield concept.&lt;/p&gt;
&lt;div class=&quot;wp-caption alignnone&quot; id=&quot;attachment_751&quot; style=&quot;width: 310px;&quot;&gt;&lt;a href=&quot;http://download.tuxfamily.org/morevna/blog/2012/01/ushot01.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;size-medium wp-image-751&quot; height=&quot;168&quot; src=&quot;http://download.tuxfamily.org/morevna/blog/2012/01/ushot01-300x168.png&quot; title=&quot;ushot01&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Shot 01&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;That’s all news for the past week. Stay tuned, because we have prepared a few tasty things for the next few days!&lt;/p&gt;</description>
	<pubDate>Sun, 29 Jan 2012 15:03:54 +0000</pubDate>
</item>
<item>
	<title>Joe Simon: Branching out the XCPD library…</title>
	<guid isPermaLink="false">http://jsimon3.wordpress.com/?p=420</guid>
	<link>http://jsimon3.wordpress.com/2012/01/29/branching-out-the-xcpd-library/</link>
	<description>&lt;p&gt;Hi everyone.&lt;/p&gt;
&lt;p&gt;I am continuing work on the XCPD project.  At the same time, I will also be deriving a general library to be used outside of the CPD.  Since the XCPD is actually a prototype &lt;em&gt;model&lt;/em&gt; for color-managed printing, much of the work done there can be extended – with modifications to the current XCPD code – to other projects (such as Krita).&lt;/p&gt;
&lt;p&gt;Naming the new library is a task in it of itself, and I would appreciate some help.  There are a few acronyms that jump to mind, but I am not sure if they are usable:&lt;/p&gt;
&lt;p&gt;CMPL (Color-Managed Print Library)&lt;/p&gt;
&lt;p&gt;CoMPeX (Color-Managed Printing eXtension)&lt;/p&gt;
&lt;p&gt;-Joe&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/jsimon3.wordpress.com/420/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/jsimon3.wordpress.com/420/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/jsimon3.wordpress.com/420/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/jsimon3.wordpress.com/420/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/jsimon3.wordpress.com/420/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/jsimon3.wordpress.com/420/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/jsimon3.wordpress.com/420/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/jsimon3.wordpress.com/420/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/jsimon3.wordpress.com/420/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/jsimon3.wordpress.com/420/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/jsimon3.wordpress.com/420/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/jsimon3.wordpress.com/420/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/jsimon3.wordpress.com/420/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/jsimon3.wordpress.com/420/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=jsimon3.wordpress.com&amp;amp;blog=12981385&amp;amp;post=420&amp;amp;subd=jsimon3&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Sun, 29 Jan 2012 08:58:33 +0000</pubDate>
</item>
<item>
	<title>Steven Garrity: The Best Game Of Tennis Ever?</title>
	<guid isPermaLink="true">http://www.actsofvolition.com/archive/2012/january/thebestgameof</guid>
	<link>http://www.actsofvolition.com/archive/2012/january/thebestgameof</link>
	<description>&lt;p&gt;I don’t know much about tennis, but this match (tennis-word!) between &lt;a href=&quot;http://www.youtube.com/watch?v=oyxhHkOel2I&amp;amp;feature=youtube_gdata_player&quot;&gt;Andy Murray and Michael Llodrais at the Australian Open&lt;/a&gt; is amazing:&lt;/p&gt;</description>
	<pubDate>Sat, 28 Jan 2012 17:15:07 +0000</pubDate>
</item>
<item>
	<title>Matt Ebb: Twitter: 2012-01-29</title>
	<guid isPermaLink="true">http://mattebb.com/weblog/twitter-2012-01-29/</guid>
	<link>http://mattebb.com/weblog/twitter-2012-01-29/</link>
	<description>&lt;ul class=&quot;aktt_tweet_digest&quot;&gt;
&lt;li&gt;Mini earthquake this morning in chch, uncomfortable flight home, full days work, then cny dinner. So tired! &lt;a class=&quot;aktt_tweet_time&quot; href=&quot;http://twitter.com/mattebb/statuses/161419780400750593&quot;&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
	<pubDate>Sat, 28 Jan 2012 16:31:00 +0000</pubDate>
</item>
<item>
	<title>Bastien Nocera: Getting conned: eBay/Paypal fun</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-977684764667858073.post-60464287575012161</guid>
	<link>http://www.hadess.net/2012/01/getting-conned-ebaypaypal-fun.html</link>
	<description>After seeing, this article about &quot;&lt;a href=&quot;http://www.guardian.co.uk/money/2012/jan/27/is-paypal-safe-protection&quot;&gt;How secure is Paypal for eBay sellers&lt;/a&gt;&quot; in this morning's Guardian, I'll share my personal experience with you.&lt;br /&gt;&lt;br /&gt;In October, I sold my first generation MacBook Air on eBay, and got a buyer within a day for the £500 &quot;Buy It Now&quot; price. &quot;Buy It Now&quot; requires using Paypal, and the £500 (minus commission) appeared in my Paypal account¹. After a bit of to and fro, the buyer got in contact, and suggested that he come and pick it up. Saving about £30 of shipping, and sorting out the sale faster, strike me as good ideas.&lt;br /&gt;&lt;br /&gt;The &quot;buyer&quot; said he couldn't come, sent one of his &quot;employees&quot;. A very courteous man came to pick the laptop. In hindsight, he seemed slightly uncomfortable, and looked like he was very happy to see how easy it was going to be.&lt;br /&gt;&lt;br /&gt;The spooky thing is that within 40 minutes -- note, not 3 hours, not a day after, not the day before) -- within 40 minutes of the laptop getting picked up, the holder of the eBay and Paypal accounts submitted an &quot;unauthorised account activity claim&quot;, leading to &quot;payment reversal&quot; (me owing £500 to Paypal²).&lt;br /&gt;&lt;br /&gt;During my call to eBay's customer support, I was told that &quot;I had nothing to worry about&quot; (I'm guessing that would be the case as long as I repaid the £500). Paypal promptly sent a mail mentioning they needed my help, but with very little possibilities from my side (&quot;no courier tracking number? Give us the money now&quot;).&lt;br /&gt;&lt;br /&gt;Surrey Police failed to find the culprits, with the 2 mobile numbers associated with the con only being pay-as-you-go phones (topped up in a little convenience store in North London that only keeps a day's worth of CCTV).&lt;br /&gt;&lt;br /&gt;So my advices:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If you sell anything via eBay using Paypal, send it recorded, and keep the receipt.&lt;/li&gt;&lt;li&gt;If you bought a MacBook Air first generation with the serial W88500DJ12G, it's stolen, send me an e-mail.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;And as opposed to Mssrs Lodge and Reakes, Paypal didn't reimburse me anything, and I'm £500 out of pocket.&lt;br /&gt;&lt;br /&gt;¹: I'll pass you the details on eBay referring to a closed Paypal account that meant I got conned two days later than the &quot;buyers&quot; anticipated.&lt;br /&gt;²: On an account that was already closed, see ¹.&lt;br /&gt;&lt;br /&gt;Update: Added mention of eBay's ludicrously bad customer service.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/977684764667858073-60464287575012161?l=www.hadess.net&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 28 Jan 2012 16:27:55 +0000</pubDate>
	<author>noreply@blogger.com (hadess)</author>
</item>
<item>
	<title>Akkana Peck: Arduino Air Swimmers Shark</title>
	<guid isPermaLink="true">http://shallowsky.com/blog/hardware/arduino-shark.html</guid>
	<link>http://shallowsky.com/blog/hardware/arduino-shark.html</link>
	<description>&lt;img align=&quot;right&quot; alt=&quot;[Air swimmers shark]&quot; height=&quot;244&quot; src=&quot;http://shallowsky.com/blog/images/arduino/Air-Swimmers-TM-Radio-Controlled-Flying-Shark.jpg&quot; width=&quot;250&quot; /&gt;
&lt;p&gt;
When SCALE approved my talk proposal,
&lt;a href=&quot;http://www.socallinuxexpo.org/scale10x/presentations/fun-linux-and-devices&quot;&gt;Fun
with Linux and Devices&lt;/a&gt;, I had a challenge: I needed some good,
visual Arduino demos that would work in front of an audience.
&lt;/p&gt;&lt;p&gt;
In particular, I wanted something that moved. A little toy truck?
A moving penguin? A rotating sunflower? I fiddled with this and that,
not fully satisfied with anything. And then suddenly I realized what I needed.
Something cool. Something BIG.
Something I'd been wanting an excuse to buy anyway.
&lt;/p&gt;&lt;p&gt;
An &lt;a href=&quot;http://www.amazon.com/exec/obidos/ASIN/B005FYEAJ8/shallowsky-20&quot;&gt;Air Swimmers Shark&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
I'd seen these things on video, but never in person. They're available
all over, even on Amazon, so I put in an order there and got a shark
in a few days.
&lt;/p&gt;&lt;p&gt;
These things are ridiculous and cool. It's huge, about 5 feet long,
and filled with helium. It takes maybe half an hour to assemble.
It has a small motor to beat the tail, an infrared transmitter,
and a weighted receiver that moves back and forth on a track to tilt
the fish up or down as it swims.
&lt;/p&gt;&lt;p&gt;
Once it's assembled, you can get it filled with helium at a party
store (which costs $3 to $6 depending on where you go).
Once the shark is filled, you add clay as ballast until the shark is
neutrally buoyant, neither rising nor sinking. It's quite sensitive:
you'll find yourself needing to add or remove pea-sized chunks of clay
as the temperature in the room changes, but being a little over- or
under-ballasted doesn't hurt it much.
With its tail beating, the shark really does look like it's swimming
through the air.
&lt;/p&gt;&lt;p&gt;
My shark is named Bruce, after the mechanical shark used for the movie
&quot;Jaws&quot;. My Bruce, I'm happy to say, has been much more tractable than
his famously intemperate namesake.
&lt;/p&gt;&lt;p&gt;
Okay, now how do we turn this ridiculous-but-cool thing into an Arduino
project?

&lt;/p&gt;&lt;h3&gt;Hacking the transmitter&lt;/h3&gt;

&lt;a href=&quot;http://shallowsky.com/arduino/slides/pix/shark/img_5238.jpg&quot;&gt;
&lt;img align=&quot;right&quot; alt=&quot;[Air Swimmers IR transmitter, front]&quot; border=&quot;2&quot; height=&quot;192&quot; src=&quot;http://shallowsky.com/blog/images/arduino/img_5238.jpg&quot; width=&quot;250&quot; /&gt;&lt;/a&gt;
&lt;p&gt;
There were two possible approaches. First, mount an Arduino directly
on the shark, and let it be totally self-directed. Second, patch the
Arduino into the shark's transmitter and control it from Linux.
I chose the second option, for several reasons. First, I was fairly
sure it would be easier, and less invasive (the shark would still be
usable with manual control). I also liked the idea of keeping the
transmitter as a manual override, in case my control program didn't
work right. Finally, I liked the idea of keeping a Linux machine in the
loop -- the shark would actually be controlled by Linux, not just by
the Arduino.
&lt;/p&gt;&lt;p&gt;
So the first thing I did was take the transmitter apart (4 Philips screws).
Inside are 4 pushbuttons, for right, left, up, and down, and the circuit
board is nice and simple. Whew -- this might be doable!
&lt;br clear=&quot;all&quot; /&gt;

&lt;a href=&quot;http://shallowsky.com/arduino/slides/pix/shark/img_5245.jpg&quot;&gt;
&lt;img align=&quot;left&quot; alt=&quot;[Air Swimmers IR transmitter, back]&quot; border=&quot;2&quot; height=&quot;210&quot; src=&quot;http://shallowsky.com/blog/images/arduino/img_5245.jpg&quot; width=&quot;250&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;
Four more screws and I had access to the back of the board, which was
equally simple.  Now I could get my voltmeter on the contacts while I
pushed buttons. 
&lt;/p&gt;&lt;p&gt;
It turned out the contacts (indicated with arrows on the photo) on the
downstream side of each switch were normally high (4.5 volts -- the transmitter
uses 3 AAA batteries). When I pushed the button, the contact went to ground.
Okay, so what I needed was some way for the Arduino to ground those
contacts at will.
&lt;/p&gt;&lt;p&gt;
First I needed to solder some wires to the contacts.
(How do you tell which side of the pushbutton is the one you need to solder?
Well, one side changes voltage when you press the button, and the other
side stays constant. The one that changes is the one you need to connect
to the Arduino, so the Arduino can change it too.)
&lt;/p&gt;&lt;p&gt;
I figured I needed 6 wires: ground, power, and one for each switch.
(It turned out I didn't need the power wire, but I figured it didn't
hurt to include it just in case.)
I wanted to have a nice small connector on the side of the transmitter,
but I couldn't find any 6-pin connectors that didn't look big and bulky,
so I gave up and decided I'd just let my ribbon cable dangle from the
transmitter. If I got a nice multi-colored one, maybe it would look festive.
&lt;/p&gt;&lt;p&gt;
I couldn't find any 6-conductor ribbon cable, so I got a
wider one and separated 6 wires from the rest. Then I soldered the
six wires to the appropriate places (marked by arrows in the photo).
On the other end, I tinned the six wires with solder so I could plug
the stranded wires into my breadboard.

&lt;/p&gt;&lt;h3&gt;Simulating button presses&lt;/h3&gt;
&lt;p&gt;
I've done enough reading to know of three ways to simulate a button press.
You can put a relay between the two contacts of the switch; you can do
the same thing, but with an optocoupler (opto-isolator) instead of a relay;
or you can do some magic with a transistor. I was fuzzy on the
transistor magic bit, so a relay sounded easiest. 
&lt;/p&gt;&lt;p&gt;
I played around with a relay and a spare switch and convinced myself I
knew how to wire them up. Then it was off to my local parts store to
buy four matched relays small enough to fit on my little mini breadboard.
&lt;/p&gt;&lt;p&gt;
There followed a several-day fiasco wherein I bought lots of relays
that turned out not to be suitable, and got increasingly frustrated at
how large and clunky all the available relays were.
There are smaller ones, but I couldn't get them to work.
And I learned that relays mostly come without documentation on which
pin does which, so there's a lot of experimenting with each new type.
&lt;/p&gt;&lt;p&gt;
Frustrated, I tried some optocouplers I'd bought on a whim last year.
No dice ... couldn't get them to work either.

&lt;a href=&quot;http://shallowsky.com/arduino/slides/pix/shark/img_5246.jpg&quot;&gt;
&lt;img align=&quot;right&quot; alt=&quot;[testing my transistor circuit]&quot; border=&quot;2&quot; height=&quot;194&quot; src=&quot;http://shallowsky.com/blog/images/arduino/img_5246.jpg&quot; width=&quot;249&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;
Desperate, I turned to IRC, #arduino on Freenode. The folks there are
mostly electronics wizards, and I'm sure my questions must have seemed
very dumb, but they were patient with me, and pointed me toward
a very simple circuit,
&lt;a href=&quot;http://www.techshire.com/freebies/LED4dummies_images/LEDNPN.jpg&quot;&gt;LED4dummies&lt;/a&gt;,
that was just what I needed. (They also suggested
&lt;a href=&quot;http://en.wikipedia.org/wiki/Open_collector&quot;&gt;Wikipedia's Open
collector&lt;/a&gt; article, but I found that less clear.) 
&lt;/p&gt;&lt;p&gt;
It took me some
experimenting with a transistor, an LED and a couple of resistors
(I blew out a couple of transistors before I realized I had the R2 resistor
in the wrong place) but eventually I got it working, and felt confident
enough to try it with the real shark transmitter. The key was to simplify
the circuit so it had no extra parts, then once it was working, add more
parts to build it up to what I needed.
&lt;br clear=&quot;all&quot; /&gt;

&lt;a href=&quot;http://shallowsky.com/blog/images/arduino/sharkcircuit.svg&quot;&gt;
&lt;img align=&quot;left&quot; alt=&quot;[Circuit for the Arduino-controlled Air Swimmers Shark]&quot; border=&quot;2&quot; height=&quot;193&quot; src=&quot;http://shallowsky.com/blog/images/arduino/sharkcircuit.jpg&quot; width=&quot;250&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;
At left, the circuit I ended up with. For each button, I have one
transistor and one resistor (I don't need the second resistor from the
LED4dummies circuit, since that was just to keep the LED from burning out).

&lt;a href=&quot;http://shallowsky.com/arduino/slides/pix/shark/sharkboard.jpg&quot;&gt;
&lt;img align=&quot;right&quot; alt=&quot;[testing my transistor circuit]&quot; border=&quot;2&quot; height=&quot;191&quot; src=&quot;http://shallowsky.com/blog/images/arduino/sharkboard.jpg&quot; width=&quot;249&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;
At right is the circuit assembled on a mini-breadboard on top of the 
proto-shield.
Note that the ends of the ribbon cable are plugged in to a spare header I had
lying around; a header makes a passable connector, so I can plug it in
fairly easily right before a talk. The green and blue wires in the back
are going to Arduino digital output pins 3 through 6 (leaving 0 and 1
for serial I/O). The red wires go from the transistors back to the
ribbon cable wires that go to the shark's transmitter buttons.

&lt;/p&gt;&lt;h3&gt;The software side&lt;/h3&gt;
&lt;p&gt;
Now I could make the shark think I'd pressed a button on its transmitter.
How do I control that from Linux?
&lt;/p&gt;&lt;p&gt;
On the Arduino side, I wrote a simple program that reads and parses
commands coming over the USB cable. So from the computer, I might send
a line like &lt;code&gt;L 300&lt;/code&gt;, and the Arduino would &quot;press&quot; the Left
button for 300 milliseconds. I had already written something like this
for a couple of other Arduino programs. That program is
&lt;a href=&quot;http://shallowsky.com/software/arduino/sharkuino/shark.pde&quot;&gt;shark.pde&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
On the Linux side, first I needed something that established a serial
connection and sent commands to the Arduino. I wrote a Python class
for that, 
&lt;a href=&quot;http://shallowsky.com/software/arduino/sharkuino/shark.py&quot;&gt;shark.py&lt;/a&gt;.
That let me send commands from the Python console to test the shark.
&lt;/p&gt;&lt;p&gt;
Then I needed something more visual, something I could show during a talk.
In particular, the shark doesn't swim unless someone's pressing left,
right, left, right buttons over and over. Of course I wanted the computer
to handle that part.
&lt;/p&gt;&lt;p&gt;
So I wrote a little Python-GTK application that keeps the shark swimming,
and lets me drag a mouse around to adjust its left/right up/down direction:
&lt;a href=&quot;http://shallowsky.com/software/arduino/sharkuino/sharkwindow&quot;&gt;sharkwindow&lt;/a&gt;.

&lt;/p&gt;&lt;p&gt;
Purely by coincidence, the week before SCALE, Scott Adams introduced a
roboshark character:
&lt;a href=&quot;http://dilbert.com/strips/comic/2012-01-09/&quot;&gt;Dilbert, Jan 11 2012&lt;/a&gt;.
Nice timing for the debut of my own roboshark!

&lt;/p&gt;&lt;p&gt;
Sadly, I don't have any photos or video of the shark in action.
But if you're a LWN subscriber, there's an article on my talk
with a couple of great pictures:
&lt;a href=&quot;http://lwn.net/Articles/477030/&quot;&gt;Robots rampage (in a
friendly way) at SCALE 10X&lt;/a&gt;.
And you can see my slides and notes at
&lt;a href=&quot;http://shallowsky.com/arduino/&quot;&gt;Arduino notes&lt;/a&gt;.

&lt;br clear=&quot;all&quot; /&gt;&lt;/p&gt;</description>
	<pubDate>Fri, 27 Jan 2012 20:30:15 +0000</pubDate>
</item>
<item>
	<title>Synfig Project: Call for translations</title>
	<guid isPermaLink="true">http://www.synfig.org/cms/en/news/call-for-translations2/</guid>
	<link>http://www.synfig.org/cms/en/news/call-for-translations2/</link>
	<description>The new release is getting closer and the translations are allowed again at Transifex...</description>
	<pubDate>Fri, 27 Jan 2012 19:29:00 +0000</pubDate>
</item>
<item>
	<title>Bastien Nocera: Wacom tablets in GNOME 3.4</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-977684764667858073.post-7984899940372226974</guid>
	<link>http://www.hadess.net/2012/01/wacom-tablets-in-gnome-34.html</link>
	<description>&lt;a href=&quot;https://live.gnome.org/action/diff/Design/SystemSettings/Tablet#Mockups&quot;&gt;Working from designs&lt;/a&gt;.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;The cool stuff first&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;i&gt;Cosimo Cecchi presents the updated Wacom settings&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;Go to &lt;a href=&quot;http://youtu.be/607uIdBmozU&quot;&gt;YouTube directly&lt;/a&gt; if you can't see the video here.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;A new arrival&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;As mentioned by Cosimo, we have a new library to help us implement the settings you saw: &lt;a href=&quot;http://linuxwacom.git.sourceforge.net/git/gitweb.cgi?p=linuxwacom/libwacom;a=summary&quot;&gt;libwacom&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;libwacom is there to give us metadata about tablets, whether or not they are connected to your system, the list of styli it supports, as well as information about the styli themselves. As you can see from the UI, it's pretty important that we know:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;whether the tablet is builtin (so we know whether you can calibrate it)&lt;/li&gt;&lt;li&gt;which form factor it has&lt;/li&gt;&lt;li&gt;the list of styli it supports&lt;/li&gt;&lt;li&gt;for each stylus, its full name, the number of buttons, what it looks like&lt;/li&gt;&lt;/ul&gt;In the past, all this information was only available within the drivers (as comments), exported in different ways (sysfs attributes), non-machine readable in public documentation, or, worst of all, hidden in Wacom's internal drivers for OS X or Windows.&lt;br /&gt;&lt;br /&gt;So if you have a Wacom tablet, send us a &lt;a href=&quot;http://linuxwacom.git.sourceforge.net/git/gitweb.cgi?p=linuxwacom/libwacom;a=blob;f=data/wacom.example;hb=HEAD&quot;&gt;definition file for your tablet&lt;/a&gt;, so you can configure it with the impression that the software actually knows about your device.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Where's that configuration again&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;After knowing what each tablet had to offer, we had to have a way to match the definitions to XInput devices, assign settings per-tablet, and importantly, switch stylus configuration when the user switches stylus. This is done using the new GsdWacomDevice and GsdWacomStylus objects, shared between gnome-settings-daemon (which will apply the configuration) and gnome-control-center (which will set the configuration).&lt;br /&gt;&lt;br /&gt;This also means we have a few debugging applications, such as list-wacom in gnome-settings-daemon, &lt;a href=&quot;https://gist.github.com/1688632&quot;&gt;to show you the attached GsdWacomDevices&lt;/a&gt;, or test-wacom in gnome-control-center, to test display of particular tablets if you don't own them (this is the place where I spend a lot of time).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What's next&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Peter Hutterer, my input buddy at Red Hat, who made the original Wacom panel for GNOME 3.2, and the first version of libwacom, is currently spending a lot of time on Multi-Touch, and fixing bugs I report in the Wacom driver.&lt;br /&gt;&lt;br /&gt;Jason Gerecke, from Wacom, who did most of the initial work on calibration support, is working on the related display-mapping. This will allow choosing whether a tablet's working area is the whole desktop, or a single monitor when in multiple monitors are used.&lt;br /&gt;&lt;br /&gt;For my part, after fixing the layout bugs that so annoy me in the settings panel, I'll be starting work on tablet button mapping. I look forward to &lt;a href=&quot;http://eu.shop.wacom.eu/detail/index/sArticle/453/sCategory/86366&quot;&gt;making the LEDs on the tablet match up&lt;/a&gt; with the selected keyboard shortcut!&lt;br /&gt;&lt;br /&gt;Many thanks to Cosimo and Monty for helping out with presenting the work, and doing the video.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/977684764667858073-7984899940372226974?l=www.hadess.net&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 27 Jan 2012 13:07:16 +0000</pubDate>
	<author>noreply@blogger.com (hadess)</author>
</item>
<item>
	<title>Libre Graphics Meeting: Press release #1</title>
	<guid isPermaLink="false">http://libregraphicsmeeting.org/2012/?p=106</guid>
	<link>http://libregraphicsmeeting.org/2012/2012/01/press-release-1/</link>
	<description>&lt;p&gt;Press release #1: Libre Graphics Meeting 2012 in Vienna, Austria&lt;/p&gt;
&lt;p&gt;Release Date: January 25, 2012&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hacking &amp;amp; Creativity @ LGM 7&lt;/strong&gt;&lt;br /&gt;
May 2-5, 2012 – UAS Technikum Wien – Programmers of free and open source graphic software, artists and users from around the world are headed to Vienna for the 7th annual Libre Graphics Meeting in May. The Libre Graphics Meeting is &lt;em&gt;&lt;strong&gt;the&lt;/strong&gt;&lt;/em&gt; annual gathering for users and developers of free and open source graphic software: artistic tools that are free for anyone to use and modify. LGM gives software developers, artists, designers and other creative professionals the opportunity to collaborate, share their work and learn from each other in a lively event.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A Preview&lt;/strong&gt;&lt;br /&gt;
Every year, Libre Graphics Meeting focuses on individual and group interaction, emphasizing free media and the software that produces it. This year’s attendees can expect a similar format that will include hacking sessions, meetings, workshops, presentations, demonstrations, and birds-of-a-feather (BOF) sessions. Leading up to the conference, special lab &lt;span id=&quot;more-106&quot;&gt;&lt;/span&gt;sessions bring developers and artists face-to-face to make improvements in creative software. Gaps can form when developers and their users don’t meet face to face; LGM gives artists and educators a voice in the building of their tools. Both content creators and developers will present, bringing a diverse community together to advance the technologies and strategies of high-quality free creative software.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Submit a talk!&lt;/strong&gt;&lt;br /&gt;
LGM’s strength comes from the presenters who talk about their work and inspire others by sharing their experiences, techniques, and best practices. Whether you are a developer, an artist, or an enthusiast, you can be a part of this year’s event by sharing your story and your work.&lt;/p&gt;
&lt;p&gt;The LGM community wants to hear your proposal for a session: &lt;a href=&quot;http://libregraphicsmeeting.org/2012/submit-a-talk/&quot;&gt;http://libregraphicsmeeting.org/2012/submit-a-talk/&lt;/a&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;—-&lt;/p&gt;
&lt;p&gt;LGM 2012 is hosted by the Libre Graphics Community&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Press and Organization Contacts&lt;/strong&gt;&lt;br /&gt;
• Sponsoring Organization: Libre Graphics Meeting&lt;br /&gt;
• Contact (Europe): Ale Rimoldi&lt;br /&gt;
• Contact email: ale@ideale.ch&lt;br /&gt;
• Phone (ZURICH): +41.43.288.50.43&lt;br /&gt;
• Contact (North America): Louis Desjardins&lt;br /&gt;
• Contact email: louis.desjardins@gmail.com&lt;br /&gt;
• Phone (MONTREAL): +1.514.994.9351&lt;br /&gt;
• Website: &lt;a href=&quot;http://libregraphicsmeeting.org/&quot;&gt;http://libregraphicsmeeting.org/&lt;/a&gt;&lt;br /&gt;
• Pledgie campaign: &lt;a href=&quot;http://pledgie.com/campaigns/16614&quot;&gt;http://pledgie.com/campaigns/16614&lt;/a&gt;&lt;br /&gt;
• Photos: &lt;a href=&quot;http://ur1.ca/a34y&quot;&gt;http://ur1.ca/a34y&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Wed, 25 Jan 2012 12:00:37 +0000</pubDate>
</item>
<item>
	<title>Ted Gould: Searching Menus</title>
	<guid isPermaLink="true">http://gould.cx/ted/blog/Searching_menus</guid>
	<link>http://gould.cx/ted/blog/Searching_menus</link>
	<description>&lt;p&gt;
One of the neatest parts about starting to get more application data into the open is that we can start to use it in interesting ways.  I'm happy to talk about a new way that we're using the menu data: the HUD.  The &lt;a href=&quot;http://www.markshuttleworth.com/archives/939&quot;&gt;idea behind the HUD&lt;/a&gt; is that you can quickly find functionality in an application without having to know the menu structure.  But how does it do it?  How can you make it better?
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;h3&gt;Getting the data&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;
We're using the same &lt;a href=&quot;https://launchpad.net/dbusmenu&quot;&gt;Dbusmenu&lt;/a&gt; data that is currently exported to the global menu, just remixing it for search.  We are searching through the labels in the menu items which gives us already localized data straight from the application.  This means that it should work for the language that the application is in.  In the future we hope to use information like &lt;a href=&quot;https://code.launchpad.net/~themuso/dbusmenu/add-accessible-desc-property&quot;&gt;accessibility data&lt;/a&gt; as well as any tooltips that might be attached to a menuitem (though we don't show tooltips in the global menu).
&lt;/p&gt;
&lt;p&gt;
Any application that works with the &lt;a href=&quot;https://wiki.ubuntu.com/MenuBar#Window_menus&quot;&gt;window menus&lt;/a&gt; today should also work with HUD out of the box.
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;h3&gt;Matching the label&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;
To match the label we're basically using an implementation of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Levenshtein_distance&quot;&gt;Levenshtein distance&lt;/a&gt; with a few additions.  What this allows us to do is rank possible solutions in a relevancy order, and present some solutions that might occur via &quot;fat finger&quot; or other similar type errors.  But, this also means that there is some fuzzy algorithms involved in the matching which will have to be tuned.
&lt;/p&gt;
&lt;p&gt;
We expect to tune them over the next few releases, and to do that we have a set of &lt;a href=&quot;http://bazaar.launchpad.net/~ted/indicator-appmenu/hud/view/head:/tests/test-distance.c&quot;&gt;test cases that we're using for the tuning&lt;/a&gt;.  The problem with those test cases?  They're only in the languages I speak.  You probably speak in more/different/better languages than I do, please feel free to propose merges that extend this test suite so that as we continue to tune the search algorithms we don't leave any language behind.
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;h3&gt;Remembering Favorites&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;
One of the additions that we add to the distance calculation is an offset based on which entries you've used most recently.  Your favorite functionality in the application.  Quite simply we're storing a list of items you've used over the last thirty days and a timestamp of when you used them.  This database is simple but it can be fun to look into for the curious and I wanted to talk a bit about a couple of the tools that you can use to see the data.
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;pre&gt;$ hud-list-applications
&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;
This will list all the applications that have data on them in your HUD usage database.  They are identified by the path to their desktop file as determined by BAMF.  You can then look at the menu items used in a specific application:
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;pre&gt;$ hud-dump-application /usr/share/applications/inkscape.desktop 
&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;
This shows the individual items that you've used, and the number of times that you've used them.  If you want to inspect the exact file tracking the data it is available at: &lt;/p&gt;&lt;pre&gt;~/.cache/indicator-appmenu/hud-usage-log.sqlite&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;
While talking about various tools to work with HUD I thought I'd also mention that you can also, just for fun, work with HUD from the command line using the command line tool:
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;pre&gt;$ hud-cli
&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;h3&gt;Application initial bias&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;
Application designers have always had a problem figuring out how to promote specific functionality that is commonly used to the forefront, while still making the rest of the functionality easily available.  The most recent ways that they've done this is with &lt;a href=&quot;http://en.wikipedia.org/wiki/Toolbar&quot;&gt;toolbars&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Ribbon_%28computing%29&quot;&gt;ribbon&lt;/a&gt; style.  You can't adjust the positioning even when you know that the particular toolbar isn't best for the user because it will mess up the user's spacial memory.  HUD sidesteps this issue by providing all the options, just promoting certain ones based on usage.  They're all in the same place (the HUD) but with always improving ordering.
&lt;/p&gt;
&lt;p&gt;
What happens on first usage of the application?  At that point we don't have any way to know what the user wants to do, we we've provide a way for the application designer to provide the most likely items for general users.  Effectively, this is the HUD's version of the default toolbar setup in an application; though it automatically decays and adjusts to the user's usage pattern.
&lt;/p&gt;
&lt;p&gt;
The files that control this initial bias are very simple and there is &lt;a href=&quot;http://bazaar.launchpad.net/~ted/indicator-appmenu/hud/view/head:/tests/good-app-info/tons-of-entries.hud-app-info&quot;&gt;an example&lt;/a&gt; in the test suite.  Basically they have the various menu items along with a value that describes how to preload the usage database.  A '5' there would mean that 5 entries are added to the usage database for that item on the first time that application is used; one for today and each of the four days previous.  In this way, as values drop off by being too old, there isn't a step function in how the item is ranked, it just slowly drops down in priority.  Application designers should start to think about how they would rank the menu items in their application, and start getting these integrated into either the releases or the packages of those applications so that users have a good first experience with their application.
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;h3&gt;Development notes&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;
The code for the HUD lives in the &lt;a href=&quot;https://launchpad.net/indicator-appmenu&quot;&gt;indicator-appmenu&lt;/a&gt; repository.  Currently it exists on a branch that needs to be reviewed before merging, but that shouldn't be for long.  I expect it to get merged to trunk in the next couple of weeks.
&lt;/p&gt;
&lt;p&gt;
After that the biggest change will be integration with indicator-appmenu.  It was originally implemented as it's own service to make development more agile, but it clearly shares a large amount of data with the global menu and there's no reason to have two repositories in memory of the same data.  It also needs to synchronize heavily with the application menu and BAMF, which is also already in indicator-appmenu.  Thanks to the magic of DBus no one should notice the change in processes as the names and objects will migrate over to the new process.
&lt;/p&gt;
&lt;p&gt;
As this is more of a first prototype there are also some missing features that need to be added.  The first of those is to simply improve the matching.  We also need to get better descriptions from application indicators, today we're using their accessibility description (you set those, right?) but that typically has too much information.  Lastly, we need to integrate better with applications that expect the about-to-show signal for their menus.  This includes XUL applications and some Qt ones, so it's an important feature for making the HUD usable for everyone.
&lt;/p&gt;
&lt;p&gt;
Merges and bugs should be directed towards the indicator-appmenu project and also make sure you've signed the &lt;a href=&quot;http://canonical.com/contributors&quot;&gt;Canonical Contributor Agreement&lt;/a&gt; for any code contributed.
&lt;/p&gt;
&lt;p&gt;
Comments: &lt;a href=&quot;http://identi.ca/notice/89143636&quot;&gt;Identi.ca&lt;/a&gt; | &lt;a href=&quot;https://twitter.com/#!/tedjgould/status/161813718706028544&quot;&gt;Twitter&lt;/a&gt;
&lt;/p&gt;</description>
	<pubDate>Tue, 24 Jan 2012 14:15:00 +0000</pubDate>
</item>
<item>
	<title>Adam Celarek: Lindenmayer brush for Krita</title>
	<guid isPermaLink="false">http://celarek.at/?p=148</guid>
	<link>http://celarek.at/2012/01/lindenmayer-brush-for-krita/</link>
	<description>&lt;p&gt;This term i had a course about fractals on the university. We also had to write code for a submission and the lecturer made the technique and topic free to choose. So I chose to make a &lt;a href=&quot;http://en.wikipedia.org/wiki/Lindenmayer_systems&quot;&gt;lindenmayer&lt;/a&gt; brush for &lt;a href=&quot;http://www.krita.org&quot;&gt;krita&lt;/a&gt;, because I planed to do so since the first university year, where I heard of lindenmayer systems the first time.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://celarek.at/wp/wp-content/uploads/2012/01/krita_lindenmayer_1.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignright size-medium wp-image-150&quot; height=&quot;300&quot; src=&quot;http://celarek.at/wp/wp-content/uploads/2012/01/krita_lindenmayer_1-269x300.png&quot; title=&quot;First Lindenmayer Test&quot; width=&quot;269&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I quickly coded something together, so that I was able to prove, that my idea would work.&lt;/p&gt;
&lt;p&gt;Lindenmayer systems are some kind of a &lt;a href=&quot;http://en.wikipedia.org/wiki/Formal_grammar&quot;&gt;grammar&lt;/a&gt;, they work like this: You have an alphabet of letters, in this case these letters are simple short lines, then you have productions and a rule: Always produce all letters. These productions eat one letter and produce ether no, one or several new letters. There are several classes of such productions, one of the simplest would be “A -&amp;gt; AA”. More sophisticated productions, like in the brush, can contain parameters, if clauses, calculations, random values etc. Basically it would be possible to have several different productions, but I chose to have only one and in turn make it more powerful.&lt;/p&gt;
&lt;p&gt;Here is an example of a production, it is used in one of the brushes:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
if{letter[branched] == false} {&lt;br /&gt;
newLetter = newLetter();&lt;br /&gt;
newLetter[position] = variant(letter[endPosition]);&lt;br /&gt;
newLetter[angle] = variant(newLetter[angleToSun]);&lt;br /&gt;
newLetter[length] = 5;&lt;br /&gt;
letter[branched] = bool(true);&lt;br /&gt;
}&lt;/code&gt;&lt;/p&gt;&lt;code&gt;
&lt;/code&gt;&lt;p&gt;&lt;code&gt;if{letter[age] &amp;gt; 1} {&lt;br /&gt;
letter.delete();&lt;br /&gt;
}&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;It actually creates just a line.&lt;/p&gt;
&lt;p&gt;At first the productions were plain C++ code, but that is very cumbersome, as you have to build, install and start krita for testing. The next thing I tried, was to use &lt;a href=&quot;http://developer.qt.nokia.com/doc/qt-4.8/scripting.html&quot;&gt;QtScript&lt;/a&gt; and write the productions in &lt;a href=&quot;http://en.wikipedia.org/wiki/ECMAScript&quot;&gt;ECMAScript (also called JavaScript)&lt;/a&gt;. It took about 5 to 7 hours until I proved, that it was way to slow.&lt;/p&gt;
&lt;p&gt;So I decided to implement my own little scripting language. The interpreter is about 700 lines of code, including some tests. It’s certainly not as powerful, as ECMAScript, but it’s fast and okayish for this use case.&lt;/p&gt;
&lt;p&gt;There is an if clause, which supports &amp;amp;&amp;amp;, there is a rand() function, a function for mixing angles, some very basic math, bool and float data types, you can create new letters and delete old ones. It’s possible to write new parameters (“branched” in the code above), edit some default ones (position, angle, length..), which will be used for drawing and access some computed ones (endPosition, angleToSun, distanceToSun, age..).&lt;/p&gt;
&lt;p&gt;I have to write some documentation, expand the possibilities of the language and work on the configuration interface. But for now you can already test the current code, it’s in the krita-lbrush-adamc branch in the &lt;a href=&quot;http://www.calligra.org/&quot;&gt;calligra&lt;/a&gt; repository.&lt;/p&gt;
&lt;p&gt;Here is a final picture..&lt;br /&gt;
&lt;a href=&quot;http://celarek.at/wp/wp-content/uploads/2012/01/krita_lindenmayer_2.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;aligncenter size-large wp-image-153&quot; height=&quot;166&quot; src=&quot;http://celarek.at/wp/wp-content/uploads/2012/01/krita_lindenmayer_2-1024x378.png&quot; title=&quot;Some brush demos&quot; width=&quot;450&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
The presets for this brushes are included in the repository &lt;img alt=&quot;:)&quot; class=&quot;wp-smiley&quot; src=&quot;http://celarek.at/wp/wp-includes/images/smilies/icon_smile.gif&quot; /&gt; &lt;/p&gt;</description>
	<pubDate>Mon, 23 Jan 2012 23:30:12 +0000</pubDate>
</item>
<item>
	<title>Federico Mena-Quintero: Mon 2012/Jan/23</title>
	<guid isPermaLink="true">http://www.gnome.org/~federico/news-2012-01.html#23</guid>
	<link>http://www.gnome.org/~federico/news-2012-01.html#23</link>
	<description>&lt;ul&gt;
	  &lt;li id=&quot;blog-de-carpinteria&quot;&gt;
	    &lt;p&gt;
	      &lt;a href=&quot;http://www.gnome.org/~federico/news-2012-01.html#blog-de-carpinteria&quot;&gt;&lt;strong&gt;Nuevo blog de Carpintería&lt;/strong&gt;&lt;/a&gt;
	    &lt;/p&gt;

	    &lt;p&gt;
	      He comenzado a escribir un blog de carpintería, trabajo en madera
	      y fabricación de herramientas: &lt;a href=&quot;http://xalapa.tallereslibres.org/artes-y-oficios/carpinteria-tradicional/la-viruta-rebelde&quot;&gt;La
		Viruta Rebelde&lt;/a&gt;.
	    &lt;/p&gt;

	    &lt;p&gt;
	      Este blog es parte de nuestra inmensa red de &lt;a href=&quot;http://tallereslibres.org/&quot;&gt;Talleres Libres de Artes y
		Tecnologías&lt;/a&gt; (&lt;a href=&quot;http://www.gnome.org/~federico/news-2010-07.html#26&quot;&gt;artículo anterior sobre esto&lt;/a&gt;).
	    &lt;/p&gt;

	    &lt;p&gt;
	      El blog corre sobre un sitio hecho con Plone, entonces todavía no
	      es la cosa más amigable del mundo, pero con el tiempo irá
	      mejorando.  Sean bienvenidos :)
	    &lt;/p&gt;

	    &lt;p&gt;
	      &lt;strong&gt;New woodworking blog&lt;/strong&gt;
	    &lt;/p&gt;

	    &lt;p&gt;
	      I have started writing a new blog about woodworking and
	      toolmaking: &lt;a href=&quot;http://xalapa.tallereslibres.org/artes-y-oficios/carpinteria-tradicional/la-viruta-rebelde&quot;&gt;The
		Rebel Shaving&lt;/a&gt; (in Spanish).
	    &lt;/p&gt;

	    &lt;p&gt;
	      This blog is part of our immense network of &lt;a href=&quot;http://tallereslibres.org/&quot;&gt;Free Workshops for Arts and
		Technologies&lt;/a&gt; (&lt;a href=&quot;http://www.gnome.org/~federico/news-2010-07.html#26&quot;&gt;previous article on this&lt;/a&gt;).
	    &lt;/p&gt;

	    &lt;p&gt;
	      The blog runs on a Plone site, so it's not the friendliest thing
	      in the world, but it will get better over time.  Be welcome :)
	    &lt;/p&gt;
	  &lt;/li&gt;
	&lt;/ul&gt;</description>
	<pubDate>Mon, 23 Jan 2012 16:40:00 +0000</pubDate>
</item>
<item>
	<title>Kees Cook: fixing vulnerabilities with systemtap</title>
	<guid isPermaLink="false">http://www.outflux.net/blog/?p=562</guid>
	<link>http://www.outflux.net/blog/archives/2012/01/22/fixing-vulnerabilities-with-systemtap/</link>
	<description>&lt;p&gt;Recently the upstream Linux kernel released a &lt;a href=&quot;http://git.kernel.org/linus/e268337dfe26dfc7efd422a804dbb27977a3cccc&quot;&gt;fix for a serious security vulnerability&lt;/a&gt; (CVE-2012-0056) without &lt;a href=&quot;http://oss-security.openwall.org/wiki/mailing-lists/distros&quot;&gt;coordinating with Linux distributions&lt;/a&gt;, leaving a window of vulnerability open for end users. Luckily:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;it is only a serious issue in 2.6.39 and later (e.g. Ubuntu 11.10 Oneiric)&lt;/li&gt;
&lt;li&gt;it is “only” local&lt;/li&gt;
&lt;li&gt;it requires execute access to a setuid program that generates output&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Still, it’s a cross-architecture local root escalation on most common installations. Don’t stop reading just because you don’t have a local user base — attackers can use this to elevate privileges from your user, or from the web server’s user, etc.&lt;/p&gt;
&lt;p&gt;Since there is now a &lt;a href=&quot;http://blog.zx2c4.com/749&quot;&gt;nearly-complete walk-through&lt;/a&gt;, the urgency for fixing this is higher. While you’re waiting for your distribution’s kernel update, you can use &lt;a href=&quot;http://sourceware.org/systemtap/&quot;&gt;systemtap&lt;/a&gt; to change your kernel’s running behavior. &lt;a href=&quot;https://access.redhat.com/kb/docs/DOC-69129&quot;&gt;RedHat suggested this&lt;/a&gt;, and here’s how to do it in Debian and Ubuntu:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download the “am I vulnerable?” tool, either from RedHat (above), or a &lt;a href=&quot;http://grsecurity.net/~spender/correct_proc_mem_reproducer.c&quot;&gt;more correct version&lt;/a&gt; from Brad Spengler.&lt;/li&gt;
&lt;li&gt;Check if you’re vulnerable:
&lt;pre class=&quot;brush:shell&quot;&gt;$ make correct_proc_mem_reproducer
...
$ ./correct_proc_mem_reproducer
vulnerable
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Install the kernel debugging symbols (this is big — over 2G installed on Ubuntu) and systemtap:
&lt;ul&gt;
&lt;li&gt;Debian:
&lt;pre class=&quot;brush:shell&quot;&gt;# apt-get install -y systemtap linux-image-$(uname -r)-dbg
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Ubuntu:
&lt;ul&gt;
&lt;li&gt;Add the &lt;a href=&quot;https://lists.ubuntu.com/archives/ubuntu-users/2010-October/229714.html&quot;&gt;debug package repository&lt;/a&gt; and key for your Ubuntu release:
&lt;pre class=&quot;brush:shell&quot;&gt;$ sudo apt-get install -y lsb-release
$ echo &quot;deb http://ddebs.ubuntu.com/ $(lsb_release -cs) main restricted universe multiverse&quot; | \
      sudo tee -a /etc/apt/sources.list.d/ddebs.list
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ECDCAD72428D7C01
$ sudo apt-get update
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;(This step does not work since the repository metadata isn’t updating correctly at the moment — see the next step for how to do this manually.) Install the debug symbols for the kernel and install systemtap:
&lt;pre class=&quot;brush:shell&quot;&gt;sudo apt-get install -y systemtap linux-image-$(uname -r)-dbgsym
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;(Manual version of the above, skip if the above works for you. Note that this has no integrity checking, etc.)
&lt;pre class=&quot;brush:shell&quot;&gt;$ sudo apt-get install -y systemtap dpkg-dev
$ wget http://ddebs.ubuntu.com/pool/main/l/linux/$(dpkg -l linux-image-$(uname -r) | grep ^ii | awk '{print $2 &quot;-dbgsym_&quot; $3}' | tail -n1)_$(dpkg-architecture -qDEB_HOST_ARCH).ddeb
$ sudo dpkg -i linux-image-$(uname -r)-dbgsym.ddeb
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Create a systemtap script to block the mem_write function, and install it:
&lt;pre class=&quot;brush:shell&quot;&gt;$ cat &amp;gt; proc-pid-mem.stp &amp;lt;&amp;lt;'EOM'
probe kernel.function(&quot;mem_write@fs/proc/base.c&quot;).call {
        $count = 0
}
EOM
$ sudo stap -Fg proc-pid-mem.stp
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Check that you’re no longer vulnerable (until the next reboot):
&lt;pre class=&quot;brush:shell&quot;&gt;$ ./correct_proc_mem_reproducer
not vulnerable
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In this case, the systemtap script is changing the &lt;a href=&quot;http://lxr.linux.no/linux+v3.0/fs/proc/base.c#L887&quot;&gt;argument containing the size of the write&lt;/a&gt; to zero bytes (&lt;code&gt;$count = 0&lt;/code&gt;), which effectively closes this vulnerability.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; here’s a systemtap script from Soren that doesn’t require the full debug symbols. &lt;a href=&quot;http://outflux.net/software/shorts/stp/proc_pid_mem.stp&quot;&gt;Sneaky&lt;/a&gt;, put can be rather slow since it hooks all writes in the system. :)&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;© 2012, &lt;a href=&quot;http://www.outflux.net/blog/&quot;&gt;Kees Cook&lt;/a&gt;. This work is licensed under a &lt;a href=&quot;http://creativecommons.org/licenses/by-sa/3.0/us/&quot; rel=&quot;license&quot;&gt;Creative Commons Attribution-ShareAlike 3.0 License&lt;/a&gt;.&lt;br /&gt;&lt;a href=&quot;http://creativecommons.org/licenses/by-sa/3.0/us/&quot; rel=&quot;license&quot;&gt;&lt;img alt=&quot;Creative Commons License&quot; src=&quot;http://i.creativecommons.org/l/by-sa/3.0/us/88x31.png&quot; style=&quot;border-width: 0;&quot; /&gt;&lt;/a&gt; &lt;/p&gt;</description>
	<pubDate>Sun, 22 Jan 2012 23:22:47 +0000</pubDate>
</item>
<item>
	<title>tube animation film project: Spring internships posted!</title>
	<guid isPermaLink="false">http://urchn.org/?p=2520</guid>
	<link>http://urchn.org/post/spring-internships-posted</link>
	<description>&lt;p&gt;Hey folks, a bit late on this one, but &lt;a href=&quot;https://docs.google.com/View?id=dvgkxj6_13gj9d7323&amp;amp;pli=1&quot;&gt;Spring internships&lt;/a&gt; have been posted on &lt;a href=&quot;http://bitfilms.com/&quot;&gt;bitfilms&lt;/a&gt;. If you are interested in spending in spending a few months working on lighting, modelling, crowd sims/other simulation or animation (or a combination of the above) have a gander at the doc and send your resume/reel/cover letter in! we’d love to have you on the project.&lt;/p&gt;
&lt;p&gt;Good news for the modellers, btw, is that we’ve been tuning/tightening our modelling pipeline. I intend to post on that in a week or two once I’ve formalized the last details, so it should be easier and smoother to get your modelling chops into final shots.&lt;/p&gt;
&lt;p&gt;I promise my next post won’t have an exclamation point on the end &lt;img alt=&quot;;)&quot; class=&quot;wp-smiley&quot; src=&quot;http://urchn.org/wp/wp-includes/images/smilies/icon_wink.gif&quot; /&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description>
	<pubDate>Sun, 22 Jan 2012 23:13:03 +0000</pubDate>
</item>
<item>
	<title>Yuval Levy: Essential Attributes</title>
	<guid isPermaLink="false">http://panospace.wordpress.com/?p=2271</guid>
	<link>https://panospace.wordpress.com/2012/01/22/essential-attributes/</link>
	<description>My son realised that mummy snowman was missing essential attributes and went on to &lt;a href=&quot;http://panospace.wordpress.com/2012/01/22/essential-attributes/&quot;&gt;fix&lt;/a&gt; them.&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=panospace.wordpress.com&amp;amp;blog=2564859&amp;amp;post=2271&amp;amp;subd=panospace&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Sun, 22 Jan 2012 21:29:27 +0000</pubDate>
</item>
<item>
	<title>Peter Sikking: GIMP redux, full GEGL ahead</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-28919981.post-5123333000589355483</guid>
	<link>http://blog.mmiworks.net/2012/01/gimp-full-gegl-ahead.html</link>
	<description>&lt;p&gt;Recently I have been receiving requests to clarify the 
      &lt;a href=&quot;http://blog.mmiworks.net/search/label/GIMP&quot;&gt;&lt;acronym&gt;GIMP&lt;/acronym&gt;&lt;/a&gt;
      UI strategy surrounding &lt;acronym&gt;GEGL&lt;/acronym&gt;, so I thought I’d write a
      catch‑up blogpost about
      my 2010 &lt;a href=&quot;http://www.libregraphicsmeeting.org&quot;&gt;&lt;acronym&gt;LGM&lt;/acronym&gt;&lt;/a&gt; lecture.
      There I tackled this &lt;acronym&gt;GIMP&lt;/acronym&gt; UI challenge: &lt;i&gt;a first outline for a UI
      for a fully &lt;acronym&gt;GEGL&lt;/acronym&gt;ed &lt;acronym&gt;GIMP&lt;/acronym&gt;&lt;/i&gt;. The thinking about this UI,
      and the discussions with Øyvind Kolås (the &lt;acronym&gt;GEGL&lt;/acronym&gt;‐meister himself),
      have been going on for years. Its introduction &lt;em&gt;will&lt;/em&gt; be the most profound change
      to &lt;acronym&gt;GIMP&lt;/acronym&gt; in the foreseeable future.&lt;/p&gt;
   
      &lt;h3&gt;two minutes of fame&lt;/h3&gt;
   
      &lt;p&gt;I started off my lecture with introducing &lt;a href=&quot;http://gegl.org/&quot;&gt;&lt;acronym&gt;GEGL&lt;/acronym&gt;&lt;/a&gt;, the
      graph‐based image processing engine that is slowly, but surely, being integrated into &lt;acronym&gt;GIMP&lt;/acronym&gt;.
      I &lt;em&gt;could&lt;/em&gt; spend quite some time taking us through the complete &lt;acronym&gt;GEGL&lt;/acronym&gt; graph 
      (linked) below:&lt;/p&gt;
      
      &lt;a href=&quot;http://mmiworks.net/pics/blog12/GEGLgraphL.png&quot;&gt;
      &lt;img alt=&quot;a cut-out of a GEGL graph&quot; height=&quot;353 &quot; id=&quot;GEGLgraph&quot; src=&quot;http://mmiworks.net/pics/blog12/GEGLgraph.png&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
   
      &lt;p&gt;…and this is only a small one. Instead, here is the essence of it in four easy steps:&lt;/p&gt;
      
      &lt;ol id=&quot;4easy&quot;&gt;
      &lt;li&gt;there are &lt;strong&gt;input&lt;/strong&gt; boxes that load an existing image, or render some
      vector shapes or text;&lt;/li&gt;
      &lt;li&gt;there are &lt;em&gt;chains&lt;/em&gt; of &lt;strong&gt;operation&lt;/strong&gt; boxes that perform things like
      blur or change opacity of whatever gets fed into them;&lt;/li&gt;
      &lt;li&gt;there are &lt;strong&gt;composer&lt;/strong&gt; boxes that take two inputs and put one over the other,
      combining them in a certain way (think layer modes: normal, dodge, multiply);&lt;/li&gt;
      &lt;li&gt;there are &lt;strong&gt;output&lt;/strong&gt; boxes that either display the grand result on a screen,
      or &lt;em&gt;export&lt;/em&gt; it to graphics file formats like png or jpeg.&lt;/li&gt;
      &lt;/ol&gt;
   
      &lt;h4&gt;so…great&lt;/h4&gt;
   
      &lt;p&gt;Thus &lt;acronym&gt;GEGL&lt;/acronym&gt; processes graphics by hooking up the boxes, inputs–to–output.
      Why does that matter? Well, because it is non‐destructive: the images in the input
      boxes are never modified.&lt;/p&gt;
      
      &lt;p&gt;If the structure of above graph is written to a file—apart
      from the input images, all other boxes are just snippets of &lt;acronym&gt;XML&lt;/acronym&gt;—and a
      year later it is re‑opened in GIMP, then each of the operations and their parameters;
      each of the vector shapes or text can be freely changed. Even the input images could be swapped
      out for different ones.
      The result is a changed image composition, without any loss of quality.&lt;/p&gt;
   
      &lt;p&gt;It is exactly this promise of non‐destructive editing that played a big part in
      me joining the &lt;acronym&gt;GIMP&lt;/acronym&gt; project years ago. I could see how
      that could lead to the end of some of the major workflow bottlenecks
      in today’s graphics software.&lt;/p&gt;
   
      &lt;h3&gt;UI modelling&lt;/h3&gt;
   
      &lt;p&gt;The integration of &lt;acronym&gt;GEGL&lt;/acronym&gt; in &lt;acronym&gt;GIMP&lt;/acronym&gt; is a disruption;
      it changes the rules of what one can do and how one can work. This is not a bad thing, it is a
      refreshing change. An interesting question is: how does the user interaction of
      &lt;acronym&gt;GIMP&lt;/acronym&gt; have to change, in order to harnesses all this new
      power? In general there is a big urge, especially with developers, to just display the
      graph on the screen:&lt;/p&gt;
   
      &lt;a href=&quot;http://mmiworks.net/pics/blog12/boxeshosesL.jpg&quot;&gt;
      &lt;img alt=&quot;a boxes and hoses model, with a small image view&quot; height=&quot;260&quot; id=&quot;boxpic&quot; src=&quot;http://mmiworks.net/pics/blog12/boxeshoses.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
   
      &lt;p&gt;I call this the &lt;em&gt;boxes and hoses&lt;/em&gt; model. If it looks familiar to you, it is
      because it has been around for decades: it is called
      &lt;a href=&quot;http://www.google.com/search?q=visual+programming&amp;amp;sa=N&amp;amp;rls=en&amp;amp;prmd=imvnsb&amp;amp;tbm=isch&amp;amp;tbo=u&quot;&gt;visual programming&lt;/a&gt;.
      Which again explains why developers tend to choose this type of solution. One day a direct
      representation of the graph will appear in &lt;acronym&gt;GIMP&lt;/acronym&gt;, as something
      &lt;strong&gt;extra&lt;/strong&gt;. This is because the 
      &lt;a href=&quot;http://gui.gimp.org/index.php/GIMP_UI_Redesign#product_vision&quot;&gt;product vision&lt;/a&gt;
      defines &lt;acronym&gt;GIMP&lt;/acronym&gt;
      as (also) being ‘a platform for programming cutting-edge image processing algorithms, by
      scientists and artists.‘&lt;/p&gt;
   
      &lt;h4&gt;activity centre&lt;/h4&gt;
      
      &lt;p&gt;To find out what the &lt;em&gt;main&lt;/em&gt; UI in &lt;acronym&gt;GIMP&lt;/acronym&gt; should be, we take
      from the product vision what the &lt;em&gt;main&lt;/em&gt; activities are that &lt;acronym&gt;GIMP&lt;/acronym&gt;
      is made for: ‘high-end photo manipulation’;
      ‘creating original art from images’;
      ‘producing icons, graphical elements of web pages and art for user interface elements.’&lt;/p&gt;
   
      &lt;p&gt;As a next step, it pays off to look at the nature of these activities. Users start with images
      or basic shapes (vectors) and apply image manipulation operations, &lt;em&gt;one after another&lt;/em&gt;,
      to achieve the desired result. Users organise their work in layers and GIMP composites the
      result. Schematically that looks like this:&lt;/p&gt;
   
      &lt;a href=&quot;http://mmiworks.net/pics/blog12/GactivityL.jpg&quot;&gt;
      &lt;img alt=&quot;working on an image organised by layers, one operation at the time&quot; height=&quot;263&quot; src=&quot;http://mmiworks.net/pics/blog12/Gactivity.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
   
      &lt;p&gt;In short: a work (a composition) consists of layers, each with its sequence (in time)
      of operations.
      Now we got the start of a model for the UI. That list of layers we know already, as the layers
      dialog. The sequence of operations for the layer, we can call that the
      &lt;strong&gt;operations dialog&lt;/strong&gt;:&lt;/p&gt;
   
      &lt;a href=&quot;http://mmiworks.net/pics/blog12/opdialogL.jpg&quot;&gt;
      &lt;img alt=&quot;image window, layers and operations dialogs&quot; height=&quot;263&quot; src=&quot;http://mmiworks.net/pics/blog12/opdialog.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
   
      &lt;dl&gt;
      &lt;dt&gt;disclaimer&lt;/dt&gt;
      &lt;dd&gt;Keep in mind that the user interaction shown in the image above, and all the ones below,
      is not a true mockup. It is more a diagram—with in part grotesque proportions—to
      show the principles of how the UI works.&lt;/dd&gt;
      &lt;/dl&gt;
      
      &lt;p&gt;We can see that the four &lt;a href=&quot;http://blog.mmiworks.net/atom.xml#4easy&quot;&gt;&lt;acronym&gt;GEGL&lt;/acronym&gt; elements&lt;/a&gt; are covered:
      The image material to
      start with: loaded pixels or rendered vectors; the layers that control the bulk of the
      compositing; the chains of operations; the output to the screen in the &lt;strong&gt;big&lt;/strong&gt;
      image window.&lt;/p&gt;
      
      &lt;p&gt;Yes, the image window
      is &lt;em&gt;the&lt;/em&gt; place for judging one’s work &lt;em&gt;and&lt;/em&gt; for &lt;em&gt;doing&lt;/em&gt; the actual work,
      hands‑on. The image window deserves a couple of times more screen space than any
      &lt;acronym&gt;GEGL&lt;/acronym&gt; graph
      manipulation. Reversing this relationship (as &lt;a href=&quot;http://blog.mmiworks.net/atom.xml#boxpic&quot;&gt;shown earlier&lt;/a&gt;) is completely
      disregarding the nature of the activity.&lt;/p&gt;
      
      &lt;h4&gt;back to the future&lt;/h4&gt;
   
      &lt;p&gt;Adding an operation works as before: use a toolbox tool or invoke a
      menubar item. Here Gaussian blur is invoked and it appears at the top of the operations list:&lt;/p&gt;
      
      &lt;a href=&quot;http://mmiworks.net/pics/blog12/addblurL.jpg&quot;&gt;
      &lt;img alt=&quot;adding a blur operation&quot; height=&quot;263&quot; src=&quot;http://mmiworks.net/pics/blog12/addblur.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
   
      &lt;p id=&quot;revisit&quot;&gt;Now it gets more interesting: &lt;strong&gt;revisiting the past&lt;/strong&gt;. No matter if it was done
      five seconds or five months ago, one can recall any previous operation applied to this layer and
      readjust it. Here the curves for this layer are revisited. While adjusting, the output
      updates through the complete chain of operations, including colorise and blur:&lt;/p&gt;
      
      &lt;a href=&quot;http://mmiworks.net/pics/blog12/revcurvesL.jpg&quot;&gt;
      &lt;img alt=&quot;revisiting the curves&quot; height=&quot;263&quot; src=&quot;http://mmiworks.net/pics/blog12/revcurves.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
   
      &lt;p&gt;A lot of layers dialog behaviour can be reused for the operations dialog.
      ‘Eye’ toggles can be used to show/hide the operations:&lt;/p&gt;
      
      &lt;a href=&quot;http://mmiworks.net/pics/blog12/opeyesL.jpg&quot;&gt;
      &lt;img alt=&quot;revisiting the curves&quot; height=&quot;263&quot; src=&quot;http://mmiworks.net/pics/blog12/opeyes.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
   
      &lt;p&gt;Drag and drop can be used to rearrange the order of operations. The result of that may
      turn out to be more subtle than you think. Because &lt;acronym&gt;GEGL&lt;/acronym&gt; processes
      everything in 32bit floating point, it will be much harder to get the rounding and
      clipping artefacts you get with 8‐ or 16‑bit integer processing.
      Only when an operation does not commutate by nature (i.e. the order matters), &lt;em&gt;then&lt;/em&gt;
      it gets interesting to experiment with the order of operations.&lt;/p&gt;
      
      &lt;p&gt;Of course copy and paste of operations, between layers of the same or different files works.
      Dragging and dropping of operations on another layer copies or moves them, a modifier key
      (shift or ctrl) will sort that out. And before I forget: selecting some operations in the
      operations dialog and
      invoking ‘Make macro’ would be a good, natural way to get that started.&lt;/p&gt;
      
      &lt;h3&gt;the holy trinity&lt;/h3&gt;
   
      &lt;p&gt;Before we continue with more &lt;acronym&gt;GEGL&lt;/acronym&gt; user interaction, here is a pop quiz.
      I took this b+w photo of the brilliantly named Kloten airport and coloured part of it red:&lt;/p&gt;
      
      &lt;img alt=&quot;a red stripe over the airport picture&quot; height=&quot;269&quot; src=&quot;http://mmiworks.net/pics/blog12/redkloten.jpg&quot; width=&quot;375&quot; /&gt;
      
      &lt;p&gt;My question is: how did I apply that red?&lt;/p&gt;
      
      &lt;ol id=&quot;holythree&quot;&gt;
      &lt;li&gt;directly with a tool from the toolbox;&lt;/li&gt;
      &lt;li&gt;making a selection, then invoking a menu item;&lt;/li&gt;
      &lt;li&gt;using a layer with a layer mask.&lt;/li&gt;
      &lt;/ol&gt;
      
      &lt;p&gt;Well, I have forgotten how I did it (it’s been a while) and you will never guess.
      My point is that it does not matter. All three methods listed above are a combination
      of an operation (apply red) and a greyscale mask, controlling where it is applied and how much.
      All three methods are fully equivalent, it does not
      matter to the software—or the viewer.&lt;/p&gt;
      
      &lt;p&gt;It does matter to users. Given the context, composition structure, the graphics material and
      the end‑goal, each user knows &lt;em&gt;exactly&lt;/em&gt; which of the three methods she/he prefers.
      There is a million different use cases and only the individual user on the spot can take
      the right decision. It follows that &lt;em&gt;each of the three methods is equally important&lt;/em&gt; and
      needs to be &lt;em&gt;equally available to users&lt;/em&gt;. This I call &lt;strong&gt;the holy trinity&lt;/strong&gt;
      of image manipulation.&lt;/p&gt;
      
      &lt;h4&gt;pagan practices&lt;/h4&gt;
   
      &lt;p&gt;However, at the moment, you quite often see the following:
      ‘if you want this feature, you’ll &lt;em&gt;have to&lt;/em&gt; use it on its own, extra layer.’
      This is layer abuse. I get misquoted on this so let me clarify: users never abuse layers,
      developers do. Here are some examples of layer abuse:&lt;/p&gt;
      
      &lt;ul&gt;
      &lt;li&gt;the &lt;em&gt;only&lt;/em&gt; way to do a non‐destructive operation is via an adjustment layer&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;only&lt;/em&gt; one vector shape per vector layer;&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;only&lt;/em&gt; one block of text on a text layer;&lt;/li&gt;
      &lt;li&gt;the output of a filter plugin is &lt;em&gt;always&lt;/em&gt; put on a new layer;&lt;/li&gt;
      &lt;li&gt;the result of using a toolbox tool is &lt;em&gt;always&lt;/em&gt; put on a new layer.&lt;/li&gt;
      &lt;/ul&gt;
      
      &lt;p&gt;The problem is with ‘only,’ ‘always’ and ever more layers,
      whether users want them or not.&lt;/p&gt;
      
      &lt;h4&gt;reformation&lt;/h4&gt;
      
      &lt;p&gt;The abuse listed above is straightforward to fix. Quite a bit of it has to do with
      enabling users to redo or &lt;a href=&quot;http://blog.mmiworks.net/atom.xml#revisit&quot;&gt;revisit&lt;/a&gt; the image manipulation. That
      is solved by the operations dialog.&lt;/p&gt;
      
      &lt;p&gt;Furthermore, there can be as many vector shapes and text
      &lt;em&gt;blocks&lt;/em&gt; on a layer as one likes. Just show them—and stack ’em—as
      sub‑layer elements in the layers dialog. And when then &lt;em&gt;one&lt;/em&gt; of these sub‑layer
      elements is allowed to be actual pixels,
      then it is clear that the whole notion of special vector/text layer can disappear:&lt;/p&gt;
      
      &lt;img alt=&quot;hierarchy of layer groups, layers, vectors, text blocks and pixels&quot; height=&quot;255&quot; src=&quot;http://mmiworks.net/pics/blog12/sublayers.png&quot; width=&quot;341&quot; /&gt;
      
      &lt;p&gt;Layer abuse has to stop. Developers should never
      force users to use another layer. Only users decide how many layers they want to use,
      purely as their &lt;em&gt;own personal way&lt;/em&gt; to organise their work.&lt;/p&gt;
      
      &lt;h4&gt;more blessings&lt;/h4&gt;
      
      &lt;p&gt;So apart from that no image manipulation is exclusive to a layer, what are further
      implications of the dogma of the holy trinity?&lt;/p&gt;
      
      &lt;dl&gt;
      &lt;dt&gt;paint with anything&lt;/dt&gt;
      &lt;dd&gt;Yep, with &lt;em&gt;anything&lt;/em&gt;, also all the plugins that appear in the Filters menu.
      Also the obscure ones that you and I, and anyone on the &lt;acronym&gt;GIMP&lt;/acronym&gt; team
      have never heard of. Just dip your brush in it and smear it on the canvas.
      Thinking of combining it
      with paint dynamics just blows my mind. It just takes one tool (Filter brush?) to
      enable this.&lt;/dd&gt;
      &lt;dt&gt;adjustment layers with anything&lt;/dt&gt;
      &lt;dd&gt;You see, I have nothing against accomplishing things with layers. It is perfect when
      you got a collage made out of dozens of layers and then want to apply some treatments to
      &lt;em&gt;the whole thing&lt;/em&gt;. It just takes &lt;em&gt;one&lt;/em&gt; adjustment layer with any number of operations
      to get that done. Again, with &lt;em&gt;anything&lt;/em&gt;.&lt;/dd&gt;
      &lt;/dl&gt;
      
      &lt;h4 id=&quot;greymasks&quot;&gt;behind the mask&lt;/h4&gt;
      
      &lt;p&gt;As mentioned, &lt;a href=&quot;http://blog.mmiworks.net/atom.xml#holythree&quot;&gt;all three&lt;/a&gt; image manipulation methods consist of an operation
      and greyscale mask, controlling where it is applied and how much. The interaction for these
      masks can be analogous to that of layer masks:&lt;/p&gt;
      
      &lt;a href=&quot;http://mmiworks.net/pics/blog12/greymasksL.jpg&quot;&gt;
      &lt;img alt=&quot;masks shown in both layers and operations dialogs&quot; height=&quot;263&quot; src=&quot;http://mmiworks.net/pics/blog12/greymasks.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
   
      &lt;p&gt;This means that both the parameters of the operation and also the ‘where and how
      much’ can be revisited and adjusted, a second later or a year later.&lt;/p&gt;
      
      &lt;h3&gt;in triplicate&lt;/h3&gt;
      
      &lt;p&gt;By now you may be thinking ‘wow, &lt;em&gt;every&lt;/em&gt; image manipulation must be possible in
      &lt;a href=&quot;http://blog.mmiworks.net/atom.xml#holythree&quot;&gt;three different ways&lt;/a&gt;, does that mean that one day 
      &lt;acronym&gt;GIMP&lt;/acronym&gt; will contain
      three times more &lt;em&gt;stuff&lt;/em&gt; than today?’ Well no. I have already mentioned two
      measures—Filter brush, adjustment layers with anything—that will make large strides
      towards fulfilling the holy trinity. And even today the trinity is partially
      in place at &lt;acronym&gt;GIMP&lt;/acronym&gt;.&lt;/p&gt;
      
      &lt;p&gt;Take for instance composition, putting pixels on top of pixels. Sounds like the exclusive
      domain of the layer stack, no? Well, even today you can use toolbox tools to do the same
      thing: the Clone tool and its 90%‑identical cousin, the Heal tool. And the menu item to compose
      is called Paste. Yes, the current layers dialog interaction while pasting should go.
      The &lt;acronym&gt;GIMP&lt;/acronym&gt; team is agreed on this for years. Instead paste is an operation
      &lt;em&gt;on the current layer&lt;/em&gt;:&lt;/p&gt;
      
      &lt;a href=&quot;http://mmiworks.net/pics/blog12/pasteOpL.jpg&quot;&gt;
      &lt;img alt=&quot;a graphic is pasted in the layer, appears as operation&quot; height=&quot;263&quot; src=&quot;http://mmiworks.net/pics/blog12/pasteOp.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
      
      &lt;h4&gt;weird science&lt;/h4&gt;
      
      &lt;p&gt;There is a fifth element to &lt;acronym&gt;GEGL&lt;/acronym&gt; graphs, that I have been keeping under
      wraps in this blogpost until now: &lt;strong&gt;cloning&lt;/strong&gt;. This is taking an in‑between result in the
      &lt;acronym&gt;GEGL&lt;/acronym&gt; graph, anything from a simple vector to a huge sub‐tree, and
      ‘teleporting’ one or more clones of this &lt;em&gt;result&lt;/em&gt; to another position
      in the graph:&lt;/p&gt;
      
      &lt;a href=&quot;http://mmiworks.net/pics/blog12/clonesgraphL.png&quot;&gt;
      &lt;img alt=&quot;spotting clones in a GEGL graph&quot; height=&quot;247&quot; src=&quot;http://mmiworks.net/pics/blog12/clonesgraph.png&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
   
      &lt;p&gt;The original and the clones can have the same or a different position on the canvas;
      undergo the same or completely different operations; be composited in the same or a
      completely different manner. The magic is of course in that when the original
      (the input to cloning) is updated, every clone immediately updates, with all further
      operations and compositing applied on top. This is going to be liberating, because of the
      amount of work this saves.&lt;/p&gt;
      
      &lt;p&gt;Let me give an example. Let’s take the scan of a snowflake
      and fix it up with a number of graphics operations. We
      clone the result 99 times and spread these over five layers to compose our snowscape. We
      make ever flake a different size and a different colour. Already laborious, no? And &lt;em&gt;now&lt;/em&gt;,
      we decide we are not satisfied with how refined the snowflakes are. Solution: fix the original
      with more/less/different/updated operations, all 100 flakes will immediately show the 
      improved refinement—in their different sizes and colours.&lt;/p&gt;
      
      &lt;h4&gt;send in the clones&lt;/h4&gt;
      
      &lt;p&gt;My plan for the user interaction of cloning is to make it a variant of pasting:
      Paste as clone. This includes doing further operations on the pasted (as clone) material,
      before closing off the paste (you can always revisit the paste operation and modify
      all of it). And as Ville Pätsi pointed out a while ago, there needs to be a way from each
      clone to access the original. A button or link on the Paste clone operation in the operations
      dialog might do the trick.&lt;/p&gt;
      
      &lt;p&gt;There is more tricky stuff coming up with this cloning, like cloning layers or layer groups.
      And to go fully meta on this: I am asking myself why chains of operations cannot be cloned and applied
      to different input material. But Øyvind is not up for that.&lt;/p&gt;
      
      &lt;h3&gt;two more things&lt;/h3&gt;
      
      &lt;p&gt;To wrap all this up I have &lt;strong&gt;two benchmarks&lt;/strong&gt; that have developed out of the
      &lt;acronym&gt;GEGL&lt;/acronym&gt; discussions. They are alternate manifestations of the holy trinity
      and they are
      serious tests of the direction the &lt;acronym&gt;GIMP&lt;/acronym&gt; user interaction is taking.&lt;/p&gt;
      
      &lt;p&gt;First, in a future version of &lt;acronym&gt;GIMP&lt;/acronym&gt;, if users really envision their
      work as &lt;em&gt;one&lt;/em&gt; single layer—not that unusual with photographs—then they will simply
      be able to &lt;em&gt;close the layers dialog&lt;/em&gt;. Their work will not be impeded in any way by this,
      &lt;em&gt;everything&lt;/em&gt; is still available to them (twice, as toolbox tool and menu) with
      no limits in the sophistication with which they can express themselves:&lt;/p&gt;
      
      &lt;a href=&quot;http://mmiworks.net/pics/blog12/noLayersL.jpg&quot;&gt;
      &lt;img alt=&quot;main window with just the operations dialog&quot; height=&quot;263&quot; src=&quot;http://mmiworks.net/pics/blog12/noLayers.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
   
      &lt;p&gt;Second, in a future version of &lt;acronym&gt;GIMP&lt;/acronym&gt;, if users are really not interested
      in switching operations on/off; rearranging operations or revisiting the past, then they will simply
      be able to &lt;em&gt;close the operations dialog&lt;/em&gt;. Their work will not be impeded in any way by this,
      &lt;em&gt;everything&lt;/em&gt; is still available to them with
      no limits in the sophistication with which they can express themselves:&lt;/p&gt;
      
      &lt;a href=&quot;http://mmiworks.net/pics/blog12/noOperationsL.jpg&quot;&gt;
      &lt;img alt=&quot;main window with just the layers dialog&quot; height=&quot;263&quot; src=&quot;http://mmiworks.net/pics/blog12/noOperations.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;
      
      &lt;p&gt;You could even combine the two benchmarks and &lt;acronym&gt;GIMP&lt;/acronym&gt; would still work,
      without a hitch.&lt;/p&gt;
      
      &lt;h3&gt;aftermath&lt;/h3&gt;
      
      &lt;p&gt;Directly after the lecture at the &lt;acronym&gt;LGM&lt;/acronym&gt;, Øyvind Kolås pointed out one
      flaw, one thing I had not thought of: those &lt;a href=&quot;http://blog.mmiworks.net/atom.xml#greymasks&quot;&gt;greyscale masks&lt;/a&gt;, that play
      such a central role, are not pixmaps. They are &lt;acronym&gt;GEGL&lt;/acronym&gt; sub‐graphs
      themselves. Which creates the possibility of near‐endless drill‐down:
      operations with greyscale masks, which contain operations with greyscale masks, which
      contain… et cetera.&lt;/p&gt;
      
      &lt;p&gt;Is that a fatal flaw? Is that going to blow up my plan to reduce the complexity of the
      &lt;acronym&gt;GEGL&lt;/acronym&gt; graph to a linear list of operations? Do we just have to confront
      users with the whole graph?
      Let not kid ourselves about the complexity of that graph.
      In practice, I’d say that a simple &lt;acronym&gt;GIMP&lt;/acronym&gt; file starts
      at ten times the number of boxes in the &lt;a href=&quot;http://blog.mmiworks.net/atom.xml#GEGLgraph&quot;&gt;example at the top&lt;/a&gt;,
      quickly moving to a hundred times and then beyond.&lt;/p&gt;
      
      &lt;h4&gt;not my problem&lt;/h4&gt;
      
      &lt;p&gt;To developers—especially the ones that are working up to their elbows in
      &lt;acronym&gt;GEGL&lt;/acronym&gt; graphs—this problem looks like one of navigating the graph
      and making edits. But to &lt;em&gt;me&lt;/em&gt; it looks like another problem needs to be solved: 
      &lt;em&gt;how can users navigate their working context?&lt;/em&gt; Already today &lt;acronym&gt;GIMP&lt;/acronym&gt; users
      are doing this navigation. Which layer, which layer mask are they editing, or is it the
      quick mask?&lt;/p&gt;
      
      &lt;p&gt;It will have to wait for another day, but when this context navigation
      is going to be designed, the &lt;em&gt;one thing&lt;/em&gt; not to lose sight of is the image window.
      Everything evolves &lt;em&gt;around&lt;/em&gt; it, including this navigation, and feedback of the working context has to be
      &lt;em&gt;inside&lt;/em&gt; it. I certainly think we can do a better job than currently happens
      with the layer masks. &lt;/p&gt;
      
      &lt;p&gt;And when this context navigation has been designed, taking into account the holy trinity
      and the two benchmarks, then the operations dialog can show the simple list of operations
      performed in that context, in their natural order.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/28919981-5123333000589355483?l=blog.mmiworks.net&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 22 Jan 2012 16:36:06 +0000</pubDate>
	<author>noreply@blogger.com (peter sikking)</author>
</item>
<item>
	<title>Morevna Project: Weekly progress</title>
	<guid isPermaLink="false">http://morevnaproject.org/?p=726</guid>
	<link>http://morevnaproject.org/2012/01/22/weekly-progress/</link>
	<description>&lt;p&gt;This week we were busy updating demo shots for the new battlefield concept. Currently we have updated all shots in the range of 01-16, and hey – it looks quite nice!&lt;/p&gt;
&lt;div class=&quot;wp-caption alignnone&quot; id=&quot;attachment_728&quot; style=&quot;width: 310px;&quot;&gt;&lt;a href=&quot;http://download.tuxfamily.org/morevna/blog/2012/01/shot06.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;size-medium wp-image-728&quot; height=&quot;168&quot; src=&quot;http://download.tuxfamily.org/morevna/blog/2012/01/shot06-300x168.jpg&quot; title=&quot;shot06&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Shot 06&lt;/p&gt;&lt;/div&gt;
&lt;div class=&quot;wp-caption alignnone&quot; id=&quot;attachment_729&quot; style=&quot;width: 310px;&quot;&gt;&lt;a href=&quot;http://download.tuxfamily.org/morevna/blog/2012/01/shot09.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;size-medium wp-image-729&quot; height=&quot;168&quot; src=&quot;http://download.tuxfamily.org/morevna/blog/2012/01/shot09-300x168.jpg&quot; title=&quot;shot09&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Shot 09&lt;/p&gt;&lt;/div&gt;
&lt;div class=&quot;wp-caption alignnone&quot; id=&quot;attachment_730&quot; style=&quot;width: 310px;&quot;&gt;&lt;a href=&quot;http://download.tuxfamily.org/morevna/blog/2012/01/shot14.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;size-medium wp-image-730&quot; height=&quot;168&quot; src=&quot;http://download.tuxfamily.org/morevna/blog/2012/01/shot14-300x168.jpg&quot; title=&quot;shot14&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Shot 14&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;At the same time Nikolay does tracing and animation based on the keyframe drafts by Eleonora.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://download.tuxfamily.org/morevna/blog/2012/01/file49.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-740&quot; height=&quot;75&quot; src=&quot;http://download.tuxfamily.org/morevna/blog/2012/01/file49-thumb.png&quot; title=&quot;file49-thumb&quot; width=&quot;496&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And of course the process of updating shots for Blender 2.61 is continued. At the moment the most issues are resolved and we need just some time to complete the transition process for all shots. It was a little distracting when I haven’t found possibility to control animation time with F-Curves like I did in 2.49. After spending some time digging I have realized that I can use Synfig to do time-control effects (like slow-mo or speedup).&lt;/p&gt;
&lt;p&gt;Also, I was a little worried about the first shots in the demo – the view from the top at the start is a really tricky shot. But after reworking sequence layout I was able to achieve the impact I was satisfied with.&lt;/p&gt;
&lt;p&gt;That’s all for today, have a great week!&lt;/p&gt;</description>
	<pubDate>Sun, 22 Jan 2012 13:57:56 +0000</pubDate>
</item>
<item>
	<title>tube animation film project: auto rig post at BN!</title>
	<guid isPermaLink="false">http://urchn.org/?p=2516</guid>
	<link>http://urchn.org/post/auto-rig-post-at-blendernation</link>
	<description>&lt;p&gt;Looks like Tal’s preview of the autowalking got posted at&lt;a href=&quot;http://www.blendernation.com/2012/01/20/cockroach-crowd-simulation/#more-25773&quot;&gt; BN! &lt;/a&gt;Nice post!&lt;/p&gt;
&lt;p&gt;This blog has been a little quiet of late but the project is quite healthy. We’ve been working hard on animation and refining our modelling pipeline to allow modellers an easier time contributing to the project. Tal and I have nailed down most of our technical hurdles in the autowalker/crowd side, which is a huge relief (those shots were always a bit of a scary looming task) and we think we can finish these shots with a great deal of fun.&lt;/p&gt;
&lt;p&gt;stay tuned for more posts, where we share our current progress… and some news!&lt;/p&gt;</description>
	<pubDate>Sat, 21 Jan 2012 22:23:26 +0000</pubDate>
</item>
<item>
	<title>Nina Paley: Ye Olde Animation</title>
	<guid isPermaLink="false">http://blog.ninapaley.com/?p=2435</guid>
	<link>http://blog.ninapaley.com/2012/01/21/ye-olde-animation/</link>
	<description>&lt;p&gt;Guess what I found at my parents’ house in Urbana? A VHS tape called “NINA PALEY DEMO REEL 1998.” It contained my very first animation as an adult (my very very first was when I was about 13, but I’ve lost those Super-8 reels). I didn’t go to school, I just taught myself from books and asking friends. It helped that I was dating an animator; he owned an animation table, which I’d never seen before let alone used, and it was on that that I made this:&lt;br /&gt;
&lt;br /&gt;
Straight out of &lt;a href=&quot;http://www.ninapaley.com/NinasAdventuresArchives/NinasAdventures.html&quot;&gt;Nina’s Adventures&lt;/a&gt;, right? Audio is from Leonard Bernstein’s “Candide.”&lt;br /&gt;
The first stop-motion clay animation I made, Luv Is…, is Not Safe For Work and is embarrassingly neurotic, but the same characters appear in this, my second stop-motion clay animation:&lt;br /&gt;
&lt;br /&gt;
I Heart My Cat was shot on a 16mm Krasnogorsk camera with a light leak, and you can see the adorable Desi at the very end. Nik Phelps made the fantastic score, one of my favorite scores ever.&lt;/p&gt;
&lt;p&gt;For “Cancer” I drew, scratched and painted this directly on an old 35mm porn film. My boyfriend-at-the-time’s sister had just been diagnosed with  breast cancer. Music is the Del Rubio Triplets singing the Rolling  Stones’ “Satisfaction.”&lt;br /&gt;
&lt;br /&gt;
These all have copyright notices on them, because I believed in copyright back then. But I hereby release them, consider them CC-BY-SA but better still ignore all licenses no matter what they are and do whatever you want. Thanks to Ken Levis for digitizing the VHS tape. You kids today should be grateful you have all these digital formats instead of VHS! It was awful to work with, and as you can see the quality was crap too. Hooray for technological progress! Power to the people!&lt;/p&gt;
&lt;p class=&quot;wp-flattr-button&quot;&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://blog.ninapaley.com/?flattrss_redirect&amp;amp;id=2435&amp;amp;md5=fd3525d630b1baa0c886cd1d285e66bd&quot; target=&quot;_blank&quot; title=&quot;Flattr&quot;&gt;&lt;img alt=&quot;flattr this!&quot; src=&quot;http://blog.ninapaley.com/wp-content/plugins/flattr/img/flattr-badge-large.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Sat, 21 Jan 2012 21:58:15 +0000</pubDate>
</item>
<item>
	<title>Pascal de Brujn: My Notebook Display Is Too Bluish</title>
	<guid isPermaLink="false">http://blog.pcode.nl/?p=849</guid>
	<link>http://blog.pcode.nl/2012/01/21/my-notebook-display-is-too-bluish/</link>
	<description>&lt;p&gt;I’ve been posting a fair amount of photography, imaging and color management lately. While colorimetry can be a good solution to display issues, but a lot of people don’t want to take it that far.&lt;/p&gt;
&lt;p&gt;So say you’ve just gotten a new notebook, and like many notebooks the display looks a tad blueish, and you don’t want to invest in a full blown color management solution. There is a fairly simple way to address this issue at least to an extent, and it’s called xgamma (please note that xgamma might not work if your X11 setup is in 16bit mode, which is very unlikely on a modern system).&lt;/p&gt;
&lt;p&gt;Now before making any changes it’s a good idea to get a good image to evaluate any changes with. I can highly recommend the &lt;a href=&quot;http://www.smugmug.com/help/calibration-1400.mg&quot;&gt;Smugmug Calibration Print&lt;/a&gt;. So open the calibration print in your favorite image viewer, and do:&lt;/p&gt;
&lt;p&gt;# xgamma -rgamma 1.0 -ggamma 1.0 -bgamma 0.9&lt;/p&gt;
&lt;p&gt;You should see your display shift in color. Lots of notebook display also tend to lack contrast, so in theory you can use xgamma to compensate for that too:&lt;/p&gt;
&lt;p&gt;# xgamma -rgamma 0.9 -ggamma 0.9 -bgamma 0.8&lt;/p&gt;
&lt;p&gt;Again check the calibration print again, make sure you can clearly distinguish all the grey patches at the top of the image.&lt;/p&gt;
&lt;p&gt;Now when you reboot your machine these settings will be lost. The best way I’ve found to automatically apply these settings seem to be via what’s called XDG Autostart, it’s basically a set of .desktop files that are run during session startup. Most big desktop environments (GNOME/XFCE/KDE) support these.&lt;/p&gt;
&lt;p&gt;So, put the following into /etc/xdg/autostart/xgamma.desktop&lt;/p&gt;
&lt;pre&gt;[Desktop Entry]
Encoding=UTF-8
Name=Set display gamma corrections
GenericName=Set display gamma corrections
Comment=Applies display gamma corrections at session startup
Exec=xgamma -rgamma 0.9 -ggamma 0.9 -bgamma 0.8
Terminal=false
Type=Application
Categories=&lt;/pre&gt;
&lt;p&gt;Now reboot, and see your gamma settings being applied at during each new X11 login.&lt;/p&gt;
&lt;p&gt;Please beware that the above correction are ballpark corrections, for real accuracy you really need to do proper color management.&lt;/p&gt;</description>
	<pubDate>Sat, 21 Jan 2012 18:59:22 +0000</pubDate>
</item>
<item>
	<title>Blender Project: Mango Open Movie fundraiser halfway</title>
	<guid isPermaLink="true">http://feedproxy.google.com/~r/Blender3d/~3/Ri1ORJL8lwE/</guid>
	<link>http://feedproxy.google.com/~r/Blender3d/~3/Ri1ORJL8lwE/</link>
	<description>Until February 15th all early pre-orders get a film credit! Order total is going over a 1000 in a...</description>
	<pubDate>Sat, 21 Jan 2012 16:53:00 +0000</pubDate>
</item>
<item>
	<title>Maurits Rijk: Improving the Scrum standup questions</title>
	<guid isPermaLink="false">http://maurits.wordpress.com/?p=523</guid>
	<link>http://maurits.wordpress.com/2012/01/19/improving-the-scrum-standup-questions/</link>
	<description>&lt;p&gt;Anyone practicing Scrum will probably know the three questions that are asked during the daily standup:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;What have you done since yesterday?&lt;/li&gt;
&lt;li&gt;What are you planning to do today?&lt;/li&gt;
&lt;li&gt;Any impediments/stumbling blocks?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;There are several problems with the way these questions are phrased. Firstly team-members might get defensive because they feel like you have to explain you really did do something important since the last standup. So regularly I hear answers like “Well, I spent 8 hours on this really very difficult task. But I’m almost done. Will probably finish it today and there are no impediments. Next!”. Wow, this developer managed to burn 8 hours during the last 8 hour working day. Impressive! So there is no information at all in this answer for the Scrum Master or the other team-members.&lt;/p&gt;
&lt;p&gt;To tackle this last problem some Scrum Masters rephrase the questions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;What have you &lt;em&gt;accomplished&lt;/em&gt; since yesterday?&lt;/li&gt;
&lt;li&gt;What are you planning to &lt;em&gt;accomplish&lt;/em&gt; today?&lt;/li&gt;
&lt;li&gt;Any impediments/stumbling blocks to &lt;em&gt;reach your goal&lt;/em&gt;?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;At first glance these questions look ok. You really force every team-member to explain what progress he/she has made. Everyone is happy apart  from those poor developers that didn’t accomplish anything since yesterday. Maybe they needed more time to think about a difficult design, maybe they were tackling a nasty bug. In my opinion these questions can be very demotivating.&lt;/p&gt;
&lt;p&gt;Of course we all learned that the standup is not meant to be a progress meeting. It is a coordination mechanism between team-members. So can we do better than the two previous approaches?&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;
&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://maurits.files.wordpress.com/2012/01/new_and_improved.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;aligncenter size-thumbnail wp-image-537&quot; height=&quot;150&quot; src=&quot;http://maurits.files.wordpress.com/2012/01/new_and_improved.jpg?w=150&amp;amp;h=150&quot; title=&quot;new_and_improved&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Yes we can. I recently read a book that has become quite popular “&lt;a href=&quot;http://www.amazon.com/Lean-Startup-Entrepreneurs-Continuous-Innovation/dp/0307887898&quot;&gt;The Lean Startup&lt;/a&gt;” by Eric Ries. What I really liked is his message that a start-up company is all about learning, not about the perfect result. And that is exactly what can motivate Scrum teams: software developers are knowledge workers, not just people working at an assembly line accomplishing small predictable tasks in an endless way. So why not state the standup questions in terms of learning:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;What have you &lt;em&gt;learned &lt;/em&gt;since yesterday?&lt;/li&gt;
&lt;li&gt;What are you planning to &lt;em&gt;learn&lt;/em&gt; today?&lt;/li&gt;
&lt;li&gt;Any impediments/stumbling blocks to &lt;em&gt;keep you from learning&lt;/em&gt;?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;One of the benefits is that this will greatly improve knowledge exchange within the team. People might even feel comfortable with spending a day doing &lt;a href=&quot;http://blip.tv/clojure/hammock-driven-development-4475586&quot;&gt;hammock-driven development&lt;/a&gt; (by Rich Hickey, Clojure inventor) as long as they can explain what they have learned. And remember, learning that an approach didn’t work is still learning. Of course at the end a team will need to produce software, but I’m convinced that concentrating on learning instead of accomplishing smaller tasks will get you there a lot faster.&lt;/p&gt;
&lt;p&gt;Please give these questions a try and share the results here or in your favorite Scrum forum!&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/maurits.wordpress.com/523/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/maurits.wordpress.com/523/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/maurits.wordpress.com/523/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/maurits.wordpress.com/523/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/maurits.wordpress.com/523/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/maurits.wordpress.com/523/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/maurits.wordpress.com/523/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/maurits.wordpress.com/523/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/maurits.wordpress.com/523/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/maurits.wordpress.com/523/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/maurits.wordpress.com/523/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/maurits.wordpress.com/523/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/maurits.wordpress.com/523/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/maurits.wordpress.com/523/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=maurits.wordpress.com&amp;amp;blog=73044&amp;amp;post=523&amp;amp;subd=maurits&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Thu, 19 Jan 2012 20:39:05 +0000</pubDate>
</item>
<item>
	<title>Alexandre Prokoudine: Die Hard 5: with kernels</title>
	<guid isPermaLink="false">http://prokoudine.info/blog/?p=571</guid>
	<link>http://prokoudine.info/blog/2012/01/die-hard-5-with-kernels/</link>
	<description>&lt;p&gt;It’s been a while since I last posted some opinionated crap. How could that possibly happen? &lt;img alt=&quot;:)&quot; class=&quot;wp-smiley&quot; src=&quot;http://prokoudine.info/blog/wp-includes/images/smilies/icon_smile.gif&quot; /&gt; &lt;/p&gt;
&lt;p&gt;Last week Bitwig folks finally announced upcoming beta of Bitwig Studio, a new commercial DAW for Win, Mac and Linux. As it often happens, some folks in the community started speculating how this is going to affect existing free software and the community itself. After all, it’s not that we’ve got huge teams slaving away to make music production a breeze on Linux, eh?&lt;/p&gt;
&lt;p&gt;Well, one thing I really liked in the LAU thread is that most folks who cared to comment didn’t express extreme views. I seriously hope that it’s a sign of the community becoming mature enough to treat things in a relaxed, no-fanatic way.&lt;/p&gt;
&lt;p&gt;What I’ve been seeing on the desktop layer is that free/libre and commercial software can perfectly coexist without kicking each other in the nadgers and turning half the city to ruins. Just a few examples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bibble Pro (Corel AfterShot Pro since last week, btw) didn’t make any existing free software die. Instead we got darktable.&lt;/li&gt;
&lt;li&gt;A month ago BrainDistrict &lt;a href=&quot;http://libregraphicsworld.org/blog/entry/braindistrict-releases-paintsupreme-resurrects-mainactor&quot; target=&quot;_blank&quot;&gt;announced PaintSupreme&lt;/a&gt;. Can you see Pinta folks crying in despair, because noone’s gonna use it again?&lt;/li&gt;
&lt;li&gt;BrainDistrict has also been resurrecting MainActor, and yet commits to Kdenlive, PiTiVi, Novacut and OpenShot keep piling up.&lt;/li&gt;
&lt;li&gt;Renoise didn’t kill any free software project, and they even added support for DSSI, a (currently outdated) free API for virtual instruments.&lt;/li&gt;
&lt;li&gt;Mixbus folks have been contributing to upstream Ardour project for a couple of years now already, and aren’t they proprietary guys?&lt;/li&gt;
&lt;li&gt;Loomer is busy porting their commercial synths and effects to LV2, the state of the art free API for virtual instruments and effects.&lt;/li&gt;
&lt;li&gt;linuxDSP started with Linux support from ground up and has been supporting LV2 since day one.&lt;/li&gt;
&lt;li&gt;..and the list can go on.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The only fluctuation I can think of is the 8 years old story with Jorg Anders overreacting and abandoning NoteEdit after hearing about a, frankly speaking, fantom possibility of Finale port to Linux. &lt;em&gt;And&lt;/em&gt; he started NtEd few years later anyway. That he doesn’t get much acknowledgment for NtEd either is a whole different story.&lt;/p&gt;
&lt;p&gt;And even if you could recall all the epic OMG!Ubuntu threads about likewise phantom possibility of Photoshop port for Linux, you’d soon figure out that most people who expressed their interest weren’t going to use GIMP anyway. No love lost.&lt;/p&gt;
&lt;p&gt;So if you think that some proprietary app suddenly available for Linux is going to do BLOOD NEEDLESS VIOLENCE GUTS OUTSIDE CITY TAKEN OVER DEAD BODIES ALL AROUND to your favourite free application, stop worrying. Fire up that free app and do something awesome with it. Work on your skills, become damn good at using free software, and then share what you know. This is how you become your own John McClane.&lt;/p&gt;</description>
	<pubDate>Thu, 19 Jan 2012 18:05:39 +0000</pubDate>
</item>
<item>
	<title>Oyranos Development Blog: SampleICC-1.6.6 + IccXML-0.9.6</title>
	<guid isPermaLink="false">http://www.oyranos.org/?p=988</guid>
	<link>http://www.oyranos.org/2012/01/sampleicc-1-6-6-iccxml-0-9-6/</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://sampleicc.sf.net&quot;&gt;SampleICC&lt;/a&gt; provides an open source platform independent C++ library for reading, writing, manipulating, and applying ICC profiles along with applications that make use of this library.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://sourceforge.net/projects/iccxml/files/&quot;&gt;IccXML&lt;/a&gt; provides a library and tools to convert between ICC profiles and XML in both directions.&lt;/p&gt;
&lt;p&gt;SampleICC release obtained up to the actual revision 1.6.6 various bug fixes, build system improvements and the new iccGetBPCInfo tool.&lt;/p&gt;</description>
	<pubDate>Thu, 19 Jan 2012 10:41:56 +0000</pubDate>
</item>
<item>
	<title>Oyranos Development Blog: OpenICC Program FOSDEM 4 + 5 February 2012 in Brussels, Belgium</title>
	<guid isPermaLink="false">http://www.oyranos.org/?p=983</guid>
	<link>http://www.oyranos.org/2012/01/983/</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://www.freedesktop.org/wiki/OpenIcc/Events/Fosdem/2012&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;90&quot; src=&quot;http://www.oyranos.org/images/fosdem2012.png&quot; title=&quot;OpenICC @ FOSDEM 2012&quot; width=&quot;590&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://openicc.sf.net&quot; target=&quot;_blank&quot;&gt;OpenICC&lt;/a&gt; uses 2012 a DevRoom at &lt;a href=&quot;http://www.freedesktop.org/wiki/OpenIcc/Events/Fosdem/2012&quot; target=&quot;_blank&quot;&gt;FOSDEM&lt;/a&gt; on Sunday together with &lt;a href=&quot;http://wiki.x.org/wiki/fosdem2012&quot; target=&quot;_blank&quot;&gt;Xorg&lt;/a&gt; people. The goal is to provide a meeting space for colour management topics.&lt;/p&gt;
&lt;p&gt;The program is online on the &lt;a href=&quot;http://www.freedesktop.org/wiki/OpenIcc/Events/Fosdem/2012&quot; target=&quot;_blank&quot;&gt;OpenICC wiki&lt;/a&gt;. The talks will present and discuss colour management in Compositors, OpenICC, Scribus, Taxi DB, Oyranos and SVG2.&lt;/p&gt;</description>
	<pubDate>Thu, 19 Jan 2012 08:46:13 +0000</pubDate>
</item>
<item>
	<title>Libre Graphics Meeting: Hacking &amp; Creativity @ LGM 7</title>
	<guid isPermaLink="false">http://libregraphicsmeeting.org/2012/?p=24</guid>
	<link>http://libregraphicsmeeting.org/2012/2012/01/cutting-edge-graphics-software-meets-free-culture/</link>
	<description>&lt;p&gt;&lt;a class=&quot;none&quot; href=&quot;http://libregraphicsmeeting.org/2012/wp/wp-content/uploads/2012/01/technikum_wien1.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-medium wp-image-30&quot; height=&quot;199&quot; src=&quot;http://libregraphicsmeeting.org/2012/wp/wp-content/uploads/2012/01/technikum_wien1-300x199.jpg&quot; title=&quot;technikum_wien&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Developers and users of Free, Libre and Open Source graphics software will meet May 2-5 in Vienna at the seventh annual Libre Graphics Meeting (LGM).&lt;/p&gt;
&lt;p&gt;LGM gives software developers, artists, designers and other graphics professionals the opportunity to collaborate and learn from each other. LGM emphasizes the sharing of collective creativity, innovation and ideas and is free for everyone to attend.&lt;/p&gt;</description>
	<pubDate>Wed, 18 Jan 2012 22:17:28 +0000</pubDate>
</item>
<item>
	<title>Ruben Vermeersch: Mono at FOSDEM 2012: Schedule announced!</title>
	<guid isPermaLink="false">http://weblog.savanne.be/?p=490</guid>
	<link>http://weblog.savanne.be/490-mono-at-fosdem-2012-schedule-announced</link>
	<description>&lt;p&gt;&lt;img alt=&quot;&quot; class=&quot;alignright size-full wp-image-361&quot; height=&quot;41&quot; src=&quot;http://weblog.savanne.be/mono-logo1.png&quot; title=&quot;mono-logo&quot; width=&quot;167&quot; /&gt;The schedule for the Mono devroom at &lt;a href=&quot;http://fosdem.org/2012/&quot;&gt;FOSDEM 2012&lt;/a&gt; has been finalized:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;small&gt;&lt;code&gt;(11:00 – 11:45)&lt;/code&gt;&lt;/small&gt; &lt;strong&gt;Enough Debian packaging knowledge to hurt yourselves slightly less than you do already &lt;/strong&gt;(Jo Shields)&lt;/li&gt;
&lt;li&gt;&lt;small&gt;&lt;code&gt;(12:00 – 13:00)&lt;/code&gt;&lt;/small&gt; &lt;strong&gt;Mono – State of the Union &lt;/strong&gt;(Miguel De Icaza)&lt;/li&gt;
&lt;li&gt;&lt;small&gt;&lt;code&gt;(13:00 – 14:00)&lt;/code&gt;&lt;/small&gt; &lt;em&gt;*** Lunch break ***&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;small&gt;&lt;code&gt;(14:00 – 14:30)&lt;/code&gt;&lt;/small&gt; &lt;strong&gt;Gluon &lt;/strong&gt;(Federico Di Gregorio)&lt;/li&gt;
&lt;li&gt;&lt;small&gt;&lt;code&gt;(14:40 – 15:25)&lt;/code&gt;&lt;/small&gt; &lt;strong&gt;Banshee: Past, Present, Future and the Crazy stuff&lt;/strong&gt; (Bertrand Lorentz &amp;amp; Olivier Dufour)&lt;/li&gt;
&lt;li&gt;&lt;small&gt;&lt;code&gt;(15:40 – 16:25)&lt;/code&gt;&lt;/small&gt; &lt;strong&gt;IronPython: Bringing the dynamic world to the CLR &lt;/strong&gt;(Carlos Alberto Cortez Guevara)&lt;/li&gt;
&lt;li&gt;&lt;small&gt;&lt;code&gt;(16:40 – 17:30)&lt;/code&gt;&lt;/small&gt; &lt;strong&gt;MonoGame &lt;/strong&gt;(Dominique Louis, Dean Ellis &amp;amp; Kenneth Pouncy)&lt;/li&gt;
&lt;li&gt;&lt;small&gt;&lt;code&gt;(17:45 – 18:15)&lt;/code&gt;&lt;/small&gt; &lt;strong&gt;XWT &lt;/strong&gt;(Lluis Sanchez)&lt;/li&gt;
&lt;li&gt;&lt;small&gt;&lt;code&gt;(18:30 – 19:00)&lt;/code&gt;&lt;/small&gt; &lt;strong&gt;MonoMac &lt;/strong&gt;(Miguel De Icaza)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Full details (with talk abstracts) should be &lt;a href=&quot;http://fosdem.org/2012/schedule/track/mono_devroom&quot;&gt;available on the FOSDEM website&lt;/a&gt;. As always, if you want to see a talk, show up early, once the room is full, you’re out of luck!&lt;/p&gt;
&lt;p&gt;Date to put in your agenda: Feb 4, 2012.&lt;/p&gt;</description>
	<pubDate>Wed, 18 Jan 2012 15:00:19 +0000</pubDate>
</item>
<item>
	<title>Nina Paley: BLACKOUT</title>
	<guid isPermaLink="false">http://blog.ninapaley.com/?p=2431</guid>
	<link>http://blog.ninapaley.com/2012/01/17/blackout/</link>
	<description>&lt;p&gt;If anyone needs to download &lt;a href=&quot;http://sitasingstheblues.com/&quot;&gt;Sita Sings the Blues&lt;/a&gt; or copy &lt;a href=&quot;http://mimiandeunice.com/&quot;&gt;Mimi &amp;amp; Eunice&lt;/a&gt; or anything from any of my web sites, including this blog, do it now because they’re all going &lt;a href=&quot;http://https://github.com/zachstronaut/stop-sopa&quot;&gt;dark for 24 hours&lt;/a&gt; in protest of SOPA/PIPA and the lobbyists and bought politicians who wrote them and will write the next stupid bills attempting to break the internet even after SOPA and PIPA “die” only to be resurrected zombie-like under new stupid acronyms.&lt;/p&gt;
&lt;p&gt;Although I’ll truly miss &lt;a href=&quot;http://en.wikipedia.org/&quot;&gt;Wikipedia&lt;/a&gt; while it’s down tomorrow, maybe I’ll use the time to get some actual animation done instead of just “research.”&lt;/p&gt;
&lt;p class=&quot;wp-flattr-button&quot;&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://blog.ninapaley.com/?flattrss_redirect&amp;amp;id=2431&amp;amp;md5=23cf145b43b1825695b8e69fc94bb4f0&quot; target=&quot;_blank&quot; title=&quot;Flattr&quot;&gt;&lt;img alt=&quot;flattr this!&quot; src=&quot;http://blog.ninapaley.com/wp-content/plugins/flattr/img/flattr-badge-large.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Wed, 18 Jan 2012 03:25:13 +0000</pubDate>
</item>
<item>
	<title>Blender Project: Stop SOPA! Stop BREIN! Stop BUMA-STEMRA! Stop GEMA! Stop HADOPI! Stop...</title>
	<guid isPermaLink="true">http://feedproxy.google.com/~r/Blender3d/~3/Y2Omg7WGm7w/</guid>
	<link>http://feedproxy.google.com/~r/Blender3d/~3/Y2Omg7WGm7w/</link>
	<description>&lt;p&gt;I'm fully supporting the protests today against the SOPA bill that might get accepted in the USA. With Blender Foundation being established in the Netherlands, I would like to emphasize that similar ideas have either already been established or are being lobbied here and in other European countries.
&lt;/p&gt;
&lt;p&gt;If you know the abbreviations in the title; keep an eye at these organizations or bills, investigate it well and make up your mind. Your own country will have similar organizations claiming to stand up for rights of artists, but in fact serve the interests of copyright-trolls and wealthy corporations even more.
&lt;/p&gt;
&lt;p&gt;What's the digital world you want to live in? I don't know all answers, but for sure it shouldn't be the big corporations defining it alone. A wonderful American document begins with &quot;We the people... &quot;. Let's make that true in the 21st century as well.
&lt;/p&gt;
&lt;p&gt;Ton Roosendaal&lt;br /&gt;Blender Foundation.
&lt;/p&gt;
&lt;p&gt;(Instead of blackening, i prefer to speak up today :)&lt;/p&gt;</description>
	<pubDate>Tue, 17 Jan 2012 19:36:00 +0000</pubDate>
</item>
<item>
	<title>Akkana Peck: Converting HTML pages into PDF</title>
	<guid isPermaLink="true">http://shallowsky.com/blog/programming/html-slides-to-pdf.html</guid>
	<link>http://shallowsky.com/blog/programming/html-slides-to-pdf.html</link>
	<description>&lt;p&gt;
I've long wanted a way of converting my HTML presentation slides to PDF.
Mostly because conference organizers tend to freak out at slides in any
format other than Open/Libre Office, Powerpoint or PDF. Too many times,
I've submitted a tarball of my slides and discovered they weren't even
listed on the conference site. (I ask you, in what way is a tarball
more difficult to deal with than an .odp file?) Slide-sharing websites
also have a limited set of formats they'll accept.
&lt;/p&gt;&lt;p&gt;
A year or so ago, I added screenshot capability to my webkit-based
 presentation program, 
&lt;a href=&quot;http://shallowsky.com/software/preso/&quot;&gt;Preso&lt;/a&gt;,
do &quot;screenshots&quot;, but I really needed PDF, not images.
&lt;/p&gt;&lt;p&gt;
Now, creating PDF from HTML shouldn't be that hard. Every browser has
a print function that can print to a PDF file. So why is it so hard
to create PDF from HTML in any kind of scriptable way?
&lt;/p&gt;&lt;p&gt;
After much searching and experimenting,
I finally found a Python code snippet that worked:
&lt;a href=&quot;http://notes.alexdong.com/xhtml-to-pdf-using-pyqt4-webkit-and-headless&quot;&gt;XHTML
to PDF using PyGTK4 Webkit&lt;/a&gt; from Alex Dong. It uses Python-Qt,
not GTK, so I can't integrate it into my Preso app, but that's okay --
a separate tool is just as good.
&lt;/p&gt;&lt;p&gt;
(I struggled to write an equivalent in PyGTK, but gave up due to the
complete lack of documentation of Python-Webkit-GTK, and not much
more for gtk.PrintOperation(). QWebView's documentation may not be
as complete as I'd like, but at least there is some.)

&lt;/p&gt;&lt;h3&gt;Printing from QtWebView to QPrinter&lt;/h3&gt;
&lt;p&gt;
Here are the important things I learned about QWebView from fiddling
around with Alex's code to adapt it to what I needed, which is
printing a list of pages to sequentially numbered files:
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;To print, you need to wait until the page has finished loading, 
  so connect a function to SIGNAL(&quot;loadFinished(bool)&quot;),
  then load(QUrl(url)).
&lt;/li&gt;&lt;li&gt;That loadFinished function remains registered, so as you load new
  pages, it will be called each time. So you can load() the next URL
  as the last step in your loadFinished callback.
&lt;/li&gt;&lt;li&gt;If you get confused about callbacks and connect more than one of
  them, bad things happen, and only the last page gets printed, or
  QApplication.exit() doesn't exit at all.
&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;
Things I learned about QPrinter():
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;All the examples I found online set the page size with lines like
  QPrinter.setPageSize(QPrinter.A4) or setPaperSize(QPrinter.A4)
  (setPageSize is apparently deprecated in favor of setPaperSize); but
&lt;/li&gt;&lt;li&gt;If you want to set a specific size, you can do that with a line like
  &lt;code&gt;QPrinter.setPaperSize(QSizeF(1024, 768), QPrinter.DevicePixel)&lt;/code&gt;
  The second argument (DevicePixel) is a 
  &lt;a href=&quot;http://doc.qt.nokia.com/4.7-snapshot/qprinter.html#Unit-enum&quot;&gt;unit,
  from this list&lt;/a&gt;.
&lt;/li&gt;&lt;li&gt;That line gives you the right aspect ratio. But if you think
  &quot;DevicePixels&quot; means the size will correspond to pixels in your browser
  window (just because the documentation says so), you're sadly mistaken.
&lt;/li&gt;&lt;li&gt;If you want a PDF page that actually corresponds to the size of your
  browser window, you can get it by calling QWebView.setZoomFactor(z)
  You'll have to experiment to find the right value of z;
  I found I needed about 1.24 if I wanted to capture my
  full 1366x768 slides, or exactly 2.0 if I wanted to restrict the
  saved PDF to only the 1024x758 part that shows up in the projector.
&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;
Anyway, it's a little hacky with that empirical zoom factor ... but it works!
The program is here: 
&lt;a href=&quot;http://shallowsky.com/software/presentation/qhtmlprint&quot;&gt;qhtmlprint:
convert HTML to PDF using Qt Webkit&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
And it does produce reasonable PDF, with the text properly vectorized,
not just raster screenshots of each page.

&lt;/p&gt;&lt;h3&gt;Printing the slides in the right order&lt;/h3&gt;
&lt;p&gt;
Terrific -- now I can feed a list of slides to qhtmlprint and get a
bunch of PDF files back. How do I print the right slides?
&lt;/p&gt;&lt;p&gt;
My slides are listed in order in an array inside a Javascript file,
one per line.
If I &lt;code&gt;grep .html navigate.js&lt;/code&gt;, I get a list like this:
&lt;/p&gt;&lt;pre wrap=&quot;wrap&quot;&gt;    &quot;arduino.html&quot;,
    &quot;img.html?pix/arduinos/arduino-clones.jpg&quot;,
    &quot;getting_started.html&quot;,
    &quot;img.html?pix/projects/led.jpg&quot;,
    //&quot;blink.html&quot;,
    &quot;arduino-ide.html&quot;,
&lt;/pre&gt;
&lt;p&gt;
To pass that to qhtmlprint, I only need to remove the commented-out lines
(the ones with //) and strip off the quotes and commas. I can do that
all in one command with a grep and sed pipeline:

&lt;/p&gt;&lt;pre wrap=&quot;wrap&quot;&gt;qhtmlprint ` fgrep .html navigate.js  | grep -v // | sed -e 's/&quot;,/&quot;/' -e 's/&quot;//g' `
&lt;/pre&gt;

&lt;p&gt;
And voiaà! I have a bunch of fileNNN.pdf files.

&lt;/p&gt;&lt;h3&gt;Creating a multi-page slide deck&lt;/h3&gt;
&lt;p&gt;
Okay, great! Now how do I stick those files all together into one
slide deck I can submit to conference organizers?

&lt;/p&gt;&lt;p&gt;
That part's easy -- Ghostscript can do it.

&lt;/p&gt;&lt;pre wrap=&quot;wrap&quot;&gt;gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=slidedeck.pdf -dBATCH file*.pdf
&lt;/pre&gt;

&lt;p&gt;
And now &lt;i&gt;slidedeck.pdf&lt;/i&gt; contains my whole presentation, ready to go.&lt;/p&gt;</description>
	<pubDate>Tue, 17 Jan 2012 19:30:21 +0000</pubDate>
</item>
<item>
	<title>Richard Hughes: New developments in the color management world</title>
	<guid isPermaLink="false">http://blogs.gnome.org/hughsie/?p=565</guid>
	<link>http://blogs.gnome.org/hughsie/2012/01/17/new-developments-in-color-management-world/</link>
	<description>&lt;p&gt;My work in color management has been bubbling away in the background, and new features are being added slowly and carefully.&lt;/p&gt;
&lt;p&gt;One small, but nice feature is the new &lt;a href=&quot;https://gitorious.org/colord/master/blobs/master/doc/metadata-spec.txt&quot;&gt;metadata tags&lt;/a&gt; that I’ve been standardising with Florian Höch and others. Of these, &lt;em&gt;MAPPING_device_id&lt;/em&gt; is probably most interesting. This is a key that is automatically stored in the binary ICC profile itself, and stores the &lt;a href=&quot;https://gitorious.org/colord/master/blobs/master/doc/device-and-profile-naming-spec.txt&quot;&gt;device ID&lt;/a&gt; of the device that it was created for. This means if you re-install the system, or email the profile file to someone with identical hardware, it automatically gets added as the default profile, unless you’ve manually set the device to something better.&lt;/p&gt;
&lt;p&gt;From a security point of view, the colord daemon is no longer being ran as root, and instead uses a private group. Most of the work was done by Vincent Untz and the OpenSuse security team, but a few Ubuntu guys helped too and now we can worry less about random library vulnerabilities affecting us.&lt;/p&gt;
&lt;p&gt;Benedikt Morbach also switched colord to optionally use a systemd service file, which will allow us to do some cool things in the future with regard to preventing network access, respawning on failure and that kind of thing.&lt;/p&gt;
&lt;p&gt;So slowly but surely, we’re increasing the number of things that “just work” and updating colord to use a few best practices and the latest technologies. For the future, I’m looking at a wayland extension for full screen color management using a GLSL shader, but that’s some time away before it’ll be really useful, and allow us to simplify color management for applications even more by putting all the heavy lifting in toolkits.&lt;/p&gt;
&lt;p&gt;… so we’re getting there. &lt;img alt=&quot;:)&quot; class=&quot;wp-smiley&quot; src=&quot;http://blogs.gnome.org/hughsie/wp-content/mu-plugins/tango-smilies/tango/face-smile.png&quot; /&gt; &lt;/p&gt;</description>
	<pubDate>Tue, 17 Jan 2012 09:10:34 +0000</pubDate>
</item>
<item>
	<title>Máirín Duffy: Announcing Fedora Packages (and Fedora Tagger!)</title>
	<guid isPermaLink="false">http://blog.linuxgrrl.com/?p=3503</guid>
	<link>http://blog.linuxgrrl.com/2012/01/16/announcing-fedora-packages-and-fedora-tagger/</link>
	<description>&lt;p&gt;&lt;a href=&quot;https://community.dev.fedoraproject.org/packages/&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-3504&quot; height=&quot;86&quot; src=&quot;http://blog.linuxgrrl.com/wp-content/uploads/2012/01/logo.png&quot; title=&quot;logo&quot; width=&quot;167&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://community.dev.fedoraproject.org/packages/&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-large wp-image-3505&quot; src=&quot;http://blog.linuxgrrl.com/wp-content/uploads/2012/01/packages-frontpage-1024x603.png&quot; style=&quot;border: 1px solid #444 !important;&quot; title=&quot;packages-frontpage&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;em style=&quot;font-size: small;&quot;&gt;Screenshot, front page of Fedora Packages&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;The story up ’till now&lt;/h2&gt;
&lt;p&gt;You might remember some earlier posts I’ve made about &lt;a href=&quot;http://blog.linuxgrrl.com/2011/07/29/fedora-package-social-networking/&quot;&gt;Fedora package social networking&lt;/a&gt;. The background here is that we built &lt;a href=&quot;http://admin.fedoraproject.org/community&quot;&gt;a web application called Fedora Community&lt;/a&gt; a couple of years ago. With &lt;a href=&quot;http://luya.fedorapeople.org/&quot;&gt;Luya Tshimbalanga’s&lt;/a&gt; help, I ran &lt;a href=&quot;http://fedoraproject.org/wiki/FedoraCommunity/UsabilityTestingRound1&quot;&gt;a number of usability tests on this initial version&lt;/a&gt; at FUDcon Toronto. &lt;a href=&quot;http://fedoraproject.org/wiki/FedoraCommunity/UsabilityTestingRound1/AnalysisAndTakeaways&quot;&gt;The results&lt;/a&gt; pointed out some key problems that over the past couple of years have definitely negatively impacted user adoption, including slow search and loading times. &lt;/p&gt;
&lt;p&gt;Late this summer &lt;a href=&quot;http://lewk.org/blog&quot;&gt;Luke Macken&lt;/a&gt;, &lt;a href=&quot;http://www.j5live.com/&quot;&gt;John Palmieri&lt;/a&gt;, &lt;a href=&quot;http://spot.livejournal.com/Spot&quot;&gt;Spot&lt;/a&gt;, and myself &lt;a href=&quot;http://blog.linuxgrrl.com/2011/07/20/fedora-community-the-app-update/&quot;&gt;went through those all of those issues and formulated  a plan to try again and build a better application for package maintainers&lt;/a&gt;. We launched a beta version at &lt;a href=&quot;http://fedoraproject.org/wiki/FUDCon:Blacksburg_2012&quot;&gt;FUDcon Blacksburg&lt;/a&gt; this past Saturday, and it’s called &lt;a href=&quot;https://community.dev.fedoraproject.org/packages/&quot;&gt;&lt;strong&gt;Fedora Packages&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;We wanted to build only the most core functionality and keep things very light and speedy&lt;/strong&gt;, being overly cautious towards adding features beyond the initial core to avoid &lt;a href=&quot;http://blog.linuxgrrl.com/2011/07/20/fedora-community-the-app-update/&quot;&gt;the problems we ran into with the first version&lt;/a&gt;. I want to emphasize this because  &lt;a href=&quot;http://blog.linuxgrrl.com/2011/07/29/fedora-package-social-networking/#comments&quot;&gt;a lot of you provided great suggestions for functionality&lt;/a&gt; but we decided to focus just on the core functionality for now and have planned to work on several of your suggestions in future releases.&lt;/p&gt;
&lt;h2&gt;Fedora Packages&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://community.dev.fedoraproject.org/packages/inkscape&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-medium wp-image-3512&quot; src=&quot;http://blog.linuxgrrl.com/wp-content/uploads/2012/01/packges-profile.png&quot; style=&quot;border: 1px solid #444 !important;&quot; title=&quot;packges-profile&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;em style=&quot;font-size: small;&quot;&gt;Screenshot, front page of Inkscape’s profile&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;You can think of Fedora Packages like a social networking system, where instead of profiles of people, you’ll find profiles of packages. We load the &lt;strong&gt;package’s icon&lt;/strong&gt; in the upper left. Right now, we just load the icon if we have it, and if it’s too low-resolution, we blow it up. For some packages like &lt;a href=&quot;https://community.dev.fedoraproject.org/packages/clonekeen&quot;&gt;clonekeen&lt;/a&gt;, this looks pretty awesome but for others, not so much. We very much appreciated your suggestions on &lt;a href=&quot;http://blog.linuxgrrl.com/2011/11/10/package-categories-what-do-you-think/&quot;&gt;an earlier blog post about package categories and how to display icons for packages that don’t have icons or high-quality icons&lt;/a&gt;, but again in keeping with our focus on the core and having something ready for you to check out by &lt;a href=&quot;http://fedoraproject.org/wiki/FUDCon:Blacksburg_2012&quot;&gt;FUDcon Blacksburg&lt;/a&gt;, we decided to shelve that for now and focus on higher-priority features like optimizing our searches.&lt;/p&gt;
&lt;p&gt;We also display basic details in the left sidebar such as like the &lt;strong&gt;latest version of the package in Fedora&lt;/strong&gt;, the &lt;strong&gt;package owner&lt;/strong&gt;, any &lt;strong&gt;packages in its family tree&lt;/strong&gt;, and these pieces of information persist across the package’s profile tabs.&lt;/p&gt;
&lt;p&gt;The front overview page shows the description of the package, what versions of the package are in what Fedora and/or EPEL releases, and a link to the upstream. I am hoping that in the next cut we can &lt;a href=&quot;http://blog.linuxgrrl.com/2011/07/29/fedora-package-social-networking/#comment-5760&quot;&gt;work with Vincent and the OpenSuSE folks on extending our upstream metadata&lt;/a&gt;; Luke has some ideas on this as well (more on that later.)&lt;/p&gt;
&lt;p&gt;One core piece of functionality we definitely heard loud and clear from your feedback on &lt;a href=&quot;http://admin.fedoraproject.org/community&quot;&gt;Fedora Community&lt;/a&gt;, including during the &lt;a href=&quot;http://fedoraproject.org/wiki/FedoraCommunity/UsabilityTestingRound1/AnalysisAndTakeaways&quot;&gt;FUDcon Toronto usability tests&lt;/a&gt;, was that the Fedora Community URL structure was complicated and made it difficult to go directly to the page you wanted. With Fedora packages, you need only append the name of the package you are interested in after the /packages/ portion of the URL and it will take you straight there. You can go directly to a particular tab of the package profile by appending the name of the tab after the package name portion of the URL (for example, https://community.dev.fedoraproject.org/packages/inkscape/bugs to go to the Inkscape bugs tab.)&lt;/p&gt;
&lt;h3&gt;Some new goodies: Patch Viewer and Contents Viewer&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://community.dev.fedoraproject.org/packages/inkscape/&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-3514&quot; src=&quot;http://blog.linuxgrrl.com/wp-content/uploads/2012/01/packages-better-patch-viewer.png&quot; style=&quot;border: 1px solid #444 !important;&quot; title=&quot;packages-better-patch-viewer&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;em style=&quot;font-size: small;&quot;&gt;Fedora Packages’ patch viewer&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;You may recognize some of the tabs in Fedora Packages – both the builds and updates tabs are widgets Luke and J5 had built for &lt;a href=&quot;http://admin.fedoraproject.org/community&quot;&gt;Fedora Community&lt;/a&gt;. They have been cleaned up and optimized for inclusion here. We put some new goodies for you to work with as well.&lt;/p&gt;
&lt;p&gt;Luke worked with me on the patch viewer, which not only gives you a full listing of all Fedora patches against any given patch with the committer and commit date, but also lets you view a diffstat per patch as well as across all patches for the package. You can also view the full content of the patches with code syntax highlighting inline in the page.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.linuxgrrl.com/wp-content/uploads/2012/01/packges-patchviewer.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-3515&quot; src=&quot;http://blog.linuxgrrl.com/wp-content/uploads/2012/01/packges-patchviewer.png&quot; style=&quot;border: 1px solid #444 !important;&quot; title=&quot;packges-patchviewer&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;em style=&quot;font-size: small;&quot;&gt;Expanded view on a patch from Fedora Packages’ patch viewer&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;J5 worked on the package contents tab, which displays the contents of the RPM binary for the package (see screenshot below.)&lt;/p&gt;
&lt;p&gt;There are of course more nooks and crannies of useful information in each package profile: please &lt;a href=&quot;https://community.dev.fedoraproject.org/packages/&quot;&gt;try Fedora Packages out&lt;/a&gt; and let us know what you think!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://community.dev.fedoraproject.org/packages/&quot; style=&quot;font-size: x-large; font-weight: 900;&quot;&gt;http://community.dev.fedoraproject.org/packages/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://community.dev.fedoraproject.org/packages/inkscape/contents/g&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-3516&quot; src=&quot;http://blog.linuxgrrl.com/wp-content/uploads/2012/01/packages-contents.png&quot; style=&quot;border: 1px solid #444 !important;&quot; title=&quot;packages-contents&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;em style=&quot;font-size: small;&quot;&gt;Inkscape’s contents tab in Fedora Packages&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Optimized search via playing games: Fedora Tagger&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://community.dev.fedoraproject.org/packages/s/nautilus&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-3517&quot; src=&quot;http://blog.linuxgrrl.com/wp-content/uploads/2012/01/packages-searchresults.png&quot; style=&quot;border: 1px solid #444 !important;&quot; title=&quot;packages-searchresults&quot; width=&quot;600px&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;em style=&quot;font-size: small;&quot;&gt;Fedora Packages search results for ‘email’&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;So how did we get our search to work so quickly this time, and how are we getting better search results?&lt;/p&gt;
&lt;p&gt;Luke did a lot of research on how to best improve our search and concluded that the GPL-licensed &lt;a href=&quot;http://xapian.org/&quot;&gt;Xapian Open Source Search Engine Library&lt;/a&gt; was the way to do it. Xapian searches package names, summaries, descriptions, and tags, and it shold weight the search results in the following manner (although John is still tweaking it, and I’m not 100% sure where tags are in the ordering):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;If the search term(s) appear in the package name.&lt;/li&gt;
&lt;li&gt;If the search term(s) appear in the package tags.&lt;/li&gt;
&lt;li&gt;If the search term(s) appear in the package summary.&lt;/li&gt;
&lt;li&gt;If the search term(s) appear in the package description.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;“Where do the tags come from, though?” you might ask. Good question! &lt;img alt=&quot;:)&quot; class=&quot;wp-smiley&quot; src=&quot;http://blog.linuxgrrl.com/wp-includes/images/smilies/icon_smile.gif&quot; /&gt;  &lt;a href=&quot;http://admin.fedoraproject.org/pkgdb&quot;&gt;Fedora PackageDB&lt;/a&gt; has a tagging system and yum is able to access those tags, so Ralph Bean pre-populated the Xapian index with the tags from &lt;a href=&quot;http://admin.fedoraproject.org/pkgdb&quot;&gt;Fedora PackageDB&lt;/a&gt;. Not all packages in PackageDB have tags, though. What to do?&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://community.dev.fedoraproject.org/tagger/&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-3522&quot; src=&quot;http://blog.linuxgrrl.com/wp-content/uploads/2012/01/tagger.png&quot; title=&quot;tagger&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em style=&quot;font-size: small;&quot;&gt;Fedora Tagger&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Well, Spot had this great idea for us to build a game that would let you both add tags to packages in Fedora as well as vote up or down those tags added by others, and win points (and hopefully soon badges – more on that later) for your efforts. It was a stretch goal for us because we really weren’t sure if we’d have Fedora Packages up and running in a development environment and all the core features ready in time – time was very short, especially with the Christmas holiday break – but we managed to pull it together with J5′s initial javascript prototype and a Herculean effort by &lt;a href=&quot;http://threebean.wordpress.com/&quot;&gt;Ralph Bean&lt;/a&gt;, who not only got the basic game mechanics and prototype in tip-top shape but who also implemented gravatar icon support, a leader board, and even vim keybindings! &lt;/p&gt;
&lt;p&gt;Other features include a naughty-words filter (no, Tagger is not a dumping ground for your drama &lt;img alt=&quot;:)&quot; class=&quot;wp-smiley&quot; src=&quot;http://blog.linuxgrrl.com/wp-includes/images/smilies/icon_smile.gif&quot; /&gt;  ) and anonymous tag voting, although you can’t add tags if you are anonymous. &lt;a href=&quot;http://community.dev.fedoraproject.org/tagger/&quot;&gt;Log in and try Tagger&lt;/a&gt;, and let us know what you think!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://community.dev.fedoraproject.org/tagger/&quot; style=&quot;font-size: x-large; font-weight: 900;&quot;&gt;http://community.dev.fedoraproject.org/tagger/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.linuxgrrl.com/wp-content/uploads/2012/01/whiteboard1.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-3523&quot; src=&quot;http://blog.linuxgrrl.com/wp-content/uploads/2012/01/whiteboard1.png&quot; style=&quot;border: 1px solid #444 !important;&quot; title=&quot;whiteboard1&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em style=&quot;font-size: small;&quot;&gt;Planning whiteboard for Fedora Packages and Fedora Tagger&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Where we go from here&lt;/h2&gt;
&lt;p&gt;Our FUDcon presentation, “Making Fedora Package Maintenance Easier”, was (thankfully! phew!) given to a completely full room and the initial reception seemed to be very positive. Here’s a rundown of the comments and feedback we got during the session from those that attended:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/mairin/6711022021/&quot; title=&quot;IMG_9029 by momomomo, on Flickr&quot;&gt;&lt;img alt=&quot;IMG_9029&quot; height=&quot;500&quot; src=&quot;http://farm8.staticflickr.com/7002/6711022021_bf120ac50d.jpg&quot; width=&quot;333&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;em style=&quot;font-size: small;&quot;&gt;Colin explaining his upstream package metadata ideas&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Would it be possible to show which patches were sent upstream and are pending, which were refused by upstream, and which have not yet been submitted?&lt;/strong&gt; (Colin Walters &amp;amp; Nathaniel McCallum)
&lt;ul&gt;
&lt;li&gt;One proposed solution during the discussion was to create additional rules/regulations for package maintainers to note this information in their package commits. This was noted to be an extra burden on maintainers, though.&lt;/li&gt;
&lt;li&gt;Another proposed solution that Luke has been looking into is called DOAP files.&lt;/li&gt;
&lt;li&gt;Colin noted that he was upset when people fix bugs downstream in code he is the upstream for and don’t even let him know about it. He ends up putting time into fixing bugs that have already been fixed because he just didn’t know.&lt;/li&gt;
&lt;li&gt;Both Nathaniel and Casey Dahlin noted that there is some functionality available in git where it can tell you if your lines of code from a patch is available in a given repo.&lt;/li&gt;
&lt;li&gt;Nathaniel suggested adding something to the DOAP files, such that whenever someone builds a patch and commits it, it would automatically notify upstream. Spot noted that there are quite a few patches that are not suitable for upstream and wouldn’t be useful to them because they are Fedora-specific. He suggested noting the upstream contact on the page of each package. Ben Boeckel suggested that maybe Fedora-specific packages could start with numbers in the 1,000 range, but Spot thought the kernel maintainers wouldn’t like that very much.&lt;/li&gt;
&lt;li&gt;Ben also mentioned an upstream version checker called ‘fever.’ Spot noted that Luke has been investigating its inclusion and it’s now called cnucnu. (&lt;a href=&quot;http://fedoraproject.org/wiki/Upstream_release_monitoring&quot;&gt;More details on the Fedora wiki&lt;/a&gt;.)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cool, this is like &lt;a href=&quot;https://extensions.gnome.org/&quot;&gt;extensions.gnome.org&lt;/a&gt; for Fedora!&lt;/strong&gt; (Paul Frields)
&lt;ul&gt;
&lt;li&gt;It’s not a store, though (Spot)&lt;/li&gt;
&lt;li&gt;With a few small tweaks–filtering down to apps only, and adding a install button–we could build a separate app like that using this codebase, though. (J5)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What about screenshots?&lt;/strong&gt; (Rahul Sundaram)
&lt;ul&gt;
&lt;li&gt;We don’t have auth on the site, so we couldn’t let users upload screenshots. (Spot)&lt;/li&gt;
&lt;li&gt;Maybe we could set up a separate service to allow that. (J5)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Can yum use the tags? Can other applications use the tags?&lt;/strong&gt; (Kevin Fenzi)
&lt;ul&gt;
&lt;li&gt;Yum already uses tags from PackageDB … (lmacken)&lt;/li&gt;
&lt;li&gt;Maybe we could get rid of the extraneous pkgdb stuff so we don’t have duplicate / separate functionality (Toshio)&lt;/li&gt;
&lt;li&gt;What about using the tags in the package spec files? (Colin)&lt;/li&gt;
&lt;li&gt;We could take the tag cloud that we generate… if the tag achieves a certain amount of weight, we could take those tags with those mappings and use in the GNOME shell search logistics.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Is there a JSON API for this?&lt;/strong&gt; (Casey Dahlin)
&lt;ul&gt;
&lt;li&gt;It’s definitely do-able since it’s built using TurboGears (lmacken)&lt;/li&gt;
&lt;li&gt;Actually, I think it’s not documented yet but you could go to the connectors directory directly. (J5)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Could we use this to better document specs?&lt;/strong&gt; (Toshio)
&lt;ul&gt;
&lt;li&gt;Toshio had the idea of looking at adding the ability to annotate spec files. There was a project proposal to do this through the Google Summer of Code; the Django project documentation does it now, where you can comment on specific chunks/parts of the documentation rather than leave comments in a generic area. What if we added that ability to specs, so maintainers could document their specs when asked questions to new packagers they were mentoring? We could have a toggle to turn them on or off. The challenge is that we don’t have auth in Fedora Packages – maybe we could get around that by having the maintainer receive patches to the spec file with annotation via bugzilla?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/mairin/6711022361/&quot; title=&quot;IMG_9031 by momomomo, on Flickr&quot;&gt;&lt;img alt=&quot;IMG_9031&quot; height=&quot;333&quot; src=&quot;http://farm8.staticflickr.com/7166/6711022361_70cd831a2b.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;em style=&quot;font-size: small;&quot;&gt;Spot showing off Tagger&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Some ideas we discussed adding, but have held back thus far because of our committment to implement the core first:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Full package description text available in tagger&lt;/strong&gt; – We noticed while playing Tagger that there were many packages we had never heard of and we opened up new browser tabs to do research on them in Fedora Packager. It would be more streamlined to display the package description and upstream link right in Tagger (upon request, after clicking ‘more details’) to save time and effort.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mozilla Badge Support&lt;/strong&gt; – &lt;a href=&quot;https://wiki.mozilla.org/Badges&quot;&gt;Mozilla’s Open Badges Project&lt;/a&gt; is something we could deploy to reward folks submitting tags and voting on tags in Tagger, as well as a way of rewarding our package maintainers and other Fedora contributors.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PackageKit integration&lt;/strong&gt; – We could provide an API for PackageKit to use Fedora Packages and its optimized search results for returning package data rather than querying yum for this information. One advantage to this approach is that PackageKit could get the icons from Fedora Packages, even for packages not already installed on the system.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GNOME Shell integration&lt;/strong&gt; – As mentioned earlier, the idea came up to allow GNOME shell to access the optimized search including tags to display appropraite applications directly in the shell.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A query language&lt;/strong&gt; – We could implement a query language for the search to make it even more efficient to find what you are looking for.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Subpackage display in search results&lt;/strong&gt; – This is a minor bug, but right now if your search terms match a subpackage, we display both the subpackage, its parent, and all of its sublings. We should only be displaying the subpackage(s) that match the search terms and its parent.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Newly-added tags don’t display on the package card right away in tagger&lt;/strong&gt; – another minor bug we can address.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improved linkage to bugs mentioned in spec files and patches&lt;/strong&gt; – we have some links working now, but folks aren’t incredibly consistent with how they refer to bug numbers in their commit messages and comments so we missed a few.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Diffs between versions for spec files&lt;/strong&gt; – is this something you’d be interested in seeing?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Diffs between the spec and its patches&lt;/strong&gt; – this could show if you’re carrying patches for a package that aren’t even referenced in your spec (I think we saw a few instances of this too.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Interaction with the Fedora system accessing Fedora Packages&lt;/strong&gt; – we talked about possibly having an icon or notification on a package’s profile if we detected that you have it installed, or if you have it installed and there’s an update available for your version. (In the released versions table we could even highlight your release.) We could also pre-populate the release dropdown filters across the UI with your current version. For updates, it might be cool to show which ones you have installed and allow you to easily given them karma.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Default or not?&lt;/strong&gt; – some kind of indication on a package profile to show whether or not it is installed by default.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Timestamp the screens&lt;/strong&gt; – we could display a timestamp on each page of packages… since we’re working from cached data.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Subpackage versions bug&lt;/strong&gt; – right now we give subpackages the same version number as the parent even though they might not have the same version number as their parent, in active releases overview, might fall over in some edge cases on the relationships / contents tabs&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Off-site upstream summary link indicator&lt;/strong&gt; – this is a super-minor designery desire here, but I thought it would be nice to add an ‘offsite’ icon to indicate the upstream webpage links are outside of Fedora infrastructure (see &lt;a href=&quot;http://blog.linuxgrrl.com/2009/04/15/patterns-for-expressing-expansion-link-weights-in-web-applications/&quot;&gt;“Patterns for Expressing Expansion Link Weights in Web Applications”&lt;/a&gt; and &lt;a href=&quot;http://blog.linuxgrrl.com/2009/04/16/more-link-treatments/&quot;&gt;“More Link Treatments”&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Maintainer mail-to links&lt;/strong&gt; – Right now we don’t link the maintainer’s name, it’s just plain text. &lt;a href=&quot;http://blog.linuxgrrl.com/2011/07/29/fedora-package-social-networking/#comment-5806&quot;&gt;Pingou suggested that we use the maintainer alias email addresses&lt;/a&gt;. We also discussed potentially providing, in a panel that pops up when you hover over the maintainer’s name, showing their IRC nick, emailaddress, and buglist. We opted to not do anything yet because we wanted to see what you  might ask for here. What do you think?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alpha-sort subpackages list&lt;/strong&gt; – we don’t do this now I don’t think.&lt;/li&gt;
&lt;li&gt;&lt;strong style=&quot;color: red;&quot;&gt;[NEW]&lt;/strong&gt; &lt;strong&gt;Type-ahead in the searchbox&lt;/strong&gt; – (idea from CodeBlock) this would be especially awesome once you’re already at a package profile page because you won’t have to bounce to the front page, you can go directly to the page you want&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Summary &amp;amp; Where the Action is At&lt;/h2&gt;
&lt;p&gt;So we hopefully have provided Fedora package maintainers (and users? Maybe?) a better tool for managing information about packages this time. We now also have Tagger, which allows those of us (like me! &lt;img alt=&quot;:)&quot; class=&quot;wp-smiley&quot; src=&quot;http://blog.linuxgrrl.com/wp-includes/images/smilies/icon_smile.gif&quot; /&gt;  ) who are less technical but still want to help Fedora a way to contribute and learn more about what’s available in Fedora along the way.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.linuxgrrl.com/wp-content/uploads/2012/01/xteddy-4eva.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-3530&quot; src=&quot;http://blog.linuxgrrl.com/wp-content/uploads/2012/01/xteddy-4eva.png&quot; title=&quot;xteddy-4eva&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;em style=&quot;font-size: small;&quot;&gt;My life is now complete, and Tagger made it happen: I discovered xteddy!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I do think it was the right call to keep things as minimal as possible first. I think it left the slate open for a huge number of ideas (as you can see above) directly from you. We still have a lot further to go, though: your help, suggestions, and feedback all this time have of course been critical and we’ll need more. &lt;img alt=&quot;:)&quot; class=&quot;wp-smiley&quot; src=&quot;http://blog.linuxgrrl.com/wp-includes/images/smilies/icon_smile.gif&quot; /&gt;  If you’d like to get involved, here’s the rundown:&lt;/p&gt;
&lt;h3&gt;Fedora Packages&lt;/h3&gt;
&lt;table style=&quot;border: 0px; margin-bottom: 2em;&quot;&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;th style=&quot;text-align: right; vertical-align: top;&quot;&gt;URL&lt;/th&gt;
&lt;td style=&quot;vertical-align: top;&quot;&gt;&lt;a href=&quot;http://community.dev.fedoraproject.org/packages&quot;&gt;http://community.dev.fedoraproject.org/packages&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th style=&quot;text-align: right; vertical-align: top;&quot;&gt;Mockups&lt;/th&gt;
&lt;td style=&quot;vertical-align: top;&quot;&gt;&lt;a href=&quot;https://fedoraproject.org/wiki/Fedora_Packager&quot;&gt;http://community.dev.fedoraproject.org/packages&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th style=&quot;text-align: right; vertical-align: top;&quot;&gt;Bug Tracker&lt;/th&gt;
&lt;td style=&quot;vertical-align: top;&quot;&gt;&lt;a href=&quot;https://fedorahosted.org/fedoracommunity/&quot;&gt;https://fedorahosted.org/fedoracommunity/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th style=&quot;text-align: right; vertical-align: top;&quot;&gt;IRC&lt;/th&gt;
&lt;td style=&quot;vertical-align: top;&quot;&gt;#fedora-admin on irc.freenode.net&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th style=&quot;text-align: right; vertical-align: top;&quot;&gt;Mailing list&lt;/th&gt;
&lt;td style=&quot;vertical-align: top;&quot;&gt;&lt;a href=&quot;https://lists.fedoraproject.org/mailman/listinfo/infrastructure&quot;&gt;Fedora infrastructure list&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;Fedora Tagger&lt;/h3&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;th style=&quot;text-align: right; vertical-align: top;&quot;&gt;URL&lt;/th&gt;
&lt;td style=&quot;vertical-align: top;&quot;&gt;&lt;a href=&quot;http://community.dev.fedoraproject.org/tagger&quot;&gt;http://community.dev.fedoraproject.org/tagger&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th style=&quot;text-align: right; vertical-align: top;&quot;&gt;Bug Tracker&lt;/th&gt;
&lt;td style=&quot;vertical-align: top;&quot;&gt;&lt;a href=&quot;https://github.com/ralphbean/fedora-tagger/issues&quot;&gt;https://github.com/ralphbean/fedora-tagger/issues&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th style=&quot;text-align: right; vertical-align: top;&quot;&gt;IRC&lt;/th&gt;
&lt;td style=&quot;vertical-align: top;&quot;&gt;#fedora-admin on irc.freenode.net&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th style=&quot;text-align: right; vertical-align: top;&quot;&gt;Mailing list&lt;/th&gt;
&lt;td style=&quot;vertical-align: top;&quot;&gt;&lt;a href=&quot;https://lists.fedoraproject.org/mailman/listinfo/infrastructure&quot;&gt;Fedora infrastructure list&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h2&gt;Oh, what about that weird radioactive panda post?&lt;/h2&gt;
&lt;p&gt;Remember &lt;a href=&quot;http://blog.linuxgrrl.com/2012/01/13/beefy-has-a-beef/&quot;&gt;that weird hot-dog-seemingly-with-a-grudge-with-a-panda post&lt;/a&gt;? Well, &lt;a href=&quot;https://community.dev.fedoraproject.org/packages/lkjdslkdsgf&quot;&gt;check this out&lt;/a&gt; (it will get even cooler soon with Fotios’ parallax animation… heh, heh, heh.)&lt;/p&gt;
&lt;div id=&quot;diaspora-button-box&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;
			&lt;a&gt;&lt;div id=&quot;header_sharetodiaspora&quot; title=&quot;Share this at Diaspora!&quot;&gt;&lt;img src=&quot;http://blog.linuxgrrl.com/wp-content/plugins/burnmans-diaspora-button/images/diaspora-share-button.png&quot; /&gt;&lt;/div&gt;&lt;/a&gt;
		&lt;/div&gt;</description>
	<pubDate>Mon, 16 Jan 2012 23:44:34 +0000</pubDate>
</item>
<item>
	<title>Morevna Project: Migrating to Blender 2.61</title>
	<guid isPermaLink="false">http://morevnaproject.org/?p=721</guid>
	<link>http://morevnaproject.org/2012/01/15/migrating-to-blender-2-61/</link>
	<description>&lt;p&gt;Finally, we have started updating Morevna repository for Blender 2.61. As you might remember we have used 2.49 before and of course we have many issues during migration. At the same time we started ultimate rework of battlefield concept. Here’s a few WIPs:&lt;/p&gt;
&lt;div class=&quot;wp-caption alignnone&quot; id=&quot;attachment_723&quot; style=&quot;width: 310px;&quot;&gt;&lt;a href=&quot;http://download.tuxfamily.org/morevna/blog/2012/01/01.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;size-medium wp-image-723&quot; height=&quot;168&quot; src=&quot;http://download.tuxfamily.org/morevna/blog/2012/01/01-300x168.png&quot; title=&quot;01&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Shot 01&lt;/p&gt;&lt;/div&gt;
&lt;div class=&quot;wp-caption alignnone&quot; id=&quot;attachment_722&quot; style=&quot;width: 310px;&quot;&gt;&lt;a href=&quot;http://download.tuxfamily.org/morevna/blog/2012/01/007.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;size-medium wp-image-722&quot; height=&quot;168&quot; src=&quot;http://download.tuxfamily.org/morevna/blog/2012/01/007-300x168.jpg&quot; title=&quot;007&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Shot 07&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Special thanks for building models: &lt;a href=&quot;http://www.blendswap.com/3D-models/architecture/parseh-building/&quot; target=&quot;_blank&quot;&gt;Abolfazl Kanani&lt;/a&gt;, &lt;a href=&quot;http://www.blendswap.com/3D-models/architecture/apartmentbuilding/&quot; target=&quot;_blank&quot;&gt;cody glassman&lt;/a&gt;, &lt;a href=&quot;http://www.blendswap.com/3D-models/scenes/apartment-tower-floor/&quot; target=&quot;_blank&quot;&gt;Sebastian Erler&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;P.S. Updated blender packages are &lt;a href=&quot;http://morevnaproject.org/packages/&quot; title=&quot;Software&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
	<pubDate>Sun, 15 Jan 2012 14:43:33 +0000</pubDate>
</item>
<item>
	<title>Matt Ebb: Twitter: 2012-01-15</title>
	<guid isPermaLink="true">http://mattebb.com/weblog/twitter-2012-01-15/</guid>
	<link>http://mattebb.com/weblog/twitter-2012-01-15/</link>
	<description>&lt;ul class=&quot;aktt_tweet_digest&quot;&gt;
&lt;li&gt;Still have no film chemicals, so uploaded some digital shots of street art found around beyoglu, istanbul last november &lt;a href=&quot;http://t.co/R9aogu2v&quot; rel=&quot;nofollow&quot;&gt;http://t.co/R9aogu2v&lt;/a&gt; &lt;a class=&quot;aktt_tweet_time&quot; href=&quot;http://twitter.com/mattebb/statuses/158076941151379456&quot;&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;very pleased with @&lt;a class=&quot;aktt_username&quot; href=&quot;http://twitter.com/JamesJeanArt&quot;&gt;JamesJeanArt&lt;/a&gt; Rebus. impressive work, beautifully presented. our walls here seem to be lacking one of his prints moreso &lt;a class=&quot;aktt_tweet_time&quot; href=&quot;http://twitter.com/mattebb/statuses/158011715563421696&quot;&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;back to work, i wonder how busy it will get this time. &lt;a class=&quot;aktt_tweet_time&quot; href=&quot;http://twitter.com/mattebb/statuses/157071352426274816&quot;&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Super funky @&lt;a class=&quot;aktt_username&quot; href=&quot;http://twitter.com/MMkilimanjaro&quot;&gt;MMkilimanjaro&lt;/a&gt; – one of the most fun and energetic gigs I've been to in a while &lt;a href=&quot;http://t.co/2SKqcxnb&quot; rel=&quot;nofollow&quot;&gt;http://t.co/2SKqcxnb&lt;/a&gt; &lt;a class=&quot;aktt_tweet_time&quot; href=&quot;http://twitter.com/mattebb/statuses/156004681674539008&quot;&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;mountain mocha kilimanjaro tonight at #&lt;a class=&quot;aktt_hashtag&quot; href=&quot;http://search.twitter.com/search?q=%23sydfest&quot;&gt;sydfest&lt;/a&gt; bar! &lt;a href=&quot;http://t.co/rt6IPMrY&quot; rel=&quot;nofollow&quot;&gt;http://t.co/rt6IPMrY&lt;/a&gt; &lt;a class=&quot;aktt_tweet_time&quot; href=&quot;http://twitter.com/mattebb/statuses/155934839860756480&quot;&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
	<pubDate>Sat, 14 Jan 2012 16:31:00 +0000</pubDate>
</item>
<item>
	<title>Matt Ebb: beyoglu street art</title>
	<guid isPermaLink="false">http://mattebb.com/?p=775</guid>
	<link>http://mattebb.com/weblog/beyoglu-street-art/</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/mattebb/sets/72157628859863251/&quot;&gt;&lt;img alt=&quot;otoparki II&quot; height=&quot;500&quot; src=&quot;http://farm8.staticflickr.com/7006/6692915477_32f0219c6d.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
I’m still waiting to get some chemistry to process the 18 or so rolls of 120 film I took in Turkey last November. Until then, I’ve uploaded a collection of street art I saw and shot on digital around the Beyoglu area in Istanbul. It was a beautiful place to be hanging out, and I was impressed by the amount of burgeoning creativity.&lt;/p&gt;</description>
	<pubDate>Sat, 14 Jan 2012 06:40:12 +0000</pubDate>
</item>
<item>
	<title>Máirín Duffy: Beefy has a beef.</title>
	<guid isPermaLink="false">http://blog.linuxgrrl.com/?p=3494</guid>
	<link>http://blog.linuxgrrl.com/2012/01/13/beefy-has-a-beef/</link>
	<description>&lt;p&gt;I have seen a vision of the future, and this is what I saw:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://blog.linuxgrrl.com/wp-content/uploads/2012/01/ball.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Why would Beefy be targeting the panda with a laser gun? Why is the panda glowing green? How did this situation come about? What happens next?&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;we need your help&quot; src=&quot;http://i61.photobucket.com/albums/h58/mairinduffy/help-1.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Your mission!&lt;/h2&gt;
&lt;p&gt;It’s a contest. &lt;img alt=&quot;:)&quot; class=&quot;wp-smiley&quot; src=&quot;http://blog.linuxgrrl.com/wp-includes/images/smilies/icon_smile.gif&quot; /&gt;  Come up with the best story to go with this picture, and:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You’ll get to name the panda.&lt;/li&gt;
&lt;li&gt;Your story will be illustrated and used in a Fedora webapp’s error message pages (more on that tomorrow at FUDcon.  &lt;img alt=&quot;:)&quot; class=&quot;wp-smiley&quot; src=&quot;http://blog.linuxgrrl.com/wp-includes/images/smilies/icon_smile.gif&quot; /&gt;  )&lt;/li&gt;
&lt;li&gt;You will receive a &lt;strong&gt;LIMITED EDITION&lt;/strong&gt;, &lt;strong&gt;ONE-OF-A-KIND&lt;/strong&gt;, direct-to-garment printed Beefy Miracle and radioactive panda T-shirt, using the design of your choice from your story (or the design above.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Want to give it a shot? &lt;strong&gt;Submit your ideas in the comments below!&lt;/strong&gt;&lt;/p&gt;
&lt;div id=&quot;diaspora-button-box&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;
			&lt;a&gt;&lt;div id=&quot;header_sharetodiaspora&quot; title=&quot;Share this at Diaspora!&quot;&gt;&lt;img src=&quot;http://blog.linuxgrrl.com/wp-content/plugins/burnmans-diaspora-button/images/diaspora-share-button.png&quot; /&gt;&lt;/div&gt;&lt;/a&gt;
		&lt;/div&gt;</description>
	<pubDate>Fri, 13 Jan 2012 20:40:59 +0000</pubDate>
</item>
<item>
	<title>Blender Project: Blender E-store expands</title>
	<guid isPermaLink="true">http://feedproxy.google.com/~r/Blender3d/~3/gfxVJFGtmwU/</guid>
	<link>http://feedproxy.google.com/~r/Blender3d/~3/gfxVJFGtmwU/</link>
	<description>&lt;p&gt;The Blender E-store still is the main income source for Blender  Foundation, allowing to organize projects in Blender Institute and to  hire people for work on Blender (currently 3 developers and myself full-time).
&lt;/p&gt;
&lt;p&gt;Customers expect from a modern internet store more services than we provided until now though; especially doing faster and more often shipments. To achieve this, we need to expand our product catalog to get a bit higher volumes per shipment.
&lt;/p&gt;
&lt;p&gt;Per January 1st 2012 we now rent a second small office and storage  in the south of Netherlands (Budel) where our shop manager Anja  Vugts-Verstappen will be handling the orders, shipping and daily shop  support. 
&lt;/p&gt;
&lt;p&gt;Summarized, changes will be:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Shipping at least 3 times per week (monday, wednesday, friday)&lt;/li&gt;&lt;li&gt;More choice in shipping speed (courier, or free shipping, T.B.A.)&lt;/li&gt;&lt;li&gt;Shop open for third party DVD training, we added BlenderCookie titles now.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;http://www.blender3d.org/e-shop/default_dvds.php&quot; target=&quot;_blank&quot;&gt;http://www.blender3d.org/e-shop/default_dvds.php&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;Publishers interested to resell via our e-store as well can contact me any time!
&lt;/p&gt;
&lt;p&gt;-Ton- &lt;br /&gt; (ton at blender.org)&lt;/p&gt;</description>
	<pubDate>Fri, 13 Jan 2012 16:32:00 +0000</pubDate>
</item>
<item>
	<title>Tavmjong Bah: Tensor Meshes Revisited</title>
	<guid isPermaLink="true">http://tavmjong.free.fr/blog/?p=361</guid>
	<link>http://tavmjong.free.fr/blog/?p=361</link>
	<description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;When I first proposed adding meshes to the SVG standard the SVG working group looked at the question of Coons patch vs tensor patch meshes. A tensor patch adds four additional control points to a Coons patch. These control points influence how the color is spread inside the patch. The group decided that the added complexity of the tensor patch was not worth the benefit gain.  I am now revisiting this decision. In a previous blog I discussed the problems caused by a lack of smoothness across patch boundaries. At first it didn’t seem like having tensor control points would help but now I realize that in some limited cases they can be of great benefit.&lt;/p&gt;
&lt;p&gt;Consider the following four patch mesh:&lt;/p&gt;
&lt;div class=&quot;figure&quot;&gt;
&lt;img alt=&quot;A 2x2 patch mesh showing effect of lack of smoothness across boundaries.&quot; src=&quot;http://tavmjong.free.fr/blog/wp-content/uploads/MESH/mesh_cross.png&quot; /&gt;&lt;p&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt;A 2×2 Coons Patch mesh. The outer corner colors are black. The center corner is white.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;The first thing that one sees is a cross pattern. This is due to a lack of smoothness across the patch boundaries. In the following figure one can see the color profile for two of the patches that clearly illustrates the sharp change in the color derivative at the patch boundary.&lt;/p&gt;
&lt;div class=&quot;figure&quot;&gt;
&lt;img alt=&quot;A diagram of the color profile for two of the patches in the above mesh.&quot; src=&quot;http://tavmjong.free.fr/blog/wp-content/uploads/MESH/mesh_cross_diagram.png&quot; /&gt;&lt;p&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt;The color profile for two of the patches in the previous figure. The height of the surface is proportional to the white level. The red line illustrates the profile along a diagonal line in one of the patches. The blue line shows the required profile if the profile is to be rotationally symmetric around the center point.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;By moving the tensor mesh points it is possible to better approximate a rotationally symmetric profile around the center point, reducing the “cross” artifact.&lt;/p&gt;
&lt;div class=&quot;figure&quot;&gt;
&lt;img alt=&quot;A 2x2 patch mesh where tensor control points are used to smooth the color profile across patch boundaries.&quot; src=&quot;http://tavmjong.free.fr/blog/wp-content/uploads/MESH/mesh_cross_tensor.png&quot; /&gt;&lt;p&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt;Tensor control points have been used to smooth the color profile.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;It is not possible to completely remove the cross using tensor control points. One also still has a bright spot at the center point which is not what one wants when trying to illustrate a diffuse reflection of light off a curved surface. To get a smoother profile one needs to add more patches.&lt;/p&gt;
&lt;div class=&quot;figure&quot;&gt;
&lt;img alt=&quot;A 4x4 patch mesh with a smoother color profile.&quot; src=&quot;http://tavmjong.free.fr/blog/wp-content/uploads/MESH/mesh_cross_smoothed.png&quot; /&gt;&lt;p&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt;A 4×4 Coons patch mesh is used to produce a smoother color profile.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;So adding tensor control points is useful but is not a complete solution to smoothness. I still haven’t made up my mind about their cost/benefit value. Feedback would be appreciated.&lt;/p&gt;</description>
	<pubDate>Fri, 13 Jan 2012 12:58:06 +0000</pubDate>
</item>
<item>
	<title>Akkana Peck: HTML and Javascript Presentations</title>
	<guid isPermaLink="true">http://shallowsky.com/blog/speaking/html-preso.html</guid>
	<link>http://shallowsky.com/blog/speaking/html-preso.html</link>
	<description>&lt;p&gt;
When I give talks that need slides, I've been using my
&lt;a href=&quot;http://shallowsky.com/software/presentation/&quot;&gt;Slide
Presentations in HTML and JavaScript&lt;/a&gt; for many years.
I uploaded it in 2007 -- then left it there, without many updates.
&lt;/p&gt;&lt;p&gt;
But meanwhile, I've been giving lots of presentations, tweaking the code,
tweaking the CSS to make it display better. And every now and then I get
reminded that a few other people besides me are using this stuff.
&lt;/p&gt;&lt;p&gt;
For instance, around a year ago, I gave a talk where nearly all the
slides were just images. Silly to have to make a separate HTML file
to go with each image. Why not just have one file, img.html, that
can show different images? So I wrote some code that lets you go to
a URL like &lt;b&gt;img.html?pix/whizzyphoto.jpg&lt;/b&gt;, and it will display
it properly, and the Next and Previous slide links will still work.
&lt;/p&gt;&lt;p&gt;
Of course, I tweak this software mainly when I have a talk coming up.
I've been working lately on my SCALE talk, coming up on January 22:
&lt;a href=&quot;http://www.socallinuxexpo.org/scale10x/presentations/fun-linux-and-devices&quot;&gt;Fun
with Linux and Devices&lt;/a&gt; (be ready for some fun Arduino demos!)
Sometimes when I overload on talk preparation, I procrastinate
by hacking the software instead of the content of the actual talk.
So I've added some nice changes just in the past few weeks.
&lt;/p&gt;&lt;p&gt;
For instance, the speaker notes that remind me of where I am in
the talk and what's coming next. I didn't have any way to add notes on
image slides. But I need them on those slides, too -- so I added that.
&lt;/p&gt;&lt;p&gt;
Then I decided it was silly not to have some sort of automatic
reminder of what the next slide was. Why should I have to
put it in the speaker notes by hand? So that went in too.
&lt;/p&gt;&lt;p&gt;
And now I've done the less fun part -- collecting it all together and
documenting the new additions. So if you're using my HTML/JS slide
kit -- or if you think you might be interested in something like that
as an alternative to Powerpoint or Libre Office Presenter -- check
out the presentation I have explaining the package, including the
new features.
&lt;/p&gt;&lt;p&gt;
You can find it here:
&lt;a href=&quot;http://shallowsky.com/software/presentation/&quot;&gt;Slide
Presentations in HTML and JavaScript&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Fri, 13 Jan 2012 04:30:16 +0000</pubDate>
</item>
<item>
	<title>Morevna Project: Pencil packages update</title>
	<guid isPermaLink="false">http://morevnaproject.org/?p=717</guid>
	<link>http://morevnaproject.org/2012/01/12/pencil-packages-update-3/</link>
	<description>&lt;p&gt;Here’s another update for Pencil fixing few minor issues:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Blank keyframes are saved correctly now. &lt;a href=&quot;https://github.com/morevnaproject/pencil/issues/7&quot; target=&quot;_blank&quot;&gt;#7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fix Ctrl+Z keybinding not working under some circumstances.&lt;/li&gt;
&lt;li&gt;Fix some keybindings to be more conventional.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://morevnaproject.org/packages/#pencil&quot;&gt;&lt;strong&gt;Download now&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As usual, the source code can be found in &lt;a href=&quot;https://github.com/morevnaproject/pencil&quot; target=&quot;_blank&quot;&gt;this git repository&lt;/a&gt;. All changes are made against the Pencil SVN190.&lt;/p&gt;</description>
	<pubDate>Thu, 12 Jan 2012 13:16:10 +0000</pubDate>
</item>
<item>
	<title>Rawstudio project: RawSpeed Development Information Posted</title>
	<guid isPermaLink="true">http://rawstudio.org/blog/?p=885</guid>
	<link>http://rawstudio.org/blog/?p=885</link>
	<description>&lt;p&gt;I have written up some information on the RawSpeed decoder, and how it can be implemented.&lt;/p&gt;
&lt;p&gt;Here are links to the articles.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://rawstudio.org/blog/?p=800&quot;&gt;RawSpeed Developer Information&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://rawstudio.org/blog/?p=816&quot;&gt;Camera Definition File&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any additional areas you’d like to have covered, or have any questions, just leave a comment, and I will try to address it.&lt;/p&gt;</description>
	<pubDate>Thu, 12 Jan 2012 09:55:19 +0000</pubDate>
</item>
<item>
	<title>Alessandro Rimoldi: Blog / Scribus and the dockable palettes</title>
	<guid isPermaLink="true">http://www.graphicslab.org/Blog/Scribus-dockable-palettes?when=2012-01-11T20:11:27Z</guid>
	<link>http://www.graphicslab.org/Blog/Scribus-dockable-palettes?when=2012-01-11T20:11:27Z</link>
	<description>&lt;p&gt;If the new year has brought us the shiny new Scribus 1.4 we all have been waiting for for so long, we shouldn't forget the bigger and smaller improvements we already had at the end of 2011 in Scribus 1.5.
&lt;/p&gt;
&lt;p class=&quot;vspace&quot;&gt;Franz has built upon Jean's efforts and has checked that all palettes can be docked to the side of the window!
&lt;/p&gt;
&lt;div class=&quot;vspace&quot;&gt;&lt;/div&gt;&lt;div&gt;&lt;img alt=&quot;&quot; src=&quot;http://graphicslab.org/upload//Blog/Scribus-dockable/Scribus-dockable.png&quot; title=&quot;&quot; /&gt;&lt;/div&gt;
&lt;p class=&quot;vspace&quot;&gt;I'm still not 100% that this is a useful feature, but who cares: now, one can stack the palettes in docked tabs! Hurrah!
&lt;/p&gt;
&lt;p class=&quot;vspace&quot;&gt;Now, we only have to wait that the code of the Properties palettes is ready for the long awaited redesign!
&lt;/p&gt;
&lt;div class=&quot;vspace&quot;&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 11 Jan 2012 19:57:00 +0000</pubDate>
</item>
<item>
	<title>Yorik van Havre: Axes systems in FreeCAD</title>
	<guid isPermaLink="true">http://yorik.uncreated.net/guestblog.php?2012=13</guid>
	<link>http://yorik.uncreated.net/guestblog.php?2012=13</link>
	<description>I more or less finished an axes system for the Arch module. It is a  simple, 1-dimension axes system. You can specify the length of the axes, the size of the numbering bubble, and the numbering style (1,2,3,... or A,B,C, etc. Several styles available) directly via the properties. Then, via edit mode (double-clicking on...</description>
	<pubDate>Tue, 10 Jan 2012 20:29:50 +0000</pubDate>
</item>
<item>
	<title>Yorik van Havre: Análise do projeto nova luz</title>
	<guid isPermaLink="true">http://yorik.uncreated.net/guestblog.php?2012=7</guid>
	<link>http://yorik.uncreated.net/guestblog.php?2012=7</link>
	<description>Tem no momento várias controversas em volta do projeto Nova Luz, no centro de São Paulo. 
O projeto visa a reformar um grande pedaço do centro, entre a Santa Ifigênia e a Luz, 
que é considerada uma região com potencial sub-aproveitado, isso é, que é importante 
porque é no centro, e poderia ajudar a redinamizar...</description>
	<pubDate>Mon, 09 Jan 2012 15:59:25 +0000</pubDate>
</item>
<item>
	<title>Akkana Peck: Parsing HTML in Python</title>
	<guid isPermaLink="true">http://shallowsky.com/blog/programming/parsing-html-python.html</guid>
	<link>http://shallowsky.com/blog/programming/parsing-html-python.html</link>
	<description>&lt;p&gt;
I've been having (mis)adventures learning about Python's various
options for parsing HTML.
&lt;/p&gt;&lt;p&gt;
Up until now, I've avoided doing any HTMl parsing
in my RSS reader &lt;a href=&quot;http://shallowsky.com/software/feedme/&quot;&gt;FeedMe&lt;/a&gt;.
I use regular expressions to find the places where content starts and
ends, and to screen out content like advertising, and to rewrite links.
Using regexps on HTML is generally considered to be a no-no, but it
didn't seem worth parsing the whole document just for those modest goals.
&lt;/p&gt;&lt;p&gt;
But I've long wanted to add support for downloading images, so you
could view the downloaded pages with their embedded images if you so chose.
That means not only identifying img tags and extracting their &lt;code&gt;src&lt;/code&gt;
attributes, but also rewriting the img tag afterward to point to the
locally stored image. It was time to learn how to parse HTML.
&lt;/p&gt;&lt;p&gt;
Since I'm forever seeing people flamed on the #python IRC channel for
using regexps on HTML, I figured real HTML parsing must be straightforward.
A quick web search led me to 
&lt;a href=&quot;http://docs.python.org/library/htmlparser.html&quot;&gt;Python's built-in 
HTMLParser class.&lt;/a&gt; It comes with a nice example for how to use it:
define a class that inherits from HTMLParser, then define
some functions it can call for things like handle_starttag and
handle_endtag; then call self.feed(). Something like this:

&lt;/p&gt;&lt;pre wrap=&quot;wrap&quot;&gt;from HTMLParser import HTMLParser

class MyFancyHTMLParser(HTMLParser):
  def fetch_url(self, url) :
    request = urllib2.Request(url)
    response = urllib2.urlopen(request)
    link = response.geturl()
    html = response.read()
    response.close()
    self.feed(html)   # feed() starts the HTMLParser parsing

  def handle_starttag(self, tag, attrs):
    if tag == 'img' :
      # attrs is a list of tuples, (attribute, value)
      srcindex = self.has_attr('src', attrs)
      if srcindex &amp;lt; 0 :
        return   # img with no src tag? skip it
      src = attrs[srcindex][1]
      # Make relative URLs absolute
      src = self.make_absolute(src)
      attrs[srcindex] = (attrs[srcindex][0], src)

    print '&amp;lt;' + tag
    for attr in attrs :
      print ' ' + attr[0]
      if len(attr) &amp;gt; 1 and type(attr[1]) == 'str' :
        # make sure attr[1] doesn't have any embedded double-quotes
        val = attr[1].replace('&quot;', '\&quot;')
        print '=&quot;' + val + '&quot;')
    print '&amp;gt;'

  def handle_endtag(self, tag):
    self.outfile.write('&amp;lt;/' + tag.encode(self.encoding) + '&amp;gt;\n')
&lt;/pre&gt;

&lt;p&gt;
Easy, right? Of course there are a lot more details, but the
basics are simple.
&lt;/p&gt;&lt;p&gt;
I coded it up and it didn't take long to get it downloading images
and changing img tags to point to them. Woohoo!
Whee!

&lt;/p&gt;&lt;h3&gt;The bad news about HTMLParser&lt;/h3&gt;
&lt;p&gt;
Except ... after using it a few days, I was hitting some weird errors.
In particular, this one:&lt;br /&gt;
&lt;code&gt;
HTMLParser.HTMLParseError: bad end tag: ''
&lt;/code&gt;
&lt;/p&gt;&lt;p&gt;
It comes from sites that have illegal content. For instance, stories
on Slate.com include Javascript lines like this one inside
&amp;lt;script&amp;gt;&amp;lt;/script&amp;gt; tags:&lt;br /&gt;
&lt;code&gt;document.write(&quot;&amp;lt;script type='text/javascript' src='whatever'&amp;gt;&amp;lt;/scr&quot; + &quot;ipt&amp;gt;&quot;);&lt;/code&gt;

&lt;/p&gt;&lt;p&gt;
This &lt;a href=&quot;http://bytes.com/topic/python/answers/495744-htmlparser-chokes-bad-end-tag-comment&quot;&gt;is
technically illegal html&lt;/a&gt; -- but lots of sites do it, so protesting
that it's technically illegal doesn't help if you're trying to read a 
real-world site.

&lt;/p&gt;&lt;p&gt;
Some discussions said setting
&lt;code&gt;self.CDATA_CONTENT_ELEMENTS = ()&lt;/code&gt; would help, but it didn't.
&lt;/p&gt;&lt;p&gt;
HTMLParser's code is in Python, not C. So I took a look at where the
errors are generated, thinking maybe I could override them.
It was easy enough to redefine &lt;code&gt;parse_endtag()&lt;/code&gt; to make it not throw
an error (I had to duplicate some internal strings too). But then I
hit another error, so I redefined &lt;code&gt;unknown_decl()&lt;/code&gt; and 
&lt;code&gt;_scan_name()&lt;/code&gt;.
And then I hit another error. I'm sure you see where this was going.
Pretty soon I had over 100 lines of duplicated code, and I was still
getting errors and needed to redefine even more functions.
This clearly wasn't the way to go.

&lt;/p&gt;&lt;h3&gt;Using lxml.html&lt;/h3&gt;
&lt;p&gt;
I'd been trying to avoid adding dependencies to additional Python packages,
but if you want to parse real-world HTML, you have to.
There are two main options: Beautiful Soup and lxml.html.
Beautiful Soup is popular for large projects, but the consensus seems
to be that lxml.html is more error-tolerant and lighter weight.
&lt;/p&gt;&lt;p&gt;
Indeed, lxml.html is much more forgiving. You can't handle start and
end tags as they pass through, like you can with HTMLParser. Instead
you parse the HTML into an in-memory tree, like this:

&lt;/p&gt;&lt;pre wrap=&quot;wrap&quot;&gt;  tree = lxml.html.fromstring(html)
&lt;/pre&gt;

&lt;p&gt;
How do you iterate over the tree? lxml.html is a good parser, but it
has rather poor documentation, so it took some struggling to figure out
what was inside the tree and how to iterate over it.
&lt;/p&gt;&lt;p&gt;
You can visit every element in the tree with
&lt;/p&gt;&lt;pre wrap=&quot;wrap&quot;&gt;for e in tree.iter() :
  print e.tag
&lt;/pre&gt;
&lt;p&gt;
But that's not terribly useful if you need to know which
tags are inside which other tags. Instead, define a function that iterates
over the top level elements and calls itself recursively on each child.
&lt;/p&gt;&lt;p&gt;
The top of the tree itself is an element -- typically the
&amp;lt;html&amp;gt;&amp;lt;/html&amp;gt; -- and each element has .tag and .attrib.
If it contains text inside it (like a &amp;lt;p&amp;gt; tag), it also has
.text. So to make something that works similarly to HTMLParser:

&lt;/p&gt;&lt;pre wrap=&quot;wrap&quot;&gt;def crawl_tree(tree) :
  handle_starttag(tree.tag, tree.attrib)
  if tree.text :
    handle_data(tree.text)
  for node in tree :
    crawl_tree(node)
  handle_endtag(tree.tag)
&lt;/pre&gt;

&lt;p&gt;
But wait -- we're not quite all there. You need to handle two
undocumented cases. 
&lt;/p&gt;&lt;p&gt;
First, comment tags are special: their &lt;i&gt;tag&lt;/i&gt; attribute, 
instead of being a string, is &amp;lt;built-in function Comment&amp;gt;
so you have to handle that specially and not assume that &lt;i&gt;tag&lt;/i&gt;
is text that you can print or test against.
&lt;/p&gt;&lt;p&gt;
Second, what about cases like
&lt;code&gt;&amp;lt;p&amp;gt;Here is some &amp;lt;i&amp;gt;italicised&amp;lt;/i&amp;gt; text.&amp;lt;/p&amp;gt;&lt;/code&gt;
? in this case, you have the &lt;i&gt;p&lt;/i&gt; tag, and its &lt;i&gt;text&lt;/i&gt; is 
&quot;Here is some &quot;.
Then the p has a child, the i tag, with &lt;i&gt;text&lt;/i&gt; of &quot;italicised&quot;.
But what about the rest of the string, &quot; text.&quot;? 
&lt;/p&gt;&lt;p&gt;
That's called a tail -- and it's the tail of the adjacent i tag it follows,
not the parent p tag that contains it. Confusing!
&lt;/p&gt;&lt;p&gt;
So our function becomes:

&lt;/p&gt;&lt;pre wrap=&quot;wrap&quot;&gt;def crawl_tree(tree) :
  if type(tree.tag) is str :
    handle_starttag(tree.tag, tree.attrib)
    if tree.text :
      handle_data(tree.text)
    for node in tree :
      crawl_tree(node)
    handle_endtag(tree.tag)
  if tree.tail :
    handle_data(tree.tail)
&lt;/pre&gt;

&lt;p&gt;
See how it works? If it's a comment (tree.tag isn't a string),
we'll skip everything -- &lt;i&gt;except&lt;/i&gt; the tail. Even a comment
might have a tail:&lt;br /&gt;
&lt;code&gt;&amp;lt;p&amp;gt;Here is some &amp;lt;!-- this is a comment --&amp;gt; text we want to show.&amp;lt;/p&amp;gt;&lt;/code&gt;
&lt;br /&gt;
so even if we're skipping comment we need its tail.
&lt;/p&gt;&lt;p&gt;
I'm sure I'll find other gotchas I've missed, so I'm not releasing
this version of feedme until it's had a lot more testing. But it
looks like lxml.html is a reliable way to parse real-world pages.
It even has a lot of convenience functions like link rewriting
that you can use without iterating the tree at all. Definitely worth
a look!&lt;/p&gt;</description>
	<pubDate>Sun, 08 Jan 2012 22:30:36 +0000</pubDate>
</item>
<item>
	<title>True Volumetric for Blender: A tribute to my father</title>
	<guid isPermaLink="false">http://farsthary.wordpress.com/?p=2279</guid>
	<link>http://farsthary.wordpress.com/2012/01/08/a-tribute-to-my-father/</link>
	<description>&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_2280&quot; style=&quot;width: 637px;&quot;&gt;&lt;a href=&quot;http://farsthary.files.wordpress.com/2012/01/la-vega-oleo-lienzo-124-x84-cm.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;size-full wp-image-2280&quot; height=&quot;388&quot; src=&quot;http://farsthary.files.wordpress.com/2012/01/la-vega-oleo-lienzo-124-x84-cm.jpg?w=627&amp;amp;h=388&quot; title=&quot;La Vega. oleo-lienzo. 124 x84 cm.&quot; width=&quot;627&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;La Vega. oleo-lienzo. 124 x84 cm.&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;There’s no need to tell how much I admire my parents and how much I owe to them. I can consider myself lucky to been raised in a family where arts talking where pervasive and my father, humble as a human can be, fail to recognize the great artist he is. Also the wonderful landscapes he paint are all surrounding my home &lt;img alt=&quot;:)&quot; class=&quot;wp-smiley&quot; src=&quot;http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif&quot; /&gt; &lt;/p&gt;
&lt;p&gt;Before leaving I’ve quickly set up a gallery to show&lt;a href=&quot;http://cubanlandscapes.wordpress.com/galeria/&quot;&gt; some of his artworks on Oil and Canvas.&lt;/a&gt;&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/farsthary.wordpress.com/2279/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/farsthary.wordpress.com/2279/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/farsthary.wordpress.com/2279/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/farsthary.wordpress.com/2279/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/farsthary.wordpress.com/2279/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/farsthary.wordpress.com/2279/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/farsthary.wordpress.com/2279/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/farsthary.wordpress.com/2279/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/farsthary.wordpress.com/2279/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/farsthary.wordpress.com/2279/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/farsthary.wordpress.com/2279/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/farsthary.wordpress.com/2279/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/farsthary.wordpress.com/2279/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/farsthary.wordpress.com/2279/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=farsthary.wordpress.com&amp;amp;blog=3450907&amp;amp;post=2279&amp;amp;subd=farsthary&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Sun, 08 Jan 2012 13:49:16 +0000</pubDate>
</item>
<item>
	<title>True Volumetric for Blender: Endless polygons</title>
	<guid isPermaLink="false">http://farsthary.wordpress.com/?p=2272</guid>
	<link>http://farsthary.wordpress.com/2012/01/08/endless-polygons/</link>
	<description>&lt;p&gt;I’m leaving to Cuba tomorrow, many feelings currently got mixed inside me ranging from happiness to sadness, and I can certainly said that I’m not the same who 5 month ago took a plane to Kiev. Somehow I feel much more mature &lt;img alt=&quot;:)&quot; class=&quot;wp-smiley&quot; src=&quot;http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif&quot; /&gt;&lt;br /&gt;
I’m very grateful for everything and everyone I’ve met here, first time and first impression are things you never forget and the most valuable memories we carry on through our lives.&lt;br /&gt;
And since in a while I will not be able to upload high quality content and cannot be very active in terms of connectivity I’ve made a quick more practical test about LiveClay. This is a quick timelapse I’ve made on a base female head to accomplish an Afro hair style, This was made in a laptop thus limiting the real time capture interval and performing lot’s of background tasks and still I was impressed on how 3DCoat was able to handle +4million triangles without any hassle so I could actually keep adding more and more details to any level without problem, but I’m a lazy skill-less artist so I leave it on hair and earrings &lt;img alt=&quot;:P&quot; class=&quot;wp-smiley&quot; src=&quot;http://s2.wp.com/wp-includes/images/smilies/icon_razz.gif&quot; /&gt; .&lt;br /&gt;
Almost endless polygons!&lt;br /&gt;
Note: this is not how 3DCoat 4 will look like!&lt;/p&gt;
&lt;span style=&quot;text-align: center; display: block;&quot;&gt;&lt;a href=&quot;http://farsthary.wordpress.com/2012/01/08/endless-polygons/&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://img.youtube.com/vi/k8xEcF7wmQU/2.jpg&quot; /&gt;&lt;/a&gt;&lt;/span&gt;
&lt;p&gt;If you like also the 3DCoat theme you can download it &lt;a href=&quot;http://www.pasteall.org/28008/xml&quot; title=&quot;OrangeDarkTheme&quot;&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hope you like it!&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/farsthary.wordpress.com/2272/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/farsthary.wordpress.com/2272/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/farsthary.wordpress.com/2272/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/farsthary.wordpress.com/2272/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/farsthary.wordpress.com/2272/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/farsthary.wordpress.com/2272/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/farsthary.wordpress.com/2272/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/farsthary.wordpress.com/2272/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/farsthary.wordpress.com/2272/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/farsthary.wordpress.com/2272/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/farsthary.wordpress.com/2272/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/farsthary.wordpress.com/2272/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/farsthary.wordpress.com/2272/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/farsthary.wordpress.com/2272/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=farsthary.wordpress.com&amp;amp;blog=3450907&amp;amp;post=2272&amp;amp;subd=farsthary&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Sun, 08 Jan 2012 03:47:29 +0000</pubDate>
</item>
<item>
	<title>Steven Garrity: Update: Still bummed about the 11-million-year …</title>
	<guid isPermaLink="true">http://www.actsofvolition.com/archive/2012/january/updatestill</guid>
	<link>http://www.actsofvolition.com/archive/2012/january/updatestill</link>
	<description>&lt;p&gt;&lt;b&gt;Update:&lt;/b&gt; Still bummed about the &lt;a href=&quot;http://www.actsofvolition.com/archive/2011/december/howlongwouldit&quot;&gt;11-million-year commute&lt;/a&gt; to the planet Kepler B we discussed last month? Be sure to read &lt;a href=&quot;http://boingboing.net/2011/02/11/incredible-journey-c.html&quot;&gt;BoingBoing’s article on the (im)practicality and cost of interstellar travel&lt;/a&gt;. While Kepler 22b might be a boring 11-million-year flight away, the nearest star, Alpha Centauri would only be a brisk 70,000 years or so.&lt;/p&gt;</description>
	<pubDate>Sun, 08 Jan 2012 01:44:40 +0000</pubDate>
</item>
<item>
	<title>Yorik van Havre: House renderings</title>
	<guid isPermaLink="true">http://yorik.uncreated.net/guestblog.php?2012=3</guid>
	<link>http://yorik.uncreated.net/guestblog.php?2012=3</link>
	<description>A couple of images for a house projected by our friend Daniela Walty...</description>
	<pubDate>Sat, 07 Jan 2012 16:38:57 +0000</pubDate>
</item>
<item>
	<title>Matt Ebb: Twitter: 2012-01-08</title>
	<guid isPermaLink="true">http://mattebb.com/weblog/twitter-2012-01-08/</guid>
	<link>http://mattebb.com/weblog/twitter-2012-01-08/</link>
	<description>&lt;ul class=&quot;aktt_tweet_digest&quot;&gt;
&lt;li&gt;:'(  RT @&lt;a class=&quot;aktt_username&quot; href=&quot;http://twitter.com/petapixel&quot;&gt;petapixel&lt;/a&gt; Kodak threatened with stock delisting as it prepares to file for bankruptcy: &lt;a href=&quot;http://t.co/lV73zpwW&quot; rel=&quot;nofollow&quot;&gt;http://t.co/lV73zpwW&lt;/a&gt; &lt;a class=&quot;aktt_tweet_reply&quot; href=&quot;http://twitter.com/petapixel/statuses/154674936630362112&quot;&gt;in reply to petapixel&lt;/a&gt; &lt;a class=&quot;aktt_tweet_time&quot; href=&quot;http://twitter.com/mattebb/statuses/154681388459769857&quot;&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Random shoutout again to @&lt;a class=&quot;aktt_username&quot; href=&quot;http://twitter.com/GavRov&quot;&gt;GavRov&lt;/a&gt; and his excellent Moon production design / scifi behind-the-scenes blog &lt;a href=&quot;http://t.co/RKFAZmJu&quot; rel=&quot;nofollow&quot;&gt;http://t.co/RKFAZmJu&lt;/a&gt; #&lt;a class=&quot;aktt_hashtag&quot; href=&quot;http://search.twitter.com/search?q=%23ff&quot;&gt;ff&lt;/a&gt; be damned. &lt;a class=&quot;aktt_tweet_time&quot; href=&quot;http://twitter.com/mattebb/statuses/153595117272436736&quot;&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Does anyone else think the antagonist in Ponyo looks like a cross between ronald mcdonald and david bowie? &lt;a class=&quot;aktt_tweet_time&quot; href=&quot;http://twitter.com/mattebb/statuses/153418513518829568&quot;&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
	<pubDate>Sat, 07 Jan 2012 16:31:00 +0000</pubDate>
</item>
<item>
	<title>Steven Garrity: The Swoosh is a Lie</title>
	<guid isPermaLink="true">http://www.actsofvolition.com/archive/2012/january/theswooshisalie</guid>
	<link>http://www.actsofvolition.com/archive/2012/january/theswooshisalie</link>
	<description>&lt;a href=&quot;http://99percentinvisible.org/&quot;&gt;&lt;img alt=&quot;99% Invisible Podcast&quot; class=&quot;right border&quot; height=&quot;150&quot; src=&quot;http://www.actsofvolition.com/file/99invisible-logo-itunes-badge.png&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;

&lt;p&gt;From the delightful &lt;a href=&quot;http://99percentinvisible.org/&quot;&gt;99% Invisible podcast&lt;/a&gt;, I learned today that &lt;a href=&quot;http://99percentinvisible.org/post/11383184222/episode-38-the-sound-of-sport&quot;&gt;many televised sporting events use pre-recorded audio samples to fake a sense of realism&lt;/a&gt;. When you watch at least some sports on television, particularly those that cover large areas, the swoosh of a cross-country skier, the splash of a rower’s paddle, or the thundering stampede of horse racing, may be coming from a sound designer’s sampler rather than the atheletes you’re seeing on screen.&lt;/p&gt;



&lt;p&gt;Like most episodes of 99% Invisible, this &lt;a href=&quot;http://99percentinvisible.org/post/11383184222/episode-38-the-sound-of-sport&quot;&gt;Sound of Sport&lt;/a&gt; episode is only 5 minutes long, well produced, and fascinating. Since learning about 99% Invisible from the also-delightful &lt;a href=&quot;http://www.radiolab.org/&quot;&gt;RadioLab&lt;/a&gt; podcast, I’ve almost caught up on all 44 (so far) episodes. Highly recommended.&lt;/p&gt;

&lt;p&gt;While we’re enjoying podcasts, the &lt;a href=&quot;http://www.npr.org/money/&quot;&gt;Planet Money&lt;/a&gt; podcast somehow manages to make the world of economics interesting to those of us who are completely uninterested in economics.&lt;/p&gt;</description>
	<pubDate>Sat, 07 Jan 2012 01:41:00 +0000</pubDate>
</item>
<item>
	<title>True Volumetric for Blender: Some missing basic brushes</title>
	<guid isPermaLink="false">http://farsthary.wordpress.com/?p=2265</guid>
	<link>http://farsthary.wordpress.com/2012/01/06/some-missing-basic-brush/</link>
	<description>&lt;p&gt;I hope this will fill the gap for some basic brush requests &lt;img alt=&quot;;)&quot; class=&quot;wp-smiley&quot; src=&quot;http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif&quot; /&gt; &lt;/p&gt;
&lt;span style=&quot;text-align: center; display: block;&quot;&gt;&lt;a href=&quot;http://farsthary.wordpress.com/2012/01/06/some-missing-basic-brush/&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://img.youtube.com/vi/ZbeFxJLuibE/2.jpg&quot; /&gt;&lt;/a&gt;&lt;/span&gt;
&lt;span style=&quot;text-align: center; display: block;&quot;&gt;&lt;a href=&quot;http://farsthary.wordpress.com/2012/01/06/some-missing-basic-brush/&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://img.youtube.com/vi/u8lPuHnVjoI/2.jpg&quot; /&gt;&lt;/a&gt;&lt;/span&gt;
&lt;p&gt;Cheers&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/farsthary.wordpress.com/2265/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/farsthary.wordpress.com/2265/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/farsthary.wordpress.com/2265/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/farsthary.wordpress.com/2265/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/farsthary.wordpress.com/2265/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/farsthary.wordpress.com/2265/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/farsthary.wordpress.com/2265/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/farsthary.wordpress.com/2265/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/farsthary.wordpress.com/2265/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/farsthary.wordpress.com/2265/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/farsthary.wordpress.com/2265/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/farsthary.wordpress.com/2265/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/farsthary.wordpress.com/2265/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/farsthary.wordpress.com/2265/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=farsthary.wordpress.com&amp;amp;blog=3450907&amp;amp;post=2265&amp;amp;subd=farsthary&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Fri, 06 Jan 2012 02:59:38 +0000</pubDate>
</item>
<item>
	<title>BlenderArt Magazine Logo: Call for Content: Blenderart Magazine #36</title>
	<guid isPermaLink="false">http://blenderart.org/?p=663</guid>
	<link>http://blenderart.org/2012/01/05/call-for-content-blenderart-magazine-36/</link>
	<description>&lt;p&gt;It’s time again to start thinking about articles, tutorials and images for &lt;strong&gt;Issue # 36 of Blenderart Magazine.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The theme for this issue is &lt;strong&gt;“Odds n’ Ends: props and accessories”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Welcome back to a new year of Blenderart Magazine. We are going to kick off 2012 with a look at how to create all the&lt;strong&gt; Odds n’ Ends&lt;/strong&gt; that make images and animations look great. No character is complete without their clothes, armor and all the various accessories that complete their look. And scenes are flat and lifeless without a variety of well placed props to add detail and depth to tell your story.&lt;span id=&quot;more-663&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;In addition, we want to take a look at how to use some of the fun new features of Blender 2.61 with all these needed props and accessories. So get to modeling, texturing and don’t forget to write about it and share your masterpieces with the rest of us.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Looking for tutorials or “making of” articles on:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;any props or accessories needed for any character or scene&lt;/li&gt;
&lt;li&gt;how to use new blender features&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Articles&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;Send in your articles to &lt;a href=&quot;mailto:sandra@blenderart.org&quot;&gt;sandra&lt;/a&gt;&lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;Subject: “Article submission Issue # 36 [your article name]“&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Gallery Images&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As usual you can also submit your best renders based on the theme of the issue. The theme of this issue is “Odds n’ Ends: props and accessories”. Please note if the entry does not match with the theme it will not be published.&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;Send in your entries for gallery to &lt;a href=&quot;mailto:gaurav@blenderart.org&quot;&gt;gaurav&lt;/a&gt;&lt;span style=&quot;font-family: Arial,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;Subject: “Gallery submission Issue # 36″&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: Image size should be of 1024x (width) at max.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Last date of submissions February 5, 2012.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Good luck!&lt;br /&gt;
Blenderart Team&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description>
	<pubDate>Thu, 05 Jan 2012 19:51:27 +0000</pubDate>
</item>
<item>
	<title>Tavmjong Bah: Mesh Gradients in SVG</title>
	<guid isPermaLink="true">http://tavmjong.free.fr/blog/?p=316</guid>
	<link>http://tavmjong.free.fr/blog/?p=316</link>
	<description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;I’ve been working on adding Mesh Gradients to the SVG standard and in principle they have been accepted as part of SVG 2. In particular, the SVG working group has approved the addition of Coons Patch mesh gradients. This type of mesh is powerful enough to handle the requirements for most advanced gradients use cases and at the same time is a convenient form for use in content creation. Coons Patch meshes are included in the PostScript and &lt;a href=&quot;http://www.adobe.com/devnet/pdf/pdf_reference.html&quot;&gt;PDF&lt;/a&gt; standards (Type 6 Shading) and the &lt;a href=&quot;http://www.cairographics.org/&quot;&gt;Cairo rendering library&lt;/a&gt; supports them in trunk. I’ve added support for meshes to a my own branch of Inkscape for testing purposes.&lt;/p&gt;
&lt;p&gt;The SVG working group has identified one problem with the meshes: It is not always possible to have smooth color transitions across mesh boundaries. To understand why this can be a problem, one must understand how the meshes work.&lt;/p&gt;
&lt;p&gt;A Coons Patch mesh is composed of an array of Coons Patches. A Coons Patch consists of four Bézier curves along the sides with colors defined at each corner. The color of any point inside the patch is determined by a two-dimension bi-linear interpolation of the corner colors followed by a geometric mapping defined by the Bézier patch sides.&lt;/p&gt;
&lt;div class=&quot;figure&quot;&gt;
&lt;img alt=&quot;Left: square showing color interpolation. Right: patch showing result of mapping.&quot; src=&quot;http://tavmjong.free.fr/blog/wp-content/uploads/MESH/mesh_def.png&quot; /&gt;&lt;p&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt;Left: Color defined by a two-dimension bi-linear interpolation of the corner colors. Right: the color interpolation mapped to the patch region. The Bézier end points (corners) and handles are shown as diamonds and circles respectively.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;The key word in the above description is “linear”. Working in one dimension, linear interpolation between two colors works exactly the same as in the linear gradient of SVG 1. A patch corresponds to the interval between two color “stops”. The linear gradient in the following figure consists of three stops or two “patches”. The color transition between the two patches is continuous but not smooth.&lt;/p&gt;
&lt;div class=&quot;figure&quot;&gt;
&lt;img alt=&quot;Top: a three stop linear gradient. Bottom: the RGB color profile of the gradient.&quot; src=&quot;http://tavmjong.free.fr/blog/wp-content/uploads/MESH/linear_discontinuous.png&quot; /&gt;&lt;p&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt;Top: A three stop gradient with stop colors blue, purple, and yellow. Bottom: Plots of the red, green, and blue profiles of the gradient.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Lack of smoothness in some cases can lead to visual artifacts as illustrated in the following figure:&lt;/p&gt;
&lt;div class=&quot;figure&quot;&gt;
&lt;img alt=&quot;Six linear gradients with the second and fourth stops in different places.&quot; src=&quot;http://tavmjong.free.fr/blog/wp-content/uploads/MESH/linear_test.png&quot; /&gt;&lt;p&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt;Linear gradients consisting of five stops. The outer two are black, the center one is white, and the remaining two are set to 90% white. The position of the 90% white stops are different for each gradient. The red line shows the black to white profile for each gradient.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;As one can see in the above linear gradients, the eye is fooled into thinking that the location of the 90% white stop is whiter than the areas immediate right and left of the stop. This is due to the &lt;a href=&quot;http://en.wikipedia.org/wiki/Mach_banding&quot;&gt;Mach Banding&lt;/a&gt; effect.&lt;/p&gt;
&lt;p&gt;With meshes, one can move the Bézier “handles” to alter the color profile. This is equivalent to stretching or shrinking a section of the patch. If the side is linear, moving the handles will not change the shape of the patch but will change the “speed” of the curve’s parameterization. The following figure shows how moving the handles can yield a smooth transition and eliminate the Mach Banding:&lt;/p&gt;
&lt;div class=&quot;figure&quot;&gt;
&lt;img alt=&quot;Three gradients illustrating how to smooth a color transition.&quot; src=&quot;http://tavmjong.free.fr/blog/wp-content/uploads/MESH/linear_test_handle.png&quot; /&gt;&lt;p&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt;The top gradient is a linear gradient. The middle gradient is a Coons Patch mesh gradient that duplicates the linear gradient. The location of the Bézier handles (circles) are shown in blue. They are at their default positions spaces one-third of the way between the corner points (squares), corresponding to a linear interpolation. The bottom gradient is a Coons Patch mesh gradient where the top and bottom handles have been moved to smooth out the transition across the patch boundaries. The 90% stop has been changed to 80%. The purple line on the bottom gradient shows the new color profile.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;As illustrated above, it is possible in some cases to obtain smooth transitions with Coons Patch mesh gradients across patch boundaries. However there are cases where it is not possible. Consider the center “stop” in the above figure. No matter how you manipulate the handles you can not achieve a smooth transition at this point. The derivative of the color profile cannot be made to be zero. The following figure shows some of the profiles available for one patch:&lt;/p&gt;
&lt;div class=&quot;figure&quot;&gt;&lt;img alt=&quot;Three gradients showing the range of allowed color profiles when moving Bézier handles.&quot; src=&quot;http://tavmjong.free.fr/blog/wp-content/uploads/MESH/mesh_profiles.png&quot; /&gt;&lt;p&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt;Three Coons patch meshes are shown where the left corners are black and the right corners are white. Overlaid each gradient is the color profile determined by the handle placements of the top and bottom Bézier curves. The top gradient shows the color profile with the default handle placement (i.e. when a curve is defined by a “lineto”). The Bézier handles of top and bottom of the mesh are shown in blue while the color profile with the profile’s effective Bézier handles are shown in red. The middle gradient shows the the color profile when the handle “lengths” are zero (i.e. when the handles are placed on top of the corners. The bottom gradient shows the color profile when the handles are placed over the opposite corners.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Note that in the above figure the handles of the effective Bézier curve color profile are constrained to horizontal lines one-third of the distance between the top and bottom range of the color profile. As a result, one can never have a profile where the derivative of the color change at a boundary is zero. Also note, that while the handles can be moved outside the patch region to the left or right,  a discontinuity in the color profile will result as the effective profile Bézier will overlap itself.&lt;/p&gt;
&lt;p&gt;Another case where it is impossible to obtain a smooth transition is when the different primary colors (red, green, blue) have different profiles. In general, only the profile of one color can be made smooth.&lt;/p&gt;
&lt;p&gt;So how do Adobe Illustator and Corel Draw get smooth transitions? I don’t have either one so I can’t check personally but from a paper by &lt;a href=&quot;http://research.microsoft.com/pubs/69442/imagevectorization_siggraph07.pdf&quot;&gt;Sun, Liang, Wen, and Shum&lt;/a&gt; it appears that Adobe Illustrator and Corel Draw use a monotonic cubic spline interpolation instead of a linear interpolation. Then, when exporting to PostScript or PDF, a single Illustrator or Corel Draw patch gets exported as multiple Coons patches inorder to approximate the smooth transitions.&lt;/p&gt;
&lt;p&gt;The question then is: should the SVG standard support the Coons Patch meshes with bi-linear interpolation or should it specidfy a more complex interpolation. My inclination is to leave the interpolation as bi-linear and follow Adobe’s and Corel’s lead and let the authoring software handle smoothing out transitions when necessary. This keeps compatability with existing standards and keeps the definition of the patches simpler.&lt;/p&gt;
&lt;p&gt;More details about meshes in SVG can be found at my&lt;br /&gt;
&lt;a href=&quot;http://tavmjong.free.fr/SVG/MESH/Mesh.html&quot;&gt;Coons Patche Meshes&lt;/a&gt; page.&lt;/p&gt;</description>
	<pubDate>Thu, 05 Jan 2012 13:47:20 +0000</pubDate>
</item>
<item>
	<title>Yuval Levy: Time</title>
	<guid isPermaLink="false">http://panospace.wordpress.com/?p=2264</guid>
	<link>https://panospace.wordpress.com/2012/01/04/time/</link>
	<description>A mobile device that does not give its user access to &lt;a href=&quot;http://panospace.wordpress.com/2012/01/04/time/&quot;&gt;time&lt;/a&gt;?&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=panospace.wordpress.com&amp;amp;blog=2564859&amp;amp;post=2264&amp;amp;subd=panospace&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Wed, 04 Jan 2012 23:09:14 +0000</pubDate>
</item>
<item>
	<title>Akkana Peck: Open the X selection in a browser window, from any desktop</title>
	<guid isPermaLink="true">http://shallowsky.com/blog/linux/open-selection-in-browser.html</guid>
	<link>http://shallowsky.com/blog/linux/open-selection-in-browser.html</link>
	<description>&lt;p&gt;
Like most Linux users, I use virtual desktops. Normally my browser
window is on a desktop of its own.
&lt;/p&gt;&lt;p&gt;
Naturally, it often happens that I encounter a link I'd like to visit
while I'm on a desktop where the browser isn't visible. From some apps,
I can click on the link and have it show up. But sometimes, the link is
just text, and I have to select it, change to the browser desktop,
paste the link into firefox, then change desktops again to do something
else while the link loads.
&lt;/p&gt;&lt;p&gt;
So I set up a way to load whatever's in the X selection in firefox no
matter what desktop I'm on.
&lt;/p&gt;&lt;p&gt;
In most browsers, including firefox, you can tell your existing
browser window to open a new link from the command line:
&lt;code&gt;firefox http://example.com/&lt;/code&gt; opens that link in your
existing browser window if you already have one up, rather than
starting another browser. So the trick is to get the text you've selected.
&lt;/p&gt;&lt;p&gt;
At first, I used a program called xclip. You can run this command:
&lt;code&gt;firefox `xclip -o`&lt;/code&gt; to open the selection. That worked
okay at first -- until I hit my first URL in weechat that was so long
that it was wrapped to the next line. It turns out xclip does odd things
with multi-line output; depending on whether it thinks the output is
a terminal or not, it may replace the newline with a space, or delete
whatever follows the newline. In any case, I couldn't find a way to
make it work reliably when pasted into firefox.
&lt;/p&gt;&lt;p&gt;
After futzing with xclip for a little too long, trying to reverse-engineer
its undocumented newline behavior, I decided it would be easier just to
write my own X clipboard app in Python. I already knew how to do that,
and it's super easy once you know the trick:

&lt;/p&gt;&lt;pre&gt;mport gtk
primary = gtk.clipboard_get(gtk.gdk.SELECTION_PRIMARY)
if primary.wait_is_text_available() :
    print primary.wait_for_text()
&lt;/pre&gt;

&lt;p&gt;
That just prints it directly, including any newlines or spaces.
But as long as I was writing my own app, why not handle that too?
&lt;/p&gt;&lt;p&gt;
It's not entirely necessary on Firefox: on Linux, Firefox has some
special code to deal with pasting multi-line URLs, so you can copy
a URL that spans multiple lines, middleclick in the content area and
things will work. On other platforms, that's disabled, and some Linux
distros disable it as well; you can enable it by going to
&lt;code&gt;about:config&lt;/code&gt; and searching for &lt;code&gt;single&lt;/code&gt;,
then setting the preference
&lt;i&gt;editor.singlelinepaste.pasteNewlines&lt;/i&gt; to 2.
&lt;/p&gt;&lt;p&gt;
However, it was easy enough to make my Python clipboard app do the
right thing so it would work in any browser. I used Python's re
(regular expressions) module:

&lt;/p&gt;&lt;pre wrap=&quot;wrap&quot;&gt;#!/usr/bin/env python

import gtk
import re

primary = gtk.clipboard_get(gtk.gdk.SELECTION_PRIMARY)

if not primary.wait_is_text_available() :
    sys.exit(0)
s = primary.wait_for_text()

# eliminate newlines, and any spaces immediately following a newline:
print re.sub(r'[\r\n]+ *', '', s)
&lt;/pre&gt;

&lt;p&gt;
That seemed to work fine, even on long URLs pasted from weechat
with newlines and spaces, like that looked like
&lt;/p&gt;&lt;pre&gt;http://example.com/long-
    url.html
&lt;/pre&gt;

&lt;p&gt;
All that was left was binding it so I could access it from anywhere.
Of course, that varies depending on your desktop/window manager.
In Openbox, I added two items to my desktop menu in &lt;i&gt;menu.xml&lt;/i&gt;:

&lt;/p&gt;&lt;pre wrap=&quot;wrap&quot;&gt;  &amp;lt;item label=&quot;open selection in Firefox&quot;&amp;gt;
    &amp;lt;action name=&quot;Execute&quot;&amp;gt;&amp;lt;execute&amp;gt;sh -c 'firefox `xclip -o`'&amp;lt;/execute&amp;gt;&amp;lt;/action&amp;gt;
  &amp;lt;/item&amp;gt;
  &amp;lt;item label=&quot;open selection in new tab&quot;&amp;gt;
    &amp;lt;action name=&quot;Execute&quot;&amp;gt;&amp;lt;execute&amp;gt;sh -c 'firefox -new-tab `xclip -o`'&amp;lt;/execute&amp;gt;&amp;lt;/action&amp;gt;
  &amp;lt;/item&amp;gt;
&lt;/pre&gt;

&lt;p&gt;
I also added some code in &lt;i&gt;rc.xml&lt;/i&gt; inside
&amp;lt;context name=&quot;Desktop&quot;&amp;gt;, so I can middle-click
or control-middle-click on the desktop to open a link in the browser:
&lt;/p&gt;&lt;pre wrap=&quot;wrap&quot;&gt;      &amp;lt;mousebind button=&quot;Middle&quot; action=&quot;Press&quot;&amp;gt;
        &amp;lt;action name=&quot;Execute&quot;&amp;gt;
          &amp;lt;execute&amp;gt;sh -c 'firefox `pyclip`'&amp;lt;/execute&amp;gt;
        &amp;lt;/action&amp;gt;
      &amp;lt;/mousebind&amp;gt;
      &amp;lt;mousebind button=&quot;C-Middle&quot; action=&quot;Press&quot;&amp;gt;
        &amp;lt;action name=&quot;Execute&quot;&amp;gt;
          &amp;lt;execute&amp;gt;sh -c -new-tab 'firefox `pyclip`'&amp;lt;/execute&amp;gt;
        &amp;lt;/action&amp;gt;
      &amp;lt;/mousebind&amp;gt;
&lt;/pre&gt;

&lt;p&gt;
I set this up maybe two hours ago and I've probably used it ten or
fifteen times already. This is something I should have done long ago!&lt;/p&gt;</description>
	<pubDate>Wed, 04 Jan 2012 06:00:16 +0000</pubDate>
</item>
<item>
	<title>Libre Graphics Magazine: Worm shop Rotterdam: the first physical distributor of Libre Graphics magazine</title>
	<guid isPermaLink="false">http://libregraphicsmag.com/blog/?p=168</guid>
	<link>http://libregraphicsmag.com/blog/2012/01/worm-shop-rotterdam-the-first-physical-distributor-of-libre-graphics-magazine/</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://libregraphicsmag.com/blog/wp-content/uploads/2012/01/worm.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignleft size-medium wp-image-169&quot; height=&quot;300&quot; src=&quot;http://libregraphicsmag.com/blog/wp-content/uploads/2012/01/worm-205x300.png&quot; title=&quot;Libre Graphics magazine now at Worm's shop!&quot; width=&quot;205&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It is with pride that we announce our first bricks-and-mortar distributor for the magazine.&lt;br /&gt;
Since last December, the Libre Graphics magazine is available for sale at &lt;a href=&quot;http://www.wormshop.nl/&quot;&gt;Worm’s shop&lt;/a&gt; in Rotterdam. Get yours!&lt;/p&gt;</description>
	<pubDate>Tue, 03 Jan 2012 16:36:39 +0000</pubDate>
</item>
<item>
	<title>Yorik van Havre: Scale feature in FreeCAD Draft</title>
	<guid isPermaLink="true">http://yorik.uncreated.net/guestblog.php?2012=1</guid>
	<link>http://yorik.uncreated.net/guestblog.php?2012=1</link>
	<description>I changed a bit the current scale tool in the Draft module. It now uses a parametric object instead of modifying the base object. The parametric object allows you to change the scale factor afterwards. The old behaviour is still available to python scripting, though.</description>
	<pubDate>Mon, 02 Jan 2012 21:44:07 +0000</pubDate>
</item>
<item>
	<title>Scribus Project: Scribus 1.4.0 Released</title>
	<guid isPermaLink="false">http://rants.scribus.net/?p=139</guid>
	<link>http://rants.scribus.net/2012/01/02/scribus-1-4-0-released/</link>
	<description>&lt;h1&gt;Scribus 1.4.0 Released&lt;/h1&gt;
&lt;p&gt;After almost 4 years of intensive work, the Scribus Team (http://www.scribus.net) has released the new stable version 1.4.0 of the Open Source desktop publishing program Scribus.&lt;br /&gt;
Given this is the first major stable release in some time, this document outlines improvements over the last number of versions, rather than since just the last one. The idea is to form a general comparison between this and the last stable release.&lt;/p&gt;
&lt;p&gt;In summary, more than 2000 feature requests and bugs have been resolved since the development of this new version started.&lt;/p&gt;
&lt;p&gt;Major changes and improvements in comparison to the last stable version 1.3.3.14 are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1.4.0 is based on the Qt4 application framework. The initial transition from Qt3 was performed quite quickly, but fine tuning for cross-platform compatibility and taking advantage of new features took quite some time. As a result, Scribus now runs equally reliable on all supported platforms.&lt;/li&gt;
&lt;li&gt;Thanks to the port to Qt4, the Scribus Team now also provides install files for Mac OS X 10.5 or later (DMG or pkg format), as well as a native version for OS/2 Warp 4 and eComStation. Additionally, thanks to feedback from users of other UNIX platforms, Scribus is will build and run on more of those platforms as well.&lt;/li&gt;
&lt;li&gt;Feature enhancements to object handling (e.g. transform tools like in advanced drawing programs), with improvements to existing features like the Scrapbook and the Image Manager.&lt;/li&gt;
&lt;li&gt;Many advanced options for text and typography, like character styles, optical margins, or glyph extension. Undo/Redo is finally available for almost all text-related actions, and a new script enables replacing straight quotes with typographical quotation marks based on language settings. Usability improvements include better cursor placement and movement, faster layout on canvas and interaction between linked frames.&lt;/li&gt;
&lt;li&gt;New features for vector objects, like Boolean path operations, vector effects or a line style editor.&lt;/li&gt;
&lt;li&gt;Major improvements to the handling of fills, like pattern fill, more gradient types, support for external color palette formats (AI, EPS, GPL, PostScript, SOC), and many new color palettes, including those from commercial vendors like Resene and dtp studio, as well as national/government standards.&lt;/li&gt;
&lt;li&gt;A new frame type called “Render Frame” allows for rendering (and subsequently export) the output of every program that can create PostScript, PDF or PNG files via the command line (e.g. LaTeX, Lilypond, POV-Ray) inside Scribus. The initial version of which was developed as a project for Google Summer of Code and this project has developed to allow import of externally produced documents, scientific publications and formulas. More renderers can be added with a simple configuration file.&lt;/li&gt;
&lt;li&gt;Vector import filters: Scribus 1.4.0 provides new import filters for the following file formats: Adobe Illustrator (both EPS and PDF-based), Macintosh Picture (PICT), Windows Metafile (WMF), Xfig (FIG), Calamus Vector Graphics (CVG), Kivio Stencils (SML), and DIA Shapes (SHAPE).&lt;/li&gt;
&lt;li&gt;Regarding bitmap images, the handling of Photoshop files has seen many major improvements, like support of multiple clipping paths or PSD layers. The Image Manager has been rewritten, and new non-destructive image effects have been added. Moreover, Scribus 1.4.0 now supports EXIF data in images, and import of Windows and OS/2 bitmaps (BMP) has been re-enabled.&lt;/li&gt;
&lt;li&gt;Among the major enhancements to Scribus’s pre-press features, printing marks and the display of ink coverage in the Print Preview are the most important. In addition, Scribus now enables conversion of spot colors to process colors during PDF and PostScript export with a single click.&lt;/li&gt;
&lt;li&gt;PDF export has seen major improvements as well. Scribus can now export to PDF 1.5, including PDF layers. Another new feature is the option to embed EPS and PDF files in exported PDFs as an alternative to rasterizing them. Also, both font embedding and substitution have been improved.&lt;/li&gt;
&lt;li&gt;For color management, Scribus 1.4.0 now supports both littleCMS version 1 and 2. It’s also possible to enable color management with a single click from the main window.&lt;/li&gt;
&lt;li&gt;Additionally, the Scribus Team has added a feature to emulate color blindness on screen.&lt;/li&gt;
&lt;li&gt;Hundreds of minor and major usability improvements have been added.&lt;/li&gt;
&lt;li&gt;The included scripts have been updated, including the addition of the “Autoquote” script in the Script menu to convert straight quotes in a text frame to correct quotation marks for many languages.&lt;/li&gt;
&lt;li&gt;Scribus 1.4.0 is being shipped with many more templates than previous versions.&lt;/li&gt;
&lt;li&gt;The content of the Help System has been rewritten and updated.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now that Scribus 1.4.0 has been released, the Scribus Team will focus on stabilizing the 1.5 development branch, which will comprise amazing new features like support for PDF/X-1a, PDF/X-4 and PDF/E, Mesh Gradients, native PDF import, XAR import, a completely rewritten table implementation, a rewritten text system, and much more. The 1.4.x version is now in stable/maintenance mode, which means few features will be backported from the 1.5 development branch. In general, only bugs will be fixed in subsequent 1.4.x versions, along with new content, like new translations, new templates, or additional color palettes.&lt;/p&gt;
&lt;h2&gt;Important Information&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;If you are working with a team, try to make sure that all team members use the same Scribus version – this will avoid many headaches and extra work. Users should be warned that 1.3.3.x cannot open 1.4.0 files.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The Scribus Team recommends that all distributions package Scribus 1.4.0 as “Scribus” (and replace the outdated Scribus 1.3.3.14).&lt;/p&gt;
&lt;p&gt;The 1.4.x branch will now be developed in the Version14x branch of our Subversion repository, leaving the Version135 one behind. This also fixes the version numbering issues of the past, with just two main versions, 1.4.x and 1.5.x&lt;/p&gt;
&lt;p&gt;The Scribus Team will continue to implement new features and improvements in the development branch 1.5.x.&lt;/p&gt;
&lt;p&gt;We recommend the additional packaging of 1.5 only if it is marked as a development version and can be installed alongside an existing Scribus 1.4.0 (for example as scribus-ng).&lt;/p&gt;
&lt;p&gt;The English online help has been mostly updated to match the new features. Translations have temporarily disabled, since they need to be synchronised with the English version once the update is complete. Further updates will be included with subsequent 1.4 releases.&lt;/p&gt;
&lt;h2&gt;Primary Download Location&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Installation packages and the source code are available here: http://sourceforge.net/projects/scribus/files/scribus/1.4.0/&lt;/li&gt;
&lt;li&gt;Upstream Debian/Ubuntu repo: http://debian.scribus.net&lt;/li&gt;
&lt;li&gt;Fedora RPMS: http://download.opensuse.org/repositories/home:/mrdocs&lt;/li&gt;
&lt;li&gt;OpenSUSE, Mandriva and SLED RPMs: http://download.opensuse.org/repositories/home:/mrdocs&lt;/li&gt;
&lt;li&gt;All download options are listed at http://wiki.scribus.net/canvas/Download&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Download Verification&lt;/h2&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Description&lt;/td&gt;
&lt;td&gt;File Name&lt;/td&gt;
&lt;td&gt;Sha1sum&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Source&lt;/td&gt;
&lt;td&gt;scribus-1.4.0.tar.bz2&lt;/td&gt;
&lt;td&gt;af38413420eaa783d20f2db189aef408be844048&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Source&lt;/td&gt;
&lt;td&gt;scribus-1.4.0.tar.xz&lt;/td&gt;
&lt;td&gt;0e3afb98a56084c2938a8402df2d89214c42b809&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OS X Leopard or higher (DMG)&lt;/td&gt;
&lt;td&gt;scribus-1.4.0.dmg&lt;/td&gt;
&lt;td&gt;eae5adacdc207f4bda6136dc48c26b83dcbf6b9a&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OS X Leopard or higher (PKG)&lt;/td&gt;
&lt;td&gt;scribus-1.4.0.pkg&lt;/td&gt;
&lt;td&gt;64df9a61b33183dbc85b9a3090a648c75f320640&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows 32/64 Bit&lt;/td&gt;
&lt;td&gt;scribus-1.4.0-windows.exe&lt;/td&gt;
&lt;td&gt;268b9e8658528677ceac6252dae348c49643d159&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OS/2 / eComStation&lt;/td&gt;
&lt;td&gt;scribus-1.4.0-os2ecs.zip&lt;/td&gt;
&lt;td&gt;4fe0b3cf562cda4e1b78bf89a2340bb868610014&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Credits&lt;/h2&gt;
&lt;p&gt;The Scribus Team would like to thank Anduin.net and Modirum for their continued hosting of all of the Scribus websites.&lt;/p&gt;
&lt;p&gt;We are also grateful to the Organisation Internationale de la Francophonie and Linux New Media (Germany) for sponsoring.&lt;/p&gt;
&lt;p&gt;As of July 2011, the Scribus Team is also pleased to welcome Resene Colours (New Zealand) and Marabu-Druckfarben (Germany) as Special Supporters and donors of colour palettes which are part of the 1.4.0 release.&lt;/p&gt;
&lt;p&gt;Finally, the Scribus Team would like to thank the many end users, translators, testers and contributors who helped us with this important release.&lt;/p&gt;
&lt;h2&gt;About Scribus&lt;/h2&gt;
&lt;p&gt;Scribus is an Open Source program for professional page layout with press-ready output to PDF files. Underneath a modern and user-friendly interface, Scribus supports professional publishing features, such as color separations, CMYK and Spot Color support, ICC color management, and versatile PDF creation.&lt;/p&gt;</description>
	<pubDate>Sun, 01 Jan 2012 23:28:56 +0000</pubDate>
</item>
<item>
	<title>True Volumetric for Blender: 2011 in review</title>
	<guid isPermaLink="false">http://farsthary.wordpress.com/?p=2269</guid>
	<link>http://farsthary.wordpress.com/2012/01/01/2011-in-review/</link>
	<description>&lt;p&gt;The WordPress.com stats helper monkeys prepared a 2011 annual report for this blog.&lt;/p&gt;
&lt;div style=&quot;height: 300px;&quot;&gt;&lt;/div&gt;
&lt;p&gt;Here’s an excerpt:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;The Louvre Museum has 8.5 million visitors per year. This blog was viewed about &lt;strong&gt;200,000&lt;/strong&gt; times in 2011. If it were an exhibit at the Louvre Museum, it would take about 9 days for that many people to see it.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;http://farsthary.wordpress.com/2011/annual-report/&quot;&gt;Click here to see the complete report.&lt;/a&gt;&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/farsthary.wordpress.com/2269/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/farsthary.wordpress.com/2269/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/farsthary.wordpress.com/2269/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/farsthary.wordpress.com/2269/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/farsthary.wordpress.com/2269/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/farsthary.wordpress.com/2269/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/farsthary.wordpress.com/2269/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/farsthary.wordpress.com/2269/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/farsthary.wordpress.com/2269/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/farsthary.wordpress.com/2269/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/farsthary.wordpress.com/2269/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/farsthary.wordpress.com/2269/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/farsthary.wordpress.com/2269/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/farsthary.wordpress.com/2269/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=farsthary.wordpress.com&amp;amp;blog=3450907&amp;amp;post=2269&amp;amp;subd=farsthary&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Sun, 01 Jan 2012 00:24:23 +0000</pubDate>
</item>
<item>
	<title>Matt Ebb: Twitter: 2012-01-01</title>
	<guid isPermaLink="true">http://mattebb.com/weblog/twitter-2012-01-01/</guid>
	<link>http://mattebb.com/weblog/twitter-2012-01-01/</link>
	<description>&lt;ul class=&quot;aktt_tweet_digest&quot;&gt;
&lt;li&gt;I got another piece of jewelry 3D printed and cast in silver, this time a necklace inspired by a Turkish tile pattern: &lt;a href=&quot;http://t.co/0mLGXSza&quot; rel=&quot;nofollow&quot;&gt;http://t.co/0mLGXSza&lt;/a&gt; &lt;a class=&quot;aktt_tweet_time&quot; href=&quot;http://twitter.com/mattebb/statuses/151879786254450688&quot;&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;And I mean that in the best possible way &lt;a class=&quot;aktt_tweet_time&quot; href=&quot;http://twitter.com/mattebb/statuses/151657604354031616&quot;&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tintin. Wow. Weta, you bunch of maniacs. &lt;a class=&quot;aktt_tweet_time&quot; href=&quot;http://twitter.com/mattebb/statuses/151657310291369986&quot;&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;still waiting for chems to develop my films :( RT @&lt;a class=&quot;aktt_username&quot; href=&quot;http://twitter.com/kat_lu&quot;&gt;kat_lu&lt;/a&gt; so I've finally uploaded all my photos from Turkey… &lt;a href=&quot;http://t.co/IcddgB9M&quot; rel=&quot;nofollow&quot;&gt;http://t.co/IcddgB9M&lt;/a&gt; &lt;a class=&quot;aktt_tweet_reply&quot; href=&quot;http://twitter.com/kat_lu/statuses/151553522146615296&quot;&gt;in reply to kat_lu&lt;/a&gt; &lt;a class=&quot;aktt_tweet_time&quot; href=&quot;http://twitter.com/mattebb/statuses/151584256181800960&quot;&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
	<pubDate>Sat, 31 Dec 2011 16:31:00 +0000</pubDate>
</item>
<item>
	<title>True Volumetric for Blender: End of the Year Goodies</title>
	<guid isPermaLink="false">http://farsthary.wordpress.com/?p=2262</guid>
	<link>http://farsthary.wordpress.com/2011/12/30/end-of-the-year-goodies/</link>
	<description>&lt;p&gt;Hi All&lt;/p&gt;
&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_2263&quot; style=&quot;width: 637px;&quot;&gt;&lt;a href=&quot;http://farsthary.files.wordpress.com/2011/12/spherepng.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;size-full wp-image-2263&quot; height=&quot;352&quot; src=&quot;http://farsthary.files.wordpress.com/2011/12/spherepng.png?w=627&amp;amp;h=352&quot; title=&quot;spherepng&quot; width=&quot;627&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Wave sphere rendered in Blender Internal&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;I wish you all a wonderful new 2012 year!!!! and as a goodies for this dying year I would like to announce few improvements and new features I’ve been working on:&lt;/p&gt;
&lt;p&gt;Improved Swirl brush&lt;br /&gt;
&lt;span style=&quot;text-align: center; display: block;&quot;&gt;&lt;a href=&quot;http://farsthary.wordpress.com/2011/12/30/end-of-the-year-goodies/&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://img.youtube.com/vi/WsdoGD1LS8o/2.jpg&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Wave brush&lt;br /&gt;
&lt;span style=&quot;text-align: center; display: block;&quot;&gt;&lt;a href=&quot;http://farsthary.wordpress.com/2011/12/30/end-of-the-year-goodies/&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://img.youtube.com/vi/HNEtx5-hh50/2.jpg&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Procedural Noise to modify main LiveClay tools behavior&lt;br /&gt;
&lt;span style=&quot;text-align: center; display: block;&quot;&gt;&lt;a href=&quot;http://farsthary.wordpress.com/2011/12/30/end-of-the-year-goodies/&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://img.youtube.com/vi/VEVIK2d9a2E/2.jpg&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/farsthary.wordpress.com/2262/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/farsthary.wordpress.com/2262/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/farsthary.wordpress.com/2262/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/farsthary.wordpress.com/2262/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/farsthary.wordpress.com/2262/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/farsthary.wordpress.com/2262/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/farsthary.wordpress.com/2262/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/farsthary.wordpress.com/2262/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/farsthary.wordpress.com/2262/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/farsthary.wordpress.com/2262/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/farsthary.wordpress.com/2262/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/farsthary.wordpress.com/2262/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/farsthary.wordpress.com/2262/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/farsthary.wordpress.com/2262/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=farsthary.wordpress.com&amp;amp;blog=3450907&amp;amp;post=2262&amp;amp;subd=farsthary&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Fri, 30 Dec 2011 04:19:34 +0000</pubDate>
</item>
<item>
	<title>Akkana Peck: Plotting the Analemma</title>
	<guid isPermaLink="true">http://shallowsky.com/blog/science/astro/plotting-the-analemma.html</guid>
	<link>http://shallowsky.com/blog/science/astro/plotting-the-analemma.html</link>
	<description>&lt;p&gt;
My SJAA planet-observing column for January is about 
&lt;a href=&quot;http://ephemeris.sjaa.net/1201/c.html&quot;&gt;the Analemma and the
Equation of Time&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
The analemma is that funny figure-eight you see on world globes in the
middle of the Pacific Ocean. Its shape is the shape traced out by
the sun in the sky, if you mark its position at precisely the same
time of day over the course of an entire year.
&lt;/p&gt;&lt;p&gt;
The analemma has two components: the vertical component represents
the sun's declination, how far north or south it is in our sky.
The horizontal component represents the equation of time.
&lt;/p&gt;&lt;p&gt;
The equation of time describes how the sun moves relatively faster or
slower at different times of year. It, too, has two components: it's
the sum of two sine waves, one representing how the earth speeds up
and slows down as it moves in its elliptical orbit, the other a
function the tilt (or &quot;obliquity&quot;) of the earth's axis compared to
its orbital plane, the ecliptic.
&lt;/p&gt;&lt;p&gt;
&lt;a href=&quot;http://ephemeris.sjaa.net/1201/graph.jpg&quot;&gt;
&lt;img align=&quot;right&quot; alt=&quot;[components of the Equation of time]&quot; height=&quot;256&quot; src=&quot;http://ephemeris.sjaa.net/1201/graph.jpg&quot; width=&quot;341&quot; /&gt;&lt;/a&gt;
The Wikipedia page for
&lt;a href=&quot;http://en.wikipedia.org/wiki/Equation_of_time&quot;&gt;Equation of
time&lt;/a&gt; includes a link to a lovely piece of 
&lt;a href=&quot;http://en.wikipedia.org/wiki/File:Zeitgleichung.png&quot;&gt;R code by
Thomas Steiner showing how the two components relate&lt;/a&gt;. It's labeled
in German, but since the source is included, I was able to add English
labels and use it for my article.
&lt;/p&gt;&lt;p&gt;
But if you look at &lt;a href=&quot;http://images.google.com/images?q=analemma&amp;amp;btnG=Search&amp;amp;sout=1&quot;&gt;photos
of real analemmas in the sky&lt;/a&gt;, they're always tilted. Shouldn't they
be vertical? Why are they tilted, and how does the tilt vary with
location? To find out, I wanted a program to calculate the analemma.

&lt;/p&gt;&lt;h3&gt;Calculating analemmas in PyEphem&lt;/h3&gt;

&lt;p&gt;
The very useful astronomy Python package 
&lt;a href=&quot;http://rhodesmill.org/pyephem/index.html&quot;&gt;PyEphem&lt;/a&gt;
makes it easy to calculate the position of any astronomical object
for a specific location. Install it with: &lt;code&gt;easy_install pyephem&lt;/code&gt;
for Python 2, or &lt;code&gt;easy_install ephem&lt;/code&gt; for Python 3.
&lt;/p&gt;&lt;pre&gt;import ephem
observer = ephem.city('San Francisco')
sun = ephem.Sun()
sun.compute(observer)
print sun.alt, sun.az
&lt;/pre&gt;
&lt;p&gt;
The alt and az are the altitude and azimuth of the sun right now.
They're printed as strings: &lt;code&gt;25:23:16.6 203:49:35.6&lt;/code&gt;
but they're actually type 'ephem.Angle', so float(sun.alt) will
give you a number in radians that you can use for calculations.
&lt;/p&gt;&lt;p&gt;
Of course, you can specify any location, not just major cities.
PyEphem doesn't know San Jose, so here's the approximate location of
Houge Park where the &lt;a href=&quot;http://sjaa.net&quot;&gt;San Jose Astronomical
Association&lt;/a&gt; meets:
&lt;/p&gt;&lt;pre&gt;observer = ephem.Observer()
observer.name = &quot;San Jose&quot;
observer.lon = '-121:56.8'
observer.lat = '37:15.55'
&lt;/pre&gt;
&lt;p&gt;
You can also specify elevation, barometric pressure and other parameters.

&lt;/p&gt;&lt;p&gt;
So here's a simple analemma, calculating the sun's position at noon
on the 15th of each month of 2011:
&lt;/p&gt;&lt;pre&gt;    for m in range(1, 13) :
        observer.date('2011/%d/15 12:00' % (m))
        sun.compute(observer)
&lt;/pre&gt;

&lt;p&gt;
I used a simple PyGTK window to plot sun.az and sun.alt, so once
it was initialized, I drew the points like this:

&lt;/p&gt;&lt;pre wrap=&quot;wrap&quot;&gt;    # Y scale is 45 degrees (PI/2), horizon to halfway to zenith:
    y = int(self.height - float(self.sun.alt) * self.height / math.pi)
    # So make X scale 45 degrees too, centered around due south.
    # Want az = PI to come out at x = width/2.
    x = int(float(self.sun.az) * self.width / math.pi / 2)
    # print self.sun.az, float(self.sun.az), float(self.sun.alt), x, y
    self.drawing_area.window.draw_arc(self.xgc, True, x, y, 4, 4, 0, 23040)
&lt;/pre&gt;

&lt;p&gt;
So now you just need to calculate the sun's position at the same time
of day but different dates spread throughout the year.
&lt;/p&gt;&lt;p&gt;
&lt;img align=&quot;right&quot; alt=&quot;[analemma in San Jose at noon clock time]&quot; height=&quot;220&quot; src=&quot;http://shallowsky.com/blog/images/analemma/sj-analemma-clocktimes.jpg&quot; width=&quot;370&quot; /&gt;
And my 12-noon analemma came out almost vertical! Maybe the tilt I saw
in analemma photos was just a function of taking the photo early in
the morning or late in the afternoon? To find out, I calculated the
analemma for 7:30am and 4:30pm, and sure enough, those were tilted.
&lt;/p&gt;&lt;p&gt;
But wait -- notice my noon analemma was &lt;i&gt;almost&lt;/i&gt; vertical -- but
it wasn't exactly vertical. Why was it skewed at all?

&lt;/p&gt;&lt;h3&gt;Time is always a problem&lt;/h3&gt;
&lt;p&gt;
As always with astronomy programs, time zones turned out to be the
hardest part of the project. I tried to add other locations to my
program and immediately ran into a problem.
&lt;/p&gt;&lt;p&gt;
The &lt;code&gt;ephem.Date&lt;/code&gt; class always uses UTC, and has no concept
of converting to the observer's timezone. You can convert to the timezone
of the person running the program with &lt;code&gt;localtime&lt;/code&gt;, but
that's not useful when you're trying to plot an analemma at local noon.
&lt;/p&gt;&lt;p&gt;
At first, I was only calculating analemmas for my own location.
So I set time to '20:00', that being the UTC for my local noon.
And I got the image at right. It's an analemma, all right, and
it's almost vertical. Almost ... but not quite. What was up?
&lt;/p&gt;&lt;p&gt;
Well, I was calculating for 12 noon clock time -- but clock time isn't
the same as mean solar time unless you're right in the middle of your
time zone.
&lt;br clear=&quot;all&quot; /&gt;
&lt;/p&gt;&lt;p&gt;
You can calculate what your &lt;i&gt;real&lt;/i&gt; localtime is (regardless of
what politicians say your time zone should be) by using your longitude
rather than your official time zone:
&lt;/p&gt;&lt;pre wrap=&quot;wrap&quot;&gt;    date = '2011/%d/12 12:00' % (m)
    adjtime = ephem.date(ephem.date(date) \
                    - float(self.observer.lon) * 12 / math.pi * ephem.hour)
    observer.date = adjtime
&lt;/pre&gt;

&lt;p&gt;
Maybe that needs a little explaining. I take the initial time string,
like '2011/12/15 12:00', and convert it to an ephem.date.
The number of hours I want to adjust is my longitude (in radians)
times 12 divided by pi -- that's because if you go pi (180) degrees
to the other side of the earth, you'll be 12 hours off.
Finally, I have to multiply that by &lt;code&gt;ephem.hour&lt;/code&gt; because ...
um, because that's the way to add hours in PyEphem and they don't really
document the internals of ephem.Date.
&lt;/p&gt;&lt;p&gt;
&lt;img align=&quot;right&quot; alt=&quot;[analemma in San Jose at noon clock time]&quot; height=&quot;220&quot; src=&quot;http://shallowsky.com/blog/images/analemma/sj-analemma-localtime.jpg&quot; width=&quot;370&quot; /&gt;
Set the observer date to this adjusted time before calculating your
analemma, and you get the much more vertical figure you see here.
This also explains why the morning and evening analemmas weren't
symmetrical in the previous run.
&lt;/p&gt;&lt;p&gt;
This code is location independent, so now I can run my analemma program
on a city name, or specify longitude and latitude.
&lt;br clear=&quot;all&quot; /&gt;
&lt;/p&gt;&lt;p&gt;
PyEphem turned out to be a great tool for exploring analemmas.
But to really understand analemma shapes, I had more exploring to do.
I'll write about that, and post my complete analemma program,
in the next article.
&lt;br clear=&quot;all&quot; /&gt;&lt;/p&gt;</description>
	<pubDate>Fri, 30 Dec 2011 04:00:18 +0000</pubDate>
</item>
<item>
	<title>Yorik van Havre: Editable titleblocks in FreeCAD</title>
	<guid isPermaLink="true">http://yorik.uncreated.net/guestblog.php?2011=182</guid>
	<link>http://yorik.uncreated.net/guestblog.php?2011=182</link>
	<description>Lots of new features are arriving after the 0.12 release. I just implemented editable titleblocks:



More here.</description>
	<pubDate>Fri, 30 Dec 2011 01:29:48 +0000</pubDate>
</item>
<item>
	<title>Rawstudio project: Rawstudio 2.1 Feature Freeze</title>
	<guid isPermaLink="true">http://rawstudio.org/blog/?p=788</guid>
	<link>http://rawstudio.org/blog/?p=788</link>
	<description>&lt;p&gt;We have been slowly updating Rawstudio despite an otherwise busy schedule. This Here is a quick run-through of the new features.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Asynchronous Display Rendering&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;One of the most common requests is a more responsive UI, when adjusting settings.  I didn’t expect this to be a huge win, since it will not actually speed up rendering. However, after an experimental implementation, it really makes a big difference in how responsive the program &lt;em&gt;feels&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Basically all adjustments are now pushed to a separate thread, that begins re-rendering the image, if no further adjustments are made for 50 milliseconds. This makes sliders much more responsive, since an instant re-render isn’t triggered right away.&lt;/p&gt;
&lt;p&gt;Since multi-threading in a complex application such as Rawstudio can bring some unforeseen consequences, this is also the most likely source of instability. Not in the sense of data loss, but it could still result in some unexpected and hard to reproduce crashes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;System Display Profile&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can now use the display profiles you have assigned to your monitors. You can select the to use the system display profile in the Preferences box:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://rawstudio.org/blog/wp-content/uploads/2011/11/rawstudio-system-display-profile.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-834&quot; height=&quot;392&quot; src=&quot;http://rawstudio.org/blog/wp-content/uploads/2011/11/rawstudio-system-display-profile-small.png&quot; title=&quot;rawstudio-system-display-profile-small&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;New “Advanced” profiles&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We have created a number of “Advanced” color profiles, which will hopefully give a more precise color reproduction than the “simple” matrix-based profiles. You can read more about them &lt;a href=&quot;http://rawstudio.org/blog/?p=798&quot;&gt;here in a previous blog entry&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Full changelist&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-788&quot;&gt;&lt;/span&gt;&lt;strong&gt;New Stuff&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;System Display profiles can now be used&lt;/li&gt;
&lt;li&gt;Automatic “Quick Export” is now available when using tethered shooting, allowing direct tethered -&amp;gt; picasa/facebook/flickr upload.&lt;/li&gt;
&lt;li&gt;Exposure compensation is new read and displayed in the iconbox. (patch by Erik Wognsen)&lt;/li&gt;
&lt;li&gt;Add error notification when unable to save image settings.&lt;/li&gt;
&lt;li&gt;Add more metadata info to filename generation (iso, shutter, aperture, focal length &amp;amp; week number)&lt;/li&gt;
&lt;li&gt;Faster DCP profile processing&lt;/li&gt;
&lt;li&gt;Add option to lenses for correcting for fisheye effect. Selectable per lens.&lt;/li&gt;
&lt;li&gt;Update image while dragging curve points.&lt;/li&gt;
&lt;li&gt;Cropping can be done by moving single borders.&lt;/li&gt;
&lt;li&gt;Allowing to de-select a lens in lens editor.&lt;/li&gt;
&lt;li&gt;Exposure Mask colorspace now used for histogram – not using display cs anymore&lt;/li&gt;
&lt;li&gt;Multi-threaded processing when using ICC profiles&lt;/li&gt;
&lt;li&gt;Lens Correction cropping is now done without doing actual cropping of the image, faster image display because of that.&lt;/li&gt;
&lt;li&gt;Overlay scrollbar is disabled, since it makes usability of the iconbar much worse.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Camera Support, Color Profiles&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Canon Powershot S100&lt;/li&gt;
&lt;li&gt;Nikon E5100&lt;/li&gt;
&lt;li&gt;Panasonic GF3&lt;/li&gt;
&lt;li&gt;FUJI Finepix X100, F600 EXR&lt;/li&gt;
&lt;li&gt;Olympus E-P3, E-PL3, E-PM1&lt;/li&gt;
&lt;li&gt;Panasonic DMC G3, DMC GF3, DMC GX1&lt;/li&gt;
&lt;li&gt;Pentax Q, K100D, K110D,* istD,* istDL, * istDL2, * istDS, * istDS2&lt;/li&gt;
&lt;li&gt;Sony NEX C3, NEX-5N, SLT A35, SLT A55, SLT A65V,  SLT A77V&lt;/li&gt;
&lt;li&gt;Leica M9&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Camera Support, File Loading&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Canon Powershot S100&lt;/li&gt;
&lt;li&gt;Olympus E-PM1, E-PL3, E-P3 added&lt;/li&gt;
&lt;li&gt;Sony NEX-5N, NEX-C3, SLT-A35, SLT-A77V added&lt;/li&gt;
&lt;li&gt;Panasonic DMC GF3, DMC G3, FZ150 added&lt;/li&gt;
&lt;li&gt;Faster ORF (Olympus) decoding&lt;/li&gt;
&lt;li&gt;Olympus cameras read black level from makernote.&lt;/li&gt;
&lt;li&gt;Updated Canon 450D and 7D ISO 12800 white level&lt;/li&gt;
&lt;li&gt;Fix White level of Panasonic GH-2&lt;/li&gt;
&lt;li&gt;Add black area to Pentax K-x for better black estimation&lt;/li&gt;
&lt;li&gt;More precise black/white on Sony A550.&lt;/li&gt;
&lt;li&gt;More precise white level on Canon 600D/1000D at ISO 100.&lt;/li&gt;
&lt;li&gt;Dcraw updated to v9.12.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Bug Fixes&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;“Quick Export” now properly applies de-noise.&lt;/li&gt;
&lt;li&gt;Be sure to set camera default when applying settings to previously unopened images.&lt;/li&gt;
&lt;li&gt;Be sure to reset color profile when changing it.&lt;/li&gt;
&lt;li&gt;Always add EXIF colorspace info.&lt;/li&gt;
&lt;li&gt;Fix horizontal scrolling on touchpads.&lt;/li&gt;
&lt;li&gt;Don’t copy DNG private data tags.&lt;/li&gt;
&lt;li&gt;Add missing Whitebalance -&amp;gt; Auto to rightclick menu.&lt;/li&gt;
&lt;/ul&gt;</description>
	<pubDate>Thu, 29 Dec 2011 19:43:42 +0000</pubDate>
</item>
<item>
	<title>Aditya Bhatt: Memecached: Real-Time meme sharing with node.js, now.js, and MongoDB</title>
	<guid isPermaLink="false">http://adityabhatt.wordpress.com/?p=232</guid>
	<link>http://adityabhatt.wordpress.com/2011/12/29/memecached-real-time-meme-sharing-with-node-js-now-js-and-mongodb/</link>
	<description>&lt;p&gt;Yesterday, I wrote a web-app named &lt;a href=&quot;http://memecached.adityabhatt.org/&quot; target=&quot;_blank&quot; title=&quot;Memecached&quot;&gt;Memecached&lt;/a&gt;. It is a service which allows you to quickly generate a meme and publish it in real-time. It went viral for quite a few hours after I tweeted about it and posted it on Hacker News, with hundreds of memes being shared, sometimes a new meme every three seconds!&lt;/p&gt;
&lt;p&gt;Memecached is extremely &lt;strong&gt;lightweight&lt;/strong&gt;. The server is tiny, written entirely in exactly 50 lines of Javascript using &lt;a href=&quot;http://nodejs.org&quot; target=&quot;_blank&quot; title=&quot;Node.js&quot;&gt;node.js&lt;/a&gt;. It uses &lt;a href=&quot;http://mongodb.org&quot; target=&quot;_blank&quot; title=&quot;MongoDB&quot;&gt;MongoDB&lt;/a&gt; as the data store and &lt;a href=&quot;http://nowjs.com&quot; target=&quot;_blank&quot; title=&quot;NowJS&quot;&gt;now.js&lt;/a&gt; for real-time, remote method invocation.&lt;/p&gt;
&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_233&quot; style=&quot;width: 614px;&quot;&gt;&lt;a href=&quot;http://adityabhatt.files.wordpress.com/2011/12/memecached.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;size-full wp-image-233&quot; src=&quot;http://adityabhatt.files.wordpress.com/2011/12/memecached.png?w=632&quot; title=&quot;memecached&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Awkward text blackened&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Using it is fairly trivial – you open the page, and the latest N (25 by default) memes are streamed back and populated into the webpage. On the left is a collections of meme templates – you can click any one, enter the top and bottom text, and hit publish to see it reflected on each open client.&lt;/p&gt;
&lt;h2&gt;Some Code&lt;/h2&gt;
&lt;p&gt;On the server side, the now.js initialization didn’t work normally as sometimes the client – my chrome browser – would not perform a handshake (I’ve reported this in the now.js issue here: , so I had to fiddle around with the options till I found that &lt;em&gt;xhr-polling &lt;/em&gt;seemed to work.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;pre class=&quot;brush: jscript;&quot;&gt;var everyone = require(&quot;now&quot;).initialize(server, { socketio: {'transports': ['xhr-polling'] }} );
&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Publishing a meme involves validating the meme document, inserting it into mongo, and the passing it to all clients with:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;pre class=&quot;brush: jscript;&quot;&gt;// publish meme
everyone.now.publish = function(meme) {
    if(meme.name &amp;amp;&amp;amp; meme.text.line1 &amp;amp;&amp;amp; meme.text.line2) {
        db.collection('memes', function(err, collection) {
            // add a date field and save
            meme.date = Date.now();
            collection.insert(meme, function(err) {
                if(!err)
                    everyone.now.receiveMeme(meme);
            });
        });
    }
};
&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Retrieving a recent memes’ list is a trivial matter of looking up the last 25 in the ‘memes’ collecion:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;pre class=&quot;brush: jscript;&quot;&gt;// retrieve the latest few memes of a name. If there is no name, retrieve a mixture
everyone.now.getRecent = function(memeName) {
    var client = this;
    console.log(&quot;retrieving&quot;);
    db.collection('memes', function(err, collection) {
        if(memeName == undefined) {
            collection.find( {}, { sort: [[ &quot;date&quot;, &quot;desc&quot; ]], limit: 25 }).toArray( function(err, docs) {
                client.now.getContent(docs);
            });
        }
        else {
            collection.find( {&quot;name&quot;: memeName}, { sort: [[ &quot;date&quot;, &quot;desc&quot; ]], limit: 25 }).toArray( function(err, docs) {
                client.now.getContent(docs);
            });
        }
    });
};
&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;How it works&lt;/h2&gt;
&lt;p&gt;All meme template images are stored on Dropbox.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When a new meme is published, the server takes a JSON object from the client, containing the meme &lt;code&gt;name&lt;/code&gt; and &lt;code&gt;text&lt;/code&gt;. No image whatsoever.&lt;/li&gt;
&lt;li&gt;The received meme object is inserted into the mongo collection &lt;code&gt;memes&lt;/code&gt; with a date timestamp added to it. The object is also sent to all connected clients immediately so that they may update their timelines. This also means that no further database queries are required to retrieve new memes.&lt;/li&gt;
&lt;li&gt;When a client connects, the last few (25) memes are queried from the database and sent back. This can further be optimized by having an in-memory queue of the most recent memes, in addition to the database.&lt;/li&gt;
&lt;li&gt;All meme generation is done entirely &lt;strong&gt;client-side&lt;/strong&gt;, by drawing the text over the images using &lt;strong&gt;Canvas&lt;/strong&gt;. The client doesn’t have to download images, and the server doesn’t have to handle them at all.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div id=&quot;readme&quot;&gt;
&lt;div&gt;
&lt;h2&gt;How to run&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;First, run &lt;code&gt;mongod&lt;/code&gt; to start the Mongo daemon.&lt;/li&gt;
&lt;li&gt;Next, run the server: &lt;code&gt;node app.js&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Point your browser to &lt;code&gt;&lt;a href=&quot;http://localhost:8080&quot; rel=&quot;nofollow&quot;&gt;http://localhost:8080&lt;/a&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Bask in Memetic paradise.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;Things to do&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Upvotes/Downvotes&lt;/strong&gt;: This should be a ten-minute job. Just add two new keys to the ‘schema’ of the doc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sharing&lt;/strong&gt;: Memes are rendered in Canvas. Need to get the dataUrl() and allow the user to save the image to a file.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Line breaks&lt;/strong&gt;: There need to be line breaks in a meme phrase. Right now, extra long sentences will make the font shrink too much to be visible.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/adityabhatt.wordpress.com/232/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/adityabhatt.wordpress.com/232/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/adityabhatt.wordpress.com/232/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/adityabhatt.wordpress.com/232/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/adityabhatt.wordpress.com/232/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/adityabhatt.wordpress.com/232/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/adityabhatt.wordpress.com/232/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/adityabhatt.wordpress.com/232/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/adityabhatt.wordpress.com/232/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/adityabhatt.wordpress.com/232/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/adityabhatt.wordpress.com/232/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/adityabhatt.wordpress.com/232/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/adityabhatt.wordpress.com/232/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/adityabhatt.wordpress.com/232/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=adityabhatt.wordpress.com&amp;amp;blog=10529951&amp;amp;post=232&amp;amp;subd=adityabhatt&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Thu, 29 Dec 2011 00:50:47 +0000</pubDate>
</item>
<item>
	<title>Yuval Levy: Product Declaration</title>
	<guid isPermaLink="false">http://panospace.wordpress.com/?p=2255</guid>
	<link>https://panospace.wordpress.com/2011/12/28/product-declaration/</link>
	<description>How can &quot;25% recycled content&quot; be also &lt;a href=&quot;http://panospace.wordpress.com/2011/12/28/product-declaration/&quot;&gt;&quot;new material only&quot;&lt;/a&gt;?&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=panospace.wordpress.com&amp;amp;blog=2564859&amp;amp;post=2255&amp;amp;subd=panospace&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Wed, 28 Dec 2011 12:49:39 +0000</pubDate>
</item>
<item>
	<title>Richard Hughes: Translators wanted!</title>
	<guid isPermaLink="false">http://blogs.gnome.org/hughsie/?p=561</guid>
	<link>http://blogs.gnome.org/hughsie/2011/12/28/translators-wanted/</link>
	<description>&lt;p&gt;Does anybody want to help translate the&lt;a href=&quot;https://gitorious.org/colorhug/client&quot;&gt; colorhug-client project&lt;/a&gt; to new languages? The transifex page &lt;a href=&quot;https://www.transifex.net/projects/p/colorhug-client/&quot;&gt;is here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If any strings are difficult to translate let me know and I’ll either add translator comments or reword them. Thanks!&lt;/p&gt;</description>
	<pubDate>Wed, 28 Dec 2011 11:56:13 +0000</pubDate>
</item>
<item>
	<title>Matt Ebb: Tile necklace</title>
	<guid isPermaLink="false">http://mattebb.com/?p=754</guid>
	<link>http://mattebb.com/weblog/tile-necklace/</link>
	<description>&lt;p&gt;I made another piece of jewelry for &lt;a href=&quot;http://katherinelu.com&quot;&gt;Kat&lt;/a&gt;‘s birthday last week – I thought I’d experiment with making a necklace rather than a &lt;a href=&quot;http://mattebb.com/weblog/procedural-jewellery/&quot;&gt;ring&lt;/a&gt; like last time. It’s 3D printed and cast in sterling silver, and sits in three parts. Originally the idea was to have the arrangement customisable so they could be re-positioned along the chain, but in the end only a few combinations hang well in practice. Doing it this way, as opposed to a pendant, is much more complicated than I imagined and will require a bit more experimentation and prototyping if I attempt it again in the future.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone&quot; height=&quot;279&quot; src=&quot;http://mattebb.com/projects/jewelry/tile_necklace_2011/tile_necklace_2011.jpg&quot; title=&quot;After casting&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The design is inspired by an islamic tile pattern that we saw recently while travelling in Turkey. I modelled it in Houdini by first procedurally re-creating the tiling pattern, then randomly breaking it up and distorting the pieces with some final detailing and bevelling. The final form was chosen by spending a while experimenting with different random seeds and noise offsets to find something that worked aesthetically. I then brought it into Blender for final tweaks, cleaned up the geometry to be watertight, added sprues for ease of casting, and exported the STL file for the print service.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://mattebb.com/projects/jewelry/tile_necklace_2011/tile_necklace_network.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone&quot; height=&quot;403&quot; src=&quot;http://mattebb.com/projects/jewelry/tile_necklace_2011/tile_necklace_network_s.png&quot; title=&quot;Houdini SOP network&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Wed, 28 Dec 2011 04:01:12 +0000</pubDate>
</item>
<item>
	<title>True Volumetric for Blender: Freeze with LiveClay</title>
	<guid isPermaLink="false">http://farsthary.wordpress.com/?p=2257</guid>
	<link>http://farsthary.wordpress.com/2011/12/28/freeze-with-liveclay/</link>
	<description>&lt;p&gt;Hi &lt;img alt=&quot;:)&quot; class=&quot;wp-smiley&quot; src=&quot;http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif&quot; /&gt; &lt;/p&gt;
&lt;p&gt;Now freeze correctly modulate all LC based tool’s actions!&lt;/p&gt;
&lt;span style=&quot;text-align: center; display: block;&quot;&gt;&lt;a href=&quot;http://farsthary.wordpress.com/2011/12/28/freeze-with-liveclay/&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://img.youtube.com/vi/gf-Fg7TLLEU/2.jpg&quot; /&gt;&lt;/a&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/farsthary.wordpress.com/2257/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/farsthary.wordpress.com/2257/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/farsthary.wordpress.com/2257/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/farsthary.wordpress.com/2257/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/farsthary.wordpress.com/2257/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/farsthary.wordpress.com/2257/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/farsthary.wordpress.com/2257/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/farsthary.wordpress.com/2257/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/farsthary.wordpress.com/2257/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/farsthary.wordpress.com/2257/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/farsthary.wordpress.com/2257/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/farsthary.wordpress.com/2257/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/farsthary.wordpress.com/2257/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/farsthary.wordpress.com/2257/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=farsthary.wordpress.com&amp;amp;blog=3450907&amp;amp;post=2257&amp;amp;subd=farsthary&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Wed, 28 Dec 2011 03:33:39 +0000</pubDate>
</item>
<item>
	<title>Yuval Levy: Seventh Candle</title>
	<guid isPermaLink="false">http://panospace.wordpress.com/?p=2248</guid>
	<link>https://panospace.wordpress.com/2011/12/27/seventh-candle/</link>
	<description>When little children are allowed to play with &lt;a href=&quot;http://panospace.wordpress.com/2011/12/27/seventh-candle/&quot;&gt;fire&lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=panospace.wordpress.com&amp;amp;blog=2564859&amp;amp;post=2248&amp;amp;subd=panospace&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 27 Dec 2011 17:53:18 +0000</pubDate>
</item>
<item>
	<title>Yuval Levy: Catching Up With Hugin</title>
	<guid isPermaLink="false">http://panospace.wordpress.com/?p=2244</guid>
	<link>https://panospace.wordpress.com/2011/12/27/catching-up-with-hugin/</link>
	<description>Yesterday I caught up with Hugin after four months of absence.  Itchy.  Scratch.  &lt;a href=&quot;http://panospace.wordpress.com/2011/12/27/catching-up-with-hugin/&quot;&gt;Commit&lt;/a&gt;.&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=panospace.wordpress.com&amp;amp;blog=2564859&amp;amp;post=2244&amp;amp;subd=panospace&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 27 Dec 2011 17:32:20 +0000</pubDate>
</item>
<item>
	<title>Krita project: Comics with Krita DVD reviewed</title>
	<guid isPermaLink="false">http://krita.org/component/content/article/10-news/106-comics-with-krita-dvd-reviewed</guid>
	<link>http://feedproxy.google.com/~r/krita/news/~3/k7jasDMf-bk/106-comics-with-krita-dvd-reviewed</link>
	<description>&lt;p&gt;Over at &lt;a href=&quot;http://linux.com&quot;&gt;linux.com&lt;/a&gt;, &lt;a href=&quot;https://www.linux.com/learn/tutorials/529831-demystifying-krita-with-comics&quot;&gt;Nathan Willis reviews the &quot;Comics with Krita&quot; DVD&lt;/a&gt;. It's a good, thorough review, well worth a read! And then, of course, you might want to get your very own copy, which is still for sale &lt;a href=&quot;http://krita.org/component/content/article/1-krita-informations/104-training-dvd-01-comics-with-krita&quot;&gt;here&lt;/a&gt;!&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://krita.org/component/content/article/1-krita-informations/104-training-dvd-01-comics-with-krita&quot;&gt;&lt;img src=&quot;http://timotheegiet.com/blog/wp-content/uploads/2011/11/KritaDVDad.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/krita/news?a=k7jasDMf-bk:czuiwK2ndj8:yIl2AUoC8zA&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/krita/news?d=yIl2AUoC8zA&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/krita/news/~4/k7jasDMf-bk&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 27 Dec 2011 12:31:06 +0000</pubDate>
	<author>boud@valdyas.org (Boud)</author>
</item>
<item>
	<title>True Volumetric for Blender: How search engines are shaping the collective memmory</title>
	<guid isPermaLink="false">http://farsthary.wordpress.com/?p=2254</guid>
	<link>http://farsthary.wordpress.com/2011/12/26/how-search-engines-are-shaping-the-collective-memmory/</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://farsthary.files.wordpress.com/2011/12/internet.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-2255&quot; src=&quot;http://farsthary.files.wordpress.com/2011/12/internet.jpg?w=627&quot; title=&quot;Ðå0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
This is an off topic post, just some random thoughts in a sleepless night &lt;img alt=&quot;;)&quot; class=&quot;wp-smiley&quot; src=&quot;http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif&quot; /&gt; &lt;/p&gt;
&lt;p&gt;In Internet there’s everything, or almost everything for sure. Each second more bytes of new information adds to its traffic , we barely scratch the surface, even the search engines also scratch the surface, because we are dealing with high numbers and at those order of magnitude our limited nature start to fail. And while the previous statement can lead to the safe idea that the human knowledge is preserved in internet for good and the shake of future generations (catastrophic aside that someday humanity awake without power to run computers &lt;img alt=&quot;:P&quot; class=&quot;wp-smiley&quot; src=&quot;http://s2.wp.com/wp-includes/images/smilies/icon_razz.gif&quot; /&gt; ) and while the popular knowledge is that “Internet never forgets” I cannot avoid to tho think that things are not so simple:&lt;br /&gt;
Internet &lt;strong&gt;DO&lt;/strong&gt; forget, and more importantly, we &lt;strong&gt;DO&lt;/strong&gt; forget, and the way we interact with that source of knowledge is not very different to the way we interact with our own source of knowledge: our memories. And in that sense, Indexing engines and search engines have the last word and are actually shaping what Internet forgets and what remember.&lt;br /&gt;
More or less we all have almost every moment of our life recorded into our brain (well, according to brain plasticity many actually fade over time) but suppose for a moment that our brain don’t delete old memories at all, even in that case, to our conscience, we gradually forget the vast majority of that information because of the way we seek into our memories doesn’t bring that to light, is there, just that almost useless. The same is with internet: despite the fact that some old websites may be running in a single PC without copies and suddenly that PC is broken thus information vanished, converted into heat of a shortcuiting PC, or simply replaced/deleted and no old copy left, and that may actually account for “internet plasticity”, there’s the fact that statistically speaking, almost nobody look into results from Search engine that are 2-3 pages away from the first results, and those results are directly related to the ranking algorithm of the Search engines.&lt;br /&gt;
If a search engine use a ranking that gives more weight to the number of visit of a website (well actually they use a complex optimization algorithm involving much more variables), eventually those old web sites may still be around, but are forgotten by people, and while mass in general can take optimal choices, not always is the case and for that reason exist “mas media control” and false information can easily hide true information simply by been on top of the search engines over time, hence welcome the situation of being thirsty in the middle of the sea.&lt;br /&gt;
Gradually Internet forgets its own information according to the “&lt;em&gt;conscience&lt;/em&gt;” seeking algorithm dictated by search engines filtering and us.&lt;/p&gt;
&lt;p&gt;Cheers&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/farsthary.wordpress.com/2254/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/farsthary.wordpress.com/2254/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/farsthary.wordpress.com/2254/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/farsthary.wordpress.com/2254/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/farsthary.wordpress.com/2254/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/farsthary.wordpress.com/2254/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/farsthary.wordpress.com/2254/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/farsthary.wordpress.com/2254/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/farsthary.wordpress.com/2254/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/farsthary.wordpress.com/2254/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/farsthary.wordpress.com/2254/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/farsthary.wordpress.com/2254/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/farsthary.wordpress.com/2254/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/farsthary.wordpress.com/2254/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=farsthary.wordpress.com&amp;amp;blog=3450907&amp;amp;post=2254&amp;amp;subd=farsthary&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Mon, 26 Dec 2011 03:01:21 +0000</pubDate>
</item>
<item>
	<title>Yuval Levy: Boxing Day</title>
	<guid isPermaLink="false">http://panospace.wordpress.com/?p=2241</guid>
	<link>https://panospace.wordpress.com/2011/12/25/boxing-day/</link>
	<description>Boxing day &lt;a href=&quot;http://panospace.wordpress.com/2011/12/25/boxing-day/&quot;&gt;decadence&lt;/a&gt; starting at an e-tailer next to you December 24 8PM EST. Best Buy's online shopping: barely recommended.&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=panospace.wordpress.com&amp;amp;blog=2564859&amp;amp;post=2241&amp;amp;subd=panospace&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Sun, 25 Dec 2011 22:09:43 +0000</pubDate>
</item>
<item>
	<title>Yuval Levy: Swiss Comfort</title>
	<guid isPermaLink="false">http://panospace.wordpress.com/?p=2237</guid>
	<link>https://panospace.wordpress.com/2011/12/25/swiss-comfort/</link>
	<description>Thank you Costco for bringing to Canada this Swiss comfort. Filed under: personal&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=panospace.wordpress.com&amp;amp;blog=2564859&amp;amp;post=2237&amp;amp;subd=panospace&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Sun, 25 Dec 2011 21:21:20 +0000</pubDate>
</item>
<item>
	<title>Yuval Levy: Hard Disk Shredding</title>
	<guid isPermaLink="false">http://panospace.wordpress.com/?p=2229</guid>
	<link>https://panospace.wordpress.com/2011/12/24/hard-disk-shredding/</link>
	<description>One of my holiday projects is to streamline my &lt;a href=&quot;http://panospace.wordpress.com/2011/12/24/hard-disk-shredding/&quot;&gt;storage&lt;/a&gt; needs.&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=panospace.wordpress.com&amp;amp;blog=2564859&amp;amp;post=2229&amp;amp;subd=panospace&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Sat, 24 Dec 2011 23:48:32 +0000</pubDate>
</item>
<item>
	<title>Pascal de Brujn: Darktable Unity Progress</title>
	<guid isPermaLink="false">http://blog.pcode.nl/?p=835</guid>
	<link>http://blog.pcode.nl/2011/12/24/darktable-unity-progress/</link>
	<description>&lt;p&gt;Usually I don’t do a lot of “real” coding for Darktable, but I had some time on my hands today, and I implemented basic Unity integration for Darktable. Since I wasn’t familiar with libunity, nor was I really familiar with the depths of Darktable code let alone CMake, the implementation took me about 2 hours.&lt;/p&gt;
&lt;p&gt;That said, have a look at the results:&lt;/p&gt;
&lt;p&gt;&lt;video controls=&quot;controls&quot; height=&quot;375&quot; src=&quot;http://blog.pcode.nl/wp-content/uploads/2011/12/24/darktable-unity-progress.ogv&quot; width=&quot;600&quot;&gt;You should have seen a video here. That probably means your browser or aggregator probably doesn’t support HTML5 video. Please try to view the video on the original page or upgrade to a recent version of Firefox, Chromium or Opera.&lt;/video&gt;&lt;br /&gt;
You can also &lt;a href=&quot;http://blog.pcode.nl/wp-content/uploads/2011/12/24/darktable-unity-progress.ogv&quot;&gt;download&lt;/a&gt; the video for offline viewing if you prefer.&lt;/p&gt;
&lt;p&gt;By the way, the bug I mentioned at the end of the video has been &lt;a href=&quot;http://darktable.git.sourceforge.net/git/gitweb.cgi?p=darktable/darktable;a=commitdiff;h=c802bbb0e823245c7de950695e88879ea0488f6b&quot;&gt;mitigated&lt;/a&gt;, which is a chic way of saying I &lt;em&gt;kludged&lt;/em&gt; it so you won’t be bothered by it. But it’s not truely fixed.&lt;/p&gt;</description>
	<pubDate>Sat, 24 Dec 2011 21:14:04 +0000</pubDate>
        <enclosure url="http://blog.pcode.nl/wp-content/uploads/2011/12/24/darktable-unity-progress.ogv" length="40839652" type="video/ogg"/>
</item>
<item>
	<title>Matt Ebb: Twitter: 2011-12-25</title>
	<guid isPermaLink="true">http://mattebb.com/weblog/twitter-2011-12-25/</guid>
	<link>http://mattebb.com/weblog/twitter-2011-12-25/</link>
	<description>&lt;ul class=&quot;aktt_tweet_digest&quot;&gt;
&lt;li&gt;I wonder what Saul Bass would think of this &lt;a href=&quot;http://t.co/yGWrmlKQ&quot; rel=&quot;nofollow&quot;&gt;http://t.co/yGWrmlKQ&lt;/a&gt; &lt;a class=&quot;aktt_tweet_time&quot; href=&quot;http://twitter.com/mattebb/statuses/150422997273022464&quot;&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Just re-cut my demo reel and added some of the shots I worked on for Happy Feet Two: &lt;a href=&quot;http://t.co/joHbPJ1l&quot; rel=&quot;nofollow&quot;&gt;http://t.co/joHbPJ1l&lt;/a&gt; &lt;a class=&quot;aktt_tweet_time&quot; href=&quot;http://twitter.com/mattebb/statuses/149296969314091009&quot;&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;free time = matt's sourdough bakery back open for business! this time with a bit of rye+olives &lt;a href=&quot;http://t.co/jxa7nMwe&quot; rel=&quot;nofollow&quot;&gt;http://t.co/jxa7nMwe&lt;/a&gt; &lt;a class=&quot;aktt_tweet_time&quot; href=&quot;http://twitter.com/mattebb/statuses/149275855640731648&quot;&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
	<pubDate>Sat, 24 Dec 2011 16:31:00 +0000</pubDate>
</item>
<item>
	<title>Blender Project: Mango Open Movie: fund raiser started!</title>
	<guid isPermaLink="true">http://feedproxy.google.com/~r/Blender3d/~3/0bkeeqGvlpk/product_info_n.php</guid>
	<link>http://feedproxy.google.com/~r/Blender3d/~3/0bkeeqGvlpk/product_info_n.php</link>
	<description>Help improving Blender's VFX pipeline by realizing a short scifi movie in Amsterdam, and get a film...</description>
	<pubDate>Fri, 23 Dec 2011 22:38:00 +0000</pubDate>
</item>
<item>
	<title>Yuval Levy: Snow</title>
	<guid isPermaLink="false">http://panospace.wordpress.com/?p=2219</guid>
	<link>https://panospace.wordpress.com/2011/12/23/snow/</link>
	<description>&lt;a href=&quot;http://panospace.wordpress.com/2011/12/23/snow/&quot;&gt;Snow&lt;/a&gt; covered car, and snow leopard on an Acer Timeline X 1830T.&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=panospace.wordpress.com&amp;amp;blog=2564859&amp;amp;post=2219&amp;amp;subd=panospace&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Fri, 23 Dec 2011 21:26:07 +0000</pubDate>
</item>

</channel>
</rss>

