<?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/OpenStreetMap/planet</link>
 <description>Planet view per organization</description>
 <language>en</language>
<item>
 <title>If there was one thing you wish you had known before…</title>
 <link>http://planet-soc.com/node/3667</link>
 <description>&lt;p&gt;One of the questions in the student evaluation of the Google Summer of Code reads:&lt;br /&gt;
If there was one thing you wish you had known before getting started in Summer of Code, what would it be?&lt;br /&gt;
It is a very typical evaluation question and we all sortof know what it means and how to answer it. However, if you insist on thinking about it - and this is very acceptable behavior in some circles - it is actually a very difficult question.&lt;br /&gt;
I tend to read this question as follows: if you could meet yourself in the past, what would you tell your past self?&lt;br /&gt;
Well, I would probably give myself the final git repository, plus an external hard disk with as much of the interesting new information on the present day Internet as possible.&lt;br /&gt;
What would my past self do with that information? He would probably decide to use the outcome of a couple of footy matches to make a decent living. But apart from that, he would pick another project. Not because my project is uninteresting, but I really enjoyed &lt;em&gt;that part&lt;/em&gt; of the project that I worked on. Continuing to work on this particular code base is really interesting, but not as interesting as it was to build it in the first place.&lt;br /&gt;
So my conclusion is: the more advice that I give to my past self, the less intersting his project would become. This is not a real problem however, because the information would provide him with many new opportunities.&lt;br /&gt;
I have the same view on Sudoko puzzles. A friend of mine wrote a computer program, while he was drinking beer in the pub, that could solve a lot of these puzzles. Many fanatical puzzlers would never consider using such a program; it would take away the fun.&lt;br /&gt;
I completely disagree with them. Now that my friend has releaved the world of The Sudoko Problem, mankind can move on to solving new problems.&lt;br /&gt;
I do not understand why people take such pleasure in creating artificial problems and then solving them over and over again, when there is an astonishing abundance of problems already out there waiting to be solved.&lt;br /&gt;
Just to make an even bolder statement: anyone who spends even a minute a day solving problems that have already been solved, should feel really guilty about climate change, poverty, diseases, slow public transport and millions and millions of other problems. Well at least, I tend to look at my own behavior from that perspective. All that without losing the ability to enjoy live; that is the real tricky part.&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3667#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/100">OpenStreetMap</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Mon, 01 Sep 2008 04:54:48 +0200</pubDate>
 <dc:creator>Sjors</dc:creator>
 <guid isPermaLink="false">3667 at http://planet-soc.com</guid>
</item>
<item>
 <title>Language filtering of diary entries!!</title>
 <link>http://planet-soc.com/node/3595</link>
 <description>&lt;p&gt;This feature was originally proposed by &lt;a href=&quot;http://www.dankarran.com/&quot;&gt;Dan Karran&lt;/a&gt; as a &lt;a href=&quot;http://arindamghosh.wordpress.com/2008/07/22/users-language-preference-added-in-osm-rails-port/&quot;&gt;comment in one of my earlier posts&lt;/a&gt;. Anyway, so here we have &amp;#8220;show all / filter by my language&amp;#8221; tags in the user diaries&amp;#8217; pages. By default, all entries are shown. We can click on &amp;#8216;filter by my language&amp;#8217; so as filter the posts by the locale selected by the user in his preferences. We can also have feeds for these filtered entries. The screen-shot of current diary entries page,&lt;br /&gt;
&lt;a href=&quot;http://farm4.static.flickr.com/3178/2789658619_c2627ffb24_o.png&quot;&gt;&lt;img class=&quot;size-large wp-image-120&quot; src=&quot;http://arindamghosh.files.wordpress.com/2008/08/screenshot-filter.png?w=500&amp;amp;h=322&quot; alt=&quot;openstreetmap-language-filter-diary-entries&quot; width=&quot;500&quot; height=&quot;322&quot; /&gt;&lt;/a&gt;Image #1: openstreetmap-language-filter-diary-entries&lt;br /&gt;
And for this we need to specify the language of each diary entry. So new entry page has an option or rather a dropdown menu from where we select the language of the entry. This preference, by default takes the value of user&amp;#8217;s current locale and is saved in language column of diary_entries table. The screen-shot of &amp;#8216;new diary entry&amp;#8217; is as follows,&lt;br /&gt;
&lt;a href=&quot;http://farm4.static.flickr.com/3088/2790506904_f18f60cd2b_o.png&quot;&gt;&lt;img class=&quot;size-large wp-image-121&quot; src=&quot;http://arindamghosh.files.wordpress.com/2008/08/screenshot-de.png?w=500&amp;amp;h=285&quot; alt=&quot;openstreetmap-new-diary-entry&quot; width=&quot;500&quot; height=&quot;285&quot; /&gt;&lt;/a&gt;Image #2: openstreetmap-new-diary-entry&lt;br /&gt;
Also put up your suggestions&amp;#8230; &lt;img src=&quot;http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/arindamghosh.wordpress.com/119/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/arindamghosh.wordpress.com/119/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/arindamghosh.wordpress.com/119/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/arindamghosh.wordpress.com/119/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/arindamghosh.wordpress.com/119/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/arindamghosh.wordpress.com/119/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/arindamghosh.wordpress.com/119/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/arindamghosh.wordpress.com/119/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/arindamghosh.wordpress.com/119/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/arindamghosh.wordpress.com/119/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/arindamghosh.wordpress.com/119/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/arindamghosh.wordpress.com/119/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=arindamghosh.wordpress.com&amp;amp;blog=903749&amp;amp;post=119&amp;amp;subd=arindamghosh&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3595#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/100">OpenStreetMap</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Sat, 23 Aug 2008 22:06:57 +0200</pubDate>
 <dc:creator>makghosh</dc:creator>
 <guid isPermaLink="false">3595 at http://planet-soc.com</guid>
