<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3449368425220629607</id><updated>2023-01-31T13:41:36.954+01:00</updated><category term="blog"/><title type='text'>PyRoom Dev</title><subtitle type='html'>Distraction free writing</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.pyroom.org/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3449368425220629607/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://blog.pyroom.org/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3449368425220629607.post-6021550418246010753</id><published>2010-03-12T13:14:00.001+01:00</published><updated>2010-03-12T13:15:06.176+01:00</updated><title type='text'>Release planing</title><content type='html'>Hello everyone,&lt;br /&gt;&lt;br /&gt;after it&#39;s been a little quiet around PyRoom lately, I&#39;m now planning on two releases quite soon:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;a release in our stable 0.4 branch that fixes some bugs, including the one that keeps PyRoom from starting under certain conditions (locales..)&lt;/li&gt;&lt;li&gt;an experimental release in the yet-to-create 0.5 branch (from trunk) that will feature the not-yet-rock-solid plugin architecture.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;Users will be advised to stick with 0.4 for some time. Maybe I&#39;ll change our versioning to something like the old scheme used in Linux, where odd numbers represent in-development versions. But that&#39;s just random thoughts for now.&lt;br /&gt;&lt;br /&gt;Still, we&#39;ll have to find a solution for the &lt;a href=&quot;http://blog.pyroom.org/2010/03/help-wanted-translations-management.html&quot;&gt;translations issue in Launchpad&lt;/a&gt;. I&#39;m not quite comfortable with shipping untranslated versions of PyRoom, especially given the tremendous and awesome effort put in by so many of you that translated PyRoom in many languages, but I&#39;d rather not deal with the situation in Launchpad and mess up, either. So, again, if any of you feels comfortable handling translations in Launchpad, please contact me here or via mail so we can work this out.</content><link rel='replies' type='application/atom+xml' href='http://blog.pyroom.org/feeds/6021550418246010753/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://blog.pyroom.org/2010/03/release-planing.html#comment-form' title='11 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3449368425220629607/posts/default/6021550418246010753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3449368425220629607/posts/default/6021550418246010753'/><link rel='alternate' type='text/html' href='http://blog.pyroom.org/2010/03/release-planing.html' title='Release planing'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3449368425220629607.post-7315522059326508556</id><published>2010-03-10T16:54:00.000+01:00</published><updated>2010-03-10T16:54:00.705+01:00</updated><title type='text'>Help wanted: Translations management</title><content type='html'>As many of you know, PyRoom has become more or less a one man job.&lt;br /&gt;&lt;br /&gt;While I still have time on my hands to handle coding tasks, there is still one thing I cannot seem to get my head around properly. It&#39;s quite an important task that should not be handled lightly by someone (me).&lt;br /&gt;&lt;br /&gt;Therefore, I&#39;m looking for help handling our translations in launchpad. At the moment, organization of our translations is not optimal, we have quite a few branches and are only maintaining one of those. Automatic import/export to a launchpad branch could be set up, etc.&lt;br /&gt;&lt;br /&gt;All in all, I&#39;m looking for someone experienced with launchpad, specifically translations to help out. Please comment here or write to &lt;a href=&quot;mailto:pyroom@florianheinle.de&quot;&gt;pyroom@florianheinle.de&lt;/a&gt; if you&#39;re interested!</content><link rel='replies' type='application/atom+xml' href='http://blog.pyroom.org/feeds/7315522059326508556/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://blog.pyroom.org/2010/03/help-wanted-translations-management.html#comment-form' title='4 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3449368425220629607/posts/default/7315522059326508556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3449368425220629607/posts/default/7315522059326508556'/><link rel='alternate' type='text/html' href='http://blog.pyroom.org/2010/03/help-wanted-translations-management.html' title='Help wanted: Translations management'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3449368425220629607.post-6224508355837602035</id><published>2009-09-04T10:23:00.002+02:00</published><updated>2009-09-04T10:26:27.044+02:00</updated><title type='text'>Branch merged: alignment</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://4.bp.blogspot.com/_HoB6G0z8T4k/SqDPLJVBRII/AAAAAAAAAtw/NA5gPohyTkg/s1600-h/alignment.png&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 125px;&quot; src=&quot;http://4.bp.blogspot.com/_HoB6G0z8T4k/SqDPLJVBRII/AAAAAAAAAtw/NA5gPohyTkg/s200/alignment.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5377525745469965442&quot; /&gt;&lt;/a&gt;&lt;br /&gt;While we&#39;re still working on the plugins branch and, at the moment, are building the GUI necessary for managing the plugins, we have finally been able to merge the alignment branch. The thing is, we just couldn&#39;t find anyone to test it on a multi screen setup. &lt;br /&gt;&lt;br /&gt;I&#39;ve attached a screenshot to my post, showing how text input can be aligned to the top now.</content><link rel='replies' type='application/atom+xml' href='http://blog.pyroom.org/feeds/6224508355837602035/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://blog.pyroom.org/2009/09/branch-merged-alignment.html#comment-form' title='4 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3449368425220629607/posts/default/6224508355837602035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3449368425220629607/posts/default/6224508355837602035'/><link rel='alternate' type='text/html' href='http://blog.pyroom.org/2009/09/branch-merged-alignment.html' title='Branch merged: alignment'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_HoB6G0z8T4k/SqDPLJVBRII/AAAAAAAAAtw/NA5gPohyTkg/s72-c/alignment.png" height="72" width="72"/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3449368425220629607.post-3509021364903540024</id><published>2009-08-27T21:39:00.003+02:00</published><updated>2009-08-27T21:50:46.677+02:00</updated><title type='text'>Some plugin ideas</title><content type='html'>Just a small collection of small but useful plugins that don&#39;t exist yet, but may soon:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;GIO for network access to files. Not in core because of the GIO dependency&lt;/li&gt;&lt;br /&gt;&lt;li&gt;export markdown/textile/rest/creole to html&lt;/li&gt;&lt;br /&gt;&lt;li&gt;some sort of timer/a clock&lt;/li&gt;&lt;br /&gt;&lt;li&gt;speed dial/savegame like display of recently used documents instead of file chooser&lt;/li&gt;&lt;br /&gt;&lt;li&gt;spell checking&lt;/li&gt;&lt;br /&gt;&lt;li&gt;syntax highlighting (there! I said it!) for LaTeX/markdown/textile/creole&lt;/li&gt;&lt;br /&gt;&lt;li&gt;publishing prose to publishing platforms such as LiveJournal, a blog, whatever&lt;/li&gt;&lt;br /&gt;&lt;li&gt;versioning. Not reinventing the wheel here, think &quot;vcs integration&quot;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;YouTube and twitter widgets. Just kidding.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Oh, just one thing: syntax highlighting for LaTeX will replace our gtk.TextView() with an instance of gtksourceview (of gedit fame), which means it will be able to highlight most programming languages, too. Still, PyRoom isn&#39;t intended to be a programmer&#39;s editor. Please don&#39;t use it as one or I&#39;ll come after you with a knife.</content><link rel='replies' type='application/atom+xml' href='http://blog.pyroom.org/feeds/3509021364903540024/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://blog.pyroom.org/2009/08/some-plugin-ideas.html#comment-form' title='8 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3449368425220629607/posts/default/3509021364903540024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3449368425220629607/posts/default/3509021364903540024'/><link rel='alternate' type='text/html' href='http://blog.pyroom.org/2009/08/some-plugin-ideas.html' title='Some plugin ideas'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3449368425220629607.post-2028028081925825682</id><published>2009-08-27T15:10:00.003+02:00</published><updated>2009-08-27T21:39:47.795+02:00</updated><title type='text'>Branch in the works: Plugins (part II)</title><content type='html'>Finally I found the time to start working on &lt;a href=&quot;https://code.launchpad.net/~pyroom-dev/pyroom/plugins&quot;&gt;the long expected plugins branch&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The plugin architecture I&#39;ve decided to use is quite simple, let me describe it briefly:&lt;br /&gt;&lt;br /&gt;A plugin is implemented as a subclass of PyRoom.plugin_manager.Plugin() and needs to have certain attributes: &lt;span style=&quot;font-style:italic;&quot;&gt;[capabilities]&lt;/span&gt;, a list of capabilities the plugin provides and, for each capability, a &lt;span style=&quot;font-style:italic;&quot;&gt;do_capability()&lt;/span&gt; method. Additionally, a plugin may override the builtin &lt;span style=&quot;font-style:italic;&quot;&gt;activate()&lt;/span&gt; method, which will be called when the plugin is loaded.&lt;br /&gt;&lt;br /&gt;Plugins are stored in python modules that may contain multiple plugins. Modules containing plugins can be activated and deactivated, activating all plugins inside in the process. This is by design to allow bundling of plugins with features that depend on each other.&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;What&#39;s already been done&lt;/h1&gt;&lt;br /&gt;Currently, I&#39;ve implemented a number of different hooks that call plugins by their capabilities in appropriate places of the code:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;on startup&lt;/li&gt;&lt;br /&gt;&lt;li&gt;when the GUI has been set up completely&lt;/li&gt;&lt;br /&gt;&lt;li&gt;when creating keybindings&lt;/li&gt;&lt;br /&gt;&lt;li&gt;when buffer information is shown (i.e. Ctrl+I)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;before saving a file. It&#39;s possible to disable the standard file saving method here.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;after having saved a file&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Plugins have access to both global objects &lt;span style=&quot;font-weight:bold;&quot;&gt;state&lt;/span&gt; (including state[&#39;GUI&#39;] and state[&#39;edit_instance&#39;]) and &lt;span style=&quot;font-weight:bold;&quot;&gt;config&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;There&#39;s quite a few opportunities for monkeypatching the GUI via plugins. This makes the system somewhat rough around the edges, but at the same time provides a lot of freedom to change things. Still, exceptions thrown in plugins, (hopefully) won&#39;t crash PyRoom, basic error handling displays a dialog box about the crashed plugin to the user and will offer to disable the plugin from now on.&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;What still needs to be done&lt;/h1&gt;&lt;br /&gt;I have a few plans for the plugin system.&lt;br /&gt;&lt;br /&gt;First, we&#39;ll need some sort of a GUI for activating and deactivating plugins without restarting PyRoom. &lt;br /&gt;&lt;br /&gt;Second, which is more interesting, would be a central repository for plugins users can browse and plugin developers can submit to. Updates included. The easiest way to do it would be to use &lt;a href=&quot;http://bazaar-vcs.org&quot;&gt;Bazaar&lt;/a&gt; (because we use it for PyRoom development, substitute any other VCS, though..) for the plugins directory. File system permissions aren&#39;t a problem here, we&#39;ll just put it into the user&#39;s XDG home data directory. Still, we most likely won&#39;t be adding a dependency to a VCS to our simple text editor. We&#39;ll most certainly will be rolling our own solution here, although the VCS approach seems inviting. &lt;br /&gt;&lt;br /&gt;Long story short, we&#39;ll have to integrate some sort of installation and update mechanism to the gui we&#39;re already planing.</content><link rel='replies' type='application/atom+xml' href='http://blog.pyroom.org/feeds/2028028081925825682/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://blog.pyroom.org/2009/08/branch-in-works-plugins-part-ii.html#comment-form' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3449368425220629607/posts/default/2028028081925825682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3449368425220629607/posts/default/2028028081925825682'/><link rel='alternate' type='text/html' href='http://blog.pyroom.org/2009/08/branch-in-works-plugins-part-ii.html' title='Branch in the works: Plugins (part II)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3449368425220629607.post-8651352321419948606</id><published>2009-08-07T18:33:00.002+02:00</published><updated>2009-08-07T18:41:54.126+02:00</updated><title type='text'>PyRoom discussions</title><content type='html'>Good news, everyone! We have sorted out some things about the mailing list.&lt;br /&gt;&lt;br /&gt;Sometimes recently, when I came online in the morning, I checked #pyroom logfiles, I saw users asked questions about PyRoom and/or PyRoom development, but they received no response. It appears that most of those who come and ask questions come from the US or other countries outside Europe, where our developer base comes from. Without an active and big idler base, time zone differences can be quite a killer for communication. &lt;br /&gt;&lt;br /&gt;To somehow mitigate the issue, we&#39;ve improved on our mailing list situation. PyRoom is driven by quite a few different teams on launchpad, to manage permissions etc. Until now, the team &lt;a href=&quot;http://launchpad.net/~pyroom-team&quot;&gt;~pyroom-team&lt;/a&gt; has served as a host for our mailing list, &lt;a href=&quot;http://lists.launchpad.net/pyroom-team&quot;&gt;pyroom-team herecomesanat lists.launchpad.net&lt;/a&gt;, but whas on a moderated basis. While that&#39;s not such a bad idea for &quot;teams&quot; at all, mailing list access is coupled to that.&lt;br /&gt;&lt;br /&gt;From now on, though, &lt;a href=&quot;http://lists.launchpad.net/pyroom-team&quot;&gt;pyroom-team herecomesanat lists.launchpad.net&lt;/a&gt; and its mailing list are free for all and should be a little more convenient to use than our IRC channel. While our user and developer base remains small, we&#39;ll be discussing both development and support issues there.</content><link rel='replies' type='application/atom+xml' href='http://blog.pyroom.org/feeds/8651352321419948606/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://blog.pyroom.org/2009/08/pyroom-discussions.html#comment-form' title='3 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3449368425220629607/posts/default/8651352321419948606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3449368425220629607/posts/default/8651352321419948606'/><link rel='alternate' type='text/html' href='http://blog.pyroom.org/2009/08/pyroom-discussions.html' title='PyRoom discussions'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3449368425220629607.post-7264796677060630863</id><published>2009-08-02T23:42:00.004+02:00</published><updated>2009-08-02T23:55:36.258+02:00</updated><title type='text'>Branch in the works: Plugins - and why we want them</title><content type='html'>&lt;a href=&quot;http://bazaar.launchpad.net/~pyroom-dev/pyroom/trunk/revision/193&quot;&gt;Now that the &quot;config confusion&quot; branch has been merged into trunk&lt;/a&gt;, the way is free to work on a more exciting branch: The long awaited plugin System.&lt;br /&gt;&lt;br /&gt;Now, as long as we&#39;ve been planing to build a plugin system (and that has been one of our plans for months), we&#39;ve always been asked the legitimate question, why a text editor without distractions needs a plugin system.&lt;br /&gt;&lt;br /&gt;The prospect of managing a whole lot of things before &lt;i&gt;just starting to write&lt;/i&gt; is indeed not quite what one might be looking for in our project. But, fear not, we have taken this into consideration.&lt;br /&gt;&lt;br /&gt;First thing is, we still want to provide a solid core for PyRoom that works out of the box, no configuration needed. That has been and always will be one of our goals. Now that this concern is out of the way, let&#39;s head on to some more lengthy reasoning about why we think a plugin system actually helps us &lt;i&gt;keep out&lt;/i&gt; feature creep of PyRoom.&lt;br /&gt;&lt;br /&gt;In the past, we&#39;ve received a lot of feature requests. Some of those have been incorporated into PyRoom, but others had to be declined. Among those, most were actually good suggestions that would really have improved the overall PyRoom experience - but not for &lt;i&gt;everyone&lt;/i&gt;. Some feature requests were quite legitimate for a subset of our users but would have bloated the programme for anyone else. As an example, a long standing and very plausible feature request is &lt;span style=&quot;font-style:italic;&quot;&gt;syntax highlighting&lt;/span&gt;. This would be quite an overkill feature for most writers, but certainly not for those editing &lt;span style=&quot;font-style:italic;&quot;&gt;LaTeX&lt;/span&gt; files. &lt;br /&gt;&lt;br /&gt;By providing a plugin interface, we plan to allow some kind of compromise between keeping the core of PyRoom lean and productive, while allowing selective addition of features by installing plugins. This actively helps us keep features out of PyRoom that not everyone might be interested in dealing with.</content><link rel='replies' type='application/atom+xml' href='http://blog.pyroom.org/feeds/7264796677060630863/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://blog.pyroom.org/2009/08/branch-in-works-plugins-and-why-we-want.html#comment-form' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3449368425220629607/posts/default/7264796677060630863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3449368425220629607/posts/default/7264796677060630863'/><link rel='alternate' type='text/html' href='http://blog.pyroom.org/2009/08/branch-in-works-plugins-and-why-we-want.html' title='Branch in the works: Plugins - and why we want them'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3449368425220629607.post-2845626275035453425</id><published>2009-08-01T12:50:00.002+02:00</published><updated>2009-08-01T13:14:21.067+02:00</updated><title type='text'>Branch in the works: Config Confusion</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://1.bp.blogspot.com/_HoB6G0z8T4k/SnQeJ--jPVI/AAAAAAAAAsk/KoMBUGPKITQ/s1600-h/config-confusion.png&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 145px; height: 200px;&quot; src=&quot;http://1.bp.blogspot.com/_HoB6G0z8T4k/SnQeJ--jPVI/AAAAAAAAAsk/KoMBUGPKITQ/s200/config-confusion.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5364946212978113874&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://bugs.launchpad.net/pyroom/+bug/407349&quot;&gt;Changing PyRoom configuration at runtime is quite complicated, at the moment&lt;/a&gt;. While our configuration file is quite simple and easy to use, PyRoom at runtime makes use of at least three different ways of using configuration files. It works, but there&#39;s a lot of unnecessary passing around of configuration objects and not everything those contain is configuration. Some objects also contain runtime state data, such as PyRoom&#39;s absolute path, which it needs for theme loading, etc. &lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Our current configuration methods&lt;/h2&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Config file&lt;/b&gt;&lt;br /&gt;Our configuration file, &lt;i&gt;pyroom.conf&lt;/i&gt; is kept in an instance of &lt;i&gt;ConfigParser&lt;/i&gt; and accessible to most modules (not all) and can be manipulated directly. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;pyroom_conf&lt;/b&gt;&lt;br /&gt;When starting PyRoom, this instance of &lt;i&gt;preferences.PyroomConfig()&lt;/i&gt; is created and (some) entries from our configuration file are being set as attributes. This objects is passed around to other modules - but, again, not to all.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Preferences()&lt;/b&gt;&lt;br /&gt;This is actually our GUI class for the preferences dialog. Some settings are held there, too. This is not actually passed around the programme at all, but it&#39;s used internally when changing preferences and applying the results.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Applying of configuration changes is somewhat complicated, too. Since most of our programme is GUI, most of the settings used apply instantly visible to the user, too. But there&#39;s different ways to this, too. Some functions that change configuration apply the settings by themselves and change the settings only in their own place. Sparsely, the same settings exist in different places, too and are not affected by the configuration change, which led to trouble in the past. Other functions, though, set configuration settings in the config file and run &lt;i&gt;apply_theme()&lt;/i&gt;, which reads from configuration and &lt;i&gt;pyroom_conf&lt;/i&gt; to apply the settings found there, ignoring aforementioned &quot;invisible&quot; settings in the process.&lt;br /&gt;&lt;br /&gt;Saving of configuration is a different beast, too. Since it&#39;s always hard to tell where exactly settings and states reside, it&#39;s hard to gather those for persistent storage in the configuration or theme files. &lt;br /&gt;&lt;br /&gt;&lt;h2&gt;What&#39;s about to change&lt;/h2&gt;&lt;br /&gt;I&#39;ve created a new module &lt;i&gt;globals&lt;/i&gt;, which keeps two dictionaries: &lt;i&gt;state&lt;/i&gt; and &lt;i&gt;config&lt;/i&gt;. The new &lt;i&gt;globals&lt;/i&gt; module is available to all other modules and is intended as the only method of configuration and state keeping. &lt;i&gt;config&lt;/i&gt;, of course, is backed by &lt;i&gt;ConfigParser&lt;/i&gt; and can be changed from everywhere. Settings that change the GUI can be applied by GUI().apply_theme() then. &lt;i&gt;state&lt;/i&gt;, however, keeps runtime data, such as if GNOME default fonts are available, paths to configuration, themes, etc and other things that don&#39;t need to be saved to the configuration file.</content><link rel='replies' type='application/atom+xml' href='http://blog.pyroom.org/feeds/2845626275035453425/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://blog.pyroom.org/2009/08/branch-in-works-config-confusion.html#comment-form' title='3 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3449368425220629607/posts/default/2845626275035453425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3449368425220629607/posts/default/2845626275035453425'/><link rel='alternate' type='text/html' href='http://blog.pyroom.org/2009/08/branch-in-works-config-confusion.html' title='Branch in the works: Config Confusion'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_HoB6G0z8T4k/SnQeJ--jPVI/AAAAAAAAAsk/KoMBUGPKITQ/s72-c/config-confusion.png" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3449368425220629607.post-1061616644506289450</id><published>2009-08-01T11:34:00.004+02:00</published><updated>2009-08-01T11:54:00.800+02:00</updated><title type='text'>Branch in the works: Alignment</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://1.bp.blogspot.com/_HoB6G0z8T4k/SnQOA5efp1I/AAAAAAAAAsY/f_KNYGvLNvI/s1600-h/alignment.png&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 125px;&quot; src=&quot;http://1.bp.blogspot.com/_HoB6G0z8T4k/SnQOA5efp1I/AAAAAAAAAsY/f_KNYGvLNvI/s200/alignment.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5364928464696616786&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://code.launchpad.net/~tiax/pyroom/alignment&quot;&gt;I&#39;m currently working on a branch&lt;/a&gt; that allows a different position for PyRoom&#39;s text entry box: At the top. It&#39;s not particularly complicated, but there&#39;s quite a difference in user experience involved. &lt;br /&gt;&lt;br /&gt;We&#39;ll be offering the choice whether the textbox should be centred (as before and per default) or if it should appear at the top. In combination with setting textbox height to 50%, this allows text to fill up until the exact center of the screen. Any further line will stay at the center of the screen and, thus, potentially at the users&#39; eye level. &lt;a href=&quot;https://bugs.launchpad.net/pyroom/+bug/363390&quot;&gt;I&#39;m sure there are users that would prefer this layout&lt;/a&gt; to the standard layout we offer with PyRoom 0.4.1&lt;br /&gt;&lt;br /&gt;The branch itself is potentially ready for merge. What it still lacks, though, is testing. Implementing this feature required to switch to a different method of positioning our widgets, now we&#39;re using &lt;a href=&quot;http://www.pygtk.org/docs/pygtk/class-gtkalignment.html&quot;&gt;GTK Alignments&lt;/a&gt; instead of the somewhat hackish method we used before. However, I&#39;m not sure if this method and our current implementation work nicely with multiple monitors. Unfortunately, I can&#39;t test it myself with my single laptop screen. &lt;br /&gt;&lt;br /&gt;If you want to help testing, please checkout &lt;a href=&quot;https://code.launchpad.net/~tiax/pyroom/alignment&quot;&gt;lp:~tiax/pyroom/alignment&lt;/a&gt;, run PyRoom from your new checkout and test the new positioning options. Should you encounter any problems, please post to &lt;a href=&quot;https://bugs.launchpad.net/pyroom/+bug/363390&quot;&gt;Bug #363390 in Launchpad&lt;/a&gt; with a description (or patch..).</content><link rel='replies' type='application/atom+xml' href='http://blog.pyroom.org/feeds/1061616644506289450/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://blog.pyroom.org/2009/08/branch-in-works-alignment.html#comment-form' title='3 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3449368425220629607/posts/default/1061616644506289450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3449368425220629607/posts/default/1061616644506289450'/><link rel='alternate' type='text/html' href='http://blog.pyroom.org/2009/08/branch-in-works-alignment.html' title='Branch in the works: Alignment'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_HoB6G0z8T4k/SnQOA5efp1I/AAAAAAAAAsY/f_KNYGvLNvI/s72-c/alignment.png" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3449368425220629607.post-1859902741678711811</id><published>2009-08-01T11:28:00.002+02:00</published><updated>2009-08-01T11:33:40.532+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="blog"/><title type='text'>Our PyRoom Dev blog</title><content type='html'>Welcome to our new PyRoom Dev Blog. Here is where we plan to post some articles about using and programming PyRoom. Don&#39;t expect political statements or daily blogging. What&#39;s not worth posting won&#39;t exactly show up here.</content><link rel='replies' type='application/atom+xml' href='http://blog.pyroom.org/feeds/1859902741678711811/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://blog.pyroom.org/2009/08/our-pyroom-dev-blog.html#comment-form' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3449368425220629607/posts/default/1859902741678711811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3449368425220629607/posts/default/1859902741678711811'/><link rel='alternate' type='text/html' href='http://blog.pyroom.org/2009/08/our-pyroom-dev-blog.html' title='Our PyRoom Dev blog'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>