<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://planet-soc.com" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Planet SoC - </title>
 <link>http://planet-soc.com/organization/Debian/planet</link>
 <description>Planet view per organization</description>
 <language>en</language>
<item>
 <title>Aptitude 0.5.0 (aka Aptitude-gtk) released</title>
 <link>http://planet-soc.com/node/4486</link>
 <description>&lt;p&gt;Long time no post. Anyway, I have some good news.&lt;br /&gt;
The Gtk code for Aptitude has been merged some time ago into the main development trunk and we now have a release in Experimental.&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/11/aptitude-gtk-050-dashboard.png&quot; title=&quot;aptitude-gtk-050-dashboard&quot; rel=&quot;lightbox[pics63]&quot;&gt;&lt;img class=&quot;attachment wp-att-64 centered&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/11/aptitude-gtk-050-dashboard.png&quot; alt=&quot;aptitude-gtk-050-dashboard&quot; width=&quot;499&quot; height=&quot;388&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
For those that don&amp;#8217;t know about it, here&amp;#8217;s what it&amp;#8217;s all about : &amp;#8220;The new frontend is is an effort to bring some of the design principles of the curses frontend to a GUI environment, while also exploiting the unique features a GUI gives us and exploring ways to deal with changes in the environment in the nine years since aptitude was first designed.&amp;#8221;&lt;br /&gt;
I had a very good time this summer working on Aptitude with Daniel Burrows in the Google Summer of Code program and I&amp;#8217;m very glad we now have a real release. This version is by no means final or perfect but it&amp;#8217;s a good start.&lt;br /&gt;
Head for the blog post from Daniel for some other informations : [&lt;a href=&quot;http://algebraicthunk.net/~dburrows/blog/entry/aptitude-0.5.0-released/&quot;&gt;Daniel Burrows&lt;/a&gt;]&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/4486#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/26">Debian</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Wed, 12 Nov 2008 10:31:22 +0100</pubDate>
 <dc:creator>ObeyArthurLiu</dc:creator>
 <guid isPermaLink="false">4486 at http://planet-soc.com</guid>
</item>
<item>
 <title>Going to London - Cambridge</title>
 <link>http://planet-soc.com/node/3520</link>
 <description>&lt;p&gt;I&amp;#8217;ll be in Great Britain next week. I&amp;#8217;ll come to the &lt;a href=&quot;http://wiki.earth.li/DebianParty2008&quot;&gt;Debian Party 2008&lt;/a&gt; in Cambridge on Saturday 23rd August and will be back to London to visit &amp;#8217;till Wednesday 27th August. I&amp;#8217;m staying by myself in a nice little hotel in Bloomsbury.&lt;br /&gt;
It will be very interesting to meet Debian people and probably do some pitching for my Aptitude GTK project which is making nice progress.&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/08/aptitude-20080817-1.png&quot; title=&quot;aptitude-20080817-1&quot; rel=&quot;lightbox[pics58]&quot;&gt;&lt;img class=&quot;attachment wp-att-61 centered&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/08/aptitude-20080817-1.thumbnail.png&quot; alt=&quot;aptitude-20080817-1&quot; width=&quot;400&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve never been to London before. In fact, I&amp;#8217;ve been once when very young and all that I can remember is that the hot dogs seemed nice :). I&amp;#8217;m currently reading the Lonely Planet book about London and filling my program. Hi, London!&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3520#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/26">Debian</category>
 <category domain="http://planet-soc.com/taxonomy/term/182">Universe SoC</category>
 <pubDate>Sun, 17 Aug 2008 23:56:26 +0200</pubDate>
 <dc:creator>ObeyArthurLiu</dc:creator>
 <guid isPermaLink="false">3520 at http://planet-soc.com</guid>
</item>
<item>
 <title>State of the Aptitude (week 12)</title>
 <link>http://planet-soc.com/node/3469</link>
 <description>&lt;p&gt;Hi folks!&lt;br /&gt;
We&amp;#8217;re almost done for the official Summer of Code program and I thought that I couldn&amp;#8217;t let it end without another update, so here we are (you may thank Daniel Burrows for additional poking).&lt;br /&gt;
The Gtk+ interface for Aptitude is making great progress. The product is not final yet but already implements many of the planned ideas, with others to come.&lt;br /&gt;
Here are the screenies:&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/08/aptitude-20080813-1.png&quot; title=&quot;aptitude-20080813-1&quot; rel=&quot;lightbox[pics49]&quot;&gt;&lt;img class=&quot;attachment wp-att-51 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/08/aptitude-20080813-1.thumbnail.png&quot; alt=&quot;aptitude-20080813-1&quot; width=&quot;400&quot; height=&quot;347&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/08/aptitude-20080813-2.png&quot; title=&quot;aptitude-20080813-2&quot; rel=&quot;lightbox[pics49]&quot;&gt;&lt;img class=&quot;attachment wp-att-52 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/08/aptitude-20080813-2.thumbnail.png&quot; alt=&quot;aptitude-20080813-2&quot; width=&quot;400&quot; height=&quot;309&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/08/aptitude-20080813-3.png&quot; title=&quot;aptitude-20080813-3&quot; rel=&quot;lightbox[pics49]&quot;&gt;&lt;img class=&quot;attachment wp-att-53 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/08/aptitude-20080813-3.thumbnail.png&quot; alt=&quot;aptitude-20080813-3&quot; width=&quot;400&quot; height=&quot;299&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
So, let&amp;#8217;s see the tasks presented in my previous update:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A real user interface &amp;lt;- much progress here&lt;/li&gt;
&lt;li&gt;Being reliable… &amp;lt;- check! we don&amp;#8217;t crash all the time anymore&lt;/li&gt;
&lt;li&gt;Packages dependencies, pre-dependencies, etc. &amp;lt;- check!&lt;/li&gt;
&lt;li&gt;Hyperlinks between packages &amp;lt;- check!&lt;/li&gt;
&lt;li&gt;Advanced package search &amp;lt;- check!&lt;/li&gt;
&lt;li&gt;Tags support (tag clouds ?) &amp;lt;- well, no clouds yet, but we have tags&lt;/li&gt;
&lt;li&gt;Linking with interesting data sources like popcon &amp;lt;- not done yet&lt;/li&gt;
&lt;li&gt;A lot of interesting things &amp;lt;- well..&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In some more details: we are now much closer to the final interface. Some things are not done yet, for example, notification bars à la Iceweasel (or is it Firefox ?) are in the works for unobtrusive notifications about important things and a little guidance.&lt;br /&gt;
We are much more reliable now. We eliminated lots of memory management problems that resulted from, mmh, imperfect coding discipline. We also lock the interface when important backend stuff reload to prevent the user from shooting himself in the foot when triggering an install when the APT cache is reloading for example.. The backend refactoring took a sizable part of this second term but it was worth it. The code is now much cleaner and uses no more (at least much fewer) ugly unscalable hacks.&lt;br /&gt;
One very important feature of Aptitude is the ability to easily display all kinds of dependencies and navigate through them by hyperlinking. It&amp;#8217;s now working in the Gtk+ interface as well. Feel free to click on whatever looks like a package or a package version.&lt;br /&gt;
We now support the powerful Aptitude package searching syntax. Daniel Burrows is talking with Enrico Zini to bring the power of apt-xapian-index to Aptitude: autocompletion! lightning fast full-text searches! tag clouds! ponies!&lt;br /&gt;
There is still a lot to be done. I&amp;#8217;m not going away after the GSoC program. I&amp;#8217;m here to stay, for Aptitude and Debian. Daniel Burrows has been very helpful and supportive. The Debian community is as awesome as I knew it before participating in the program.&lt;br /&gt;
Daniel Burrows is planning to merge the Gtk+ interface into the main branch in September and packages may appear into Experimental. With the very interesting evolutions of the upcoming &lt;a href=&quot;http://web.mornfall.net/blog/adept_3.0_alpha_6.html&quot;&gt;Adept-3&lt;/a&gt;, Lenny+1 will show very interesting changes in the area of packages managers.&lt;br /&gt;
Now for you. I need you to test my interface. All necessary instructions are on the development trac : &lt;a href=&quot;http://dev.graffit.net/aptitude/trac&quot;&gt;http://dev.graffit.net/aptitude/trac&lt;/a&gt;.&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3469#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/26">Debian</category>
 <category domain="http://planet-soc.com/taxonomy/term/182">Universe SoC</category>
 <pubDate>Wed, 13 Aug 2008 13:00:34 +0200</pubDate>
 <dc:creator>ObeyArthurLiu</dc:creator>
 <guid isPermaLink="false">3469 at http://planet-soc.com</guid>
</item>
<item>
 <title>Back from Zurich</title>
 <link>http://planet-soc.com/node/2857</link>
 <description>&lt;p&gt;I finally got back from Switzerland. Google invited all the Summer of Code students to visit their offices. I chose to go to the Zurich one. It wasn&amp;#8217;t the closest (London was) but it was the largest and it had more engineers than MBAs.&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/img_0164medium.jpg&quot; title=&quot;img_0164medium&quot; rel=&quot;lightbox[pics44]&quot;&gt;&lt;img class=&quot;attachment wp-att-46 centered&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/img_0164medium.thumbnail.jpg&quot; alt=&quot;img_0164medium&quot; width=&quot;450&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
It has been very interesting meeting other Summer of Code participants from all Europe and a lot of other people of the free software community. There were about 40 people overall for the meeting at Google, along with free beer, cake and nice food.&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/img_0161medium.jpg&quot; title=&quot;img_0161medium&quot; rel=&quot;lightbox[pics44]&quot;&gt;&lt;img class=&quot;attachment wp-att-45 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/img_0161medium.thumbnail.jpg&quot; alt=&quot;img_0161medium&quot; width=&quot;450&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
I gave a talk about Aptitude, how it could be useful and how I worked so far. It was nice to see that nearly a third of the audience used Debian or a derivative.&lt;br /&gt;
By the way, the proprietary Nvidia X driver seriously messed up with the projector. It just wouldn&amp;#8217;t detect the external display at more than 640&amp;#215;480, which Impress didn&amp;#8217;t like at all. I didn&amp;#8217;t feel like hacking around my xorg.conf while on stage so I went without the slides (well, you could see about a half of each slide actually). I heard that it was because of my old GPU (GeForce 7400) that I had poor support and the impossibility of, for example, doing RandR correctly. I had to restart X and stuff&amp;#8230;&lt;br /&gt;
The talk went smoothly otherwise and Google staff graced some of us with a guided visit of the 6 stories building, complete with slides, cable-cars and 18th century-themed rooms. I had to sign a NDA over whatever secrets I may see and surender my DSLR, but you can find pretty pictures in this &lt;a href=&quot;http://valleywag.com/366548/googles-zurich-office-weirder-than-we-thought&quot;&gt;blog post&lt;/a&gt; from Valleywag.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/025_f0.jpg&quot; title=&quot;025_f0&quot; rel=&quot;lightbox[pics44]&quot;&gt;&lt;img class=&quot;attachment wp-att-47&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/025_f0.thumbnail.jpg&quot; alt=&quot;025_f0&quot; width=&quot;450&quot; height=&quot;337&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Google office really lived up to the hype. I wondered: do people actually work in there ? I guess they must do, and very well.&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/2857#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/26">Debian</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Sun, 13 Jul 2008 12:37:57 +0200</pubDate>
 <dc:creator>ObeyArthurLiu</dc:creator>
 <guid isPermaLink="false">2857 at http://planet-soc.com</guid>
</item>
<item>
 <title>Back from Zurich</title>
 <link>http://planet-soc.com/node/2869</link>
 <description>&lt;p&gt;I finally got back from Switzerland. Google invited all the Summer of Code students to visit their offices. I chose to go to the Zurich one. It wasn&amp;#8217;t the closest (London was) but it was the largest and it had more engineers than MBAs.&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/img_0164medium.jpg&quot; title=&quot;img_0164medium&quot; rel=&quot;lightbox[pics44]&quot;&gt;&lt;img class=&quot;attachment wp-att-46 centered&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/img_0164medium.thumbnail.jpg&quot; alt=&quot;img_0164medium&quot; width=&quot;450&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
It has been very interesting meeting other Summer of Code participants from all Europe and a lot of other people of the free software community. There were about 40 people overall for the meeting at Google, along with free beer, cake and nice food.&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/img_0161medium.jpg&quot; title=&quot;img_0161medium&quot; rel=&quot;lightbox[pics44]&quot;&gt;&lt;img class=&quot;attachment wp-att-45 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/img_0161medium.thumbnail.jpg&quot; alt=&quot;img_0161medium&quot; width=&quot;450&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
I gave a talk about Aptitude, how it could be useful and how I worked so far. It was nice to see that nearly a third of the audience used Debian or a derivative.&lt;br /&gt;
By the way, the proprietary Nvidia X driver seriously messed up with the projector. It just wouldn&amp;#8217;t detect the external display at more than 640&amp;#215;480, which Impress didn&amp;#8217;t like at all. I didn&amp;#8217;t feel like hacking around my xorg.conf while on stage so I went without the slides (well, you could see about a half of each slide actually). I heard that it was because of my old GPU (GeForce 7400) that I had poor support and the impossibility of, for example, doing RandR correctly. I had to restart X and stuff&amp;#8230;&lt;br /&gt;
The talk went smoothly otherwise and Google staff graced some of us with a guided visit of the 6 stories building, complete with slides, cable-cars and 18th century-themed rooms. I had to sign a NDA over whatever secrets I may see and surender my DSLR, but you can find pretty pictures in this &lt;a href=&quot;http://valleywag.com/366548/googles-zurich-office-weirder-than-we-thought&quot;&gt;blog post&lt;/a&gt; from Valleywag.&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/025_f0.jpg&quot; title=&quot;025_f0&quot; rel=&quot;lightbox[pics44]&quot;&gt;&lt;img class=&quot;attachment wp-att-47&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/025_f0.thumbnail.jpg&quot; alt=&quot;025_f0&quot; width=&quot;450&quot; height=&quot;337&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
The Google office really lived up to the hype. I wondered: do people actually work in there ? I guess they must do, and very well.&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/2869#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/26">Debian</category>
 <category domain="http://planet-soc.com/taxonomy/term/182">Universe SoC</category>
 <pubDate>Sun, 13 Jul 2008 12:37:57 +0200</pubDate>
 <dc:creator>ObeyArthurLiu</dc:creator>
 <guid isPermaLink="false">2869 at http://planet-soc.com</guid>
</item>
<item>
 <title>11 Jul 2008</title>
 <link>http://planet-soc.com/node/2822</link>
 <description>&lt;p&gt;Yesterday, 10 July, was the due date for the second&lt;br /&gt;
milestone of my work on DebGraph.  I am happy to report that&lt;br /&gt;
we are roughly two weeks ahead of schedule, so meeting this&lt;br /&gt;
milestone was not a cause for worry.&lt;/p&gt;

&lt;p&gt; We now have support for the following graph operators:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Difference&lt;/p&gt;
&lt;li&gt;Intersection
&lt;li&gt;Filter (by properties)
&lt;li&gt;Find Cycles (via &lt;a href=&quot;http://en.wikipedia.org/wiki/Tarjan&amp;#039;s_strongly_connected_components_algorithm&quot;&gt;Tarjan&amp;#8217;s&lt;br /&gt;
algorithm&lt;/a&gt;)&lt;/p&gt;
&lt;li&gt;Find Dependencies
&lt;li&gt;Find Reverse Dependencies
&lt;li&gt;Symmetric Difference (XOR)
&lt;li&gt;Union&lt;/ul&gt;

&lt;p&gt; The next milestone includes the development of a high-level&lt;br /&gt;
language (or integration with an existing extension&lt;br /&gt;
language) that streamlines the construction of complex&lt;br /&gt;
queries using the operators listed above.  We can build&lt;br /&gt;
arbitrarily complex queries using the C++ operators, but&lt;br /&gt;
dealing with the static typing and compiler toolchain can be&lt;br /&gt;
very clunky.  As such, I have spent the past week working on&lt;br /&gt;
Lua bindings for DebGraph, which will enable us to query the&lt;br /&gt;
graph of Debian packages from a clean, dynamically typed&lt;br /&gt;
language.  Lua has a powerful C API that exposes the Lua&lt;br /&gt;
stack and lets us move DebGraph information to and from the&lt;br /&gt;
Lua interpreter.  I&amp;#8217;m writing documentation that outlines&lt;br /&gt;
how to use DebGraph from both C++ and Lua in order to make&lt;br /&gt;
this work accessible to more folks.&lt;/p&gt;

&lt;p&gt; Sneak peak&lt;br&gt;&lt;br /&gt;
As an example, we can utilize the FindCycles operator in Lua&lt;br /&gt;
as follows:&lt;/p&gt;

&lt;p&gt;&lt;pre&gt;
libdg = package.loadlib(&quot;./libdebgraph.so&quot;,
&quot;luaopen&lt;em&gt;libdebgraph&quot;)
libdg()
LoadPackages(&#039;cache&#039;)
-- &#039;g&#039; is the main graph of unstable binary-arm packages
cycles = FindCycles(g)
print(&quot;Found &quot; .. #fc .. &quot; cycles&quot;)
for comp&lt;/em&gt;key,comp in pairs(cycles) do
    comp&lt;em&gt;nodes = &quot;&quot;
    for node&lt;/em&gt;key,node in pairs(comp) do
        prop = GetProperty(node, &quot;Package&quot;)
        comp&lt;em&gt;nodes = comp&lt;/em&gt;nodes .. prop .. &quot; &quot;
    end
    print(&quot;* &quot; .. comp_nodes)
end
&lt;/pre&gt;&lt;p&gt;
 The above Lua script produces the following result:&lt;/p&gt;
&lt;pre&gt;
reading cache/unstable/main/binary-arm/Packages
Found 61 cycles
* debconf-english debconf-i18n debconf
* perl-modules perl 
* cdebconf fontconfig-config fontconfig gsfonts-x11
libcairo2 libfontconfig1 libgtk2.0-0 libpango1.0-0
libpango1.0-common libxft2 ucf x11-utils xutils
[...]
&lt;/pre&gt;&lt;p&gt;
 These are the package names in the strongly connected&lt;br /&gt;
components, shown in alphabetical order.&lt;/p&gt;&lt;/p&gt;

&lt;p&gt; There is still a lot of work to do before the Lua binding&lt;br /&gt;
will achieve feature parity with the core library, but we&lt;br /&gt;
have now laid the foundation (and a brick or two).&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/2822#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/26">Debian</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Fri, 11 Jul 2008 17:25:01 +0200</pubDate>
 <dc:creator>acjensen</dc:creator>
 <guid isPermaLink="false">2822 at http://planet-soc.com</guid>
</item>
<item>
 <title>Going to Google Europe HQ, Zurich, Switzerland</title>
 <link>http://planet-soc.com/node/2773</link>
 <description>&lt;p&gt;&lt;img class=&quot;attachment wp-att-43 alignleft&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/google_zurich_hq_1.jpg&quot; alt=&quot;google_zurich_hq_1&quot; width=&quot;450&quot; height=&quot;299&quot; /&gt;&lt;br /&gt;
I&amp;#8217;m going to the Google Europe Headquarters in Zerich, Switzerland, tomorrow (July 10th).&lt;br /&gt;
Google is inviting us Summer of Code students, which is really nice.&lt;br /&gt;
I should be there in the middle of the afternoon from Paris.&lt;br /&gt;
I&amp;#8217;ll be wearing a &lt;a href=&quot;http://www.thinkgeek.com/slashdot/tshirts/62d1/zoom/&quot;&gt;Slashdot tshirt&lt;/a&gt;. Drop me a mail or a comment if you go too so we can meet!&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/2773#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/26">Debian</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Thu, 10 Jul 2008 00:48:49 +0200</pubDate>
 <dc:creator>ObeyArthurLiu</dc:creator>
 <guid isPermaLink="false">2773 at http://planet-soc.com</guid>
</item>
<item>
 <title>State of the Aptitude (week 7)</title>
 <link>http://planet-soc.com/node/2768</link>
 <description>&lt;p&gt;New status update!&lt;br /&gt;
Here&amp;#8217;s what Aptitude looks like:&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-9.png&quot; title=&quot;aptitude-20080709-9&quot; rel=&quot;lightbox[pics26]&quot;&gt;&lt;img class=&quot;attachment wp-att-28 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-9.thumbnail.png&quot; alt=&quot;aptitude-20080709-9&quot; width=&quot;400&quot; height=&quot;299&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
(more screenshots after the break)&lt;br /&gt;
I&amp;#8217;ve been exploring how the APT libraries work and how to interact with the aptitude back-end and here&amp;#8217;s what it can do now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Update package lists&lt;/li&gt;
&lt;li&gt;Display package lists&lt;/li&gt;
&lt;li&gt;Basic package search&lt;/li&gt;
&lt;li&gt;Mark packages for install/remove/purge/keep/hold&lt;/li&gt;
&lt;li&gt;Display package actions for execution&lt;/li&gt;
&lt;li&gt;Display conflicts&lt;/li&gt;
&lt;li&gt;Display and navigate between package conflict solutions&lt;/li&gt;
&lt;li&gt;Apply them&lt;/li&gt;
&lt;li&gt;Execute package actions (ie. actually install stuff)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What&amp;#8217;s missing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A real user interface&lt;/li&gt;
&lt;li&gt;Being reliable&amp;#8230;&lt;/li&gt;
&lt;li&gt;Packages dependencies, pre-dependencies, etc.&lt;/li&gt;
&lt;li&gt;Hyperlinks between packages&lt;/li&gt;
&lt;li&gt;Advanced package search&lt;/li&gt;
&lt;li&gt;Tags support (tag clouds ?)&lt;/li&gt;
&lt;li&gt;Linking with interesting data sources like popcon&lt;/li&gt;
&lt;li&gt;A lot of interesting things&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Basic functions of a package manager are already covered. We&amp;#8217;re still at the APT API exploration phase although we&amp;#8217;re almost done with it. I will soon start working on the final user interface and the real code design.&lt;br /&gt;
The current code is about 2000 lines of hastily hacked together C++ and XML. I&amp;#8217;ll have to restart the coding with a more elaborate Object design. Something that will be easier to work with in the future.&lt;br /&gt;
The code is on &lt;a href=&quot;http://dev.graffit.net/aptitude/trac&quot;&gt;http://dev.graffit.net/aptitude/trac&lt;/a&gt;. You can try to compile it and play with it. On the other hand I&amp;#8217;m going to scrape most of the code soon for the restart so if you&amp;#8217;re bored..&lt;br /&gt;
A walkthrough and more screenshots after the break.&lt;/p&gt;

&lt;p&gt;Here&amp;#8217;s a walkthrough of what you can do right now:&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-2.png&quot; title=&quot;aptitude-20080709-2&quot; rel=&quot;lightbox[pics31]&quot;&gt;&lt;img class=&quot;attachment wp-att-33 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-21.thumbnail.png&quot; alt=&quot;aptitude-20080709-2&quot; width=&quot;404&quot; height=&quot;312&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-3.png&quot; title=&quot;aptitude-20080709-3&quot; rel=&quot;lightbox[pics31]&quot;&gt;&lt;img class=&quot;attachment wp-att-34 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-3.thumbnail.png&quot; alt=&quot;aptitude-20080709-3&quot; width=&quot;404&quot; height=&quot;312&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-4.png&quot; title=&quot;aptitude-20080709-4&quot; rel=&quot;lightbox[pics31]&quot;&gt;&lt;img class=&quot;attachment wp-att-35 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-4.thumbnail.png&quot; alt=&quot;aptitude-20080709-4&quot; width=&quot;404&quot; height=&quot;312&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-5.png&quot; title=&quot;aptitude-20080709-5&quot; rel=&quot;lightbox[pics31]&quot;&gt;&lt;img class=&quot;attachment wp-att-36 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-5.thumbnail.png&quot; alt=&quot;aptitude-20080709-5&quot; width=&quot;404&quot; height=&quot;312&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-6.png&quot; title=&quot;aptitude-20080709-6&quot; rel=&quot;lightbox[pics31]&quot;&gt;&lt;img class=&quot;attachment wp-att-37 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-6.thumbnail.png&quot; alt=&quot;aptitude-20080709-6&quot; width=&quot;404&quot; height=&quot;312&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-7.png&quot; title=&quot;aptitude-20080709-7&quot; rel=&quot;lightbox[pics31]&quot;&gt;&lt;img class=&quot;attachment wp-att-38 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-7.thumbnail.png&quot; alt=&quot;aptitude-20080709-7&quot; width=&quot;404&quot; height=&quot;312&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-7.png&quot; title=&quot;aptitude-20080709-7&quot; rel=&quot;lightbox[pics31]&quot;&gt;&lt;img class=&quot;attachment wp-att-38 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-7.thumbnail.png&quot; alt=&quot;aptitude-20080709-7&quot; width=&quot;404&quot; height=&quot;312&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-91.png&quot; title=&quot;aptitude-20080709-9&quot; rel=&quot;lightbox[pics31]&quot;&gt;&lt;img class=&quot;attachment wp-att-40 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-91.thumbnail.png&quot; alt=&quot;aptitude-20080709-9&quot; width=&quot;600&quot; height=&quot;448&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/2768#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/26">Debian</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Thu, 10 Jul 2008 00:39:10 +0200</pubDate>
 <dc:creator>ObeyArthurLiu</dc:creator>
 <guid isPermaLink="false">2768 at http://planet-soc.com</guid>
</item>
<item>
 <title>State of the Aptitude (week 7)</title>
 <link>http://planet-soc.com/node/2774</link>
 <description>&lt;p&gt;New status update!&lt;br /&gt;
Here&amp;#8217;s what Aptitude looks like:&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-9.png&quot; title=&quot;aptitude-20080709-9&quot; rel=&quot;lightbox[pics26]&quot;&gt;&lt;img class=&quot;attachment wp-att-28 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-9.thumbnail.png&quot; alt=&quot;aptitude-20080709-9&quot; width=&quot;400&quot; height=&quot;299&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
(more screenshots after the break)&lt;br /&gt;
I&amp;#8217;ve been exploring how the APT libraries work and how to interact with the aptitude back-end and here&amp;#8217;s what it can do now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Update package lists&lt;/li&gt;
&lt;li&gt;Display package lists&lt;/li&gt;
&lt;li&gt;Basic package search&lt;/li&gt;
&lt;li&gt;Mark packages for install/remove/purge/keep/hold&lt;/li&gt;
&lt;li&gt;Display package actions for execution&lt;/li&gt;
&lt;li&gt;Display conflicts&lt;/li&gt;
&lt;li&gt;Display and navigate between package conflict solutions&lt;/li&gt;
&lt;li&gt;Apply them&lt;/li&gt;
&lt;li&gt;Execute package actions (ie. actually install stuff)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What&amp;#8217;s missing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A real user interface&lt;/li&gt;
&lt;li&gt;Being reliable&amp;#8230;&lt;/li&gt;
&lt;li&gt;Packages dependencies, pre-dependencies, etc.&lt;/li&gt;
&lt;li&gt;Hyperlinks between packages&lt;/li&gt;
&lt;li&gt;Advanced package search&lt;/li&gt;
&lt;li&gt;Tags support (tag clouds ?)&lt;/li&gt;
&lt;li&gt;Linking with interesting data sources like popcon&lt;/li&gt;
&lt;li&gt;A lot of interesting things&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Basic functions of a package manager are already covered. We&amp;#8217;re still at the APT API exploration phase although we&amp;#8217;re almost done with it. I will soon start working on the final user interface and the real code design.&lt;br /&gt;
The current code is about 2000 lines of hastily hacked together C++ and XML. I&amp;#8217;ll have to restart the coding with a more elaborate Object design. Something that will be easier to work with in the future.&lt;br /&gt;
The code is on &lt;a href=&quot;http://dev.graffit.net/aptitude/trac&quot;&gt;http://dev.graffit.net/aptitude/trac&lt;/a&gt;. You can try to compile it and play with it. On the other hand I&amp;#8217;m going to scrape most of the code soon for the restart so if you&amp;#8217;re bored..&lt;br /&gt;
A walkthrough and more screenshots after the break.&lt;/p&gt;

&lt;p&gt;Here&amp;#8217;s a walkthrough of what you can do right now:&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-2.png&quot; title=&quot;aptitude-20080709-2&quot; rel=&quot;lightbox[pics31]&quot;&gt;&lt;img class=&quot;attachment wp-att-33 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-21.thumbnail.png&quot; alt=&quot;aptitude-20080709-2&quot; width=&quot;404&quot; height=&quot;312&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-3.png&quot; title=&quot;aptitude-20080709-3&quot; rel=&quot;lightbox[pics31]&quot;&gt;&lt;img class=&quot;attachment wp-att-34 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-3.thumbnail.png&quot; alt=&quot;aptitude-20080709-3&quot; width=&quot;404&quot; height=&quot;312&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-4.png&quot; title=&quot;aptitude-20080709-4&quot; rel=&quot;lightbox[pics31]&quot;&gt;&lt;img class=&quot;attachment wp-att-35 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-4.thumbnail.png&quot; alt=&quot;aptitude-20080709-4&quot; width=&quot;404&quot; height=&quot;312&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-5.png&quot; title=&quot;aptitude-20080709-5&quot; rel=&quot;lightbox[pics31]&quot;&gt;&lt;img class=&quot;attachment wp-att-36 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-5.thumbnail.png&quot; alt=&quot;aptitude-20080709-5&quot; width=&quot;404&quot; height=&quot;312&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-6.png&quot; title=&quot;aptitude-20080709-6&quot; rel=&quot;lightbox[pics31]&quot;&gt;&lt;img class=&quot;attachment wp-att-37 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-6.thumbnail.png&quot; alt=&quot;aptitude-20080709-6&quot; width=&quot;404&quot; height=&quot;312&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-7.png&quot; title=&quot;aptitude-20080709-7&quot; rel=&quot;lightbox[pics31]&quot;&gt;&lt;img class=&quot;attachment wp-att-38 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-7.thumbnail.png&quot; alt=&quot;aptitude-20080709-7&quot; width=&quot;404&quot; height=&quot;312&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-8.png&quot; title=&quot;aptitude-20080709-8&quot; rel=&quot;lightbox[pics31]&quot;&gt;&lt;img class=&quot;attachment wp-att-38 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-8.thumbnail.png&quot; alt=&quot;aptitude-20080709-8&quot; width=&quot;404&quot; height=&quot;312&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-91.png&quot; title=&quot;aptitude-20080709-9&quot; rel=&quot;lightbox[pics31]&quot;&gt;&lt;img class=&quot;attachment wp-att-40 aligncenter&quot; src=&quot;http://www.milliways.fr/wp-content/uploads/2008/07/aptitude-20080709-91.thumbnail.png&quot; alt=&quot;aptitude-20080709-9&quot; width=&quot;600&quot; height=&quot;448&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/2774#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/26">Debian</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Thu, 10 Jul 2008 00:39:10 +0200</pubDate>
 <dc:creator>ObeyArthurLiu</dc:creator>
 <guid isPermaLink="false">2774 at http://planet-soc.com</guid>
</item>
<item>
 <title>Daniel Burrows on cwidget-gtk</title>
 <link>http://planet-soc.com/node/2190</link>
 <description>&lt;p&gt;Sometimes people propose other solutions to have the Aptitude-gtk project done, like :&lt;br /&gt;
I’d have thought that the most interesting way of doing aptitude-gtk would be to write a gtk backend for libcwidget. -&lt;cite&gt;Karellen&lt;/cite&gt;&lt;br /&gt;
As this might be of interest to more people, I&amp;#8217;ll repost &lt;a href=&quot;http://algebraicthunk.net/~dburrows&quot;&gt;Daniel Burrows&lt;/a&gt;&amp;#8216; response :&lt;br /&gt;
Although I can see where you’re coming from, a GTK+ backend to cwidget would have no significant upsides and significant downsides.&lt;br /&gt;
The main upside to doing that from a practical point of view is that you would have only one piece of “driver” code for the GTK+ and curses interfaces. You wouldn’t have to rewrite the entire interface from scratch to create a GUI frontend.&lt;br /&gt;
But this is just an illusory benefit. cwidget is a terminal interface library and aptitude’s curses frontend is a terminal-based UI. From a practical point of view, this means that aptitude regularly assumes that, for instance, to clear out a line it’s sufficient to output $WIDTH space characters (ASCII 32) with the desired background style. A port of cwidget to GTK+ would have to introduce new, interface-independent abstractions for all operations like this and eliminate all direct use of terminal-based assumptions, at a significant cost in complexity for both cwidget and the aptitude frontend. In order to transition to these new conventions, I believe you would have to rewrite large portions of both cwidget *and* aptitude in order to make the interface abstraction layer work. (remember: the justification for doing this is to avoid having to rewrite aptitude!)&lt;br /&gt;
Furthermore, while this approach avoids reimplementing aptitude’s curses interface (sort of, except where it doesn’t — see above), it does so at the cost of requiring you to reimplement all of cwidget, for GTK+. I just did a quick line count (with “wc -l”): in all of cwidget there are 23,390 lines of code, while aptitude’s curses frontend has around 23,359 lines of code (some of which are actually shared with the other frontends but are in the curses directory due to the historical organization of the code tree). Not only is a rewrite of cwidget more involved, but the amount of code you’d have to replace is comparable to the amount implicated in a rewrite of aptitude itself!&lt;br /&gt;
Finally, even if these costs weren’t enough to eliminate the idea, it’s not at all clear to me that a GTK+ backend for cwidget is even desirable. Although aptitude has some superficial similarities to a GUI program, the process of designing an interface to run in a terminal (where the available input mechanisms are relatively restricted and all output is to a character-cell grid) is rather different from the process of designing a GUI. GUI programs can’t rely on some simplifying assumptions that terminal programs can, and at the same time they have a lot more options available to them (just to name a few: graphics, multiple windows, differing text sizes and rotated text). Trying to force everything through an abstraction designed for terminal output would require you to either&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;eschew those options,&lt;/li&gt;
&lt;li&gt;provide abstract GUI components that somehow “fell back” to terminal rendering in a terminal, or&lt;/li&gt;
&lt;li&gt;add ways for the frontend to extend the abstract widgets with custom functionality.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;1. is not an option because I (and, I think, Arthur) want to design a good GTK+ package manager, not a good GTK+ imitation of a console package manager. 2. and 3. amount, in my strong opinion, to writing two separate interfaces but intertwining their implementations in a mass of maintenance-resistant and extension-resistant spaghetti code.&lt;br /&gt;
At the end of the day, I think that having two separate frontends (sharing backend logic where appropriate, of course) is a far cleaner and more maintainable design, and also easier to create.&lt;br /&gt;
As I said earlier, I intend to go a little farther than just making a GTK+ &amp;#8220;skin&amp;#8221; over the curses interface. Think less like gvim and emacs and more like maybe ddd.&lt;br /&gt;
I should also add that the cwidget library is used by no major programs except Aptitude so few others would benefit from a GTK+ backend. As the cwidget library &lt;a href=&quot;http://cwidget.alioth.debian.org&quot;&gt;homepage&lt;/a&gt; says:&lt;br /&gt;
&lt;a href=&quot;http://people.debian.org/~dburrows/aptitude&quot; name=&quot;status&quot;&gt;cwidget was originally an internal user interface library for the &lt;/a&gt;&lt;a&gt;aptitude&lt;/a&gt; package manager.  This means, on the one hand, that cwidget is known to work in the real world for a real application; on the other hand, it means that the feature set of cwidget is coextensive with the requirements of aptitude.&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/2190#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/26">Debian</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Tue, 24 Jun 2008 07:28:15 +0200</pubDate>
 <dc:creator>ObeyArthurLiu</dc:creator>
 <guid isPermaLink="false">2190 at http://planet-soc.com</guid>
</item>
</channel>
</rss>