</item>
<item>
 <title>Language filtering of diary entries!!</title>
 <link>http://planet-soc.com/node/3589</link>
 <description>&lt;p&gt;This feature was originally proposed by &lt;a href=&quot;http://www.dankarran.com/&quot;&gt;Dan Karran&lt;/a&gt; as a &lt;a href=&quot;http://arindamghosh.wordpress.com/2008/07/22/users-language-preference-added-in-osm-rails-port/&quot;&gt;comment in one of my earlier posts&lt;/a&gt;. Anyway, so here we have &amp;#8220;show all / filter by my language&amp;#8221; tags in the user diaries&amp;#8217; pages. By default, all entries are shown. We can click on &amp;#8216;filter by my language&amp;#8217; so as filter the posts by the locale selected by the user in his prefernces. We can also have feeds for these filtered entries. The screen-shot of current diary entries page,&lt;br /&gt;
&lt;a href=&quot;http://farm4.static.flickr.com/3178/2789658619_c2627ffb24_o.png&quot;&gt;&lt;img class=&quot;size-large wp-image-120&quot; src=&quot;http://arindamghosh.files.wordpress.com/2008/08/screenshot-filter.png?w=500&amp;amp;h=322&quot; alt=&quot;openstreetmap-language-filter-diary-entries&quot; width=&quot;500&quot; height=&quot;322&quot; /&gt;&lt;/a&gt;Image #1: openstreetmap-language-filter-diary-entries&lt;br /&gt;
And for this we need to specify the language of each diary entry. So new entry page has an option or rather a dropdown menu from where we select the language of the entry. This preference, by default takes the value of user&amp;#8217;s current locale and is saved in language column of diary_entries table. The screen-shot of new entry is as follows,&lt;br /&gt;
&lt;a href=&quot;http://farm4.static.flickr.com/3088/2790506904_f18f60cd2b_o.png&quot;&gt;&lt;img class=&quot;size-large wp-image-121&quot; src=&quot;http://arindamghosh.files.wordpress.com/2008/08/screenshot-de.png?w=500&amp;amp;h=285&quot; alt=&quot;openstreetmap-new-diary-entry&quot; width=&quot;500&quot; height=&quot;285&quot; /&gt;&lt;/a&gt;Image #2: openstreetmap-new-diary-entry&lt;br /&gt;
Also put up your suggestions&amp;#8230; &lt;img src=&quot;http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/arindamghosh.wordpress.com/119/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/arindamghosh.wordpress.com/119/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/arindamghosh.wordpress.com/119/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/arindamghosh.wordpress.com/119/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/arindamghosh.wordpress.com/119/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/arindamghosh.wordpress.com/119/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/arindamghosh.wordpress.com/119/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/arindamghosh.wordpress.com/119/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/arindamghosh.wordpress.com/119/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/arindamghosh.wordpress.com/119/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/arindamghosh.wordpress.com/119/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/arindamghosh.wordpress.com/119/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=arindamghosh.wordpress.com&amp;amp;blog=903749&amp;amp;post=119&amp;amp;subd=arindamghosh&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3589#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/100">OpenStreetMap</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Sat, 23 Aug 2008 21:49:57 +0200</pubDate>
 <dc:creator>makghosh</dc:creator>
 <guid isPermaLink="false">3589 at http://planet-soc.com</guid>
</item>
<item>
 <title>Language filtering of diary entries!!</title>
 <link>http://planet-soc.com/node/3593</link>
 <description>&lt;p&gt;This feature was originally proposed by &lt;a href=&quot;http://www.dankarran.com/&quot;&gt;Dan Karran&lt;/a&gt; as a &lt;a href=&quot;http://arindamghosh.wordpress.com/2008/07/22/users-language-preference-added-in-osm-rails-port/&quot;&gt;comment in one of my earlier posts&lt;/a&gt;. Anyway, so here we have &amp;#8220;show all / filter by my language&amp;#8221; tags in the user diaries&amp;#8217; pages. By default, all entries are shown. We can click on &amp;#8216;filter by my language&amp;#8217; so as filter the posts by the locale selected by the user in his prefernces. We can also have feeds for these filtered entries. The screen-shot of current diary entries page,&lt;br /&gt;
