<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Desi Penguin’s Blog &#187; cross platform</title>
	<atom:link href="http://desipenguin.com/techblog/tag/cross-platform/feed/" rel="self" type="application/rss+xml" />
	<link>http://desipenguin.com/techblog</link>
	<description>Open source, Tech Tips, Reviews, Tutorials and more …</description>
	<lastBuildDate>Thu, 12 Jan 2012 18:16:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Rainlendar : Desktop Calendar on Linux</title>
		<link>http://desipenguin.com/techblog/2009/02/18/rainlendar-desktop-calendar-on-linux/</link>
		<comments>http://desipenguin.com/techblog/2009/02/18/rainlendar-desktop-calendar-on-linux/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 14:13:44 +0000</pubDate>
		<dc:creator>Mandar Vaze</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Review]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[active desktop]]></category>
		<category><![CDATA[Clearlooks]]></category>
		<category><![CDATA[cross platform]]></category>
		<category><![CDATA[Google Calendar]]></category>
		<category><![CDATA[ICalendar]]></category>

		<guid isPermaLink="false">http://desipenguin.com/techblog/?p=224</guid>
		<description><![CDATA[When I was using Windows XP, I had Webshots manage my Wallpaper. One of the features of Webshots was to display the calendar on the Desktop. Additionally, I also displayed my to-do list (and a short phone list) on my desktop using Windows&#8217; Active Desktop Feature. Read about it here and here
When I moved to [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_244" class="wp-caption alignright" style="width: 240px"><img class="size-full wp-image-244" title="Rainlendar Desktop Calendar" src="http://desipenguin.com/techblog/wp-content/uploads/2009/02/calendar.png" alt="Rainlendar Desktop Calendar" width="230" height="230" /><p class="wp-caption-text">Rainlendar Desktop Calendar</p></div>
<p>When I was using Windows XP, I had Webshots manage my Wallpaper. One of the features of Webshots was to display the calendar on the Desktop. Additionally, I also displayed my to-do list (and a short phone list) on my desktop using Windows&#8217; <a class="zem_slink" title="Active Desktop" rel="wikipedia" href="http://en.wikipedia.org/wiki/Active_Desktop">Active Desktop</a> Feature. Read about it <a href="http://desipenguin.com/techblog/2009/01/05/productive-use-of-active-desktop/" target="_blank">here</a> and <a href="http://desipenguin.com/techblog/2009/01/07/productive-use-of-active-desktop-more-ideas/" target="_blank">here</a></p>
<p>When I moved to Linux (Ubuntu specifically) I needed similar functionality.  I came across kdesktopweb, but I use gnome, so it was not an option. I also looked at conky, but doesn&#8217;t look as polished, as Windows&#8217; equivalent. Enter <a href="http://www.rainlendar.net/cms/index.php" target="_blank">Rainlendar</a></p>
<p><span id="more-224"></span></p>
<p>As the Website mentions, Rainlendar is a customizable desktop calendar. It works on Windows, Linux as well as Mac OS X.  For Linux, it supports Debian/Ubuntu natively as .deb files, other <a class="zem_slink" title="Linux distribution" rel="wikipedia" href="http://en.wikipedia.org/wiki/Linux_distribution">distro</a> will need to use tar.gz files.</p>
<h3>Installation</h3>
<p>Installing Rainlendar is pretty straight forward  (Isn&#8217;t everything on Linux these days ? <img src='http://desipenguin.com/techblog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ) I downloaded the .deb file. Firefox is smart enough to determine that this is installation file, and invoked the installer. It needed two more packages (tofromdos and patch) Depending on your setup it may need more or less additional packages. On Debian based system like Ubuntu, this is least of the concern, If you have an active internet connection, the additional packages wille be downloaded and installed for you.</p>
<p>After the installation is complete, you will see an additional entry titled <em>Rainlendar2</em> under Applications-&gt;Office.</p>
<h3>Calendar</h3>
<p>Rainlendar displays a monthly calendar. It also has an option to show multiple months at-a-glance, as well as an yearly calendar showing all the twelve months of current calendar year.  It is configured with a Default Calendar, but you can add more calendars like personal, business (you can name them anything). The fee version supports only <a class="zem_slink" title="ICalendar" rel="wikipedia" href="http://en.wikipedia.org/wiki/ICalendar">iCalendar</a> file format, that too for local files. Pro version supports more rich calendaring functionality like sharing the calendar, as well as support for <a class="zem_slink" title="Google Calendar" rel="homepage" href="http://google.com/calendar">Google Calendar</a>.</p>
<p>Right clicking on the calendar brings up a menu. Here you can do operations like choosing which windows to display. It shows monthly calendar, an empty to do list and events list by default.Since I did not have any appointments set at the time, I turned off the Events Window.  If you have multiple calendars, you can choose which calendars to display on the desktop. Similarly you can also choose to view previous/next months or any specific month of the current calendar year.</p>
<div id="attachment_246" class="wp-caption alignleft" style="width: 345px"><img class="size-full wp-image-246" title="Rainlendar To Do List" src="http://desipenguin.com/techblog/wp-content/uploads/2009/02/todo1.png" alt="Rainlendar To Do List" width="335" height="150" /><p class="wp-caption-text">Rainlendar To Do List</p></div>
<h3>Events and To do</h3>
<p>Adding new events and tasks was as simple as clicking on the TODO or EVENTS Window. You get a dialog box that allows you to fill in the details. One caveat, if you created an task for a future date, it won&#8217;t appear in your to-do list. e.g. I need to send status report every weekend, so I created a recurring task for this. But it did not appear in my to-do list till Friday.</p>
<h3>Skinning</h3>
<p>Rainlendar ships with two skins. Shadow4 which is the default skin and Chromophore.  You can change the skins by Right Click-&gt;Options-&gt;Skins tab. Shadow4 has lot of Widgets like Weather <a class="zem_slink" title="RSS" rel="wikipedia" href="http://en.wikipedia.org/wiki/RSS">RSS</a>, TV to name a few. It also has an option to display the contents of a text file. This could be very useful to display things like Plan of the Week, but this feature appears unstable. Rainlendar crashed several times, when Files Widget was enabled. Once I removed the Files Widget, it appears to be stable.</p>
<p>Other Skin Chromophore is much more simpler. Here you can choose the color of the Rainlendar displays. The Brown color gels well with default Brown theme of Ubuntu. Since I have switched to <a class="zem_slink" title="Clearlooks" rel="wikipedia" href="http://en.wikipedia.org/wiki/Clearlooks">Clearlooks</a>, and blue wallpaper, I chose the Blue theme for Chromophore.</p>
<p>To sum it up,  one can say that Rainlendar is  a decent replacement for Desktop Calendar, and To-Do list on the desktop.</p>
<h6 class="zemanta-related-title" style="font-size: 1em;">Related articles by Zemanta</h6>
<ul class="zemanta-article-ul">
<li class="zemanta-article-ul-li"><a href="http://www.rainlendar.net/cms/index.php?option=com_rny_features&amp;Itemid=35" target="_blank">Rainlendar Features</a> (rainlendar.com)</li>
<li class="zemanta-article-ul-li"><a href="http://www.macworld.com/article/137136/2008/12/digitalreminders.html?lsrc=rss_main" target="_blank">Keep on track with digital reminders</a> (macworld.com)</li>
</ul>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Zemified by Zemanta" href="http://reblog.zemanta.com/zemified/402cfb0d-fec7-4548-ad66-2ff194cc1c81/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_b.png?x-id=402cfb0d-fec7-4548-ad66-2ff194cc1c81" alt="Reblog this post [with Zemanta]" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://desipenguin.com/techblog/2009/02/18/rainlendar-desktop-calendar-on-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Access your todo list from multiple locations</title>
		<link>http://desipenguin.com/techblog/2009/01/17/access-your-todo-list-from-multiple-locations/</link>
		<comments>http://desipenguin.com/techblog/2009/01/17/access-your-todo-list-from-multiple-locations/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 01:17:06 +0000</pubDate>
		<dc:creator>Mandar Vaze</dc:creator>
				<category><![CDATA[Hack]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[cross platform]]></category>
		<category><![CDATA[cygwin]]></category>
		<category><![CDATA[dropbox]]></category>
		<category><![CDATA[mSys]]></category>

		<guid isPermaLink="false">http://desipenguin.wordpress.com/?p=135</guid>
		<description><![CDATA[Here is a clever method to access your todo list from multiple locations.
Ingredients

todo.sh &#8211; This is a command line shell scripts which allows to manage your TO DO list
DropBox Account : Free, Syncs various computers, Cross Platform (at least works on Windows as well as Linux)

Recipe

Make Sure you have installed Dropbox clients on all of [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a clever method to access your todo list from multiple locations.</p>
<h3>Ingredients</h3>
<ul>
<li><a href="http://todotxt.com/" target="_blank">todo.sh</a> &#8211; This is a command line shell scripts which allows to manage your TO DO list</li>
<li><a href="https://www.getdropbox.com/home" target="_blank">DropBox</a> Account : Free, Syncs various computers, Cross Platform (at least works on Windows as well as Linux)</li>
</ul>
<h3>Recipe</h3>
<ul>
<li>Make Sure you have installed Dropbox clients on all of your machines (Mainly Work and Home)</li>
<li>Download and install todo.sh in your Dropbox folder. This is main trick to make your TODO list portable.</li>
<li>You need to modify the .todo file (or todo.py script itself) to set the TODO_DIR variable. I&#8217;ve created a folder called &#8220;tododir&#8221; in my Dropbox folder, and set the TODO_DIR variable as &#8220;tododir&#8221;. This helps avoiding path problems on various machines.</li>
<li>(Optional) Read the tutorial available at <a href="http://lifehacker.com/software/top/geek-to-live--readerwritten-todotxt-manager-173018.php" target="_blank">LifeHacker</a></li>
<li>Open command Prompt, and take charge of your TODO lists.</li>
</ul>
<h3>Why This Idea Rocks</h3>
<ul>
<li>Since the todo list is maintained as simple text file, any machine/platform allows you to directly view and edit your todo list.</li>
<li>While one would install Dropbox clients on all of their regularly used machines, You can always view and edit your todo.txt even from a cyber cafe, using Dropbox&#8217;s web interface.</li>
</ul>
<h3>Are you on Windows ?</h3>
<ul>
<li>If you are on Windows, you will require <a href="http://www.cygwin.com/" target="_blank">cygwin </a>which provides unix utilities on windows. (I was unable to get todo.sh working with mSys, which I got as part of <a href="http://code.google.com/p/msysgit/downloads/list" target="_blank">mSys Git</a> (More about it later, in another post))</li>
<li>There is a variation of todo.sh written in Python (which is what I&#8217;m using these days). If which case, you need <a href="http://www.python.org/download/" target="_blank">Python </a>instead of Cygwin. Python version supports color coding of the items based on priority even on Windows.</li>
</ul>
<h3>Can I not just use USB Drive instead ?</h3>
<ul>
<li>Sure you can.  But some employers do not allow the employees to connect their personal USB devices to office computers. (Security, Virus threats) in which case Dropbox is better alternative.</li>
<li>Even Cyber cafe won&#8217;t allow to plug in your USB drive, but you sure can access your files from Web Front end of Dropbox.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://desipenguin.com/techblog/2009/01/17/access-your-todo-list-from-multiple-locations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debugging Python Scripts</title>
		<link>http://desipenguin.com/techblog/2008/12/24/debugging-python-scripts/</link>
		<comments>http://desipenguin.com/techblog/2008/12/24/debugging-python-scripts/#comments</comments>
		<pubDate>Wed, 24 Dec 2008 01:57:06 +0000</pubDate>
		<dc:creator>Mandar Vaze</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[cross platform]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://desipenguin.wordpress.com/?p=108</guid>
		<description><![CDATA[Found a great way to debug python scripts interactively using pdb aka Python Debugger. It is similar to gdb used on *nix.
Essentially you import pdb in the beginning of the script, and wherever you need to start debugging, add following statement :
pdb.set_trace()
Now you execute the script from command line, and execution will stop where you [...]]]></description>
			<content:encoded><![CDATA[<p>Found a great way to debug python scripts interactively using pdb aka Python Debugger. It is similar to gdb used on *nix.<br />
Essentially you <code>import pdb</code> in the beginning of the script, and wherever you need to start debugging, add following statement :<br />
<code>pdb.set_trace()</code><br />
Now you execute the script from command line, and execution will stop where you have added set_trace() call. You are presented with pdb prompt. There after it is similar to gdb commands.</p>
<p><span id="more-108"></span>Here is the quick list of pdb commands</p>
<ul>
<li>n : Execute next line</li>
<li>s : Step inside a module</li>
<li>p : Print the value of a variable</li>
<li>c : Continue</li>
<li>l : List. Shows stack trace</li>
<li>q : Quit (Most important command <img src='http://desipenguin.com/techblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</li>
</ul>
<p>For details, check this <a href="http://www.ferg.org/papers/debugging_in_python.html" target="_blank">site</a></p>
<h3>But what if I can&#8217;t debug interactively ?</h3>
<p>Typically, you come across this problem when you are running the script on a server. Even if the script worked OK in test environment, in live environment something goes wrong, because the script is executed by server, and you can not control the arguments that are being passed to the script. In this scenario, you need to resort to age-old logging technique</p>
<p>Here are few line of code you need to add to your script. Modify as per your needs (especially paths)<br />
Earlier in your script (as early as possible) add following lines :<br />
<code><br />
from time import strftime<br />
f = open('D:/temp/log.txt', 'r+')<br />
f.write("-- Begin Log at %s --n" % strftime("%Y-%m-%d %H:%M:%S"))<br />
</code></p>
<p>At the end of your script (as late as possible)  add following lines :<br />
<code><br />
f.write("-- End Log at %s --n" % strftime("%Y-%m-%d %H:%M:%S"))<br />
f.close()<br />
</code></p>
<p>Your basic logging infrastructure is ready. Now you can add <code>f.write()</code> lines through out your code, as and where needed.</p>
<p><span style="color:#808080;">Note : I&#8217;m part of pythondev group on twitter.  Visit the <a href="http://twittgroups.com/group/pythondev" target="_blank">website </a>for details.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://desipenguin.com/techblog/2008/12/24/debugging-python-scripts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tracks for GTD</title>
		<link>http://desipenguin.com/techblog/2007/06/15/tracks-for-gtd/</link>
		<comments>http://desipenguin.com/techblog/2007/06/15/tracks-for-gtd/#comments</comments>
		<pubDate>Fri, 15 Jun 2007 07:55:00 +0000</pubDate>
		<dc:creator>Mandar Vaze</dc:creator>
				<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Review]]></category>
		<category><![CDATA[cross platform]]></category>
		<category><![CDATA[gtd]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://desipenguin.wordpress.com/2007/06/15/tracks-for-gtd/</guid>
		<description><![CDATA[I am really happy with the combination of todo.txt, PHP and Slickrun to edit the actions.  You can read about (and see) it here. But I came across this Ruby implementation of GTD system. I had heard and read about it even earlier, but didn&#8217;t bother trying it out. This time I decided to [...]]]></description>
			<content:encoded><![CDATA[<p>I am really happy with the combination of todo.txt, PHP and Slickrun to edit the actions.  You can read about (and see) it <a href="http://desipenguin.wordpress.com/2007/05/28/my-clean-desktop/" target="_blank">here</a>. But I came across this Ruby implementation of GTD system. I had heard and read about it even earlier, but didn&#8217;t bother trying it out. This time I decided to try it myself.</p>
<p><span id="more-20"></span></p>
<h3>Installation</h3>
<p>It didn&#8217;t take much time for me to find <a href="http://www.rousette.org.uk/projects/files/tracks_on_windows_installation.pdf">this </a>nice tutorial. Obviously, Tracks on Windows is popular and has been around for a while. Otherwise finding such crisp instructions is not common for tools based on open source technologies. The instructions were not without their share of problems , but looking back they were hardly big problems, nothing that little bit of googling can&#8217;t solve.</p>
<p>Initially I decided to get the latest and (hopefully) greatest versions of all the components required. Needless to say that didn&#8217;t go well. The instructions were written for specific versions. So this time I decided to follow the instructions to the letter. Downloaded all the exact versions listed in the PDF, from the links provided in the tutorial. I already had Uniform Server 3.3 installed, So that was the only variation from the tutorial.</p>
<p>The instructions were really simple and things worked OK till step 22. <em>rake</em> was not to be found on my system. Having googled about Ruby and rails, I realized that I can download rake separately. I got it from <a href="http://rubyforge.org/frs/?group_id=50">here.</a> Once rake was installed, it was smooth sailing after that.<br />
<em>Note: Later I found that this problem was already reported and solved<a href="http://www.rousette.org.uk/projects/news/comments/new-installation-instructions-for-windows/#304"> here</a></em></p>
<h3>Observations</h3>
<ol>
<li>After following these instructions, I&#8217;m using WEBrick, the default webserver that comes with Ruby (?) rather than Apache from Uniform server. It would have been nicer if it used both Apache and mysql. There are notes elsewhere on Web about how to use sqlite instead of mysql. If I did that I would not need Uniform Server</li>
<li>For some reason (may be it is a known issue) when I resume back from <em>hibernate</em>, Tracks doesn&#8217;t work until I restart the server. Note: I have this installed on my laptop, hence hibernating. Otherwise it may work just fine.</li>
<li>When I start the server from command line using ruby.exe, I can not close the command window where messages are displayed, else it stops Ruby/WEBrick server as well. One possible option is to use rubyw instead, so that there is no terminal to be kept open. But due to #2 above, I prefer to have a command prompt open, so that I can at least restart the server when required.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://desipenguin.com/techblog/2007/06/15/tracks-for-gtd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