&lt;a href=&quot;http://farm4.static.flickr.com/3178/2789658619_c2627ffb24_o.png&quot;&gt;&lt;img class=&quot;size-large wp-image-120&quot; src=&quot;http://arindamghosh.files.wordpress.com/2008/08/screenshot-filter.png?w=500&amp;amp;h=322&quot; alt=&quot;openstreetmap-language-filter-diary-entries&quot; width=&quot;500&quot; height=&quot;322&quot; /&gt;&lt;/a&gt;Image #1: openstreetmap-language-filter-diary-entries&lt;br /&gt;
And for this we need to specify the language of each diary entry. So new entry page has an option or rather a dropdown menu from where we select the language of the entry. This preference, by default takes the value of user&amp;#8217;s current locale and is saved in language column of diary_entries table. The screen-shot of &amp;#8216;new diary entry&amp;#8217; is as follows,&lt;br /&gt;
&lt;a href=&quot;http://farm4.static.flickr.com/3088/2790506904_f18f60cd2b_o.png&quot;&gt;&lt;img class=&quot;size-large wp-image-121&quot; src=&quot;http://arindamghosh.files.wordpress.com/2008/08/screenshot-de.png?w=500&amp;amp;h=285&quot; alt=&quot;openstreetmap-new-diary-entry&quot; width=&quot;500&quot; height=&quot;285&quot; /&gt;&lt;/a&gt;Image #2: openstreetmap-new-diary-entry&lt;br /&gt;
Also put up your suggestions&amp;#8230; &lt;img src=&quot;http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/arindamghosh.wordpress.com/119/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/arindamghosh.wordpress.com/119/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/arindamghosh.wordpress.com/119/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/arindamghosh.wordpress.com/119/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/arindamghosh.wordpress.com/119/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/arindamghosh.wordpress.com/119/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/arindamghosh.wordpress.com/119/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/arindamghosh.wordpress.com/119/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/arindamghosh.wordpress.com/119/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/arindamghosh.wordpress.com/119/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/arindamghosh.wordpress.com/119/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/arindamghosh.wordpress.com/119/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=arindamghosh.wordpress.com&amp;amp;blog=903749&amp;amp;post=119&amp;amp;subd=arindamghosh&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3593#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/100">OpenStreetMap</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Sat, 23 Aug 2008 21:49:57 +0200</pubDate>
 <dc:creator>makghosh</dc:creator>
 <guid isPermaLink="false">3593 at http://planet-soc.com</guid>
</item>
<item>
 <title>Localization Statistics</title>
 <link>http://planet-soc.com/node/3590</link>
 <description>&lt;p&gt;After translation updates, I did the l10n statistics. This basically give the translators an idea of number of pending/completed strings and percentage of localization done for all locales currently supported by the app.  For this i &lt;a href=&quot;http://svn.openstreetmap.org/sites/rails_port_branches/i18n/db/migrate/013_create_statistics.rb&quot;&gt;created a Statistics table&lt;/a&gt; in database using migration. Now the statistics are updated when user clicks on the l10n link on his/her home page. The logic (in &lt;a href=&quot;http://svn.openstreetmap.org/sites/rails_port_branches/i18n/app/controllers/translate_controller.rb&quot;&gt;TranslateController#stats&lt;/a&gt;) is if the current language of the user is not present in the statistics table, it is added. Otherwise normally the values are updated with the help of globalize_translations table. The screen-shot of the l10n statistics,&lt;br /&gt;
&lt;a href=&quot;http://farm4.static.flickr.com/3149/2790270774_527a6e8221_o.png&quot;&gt;&lt;img class=&quot;size-large wp-image-115&quot; src=&quot;http://arindamghosh.files.wordpress.com/2008/08/screenshot-l10n-statistics.png?w=500&amp;amp;h=238&quot; alt=&quot;openstreetmap-l10n-statistics&quot; width=&quot;500&quot; height=&quot;238&quot; /&gt;&lt;/a&gt;Image #1: openstreetmap-l10n-statistics&lt;br /&gt;
Its&amp;#8217; this statistics that apears first when the translator clicks on l10n link in his/her home page. Another nifty feature is that, s/he can view the sort the l10n statistics in two ways, &amp;#8216;by percentage&amp;#8217; or &amp;#8216;by number of completed strings&amp;#8217; in descending order. Also, every locale has a link to the pending/completed strings page associated with the numbers.&lt;br /&gt;
Apart from this, i have kept this l10n statistics page (without those pending/completed strings link) visible to all users, just to motivate more of them into translation. The screenshot of user&amp;#8217;s home page with l10n link (view rendered in bn-IN locale as you can see one string i translated for example),&lt;br /&gt;
&lt;a href=&quot;http://farm4.static.flickr.com/3133/2789453431_82a03b3067_o.png&quot;&gt;&lt;img class=&quot;size-large wp-image-116&quot; src=&quot;http://arindamghosh.files.wordpress.com/2008/08/screenshot-example.png?w=500&amp;amp;h=265&quot; alt=&quot;openstreetmap-l10n-example&quot; width=&quot;500&quot; height=&quot;265&quot; /&gt;&lt;/a&gt;Image #2: openstreetmap-user-home-bengali-partial&lt;br /&gt;
The difference between user/translator is done by tr_status column in user table,&lt;br /&gt;
0 = User&lt;br /&gt;
1 = Translator&lt;br /&gt;
2 = l10n Admin (proposed)&lt;br /&gt;
&lt;strong&gt;Todo: &lt;/strong&gt;For now, the tr_status is updated manually. We have thought about a admin page for the l10n admin where s/he can add/remove translators, add/remove coordinators etc. Thoughts??&lt;br /&gt;
Please put up your comments or suggestions&amp;#8230;&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/arindamghosh.wordpress.com/114/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/arindamghosh.wordpress.com/114/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/arindamghosh.wordpress.com/114/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/arindamghosh.wordpress.com/114/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/arindamghosh.wordpress.com/114/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/arindamghosh.wordpress.com/114/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/arindamghosh.wordpress.com/114/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/arindamghosh.wordpress.com/114/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/arindamghosh.wordpress.com/114/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/arindamghosh.wordpress.com/114/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/arindamghosh.wordpress.com/114/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/arindamghosh.wordpress.com/114/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=arindamghosh.wordpress.com&amp;amp;blog=903749&amp;amp;post=114&amp;amp;subd=arindamghosh&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3590#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/100">OpenStreetMap</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Sat, 23 Aug 2008 21:48:18 +0200</pubDate>
 <dc:creator>makghosh</dc:creator>
 <guid isPermaLink="false">3590 at http://planet-soc.com</guid>
</item>
<item>
 <title>Localization Statistics</title>
 <link>http://planet-soc.com/node/3594</link>
 <description>&lt;p&gt;After translation updates, I did the l10n statistics. This basically give the translators an idea of number of pending/completed strings and percentage of localization done for all locales currently supported by the app.  For this i &lt;a href=&quot;http://svn.openstreetmap.org/sites/rails_port_branches/i18n/db/migrate/013_create_statistics.rb&quot;&gt;created a Statistics table&lt;/a&gt; in database using migration. Now the statistics are updated when user clicks on the l10n link on his/her home page. The logic (in &lt;a href=&quot;http://svn.openstreetmap.org/sites/rails_port_branches/i18n/app/controllers/translate_controller.rb&quot;&gt;TranslateController#stats&lt;/a&gt;) is if the current language of the user is not present in the statistics table, it is added. Otherwise normally the values are updated with the help of globalize_translations table. The screen-shot of the l10n statistics,&lt;br /&gt;
&lt;a href=&quot;http://farm4.static.flickr.com/3149/2790270774_527a6e8221_o.png&quot;&gt;&lt;img class=&quot;size-large wp-image-115&quot; src=&quot;http://arindamghosh.files.wordpress.com/2008/08/screenshot-l10n-statistics.png?w=500&amp;amp;h=238&quot; alt=&quot;openstreetmap-l10n-statistics&quot; width=&quot;500&quot; height=&quot;238&quot; /&gt;&lt;/a&gt;Image #1: openstreetmap-l10n-statistics&lt;br /&gt;
Its&amp;#8217; the &amp;#8216;l10n statistics&amp;#8217; that apears first when the translator clicks on l10n link in his/her home page. Another nifty feature is that, s/he can view the sort the l10n statistics in two ways, &amp;#8216;by percentage&amp;#8217; or &amp;#8216;by number of completed strings&amp;#8217; in descending order. Also, every locale has a link to the pending/completed strings page associated with the numbers.&lt;br /&gt;
Apart from this, i have kept this l10n statistics page (without those pending/completed strings link) visible to all users, just to motivate more of them into translation. The screenshot of user&amp;#8217;s home page with l10n link (view rendered in bn-IN locale as you can see one string i translated for example),&lt;br /&gt;
&lt;a href=&quot;http://farm4.static.flickr.com/3133/2789453431_82a03b3067_o.png&quot;&gt;&lt;img class=&quot;size-large wp-image-116&quot; src=&quot;http://arindamghosh.files.wordpress.com/2008/08/screenshot-example.png?w=500&amp;amp;h=265&quot; alt=&quot;openstreetmap-l10n-example&quot; width=&quot;500&quot; height=&quot;265&quot; /&gt;&lt;/a&gt;Image #2: openstreetmap-user-home-bengali-partial&lt;br /&gt;
The difference between user/translator is done by tr_status column in user table,&lt;br /&gt;
0 = User&lt;br /&gt;
1 = Translator&lt;br /&gt;
2 = l10n Admin (proposed)&lt;br /&gt;
&lt;strong&gt;Todo: &lt;/strong&gt;For now, the tr_status is updated manually. We have thought about a admin page for the l10n admin where s/he can add/remove translators, add/remove coordinators etc. Thoughts??&lt;br /&gt;
Please put up your comments or suggestions&amp;#8230;&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/arindamghosh.wordpress.com/114/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/arindamghosh.wordpress.com/114/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/arindamghosh.wordpress.com/114/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/arindamghosh.wordpress.com/114/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/arindamghosh.wordpress.com/114/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/arindamghosh.wordpress.com/114/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/arindamghosh.wordpress.com/114/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/arindamghosh.wordpress.com/114/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/arindamghosh.wordpress.com/114/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/arindamghosh.wordpress.com/114/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/arindamghosh.wordpress.com/114/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/arindamghosh.wordpress.com/114/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=arindamghosh.wordpress.com&amp;amp;blog=903749&amp;amp;post=114&amp;amp;subd=arindamghosh&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3594#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/100">OpenStreetMap</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Sat, 23 Aug 2008 21:48:18 +0200</pubDate>
 <dc:creator>makghosh</dc:creator>
 <guid isPermaLink="false">3594 at http://planet-soc.com</guid>
</item>
<item>
 <title>Translation updates via RSS</title>
 <link>http://planet-soc.com/node/3591</link>
 <description>&lt;p&gt;Its&amp;#8217; been a while since i last posted an update. So now, I need to open-discuss all my exploits for last 2-3 weeks. I owe lot of thanks to my mentor &lt;a href=&quot;http://brainoff.com&quot;&gt;Mikel Maron&lt;/a&gt; for helping  me out in testing different features, pointing out some important bugs, suggesting new features and how to code/implement them. Now, coming straight to the point, with help of &lt;a href=&quot;http://www.globalize-rails.org/&quot;&gt;globalize plugin&lt;/a&gt; in &lt;a href=&quot;http://svn.openstreetmap.org/sites/rails_port_branches/i18n/vendor/plugins/globalize/&quot;&gt;osm rails-port&lt;/a&gt;, we now have translation feeds. I mean now translators can now have rss feeds for their default language (say spanish (es-ES)), both for pending and completed strings. These are the strings generated or rather added in the globalize_translations table while different views are rendered in that locale.&lt;br /&gt;
We have the entire list of pending or completed strings for a particular locale (which is actually the language chosen in user settings page) paginated in groups of ten, which is in turn available as updates by rss feeds. We can simply move to &amp;#8220;older strings / newer strings&amp;#8221; accordingly. For doing these i needed to add &lt;a href=&quot;http://svn.openstreetmap.org/sites/rails_port_branches/i18n/app/controllers/translate_controller.rb&quot;&gt;translate_controller.rb&lt;/a&gt;, &lt;a href=&quot;http://svn.openstreetmap.org/sites/rails_port_branches/i18n/app/views/translate/&quot;&gt;corresponding views&lt;/a&gt; and also updated the &lt;a href=&quot;http://svn.openstreetmap.org/sites/rails_port_branches/i18n/config/routes.rb&quot;&gt;routes.rb&lt;/a&gt; as required. The screen-shot of the &amp;#8220;l10n home&amp;#8221; that we have in osm rails-port now,&lt;br /&gt;
&lt;a href=&quot;http://farm4.static.flickr.com/3213/2789324363_bc9b4678e4_o.png&quot;&gt;&lt;img class=&quot;size-full wp-image-108&quot; src=&quot;http://arindamghosh.files.wordpress.com/2008/08/screenshot-openstreetmap-l10n-home1.png?w=500&amp;amp;h=376&quot; alt=&quot;openstreetmap-l10n-home-pending-strings&quot; width=&quot;500&quot; height=&quot;376&quot; /&gt;&lt;/a&gt;Image #1: openstreetmap-l10n-home-pending-strings-with-rss&lt;br /&gt;
Also, each string has a link that opens up the translation interface where we can view the string and add/update the translation for that particular string. For this purpose, I have used a &lt;a href=&quot;http://svn.openstreetmap.org/sites/rails_port_branches/i18n/app/views/translate/view.rhtml&quot;&gt;form&lt;/a&gt;, where we can type-in the translation for the string in the translators&amp;#8217; locale. When we add/update translation for a string, its&amp;#8217; updated in the database and if everything works fine, we are confirmed by a flash notice &amp;#8220;Translation was updated successfully&amp;#8221;. The next time we open the corresponding view, we find the string translated. Here&amp;#8217;s the screenshot of the translation interface,&lt;br /&gt;
&lt;a href=&quot;http://farm4.static.flickr.com/3020/2790192328_f772d334c3_o.png&quot;&gt;&lt;img class=&quot;size-large wp-image-110&quot; src=&quot;http://arindamghosh.files.wordpress.com/2008/08/screenshot-update-string.png?w=500&amp;amp;h=279&quot; alt=&quot;openstreetmap-translation-interface&quot; width=&quot;500&quot; height=&quot;279&quot; /&gt;&lt;/a&gt;Image #2: openstreetmap-translation-interface&lt;br /&gt;
There are some languages which are common to multiple countries. So i had to update the views so that locale without any country tag can be added. I mean earlier, Spanish(es-ES) &amp;amp; German(de-DE) etc got to have the country tag. But now languages like Arabic(ar) common to multiple countries &lt;a href=&quot;http://svn.openstreetmap.org/sites/rails_port_branches/i18n/config/environment.rb&quot;&gt;can also be added&lt;/a&gt;.&lt;br /&gt;
&lt;strong&gt;Todo:&lt;/strong&gt; Now this web-based translation is actually meant to be handled by the ajax in-place-editor of click-to-globalize. Because it places the translatable strings in context, as an advantage. But the problems with CtG are partially fixed. More on this at a later post. So we need the in-place editor start working. Although, the existing translation interface will stay on, so that translators can update translation of any string on the go, if needed just by checking the feeds. They don&amp;#8217;t have to search for the concerned view! Thoughts??&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/arindamghosh.wordpress.com/100/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/arindamghosh.wordpress.com/100/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/arindamghosh.wordpress.com/100/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/arindamghosh.wordpress.com/100/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/arindamghosh.wordpress.com/100/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/arindamghosh.wordpress.com/100/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/arindamghosh.wordpress.com/100/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/arindamghosh.wordpress.com/100/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/arindamghosh.wordpress.com/100/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/arindamghosh.wordpress.com/100/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/arindamghosh.wordpress.com/100/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/arindamghosh.wordpress.com/100/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=arindamghosh.wordpress.com&amp;amp;blog=903749&amp;amp;post=100&amp;amp;subd=arindamghosh&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3591#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/100">OpenStreetMap</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Sat, 23 Aug 2008 21:47:16 +0200</pubDate>
 <dc:creator>makghosh</dc:creator>
 <guid isPermaLink="false">3591 at http://planet-soc.com</guid>
</item>
<item>
 <title>The end of the Summer - let there be Summer!</title>
 <link>http://planet-soc.com/node/3490</link>
 <description>&lt;p&gt;Although there are still a couple of days left until the official Pencils Down date of the Summer of Code, I am now officially putting my pencil down because I need to catch a train to Adelaide tomorrow morning.&lt;br /&gt;
I guess this really marks the end of my student period; even though I graduated in June, this project allowed me to feel like a student just a little longer. Sniff, now I really have to enter the big scary adult world.&lt;br /&gt;
But first I will go on a trip for two weeks to see &lt;a href=&quot;http://en.wikipedia.org/wiki/Adelaide&quot;&gt;Adelaide&lt;/a&gt;, the &lt;a href=&quot;http://en.wikipedia.org/wiki/Ghan&quot;&gt;Ghan&lt;/a&gt; train, &lt;a href=&quot;http://en.wikipedia.org/wiki/Darwin,_Northern_Territory&quot;&gt;Darwin&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Kakadu&quot;&gt;Kakadu National park&lt;/a&gt;. It will be a very culturally diverse trip; from what I have  heard, Adelaide and Darwin are pretty much as different as it gets here in Australia.&lt;br /&gt;
&lt;img class=&quot;size-full wp-image-95&quot; title=&quot;Route profile demo by Lambertus&quot; src=&quot;http://sprovoost.nl/wp-content/lambertus_route.png&quot; alt=&quot;Route profile demo by Lambertus&quot; width=&quot;500&quot; height=&quot;260&quot; /&gt;Route profile demo by Lambertus&lt;br /&gt;
I am very happy to see that my application has found its way to an &lt;a href=&quot;http://tile.openstreetmap.nl/~lambertus/routing-world/&quot;&gt;actual route planner website&lt;/a&gt; (see figure above)!&lt;br /&gt;
So what is next? Well, I will obviously have much less time to work on this project, so my highest priority will be to explain other people how to use and improve the application and how to install it on their own server. So don&amp;#8217;t hesitate to mail me about that!&lt;br /&gt;
I have to keep this post short because I still have to pack some stuff and it is already late. But I do want  to thank some people of course. Thanks Google for sponsoring me (and for creating all sorts of cool and useful tools for my project). Thanks OpenStreetMap community for selecting my project, your confidence in me and your support. And of course, thanks Artem for mentoring me during the project and for being a great and interesting person to talk to in general!&lt;br /&gt;
These are just thankyou&amp;#8217;s, not goodbyes. So see you soon!&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3490#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/100">OpenStreetMap</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Fri, 15 Aug 2008 14:52:51 +0200</pubDate>
 <dc:creator>Sjors</dc:creator>
 <guid isPermaLink="false">3490 at http://planet-soc.com</guid>
</item>
<item>
 <title>Weekly update route altitude profile</title>
 <link>http://planet-soc.com/node/3196</link>
 <description>&lt;p&gt;It&amp;#8217;s a bit of a boring title, but it actually has been an interesting week.  Although I found myself highly distracted by some unrelated but fascinating things, I still managed to get quite a bit done.&lt;br /&gt;
The script that I used to download the SRTM data set and import it into a Postgres database can now deal with all continents and supports uploading a subset of a continent by means of a bounding box. I also put the md5 check sum of every tile in the source code.&lt;br /&gt;
Since the App Engine still has some issues, I have revived the Postgres version of my application. It is located at &lt;a href=&quot;http://altitude-pg.sprovoost.nl&quot;&gt;http://altitude-pg.sprovoost.nl&lt;/a&gt; and contains most of Europe as far east as Moscow and as far south as Cyprus. It runs on my home computer in The Netherlands, so please be nice to it. I use &lt;a href=&quot;http://www.modpython.org/&quot;&gt;apache-mod-python&lt;/a&gt; for the &lt;a href=&quot;http://altitude-demo.sprovoost.nl/&quot;&gt;formal demonstration website&lt;/a&gt; and &lt;a href=&quot;http://code.google.com/p/modwsgi/&quot;&gt;apache-mod-wsgi&lt;/a&gt; combined with &lt;a href=&quot;http://webpy.org/&quot;&gt;web.py&lt;/a&gt; for the altitude profile server. To make this as painless as possible, I have moved all App Engine and Postgress specific code to their own files and kept as much common functionality as possible in the main file. I can now run the development servers for both Apache and the App Engine from the same source code folder, at the same time.&lt;br /&gt;
I have &lt;a href=&quot;http://code.google.com/p/route-altitude-profile/issues/detail?id=10&quot;&gt;requested more storage space&lt;/a&gt; on the App Engine and I am also considering a &lt;a href=&quot;http://code.google.com/p/route-altitude-profile/issues/detail?id=1&quot;&gt;more efficient storage method&lt;/a&gt;. In stead of storing one altitude per record, I could store 100 altitudes per record and zip them. That would drastically reduce the total storage requirement, but at the cost of performance because I often need only about 2 out of these 100 altitudes.&lt;br /&gt;
I have also been a bit more active on their mailing list; it feels good to be able to answer peoples questions and at the same time it allows me to verify my own code and design. There are also some interesting albeit more philosophical discussions on the list.&lt;br /&gt;
I have signed and fulfilled &lt;a href=&quot;http://www.pledgebank.com/osmfieldwork&quot;&gt;a pledge&lt;/a&gt; to &amp;#8220;spend an hour OpenStreetMapping features on Caribbean islands from Yahoo! aerial imagery and [&amp;#8230;] donate £10 to the OpenStreetMap Foundation but only if 60 other people will do the same.&amp;#8221;. I felt like I could really use another jet-lag. The pledge is full, but who knows, if they can rally another 60 people there might be a second ticket?&lt;br /&gt;
Those of you who laboriously follow every commit to the OpenStreetMap subversion repository, may have noticed that I am still struggling with git-svn. I got really tired of fixing conflicts, so I unleashed the power of &lt;a href=&quot;http://www.kernel.org/pub/software/scm/git/docs/git-svn.html&quot;&gt;git-svn set-tree&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;pre&gt;git-svn set-tree -i trunk 3cb585dca1d7fe10791312ca26125168506b61c1
git-svn set-tree -i trunk 07c9024f5ea4ce60f481b8089b61d4988e7588fa&lt;/pre&gt;&lt;p&gt;Even the manual recommends against doing this, and you should make sure nobody else (&lt;a href=&quot;http://github.com/Sjors/openstreetmap-route-altitude-profile/commit/8b628aaebcb17461c7ba89663b5f597c3f502635&quot;&gt;like your mentor&lt;/a&gt;) has committed anything to subversion before you do this.&lt;br /&gt;
I find git-svn to be harder to use than it should be. I think it is trying to hard to properly translate between The Git Way and The Subversion Way. I just want the subversion repository to &amp;#8217;sort of&amp;#8217; track my git repository. I don&amp;#8217;t care if it has to represent the history a bit different. Just keep the code up to date. I am looking forward to this command:&lt;/p&gt;
&lt;pre&gt;git-svn just-do-it&lt;/pre&gt;&lt;p&gt;I really think Git would benefit the OpenStreetMap community, because it reflects the decentralized nature of OpenStreetMap. With Git, there is no such thing as a central repository. People can write any code they like without having to live in constant fear of breaking the trunk with their next commit. In stead, when they build something cool or useful, they will tell their friends to pull it in and experiment with it. The person who operates a production website will only pull pieces of code that he or she considers safe and useful enough.&lt;br /&gt;
But the reality is that many organizations rely on subversion at the moment and have excellent reasons for not risking their operations by making an instant jump to Git. So people are not going to adopt Git very quickly as long as it is so hard to sync with subversion. But lets wait for a while and see&amp;#8230;&lt;br /&gt;
I am getting better and better at keeping my git repository synchronized with the osm subversion, but I would not recommend this strategy to others.&lt;br /&gt;
I created a project on Google Code Hosting project for the altitude profile. Not to host the code, not even for the wiki, but just to keep a &lt;a href=&quot;http://code.google.com/p/route-altitude-profile/issues/&quot;&gt;list of issues&lt;/a&gt;. I realize I could have applied for a place on the &lt;a href=&quot;http://trac.openstreetmap.org/&quot;&gt;OpenStreetMap Trac&lt;/a&gt;, but I want to use Google Code Hosting for my new project: Jobtorrent. This is also the reason most of the issues point to the Git source (I do point to  subversion on the main page and the only reason I do not always point to both is that I am lazy). I will write more about Jobtorrent later; first I need to work on my Summer of Code project you know&amp;#8230;&lt;br /&gt;
This list of issues should be good for continuity. Because my project does not interact with any OpenStreetMap code at the moment, I am probably the only one in the community who knows how the code works and what needs to be improved. That is a very low &lt;a href=&quot;http://en.wikipedia.org/wiki/Bus_factor&quot;&gt;bus factor&lt;/a&gt;! (&amp;#8221;tram factor&amp;#8221; would be a better term in Melbourne) Now I really like the OpenStreetMap effort and I will certainly find ways to stay involved in the future, but it might be in a completely different project. Depending on circumstances, I should at least prepare for the possibility that the altitude profile project will be orphaned within a few months.&lt;br /&gt;
I use a personal organizing method inspired by the book &lt;a href=&quot;http://www.amazon.com/Getting-Things-Done-Stress-Free-Productivity/dp/0142000280&quot;&gt;Getting Things Done&lt;/a&gt; (David Allen) and that makes it very easy to transfer everything I am working on or thinking about to the Internet. So that is what I did.&lt;br /&gt;
The more difficult part is keeping it synchronized. David recommends that you never share your projects. That is, you should always keep your own lists and let nobody else touch them. Your lists must reflect what &lt;em&gt;you&lt;/em&gt; want, or you will start to rebel against them and as a result mess up your system.&lt;br /&gt;
So in practice you will end up with a central list (e.g. the list of issues on Google Code) and your local copy of it. They will not be the same. There are a couple of things on my personal list that are not online (nothing ground braking, don&amp;#8217;t worry) and my own priorities are not identical to the ones online. The online version reflects what is important for &lt;em&gt;The Project&lt;/em&gt;, the offline version reflect what is important for &lt;em&gt;me&lt;/em&gt;. At least in theory; as long as I am the only one working on it, it probably reflects my opinion a lot better than it ideally should.&lt;br /&gt;
Now I am pretty sure the average recruiter looking for a &amp;#8220;true team player&amp;#8221; does not like what I just said in the last paragraph.&lt;/p&gt;&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3196#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/100">OpenStreetMap</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Tue, 29 Jul 2008 05:29:52 +0200</pubDate>
 <dc:creator>Sjors</dc:creator>
 <guid isPermaLink="false">3196 at http://planet-soc.com</guid>
</item>
<item>
 <title>User’s language preference added in osm rails-port</title>
 <link>http://planet-soc.com/node/3059</link>
 <description>&lt;p&gt;In last couple of days, I added the user language preference in the &lt;a href=&quot;http://svn.openstreetmap.org/sites/rails_port_branches/i18n/&quot;&gt;osm rails-port&lt;/a&gt;. It is basically implemented by a drop-down menu in the settings page of the user, from where he can easily select &amp;amp; save the desired locale. When the selection is saved, it&amp;#8217;s saved in the database where a locale column has been added to user table by migration (&lt;a href=&quot;http://svn.openstreetmap.org/sites/rails_port_branches/i18n/db/migrate/012_add_user_locale.rb&quot;&gt;012_add_user_locale.rb&lt;/a&gt;).  The drop-down menu is implemented in the view (&lt;a href=&quot;http://svn.openstreetmap.org/sites/rails_port_branches/i18n/app/views/user/account.rhtml&quot;&gt;account.rhtml&lt;/a&gt;) by a helper method called &amp;#8220;&lt;a href=&quot;http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#M001749&quot;&gt;select&lt;/a&gt;&amp;#8221; as given,&lt;br /&gt;
&lt;code&gt;select (&quot;user&quot;, &quot;locale&quot;, { &quot;English(US)&quot; =&amp;gt; &quot;en-US&quot;, &quot;Bengali(IN)&quot; =&amp;gt; &quot;bn-IN&quot;, &quot;Hindi(IN)&quot; =&amp;gt; &quot;hn-IN&quot;, &quot;Spanish&quot; =&amp;gt; &quot;es-ES&quot; })&lt;/code&gt;&lt;br /&gt;
Correspondingly, the user&amp;#8217;s model &amp;amp; controller has been updated. Here, i have used a hash within the select method for specifying languages, which can be easily replaced by a hash variable defined in config/environment.rb for convinience. Another approach maybe to find all the locale codes from globalize_translation table migrated by the globalize plugin using &amp;#8220;&lt;a href=&quot;http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#M001750&quot;&gt;collection_select&lt;/a&gt;&amp;#8221; helper method. But, in the previous one we actually will have the flexibility to add only those languages we prefer (it may be based on availabity of translations or rather request for the language branch by an l10n team). This preference option is quite independant. But the locale-routing part is yet to be decided, regarding how to do that, because click-to-globalize also implements some sort of routing associated with locale_controller.rb. The screenshot of the user settings page:&lt;br /&gt;
&lt;a href=&quot;http://arindamghosh.files.wordpress.com/2008/07/osm-edit-account.png&quot;&gt;&lt;img class=&quot;size-full wp-image-78&quot; src=&quot;http://arindamghosh.files.wordpress.com/2008/07/osm-edit-account.png?w=450&amp;amp;h=263&quot; alt=&quot;User&amp;#039;s language preference added!&quot; width=&quot;450&quot; height=&quot;263&quot; /&gt;&lt;/a&gt;User&amp;#39;s language preference added.&lt;br /&gt;
More importantly, a sort of bug that came with the globalize plugin as i have &lt;a href=&quot;http://arindamghosh.wordpress.com/2008/07/13/globalization-of-views-done/&quot;&gt;posted earlier&lt;/a&gt; (&lt;a href=&quot;http://makghosh.fedorapeople.org/osm/error.log&quot;&gt;error log&lt;/a&gt;) is now fixed. As it can seen in the log, while I tried to create a new user, &lt;code&gt;&amp;lt;% error_messages_for &#039;user&#039; %&amp;gt;&lt;/code&gt; is called in the &lt;a href=&quot;http://svn.openstreetmap.org/sites/rails_port_branches/i18n/app/views/user/new.rhtml&quot;&gt;app/view/user/new.rhtml&lt;/a&gt;. Now, globalize plugin &lt;a href=&quot;http://svn.openstreetmap.org/sites/rails_port_branches/i18n/vendor/plugins/globalize/lib/globalize/rails/active_record_helper.rb.bak&quot;&gt;overrides&lt;/a&gt; the &amp;#8220;&lt;a href=&quot;http://api.rubyonrails.org/classes/ActionView/Helpers/ActiveRecordHelper.html#M001670&quot;&gt;error_messages_for&lt;/a&gt;&amp;#8221; helper method for it&amp;#8217;s own requirements. So, as a matter of fact, the method &amp;#8220;error_messages_for&amp;#8221; tried to execute &lt;code&gt;nil.errors?&lt;/code&gt; (from the error log) which is quite obvious, since the object user is created after rendering the view. I first tried to take care of this by a small change in &lt;a title=&quot;old version&quot; href=&quot;http://svn.openstreetmap.org/sites/rails_port_branches/i18n/vendor/plugins/globalize/lib/globalize/rails/active_record_helper.rb.bak&quot;&gt;active_record_helper.rb&lt;/a&gt; within the globalize plugin:&lt;br /&gt;
&lt;code&gt;return &quot;&quot; if object_name.nil?&lt;/code&gt;&lt;br /&gt;
But it didn&amp;#8217;t do much good. Later i found a better fix than that which actually worked flawlessly. Here&amp;#8217;s the new &lt;a title=&quot;newer version&quot; href=&quot;http://svn.openstreetmap.org/sites/rails_port_branches/i18n/vendor/plugins/globalize/lib/globalize/rails/active_record_helper.rb&quot;&gt;active_record_helper.rb&lt;/a&gt;. So one of the two big problems i previously blogged with these plugins is solved. Since, globalize started working i could also test the views related to &amp;#8216;user&amp;#8217;. There were some sillymistakes for example, forgot to use to_s in @user.messages.size in the globalized view.&lt;br /&gt;
&lt;code&gt;&quot;You have %s new messages and&quot;.t(nil,@user.new_messages.size.to_s) + &quot; %s old messages&quot;.t(nil,(@user.messages.size - @user.new_messages.size).to_s)&lt;/code&gt;&lt;br /&gt;
I have commited all these updates in the i18n branch. Also, apart from the inherent loopholes in click-to-globalize, we are also focussing on other areas that needs to addressed including translation notifications etc.&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/arindamghosh.wordpress.com/77/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/arindamghosh.wordpress.com/77/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/arindamghosh.wordpress.com/77/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/arindamghosh.wordpress.com/77/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/arindamghosh.wordpress.com/77/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/arindamghosh.wordpress.com/77/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/arindamghosh.wordpress.com/77/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/arindamghosh.wordpress.com/77/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/arindamghosh.wordpress.com/77/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/arindamghosh.wordpress.com/77/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/arindamghosh.wordpress.com/77/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/arindamghosh.wordpress.com/77/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=arindamghosh.wordpress.com&amp;amp;blog=903749&amp;amp;post=77&amp;amp;subd=arindamghosh&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3059#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/100">OpenStreetMap</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Tue, 22 Jul 2008 11:43:56 +0200</pubDate>
 <dc:creator>makghosh</dc:creator>
 <guid isPermaLink="false">3059 at http://planet-soc.com</guid>
</item>
</channel>
</rss>
